[Home] [Help]
PACKAGE BODY: APPS.XLA_00275_AAD_S_000016_PKG
Source
1 PACKAGE BODY XLA_00275_AAD_S_000016_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_00275_AAD_S_000016_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : China Projects Standard Accounting |
14 | Code : JA_CN_PA_DEFAULT_ACCRUAL |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 06-11-2008 at 02:11:02 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_00275_AAD_S_000016_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_00275_AAD_S_000016_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_00275_AAD_S_000016_PKG.ValidateLookupMeaning');
204 --
205 END ValidateLookupMeaning;
206 --
207 --
208
209 --
210 ---------------------------------------
211 --
212 -- PUBLIC FUNCTION
213 -- GetMeaning
214 --
215 ---------------------------------------
216 FUNCTION GetMeaning (
217 p_flex_value_set_id IN INTEGER
218 , p_flex_value IN VARCHAR2
219 , p_source_code IN VARCHAR2
220 , p_source_type_code IN VARCHAR2
221 , p_source_application_id IN INTEGER
222 )
223 RETURN VARCHAR2
224 IS
225 l_meaning_meaning VARCHAR2(4000);
226 l_array_meaning xla_ae_sources_pkg.t_array_meaning;
227 l_Idx INTEGER;
228 l_log_module VARCHAR2(240);
229 --
230 BEGIN
231 IF g_log_enabled THEN
232 l_log_module := C_DEFAULT_MODULE||'.GetMeaning';
233 END IF;
234 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
235 trace
236 (p_msg => 'BEGIN of GetMeaning'||
237 'p_flex_value_set_id = '||p_flex_value_set_id||
238 'p_flex_value = '||p_flex_value
239 ,p_level => C_LEVEL_PROCEDURE
240 ,p_module => l_log_module);
241 END IF;
242 --
243 l_array_meaning := xla_ae_sources_pkg.g_array_meaning;
244 --
245 IF p_flex_value IS NULL THEN
246
247 l_meaning_meaning := NULL;
248
249 ELSE
250
251 CASE p_flex_value_set_id
252
253 WHEN 103371 THEN
254
255 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
256
257 trace
258 (p_msg => '-> CALL DBMS_UTILITY.get_hash_value'
259 ,p_level => C_LEVEL_PROCEDURE
260 ,p_module => l_log_module);
261
262 END IF;
263
264 l_Idx := DBMS_UTILITY.get_hash_value(TO_CHAR(p_flex_value),1,1073741824);
265
266 IF l_array_meaning.EXISTS(103371) AND
267 l_array_meaning(103371).array_flex_value.EXISTS(l_Idx) AND
268 l_array_meaning(103371).array_flex_value(l_Idx) = p_flex_value THEN
269
270 l_meaning_meaning := l_array_meaning(103371).array_meaning(l_Idx);
271
272 ELSE
273
274 SELECT MEANING
275 INTO l_meaning_meaning
276 FROM FND_LOOKUPS
277 WHERE LOOKUP_CODE = p_flex_value AND LOOKUP_TYPE = 'YES_NO'
278 ORDER BY MEANING ;
279
280 l_array_meaning(103371).array_flex_value(l_Idx) := p_flex_value;
281 l_array_meaning(103371).array_meaning(l_Idx) := l_meaning_meaning;
282
283 END IF;
284
285 WHEN 103371 THEN
286
287 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
288
289 trace
290 (p_msg => '-> CALL DBMS_UTILITY.get_hash_value'
291 ,p_level => C_LEVEL_PROCEDURE
292 ,p_module => l_log_module);
293
294 END IF;
295
296 l_Idx := DBMS_UTILITY.get_hash_value(TO_CHAR(p_flex_value),1,1073741824);
297
298 IF l_array_meaning.EXISTS(103371) AND
299 l_array_meaning(103371).array_flex_value.EXISTS(l_Idx) AND
300 l_array_meaning(103371).array_flex_value(l_Idx) = p_flex_value THEN
301
305
302 l_meaning_meaning := l_array_meaning(103371).array_meaning(l_Idx);
303
304 ELSE
306 SELECT MEANING
307 INTO l_meaning_meaning
308 FROM FND_LOOKUPS
309 WHERE LOOKUP_CODE = p_flex_value AND LOOKUP_TYPE = 'YES_NO'
310 ORDER BY MEANING ;
311
312 l_array_meaning(103371).array_flex_value(l_Idx) := p_flex_value;
313 l_array_meaning(103371).array_meaning(l_Idx) := l_meaning_meaning;
314
315 END IF;
316
317 WHEN 103371 THEN
318
319 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
320
321 trace
322 (p_msg => '-> CALL DBMS_UTILITY.get_hash_value'
323 ,p_level => C_LEVEL_PROCEDURE
324 ,p_module => l_log_module);
325
326 END IF;
327
328 l_Idx := DBMS_UTILITY.get_hash_value(TO_CHAR(p_flex_value),1,1073741824);
329
330 IF l_array_meaning.EXISTS(103371) AND
331 l_array_meaning(103371).array_flex_value.EXISTS(l_Idx) AND
332 l_array_meaning(103371).array_flex_value(l_Idx) = p_flex_value THEN
333
334 l_meaning_meaning := l_array_meaning(103371).array_meaning(l_Idx);
335
336 ELSE
337
338 SELECT MEANING
339 INTO l_meaning_meaning
340 FROM FND_LOOKUPS
341 WHERE LOOKUP_CODE = p_flex_value AND LOOKUP_TYPE = 'YES_NO'
342 ORDER BY MEANING ;
343
344 l_array_meaning(103371).array_flex_value(l_Idx) := p_flex_value;
345 l_array_meaning(103371).array_meaning(l_Idx) := l_meaning_meaning;
346
347 END IF;
348
349 ELSE
350 l_meaning_meaning := NULL;
351 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
352 xla_accounting_err_pkg.build_message
353 (p_appli_s_name => 'XLA'
354 ,p_msg_name => 'XLA_AP_FLEX_VALUE_MEANING'
355 ,p_token_1 => 'VALUE_SET_NAME'
356 ,p_value_1 => xla_flex_pkg.get_value_set_name(p_flex_value_set_id)
357 ,p_token_2 => 'FLEX_VALUE'
358 ,p_value_2 => p_flex_value
359 ,p_token_3 => 'SOURCE_NAME'
360 ,p_value_3 => xla_ae_sources_pkg.GetSourceName(
361 p_source_code
362 , p_source_type_code
363 , p_source_application_id
364 )
365 ,p_token_4 => 'PRODUCT_NAME'
366 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
367 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
368 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
369 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
370 );
371 IF (C_LEVEL_ERROR >= g_log_level) THEN
372 trace
373 (p_msg => 'ERROR: XLA_AP_FLEX_VALUE_MEANING'
374 ,p_level => C_LEVEL_ERROR
375 ,p_module => l_log_module);
376 END IF;
377 END CASE;
378 --
379 END IF;
380 --
381 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
382
383 trace
384 (p_msg => 'return value. meaning = '||l_meaning_meaning
385 ,p_level => C_LEVEL_PROCEDURE
386 ,p_module => l_log_module);
387
388 trace
389 (p_msg => 'END of GetMeaning'
390 ,p_level => C_LEVEL_PROCEDURE
391 ,p_module => l_log_module);
392 END IF;
393 --
394 xla_ae_sources_pkg.g_array_meaning := l_array_meaning ;
395 --
396 RETURN l_meaning_meaning ;
397 --
398 EXCEPTION
399 WHEN NO_DATA_FOUND OR TOO_MANY_ROWS THEN
400 --
401 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
402 xla_accounting_err_pkg.build_message
403 (p_appli_s_name => 'XLA'
404 ,p_msg_name => 'XLA_AP_FLEX_VALUE_MEANING'
405 ,p_token_1 => 'VALUE_SET_NAME'
406 ,p_value_1 => xla_flex_pkg.get_value_set_name(p_flex_value_set_id)
407 ,p_token_2 => 'FLEX_VALUE'
408 ,p_value_2 => p_flex_value
409 ,p_token_3 => 'SOURCE_NAME'
410 ,p_value_3 => xla_ae_sources_pkg.GetSourceName(
411 p_source_code
412 , p_source_type_code
413 , p_source_application_id
414 )
415 ,p_token_4 => 'PRODUCT_NAME'
416 ,p_value_4 => xla_ae_journal_entry_pkg.g_cache_event.application_name
417 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
418 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
419 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
420 );
421
422 IF (C_LEVEL_ERROR >= g_log_level) THEN
423 trace
424 (p_msg => 'ERROR: XLA_AP_FLEX_VALUE_MEANING'
425 ,p_level => C_LEVEL_ERROR
429 RETURN NULL;
426 ,p_module => l_log_module);
427 END IF;
428
430 WHEN xla_exceptions_pkg.application_exception THEN
431 RAISE;
432 WHEN OTHERS THEN
433 xla_exceptions_pkg.raise_message
434 (p_location => 'XLA_00275_AAD_S_000016_PKG.GetMeaning');
435 END GetMeaning;
436 --
437
438 ---------------------------------------
439 --
440 -- PRIVATE FUNCTION
441 -- AcctDerRule_1
442 --
443 ---------------------------------------
444 FUNCTION AcctDerRule_1 (
445 p_application_id IN NUMBER
446 , p_ae_header_id IN NUMBER
447 , p_side IN VARCHAR2
448 --Event Revenue CCID
449 , p_source_1 IN NUMBER
450 , x_transaction_coa_id OUT NOCOPY NUMBER
451 , x_accounting_coa_id OUT NOCOPY NUMBER
452 , x_value_type_code OUT NOCOPY VARCHAR2
453 )
454 RETURN NUMBER
455 IS
456 l_component_type VARCHAR2(80) ;
457 l_component_code VARCHAR2(30) ;
458 l_component_type_code VARCHAR2(1) ;
459 l_component_appl_id INTEGER ;
460 l_amb_context_code VARCHAR2(30) ;
461 l_log_module VARCHAR2(240) ;
462 l_output_value NUMBER ;
463 BEGIN
464 IF g_log_enabled THEN
465 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_1';
466 END IF;
467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
468 trace
469 (p_msg => 'BEGIN of AcctDerRule_1'
470 ,p_level => C_LEVEL_PROCEDURE
471 ,p_module => l_log_module);
472 END IF;
473 --
474 l_component_type := 'AMB_ADR';
475 l_component_code := 'EVENT_REVENUE_RULE';
476 l_component_type_code := 'S';
477 l_component_appl_id := 275;
478 l_amb_context_code := 'DEFAULT';
479 x_transaction_coa_id := null;
480 x_accounting_coa_id := null;
481 --
482
483 --
484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
485 trace
486 (p_msg => 'END of AcctDerRule_1'
487 ,p_level => C_LEVEL_PROCEDURE
488 ,p_module => l_log_module);
489 END IF;
490 x_value_type_code := 'S';
491 l_output_value := TO_NUMBER(TO_NUMBER(p_source_1));
492 RETURN l_output_value;
493
494 --
495 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
496 trace
497 (p_msg => 'END of AcctDerRule_1(invalid)'
498 ,p_level => C_LEVEL_PROCEDURE
499 ,p_module => l_log_module);
500 END IF;
501 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
502 x_value_type_code := null;
503 l_output_value := null;
504 xla_accounting_err_pkg.build_message
505 (p_appli_s_name => 'XLA'
506 ,p_msg_name => 'XLA_AP_INVALID_ADR'
507 ,p_token_1 => 'COMPONENT_NAME'
508 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
509 l_component_type
510 , l_component_code
511 , l_component_type_code
512 , l_component_appl_id
513 , l_amb_context_code
514 )
515 ,p_token_2 => 'OWNER'
516 ,p_value_2 => xla_lookups_pkg.get_meaning(
517 'XLA_OWNER_TYPE'
518 ,l_component_type_code
519 )
520 ,p_token_3 => 'PAD_NAME'
521 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
522 ,p_token_4 => 'PAD_OWNER'
523 ,p_value_4 => xla_lookups_pkg.get_meaning(
524 'XLA_OWNER_TYPE'
525 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
526 )
527 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
528 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
529 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
530 ,p_ae_header_id => NULL
531 );
532 RETURN l_output_value;
533 EXCEPTION
534 WHEN xla_exceptions_pkg.application_exception THEN
535 RAISE;
536 WHEN OTHERS THEN
537 xla_exceptions_pkg.raise_message
538 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_1');
539 END AcctDerRule_1;
540 --
541
542 ---------------------------------------
543 --
544 -- PRIVATE FUNCTION
545 -- AcctDerRule_2
546 --
547 ---------------------------------------
548 FUNCTION AcctDerRule_2 (
549 p_application_id IN NUMBER
550 , p_ae_header_id IN NUMBER
551 , p_side IN VARCHAR2
552 --Budget Code Combination ID
553 , p_source_2 IN NUMBER
554 , x_transaction_coa_id OUT NOCOPY NUMBER
555 , x_accounting_coa_id OUT NOCOPY NUMBER
556 , x_value_type_code OUT NOCOPY VARCHAR2
557 )
558 RETURN NUMBER
559 IS
560 l_component_type VARCHAR2(80) ;
561 l_component_code VARCHAR2(30) ;
562 l_component_type_code VARCHAR2(1) ;
563 l_component_appl_id INTEGER ;
567 BEGIN
564 l_amb_context_code VARCHAR2(30) ;
565 l_log_module VARCHAR2(240) ;
566 l_output_value NUMBER ;
568 IF g_log_enabled THEN
569 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_2';
570 END IF;
571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
572 trace
573 (p_msg => 'BEGIN of AcctDerRule_2'
574 ,p_level => C_LEVEL_PROCEDURE
575 ,p_module => l_log_module);
576 END IF;
577 --
578 l_component_type := 'AMB_ADR';
579 l_component_code := 'PA_BUDGET_ACCT_RULE';
580 l_component_type_code := 'S';
581 l_component_appl_id := 275;
582 l_amb_context_code := 'DEFAULT';
583 x_transaction_coa_id := null;
584 x_accounting_coa_id := null;
585 --
586
587 --
588 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
589 trace
590 (p_msg => 'END of AcctDerRule_2'
591 ,p_level => C_LEVEL_PROCEDURE
592 ,p_module => l_log_module);
593 END IF;
594 x_value_type_code := 'S';
595 l_output_value := TO_NUMBER(p_source_2);
596 RETURN l_output_value;
597
598 --
599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
600 trace
601 (p_msg => 'END of AcctDerRule_2(invalid)'
602 ,p_level => C_LEVEL_PROCEDURE
603 ,p_module => l_log_module);
604 END IF;
605 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
606 x_value_type_code := null;
607 l_output_value := null;
608 xla_accounting_err_pkg.build_message
609 (p_appli_s_name => 'XLA'
610 ,p_msg_name => 'XLA_AP_INVALID_ADR'
611 ,p_token_1 => 'COMPONENT_NAME'
612 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
613 l_component_type
614 , l_component_code
615 , l_component_type_code
616 , l_component_appl_id
617 , l_amb_context_code
618 )
619 ,p_token_2 => 'OWNER'
620 ,p_value_2 => xla_lookups_pkg.get_meaning(
621 'XLA_OWNER_TYPE'
622 ,l_component_type_code
623 )
624 ,p_token_3 => 'PAD_NAME'
625 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
626 ,p_token_4 => 'PAD_OWNER'
627 ,p_value_4 => xla_lookups_pkg.get_meaning(
628 'XLA_OWNER_TYPE'
629 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
630 )
631 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
632 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
633 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
634 ,p_ae_header_id => NULL
635 );
636 RETURN l_output_value;
637 EXCEPTION
638 WHEN xla_exceptions_pkg.application_exception THEN
639 RAISE;
640 WHEN OTHERS THEN
641 xla_exceptions_pkg.raise_message
642 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_2');
643 END AcctDerRule_2;
644 --
645
646 ---------------------------------------
647 --
648 -- PRIVATE FUNCTION
649 -- AcctDerRule_3
650 --
651 ---------------------------------------
652 FUNCTION AcctDerRule_3 (
653 p_application_id IN NUMBER
654 , p_ae_header_id IN NUMBER
655 , p_side IN VARCHAR2
656 --Cost CCID
657 , p_source_3 IN NUMBER
658 --Allow Account Override Flag
659 , p_source_4 IN VARCHAR2
660 --Adjustment Cost CCID
661 , p_source_5 IN NUMBER
662 , x_transaction_coa_id OUT NOCOPY NUMBER
663 , x_accounting_coa_id OUT NOCOPY NUMBER
664 , x_value_type_code OUT NOCOPY VARCHAR2
665 )
666 RETURN NUMBER
667 IS
668 l_component_type VARCHAR2(80) ;
669 l_component_code VARCHAR2(30) ;
670 l_component_type_code VARCHAR2(1) ;
671 l_component_appl_id INTEGER ;
672 l_amb_context_code VARCHAR2(30) ;
673 l_log_module VARCHAR2(240) ;
674 l_output_value NUMBER ;
675 BEGIN
676 IF g_log_enabled THEN
677 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_3';
678 END IF;
679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
680 trace
681 (p_msg => 'BEGIN of AcctDerRule_3'
682 ,p_level => C_LEVEL_PROCEDURE
683 ,p_module => l_log_module);
684 END IF;
685 --
686 l_component_type := 'AMB_ADR';
687 l_component_code := 'PA_COST_ACCT_RULE';
688 l_component_type_code := 'S';
689 l_component_appl_id := 275;
690 l_amb_context_code := 'DEFAULT';
691 x_transaction_coa_id := null;
692 x_accounting_coa_id := null;
693 --
694
695 IF NVL(p_source_4,'
696 ') = 'Y'
697 THEN
698 --
699 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
700 trace
701 (p_msg => 'END of AcctDerRule_3'
702 ,p_level => C_LEVEL_PROCEDURE
706 l_output_value := TO_NUMBER(TO_NUMBER(p_source_3));
703 ,p_module => l_log_module);
704 END IF;
705 x_value_type_code := 'S';
707 RETURN l_output_value;
708
709 ELSIF NVL(p_source_4,'
710 ') = 'N'
711 THEN
712 --
713 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
714 trace
715 (p_msg => 'END of AcctDerRule_3'
716 ,p_level => C_LEVEL_PROCEDURE
717 ,p_module => l_log_module);
718 END IF;
719 x_value_type_code := 'S';
720 l_output_value := TO_NUMBER(TO_NUMBER(p_source_5));
721 RETURN l_output_value;
722
723 END IF;
724 --
725 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
726 trace
727 (p_msg => 'END of AcctDerRule_3(invalid)'
728 ,p_level => C_LEVEL_PROCEDURE
729 ,p_module => l_log_module);
730 END IF;
731 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
732 x_value_type_code := null;
733 l_output_value := null;
734 xla_accounting_err_pkg.build_message
735 (p_appli_s_name => 'XLA'
736 ,p_msg_name => 'XLA_AP_INVALID_ADR'
737 ,p_token_1 => 'COMPONENT_NAME'
738 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
739 l_component_type
740 , l_component_code
741 , l_component_type_code
742 , l_component_appl_id
743 , l_amb_context_code
744 )
745 ,p_token_2 => 'OWNER'
746 ,p_value_2 => xla_lookups_pkg.get_meaning(
747 'XLA_OWNER_TYPE'
748 ,l_component_type_code
749 )
750 ,p_token_3 => 'PAD_NAME'
751 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
752 ,p_token_4 => 'PAD_OWNER'
753 ,p_value_4 => xla_lookups_pkg.get_meaning(
754 'XLA_OWNER_TYPE'
755 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
756 )
757 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
758 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
759 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
760 ,p_ae_header_id => NULL
761 );
762 RETURN l_output_value;
763 EXCEPTION
764 WHEN xla_exceptions_pkg.application_exception THEN
765 RAISE;
766 WHEN OTHERS THEN
767 xla_exceptions_pkg.raise_message
768 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_3');
769 END AcctDerRule_3;
770 --
771
772 ---------------------------------------
773 --
774 -- PRIVATE FUNCTION
775 -- AcctDerRule_4
776 --
777 ---------------------------------------
778 FUNCTION AcctDerRule_4 (
779 p_application_id IN NUMBER
780 , p_ae_header_id IN NUMBER
781 , p_side IN VARCHAR2
782 --Allow Account Override Flag
783 , p_source_4 IN VARCHAR2
784 --Adjustment Cost CCID
785 , p_source_5 IN NUMBER
786 , x_transaction_coa_id OUT NOCOPY NUMBER
787 , x_accounting_coa_id OUT NOCOPY NUMBER
788 , x_value_type_code OUT NOCOPY VARCHAR2
789 )
790 RETURN NUMBER
791 IS
792 l_component_type VARCHAR2(80) ;
793 l_component_code VARCHAR2(30) ;
794 l_component_type_code VARCHAR2(1) ;
795 l_component_appl_id INTEGER ;
796 l_amb_context_code VARCHAR2(30) ;
797 l_log_module VARCHAR2(240) ;
798 l_output_value NUMBER ;
799 BEGIN
800 IF g_log_enabled THEN
801 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_4';
802 END IF;
803 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
804 trace
805 (p_msg => 'BEGIN of AcctDerRule_4'
806 ,p_level => C_LEVEL_PROCEDURE
807 ,p_module => l_log_module);
808 END IF;
809 --
810 l_component_type := 'AMB_ADR';
811 l_component_code := 'PA_COST_ACC_ADJ_RULE';
812 l_component_type_code := 'S';
813 l_component_appl_id := 275;
814 l_amb_context_code := 'DEFAULT';
815 x_transaction_coa_id := null;
816 x_accounting_coa_id := null;
817 --
818
819 IF NVL(p_source_4,'
820 ') = 'N'
821 THEN
822 --
823 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
824 trace
825 (p_msg => 'END of AcctDerRule_4'
826 ,p_level => C_LEVEL_PROCEDURE
827 ,p_module => l_log_module);
828 END IF;
829 x_value_type_code := 'S';
830 l_output_value := TO_NUMBER(TO_NUMBER(p_source_5));
831 RETURN l_output_value;
832
833 END IF;
834 --
835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
836 trace
837 (p_msg => 'END of AcctDerRule_4(invalid)'
838 ,p_level => C_LEVEL_PROCEDURE
839 ,p_module => l_log_module);
840 END IF;
841 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
845 (p_appli_s_name => 'XLA'
842 x_value_type_code := null;
843 l_output_value := null;
844 xla_accounting_err_pkg.build_message
846 ,p_msg_name => 'XLA_AP_INVALID_ADR'
847 ,p_token_1 => 'COMPONENT_NAME'
848 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
849 l_component_type
850 , l_component_code
851 , l_component_type_code
852 , l_component_appl_id
853 , l_amb_context_code
854 )
855 ,p_token_2 => 'OWNER'
856 ,p_value_2 => xla_lookups_pkg.get_meaning(
857 'XLA_OWNER_TYPE'
858 ,l_component_type_code
859 )
860 ,p_token_3 => 'PAD_NAME'
861 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
862 ,p_token_4 => 'PAD_OWNER'
863 ,p_value_4 => xla_lookups_pkg.get_meaning(
864 'XLA_OWNER_TYPE'
865 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
866 )
867 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
868 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
869 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
870 ,p_ae_header_id => NULL
871 );
872 RETURN l_output_value;
873 EXCEPTION
874 WHEN xla_exceptions_pkg.application_exception THEN
875 RAISE;
876 WHEN OTHERS THEN
877 xla_exceptions_pkg.raise_message
878 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_4');
879 END AcctDerRule_4;
880 --
881
882 ---------------------------------------
883 --
884 -- PRIVATE FUNCTION
885 -- AcctDerRule_5
886 --
887 ---------------------------------------
888 FUNCTION AcctDerRule_5 (
889 p_application_id IN NUMBER
890 , p_ae_header_id IN NUMBER
891 , p_side IN VARCHAR2
892 --Allow Account Override Flag
893 , p_source_4 IN VARCHAR2
894 --Cost Clearing CCID
895 , p_source_6 IN NUMBER
896 --Adjustment Cost Clearing CCID
897 , p_source_7 IN NUMBER
898 , x_transaction_coa_id OUT NOCOPY NUMBER
899 , x_accounting_coa_id OUT NOCOPY NUMBER
900 , x_value_type_code OUT NOCOPY VARCHAR2
901 )
902 RETURN NUMBER
903 IS
904 l_component_type VARCHAR2(80) ;
905 l_component_code VARCHAR2(30) ;
906 l_component_type_code VARCHAR2(1) ;
907 l_component_appl_id INTEGER ;
908 l_amb_context_code VARCHAR2(30) ;
909 l_log_module VARCHAR2(240) ;
910 l_output_value NUMBER ;
911 BEGIN
912 IF g_log_enabled THEN
913 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_5';
914 END IF;
915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
916 trace
917 (p_msg => 'BEGIN of AcctDerRule_5'
918 ,p_level => C_LEVEL_PROCEDURE
919 ,p_module => l_log_module);
920 END IF;
921 --
922 l_component_type := 'AMB_ADR';
923 l_component_code := 'PA_COST_CLEARING_ACCT_RULE';
924 l_component_type_code := 'S';
925 l_component_appl_id := 275;
926 l_amb_context_code := 'DEFAULT';
927 x_transaction_coa_id := null;
928 x_accounting_coa_id := null;
929 --
930
931 IF NVL(p_source_4,'
932 ') = 'Y'
933 THEN
934 --
935 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
936 trace
937 (p_msg => 'END of AcctDerRule_5'
938 ,p_level => C_LEVEL_PROCEDURE
939 ,p_module => l_log_module);
940 END IF;
941 x_value_type_code := 'S';
942 l_output_value := TO_NUMBER(TO_NUMBER(p_source_6));
943 RETURN l_output_value;
944
945 ELSIF NVL(p_source_4,'
946 ') = 'N'
947 THEN
948 --
949 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
950 trace
951 (p_msg => 'END of AcctDerRule_5'
952 ,p_level => C_LEVEL_PROCEDURE
953 ,p_module => l_log_module);
954 END IF;
955 x_value_type_code := 'S';
956 l_output_value := TO_NUMBER(TO_NUMBER(p_source_7));
957 RETURN l_output_value;
958
959 END IF;
960 --
961 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
962 trace
963 (p_msg => 'END of AcctDerRule_5(invalid)'
964 ,p_level => C_LEVEL_PROCEDURE
965 ,p_module => l_log_module);
966 END IF;
967 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
968 x_value_type_code := null;
969 l_output_value := null;
970 xla_accounting_err_pkg.build_message
971 (p_appli_s_name => 'XLA'
972 ,p_msg_name => 'XLA_AP_INVALID_ADR'
973 ,p_token_1 => 'COMPONENT_NAME'
974 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
975 l_component_type
979 , l_amb_context_code
976 , l_component_code
977 , l_component_type_code
978 , l_component_appl_id
980 )
981 ,p_token_2 => 'OWNER'
982 ,p_value_2 => xla_lookups_pkg.get_meaning(
983 'XLA_OWNER_TYPE'
984 ,l_component_type_code
985 )
986 ,p_token_3 => 'PAD_NAME'
987 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
988 ,p_token_4 => 'PAD_OWNER'
989 ,p_value_4 => xla_lookups_pkg.get_meaning(
990 'XLA_OWNER_TYPE'
991 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
992 )
993 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
994 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
995 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
996 ,p_ae_header_id => NULL
997 );
998 RETURN l_output_value;
999 EXCEPTION
1000 WHEN xla_exceptions_pkg.application_exception THEN
1001 RAISE;
1002 WHEN OTHERS THEN
1003 xla_exceptions_pkg.raise_message
1004 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_5');
1005 END AcctDerRule_5;
1006 --
1007
1008 ---------------------------------------
1009 --
1010 -- PRIVATE FUNCTION
1011 -- AcctDerRule_6
1012 --
1013 ---------------------------------------
1014 FUNCTION AcctDerRule_6 (
1015 p_application_id IN NUMBER
1016 , p_ae_header_id IN NUMBER
1017 , p_side IN VARCHAR2
1018 --Allow Account Override Flag
1019 , p_source_4 IN VARCHAR2
1020 --Adjustment Cost Clearing CCID
1021 , p_source_7 IN NUMBER
1022 , x_transaction_coa_id OUT NOCOPY NUMBER
1023 , x_accounting_coa_id OUT NOCOPY NUMBER
1024 , x_value_type_code OUT NOCOPY VARCHAR2
1025 )
1026 RETURN NUMBER
1027 IS
1028 l_component_type VARCHAR2(80) ;
1029 l_component_code VARCHAR2(30) ;
1030 l_component_type_code VARCHAR2(1) ;
1031 l_component_appl_id INTEGER ;
1032 l_amb_context_code VARCHAR2(30) ;
1033 l_log_module VARCHAR2(240) ;
1034 l_output_value NUMBER ;
1035 BEGIN
1036 IF g_log_enabled THEN
1037 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_6';
1038 END IF;
1039 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1040 trace
1041 (p_msg => 'BEGIN of AcctDerRule_6'
1042 ,p_level => C_LEVEL_PROCEDURE
1043 ,p_module => l_log_module);
1044 END IF;
1045 --
1046 l_component_type := 'AMB_ADR';
1047 l_component_code := 'PA_COST_CLEARING_ADJ_ACC';
1048 l_component_type_code := 'S';
1049 l_component_appl_id := 275;
1050 l_amb_context_code := 'DEFAULT';
1051 x_transaction_coa_id := null;
1052 x_accounting_coa_id := null;
1053 --
1054
1055 IF NVL(p_source_4,'
1056 ') = 'N'
1057 THEN
1058 --
1059 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1060 trace
1061 (p_msg => 'END of AcctDerRule_6'
1062 ,p_level => C_LEVEL_PROCEDURE
1063 ,p_module => l_log_module);
1064 END IF;
1065 x_value_type_code := 'S';
1066 l_output_value := TO_NUMBER(TO_NUMBER(p_source_7));
1067 RETURN l_output_value;
1068
1069 END IF;
1070 --
1071 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1072 trace
1073 (p_msg => 'END of AcctDerRule_6(invalid)'
1074 ,p_level => C_LEVEL_PROCEDURE
1075 ,p_module => l_log_module);
1076 END IF;
1077 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1078 x_value_type_code := null;
1079 l_output_value := null;
1080 xla_accounting_err_pkg.build_message
1081 (p_appli_s_name => 'XLA'
1082 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1083 ,p_token_1 => 'COMPONENT_NAME'
1084 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1085 l_component_type
1086 , l_component_code
1087 , l_component_type_code
1088 , l_component_appl_id
1089 , l_amb_context_code
1090 )
1091 ,p_token_2 => 'OWNER'
1092 ,p_value_2 => xla_lookups_pkg.get_meaning(
1093 'XLA_OWNER_TYPE'
1094 ,l_component_type_code
1095 )
1096 ,p_token_3 => 'PAD_NAME'
1097 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1098 ,p_token_4 => 'PAD_OWNER'
1099 ,p_value_4 => xla_lookups_pkg.get_meaning(
1103 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1100 'XLA_OWNER_TYPE'
1101 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1102 )
1104 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1105 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1106 ,p_ae_header_id => NULL
1107 );
1108 RETURN l_output_value;
1109 EXCEPTION
1110 WHEN xla_exceptions_pkg.application_exception THEN
1111 RAISE;
1112 WHEN OTHERS THEN
1113 xla_exceptions_pkg.raise_message
1114 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_6');
1115 END AcctDerRule_6;
1116 --
1117
1118 ---------------------------------------
1119 --
1120 -- PRIVATE FUNCTION
1121 -- AcctDerRule_7
1122 --
1123 ---------------------------------------
1124 FUNCTION AcctDerRule_7 (
1125 p_application_id IN NUMBER
1126 , p_ae_header_id IN NUMBER
1127 , p_side IN VARCHAR2
1128 --Allow Account Override Flag
1129 , p_source_4 IN VARCHAR2
1130 --Provider Cost/ Revenue CCID
1131 , p_source_8 IN NUMBER
1132 --Adjustment Provider Cost/ Revenue CCID
1133 , p_source_9 IN NUMBER
1134 , x_transaction_coa_id OUT NOCOPY NUMBER
1135 , x_accounting_coa_id OUT NOCOPY NUMBER
1136 , x_value_type_code OUT NOCOPY VARCHAR2
1137 )
1138 RETURN NUMBER
1139 IS
1140 l_component_type VARCHAR2(80) ;
1141 l_component_code VARCHAR2(30) ;
1142 l_component_type_code VARCHAR2(1) ;
1143 l_component_appl_id INTEGER ;
1144 l_amb_context_code VARCHAR2(30) ;
1145 l_log_module VARCHAR2(240) ;
1146 l_output_value NUMBER ;
1147 BEGIN
1148 IF g_log_enabled THEN
1149 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_7';
1150 END IF;
1151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1152 trace
1153 (p_msg => 'BEGIN of AcctDerRule_7'
1154 ,p_level => C_LEVEL_PROCEDURE
1155 ,p_module => l_log_module);
1156 END IF;
1157 --
1158 l_component_type := 'AMB_ADR';
1159 l_component_code := 'PA_PROV_COST_REV_ACCT_RULE';
1160 l_component_type_code := 'S';
1161 l_component_appl_id := 275;
1162 l_amb_context_code := 'DEFAULT';
1163 x_transaction_coa_id := null;
1164 x_accounting_coa_id := null;
1165 --
1166
1167 IF NVL(p_source_4,'
1168 ') = 'Y'
1169 THEN
1170 --
1171 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1172 trace
1173 (p_msg => 'END of AcctDerRule_7'
1174 ,p_level => C_LEVEL_PROCEDURE
1175 ,p_module => l_log_module);
1176 END IF;
1177 x_value_type_code := 'S';
1178 l_output_value := TO_NUMBER(TO_NUMBER(p_source_8));
1179 RETURN l_output_value;
1180
1181 ELSIF NVL(p_source_4,'
1182 ') = 'N'
1183 THEN
1184 --
1185 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1186 trace
1187 (p_msg => 'END of AcctDerRule_7'
1188 ,p_level => C_LEVEL_PROCEDURE
1189 ,p_module => l_log_module);
1190 END IF;
1191 x_value_type_code := 'S';
1192 l_output_value := TO_NUMBER(TO_NUMBER(p_source_9));
1193 RETURN l_output_value;
1194
1195 END IF;
1196 --
1197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1198 trace
1199 (p_msg => 'END of AcctDerRule_7(invalid)'
1200 ,p_level => C_LEVEL_PROCEDURE
1201 ,p_module => l_log_module);
1202 END IF;
1203 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1204 x_value_type_code := null;
1205 l_output_value := null;
1206 xla_accounting_err_pkg.build_message
1207 (p_appli_s_name => 'XLA'
1208 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1209 ,p_token_1 => 'COMPONENT_NAME'
1210 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1211 l_component_type
1212 , l_component_code
1213 , l_component_type_code
1214 , l_component_appl_id
1215 , l_amb_context_code
1216 )
1217 ,p_token_2 => 'OWNER'
1218 ,p_value_2 => xla_lookups_pkg.get_meaning(
1219 'XLA_OWNER_TYPE'
1220 ,l_component_type_code
1221 )
1222 ,p_token_3 => 'PAD_NAME'
1223 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1224 ,p_token_4 => 'PAD_OWNER'
1225 ,p_value_4 => xla_lookups_pkg.get_meaning(
1226 'XLA_OWNER_TYPE'
1227 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1228 )
1229 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1230 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1234 RETURN l_output_value;
1231 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1232 ,p_ae_header_id => NULL
1233 );
1235 EXCEPTION
1236 WHEN xla_exceptions_pkg.application_exception THEN
1237 RAISE;
1238 WHEN OTHERS THEN
1239 xla_exceptions_pkg.raise_message
1240 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_7');
1241 END AcctDerRule_7;
1242 --
1243
1244 ---------------------------------------
1245 --
1246 -- PRIVATE FUNCTION
1247 -- AcctDerRule_8
1248 --
1249 ---------------------------------------
1250 FUNCTION AcctDerRule_8 (
1251 p_application_id IN NUMBER
1252 , p_ae_header_id IN NUMBER
1253 , p_side IN VARCHAR2
1254 --Allow Account Override Flag
1255 , p_source_4 IN VARCHAR2
1256 --Adjustment Provider Cost/ Revenue CCID
1257 , p_source_9 IN NUMBER
1258 , x_transaction_coa_id OUT NOCOPY NUMBER
1259 , x_accounting_coa_id OUT NOCOPY NUMBER
1260 , x_value_type_code OUT NOCOPY VARCHAR2
1261 )
1262 RETURN NUMBER
1263 IS
1264 l_component_type VARCHAR2(80) ;
1265 l_component_code VARCHAR2(30) ;
1266 l_component_type_code VARCHAR2(1) ;
1267 l_component_appl_id INTEGER ;
1268 l_amb_context_code VARCHAR2(30) ;
1269 l_log_module VARCHAR2(240) ;
1270 l_output_value NUMBER ;
1271 BEGIN
1272 IF g_log_enabled THEN
1273 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_8';
1274 END IF;
1275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1276 trace
1277 (p_msg => 'BEGIN of AcctDerRule_8'
1278 ,p_level => C_LEVEL_PROCEDURE
1279 ,p_module => l_log_module);
1280 END IF;
1281 --
1282 l_component_type := 'AMB_ADR';
1283 l_component_code := 'PA_PROV_COST_REV_ADJ_ACCT_RULE';
1284 l_component_type_code := 'S';
1285 l_component_appl_id := 275;
1286 l_amb_context_code := 'DEFAULT';
1287 x_transaction_coa_id := null;
1288 x_accounting_coa_id := null;
1289 --
1290
1291 IF NVL(p_source_4,'
1292 ') = 'N'
1293 THEN
1294 --
1295 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1296 trace
1297 (p_msg => 'END of AcctDerRule_8'
1298 ,p_level => C_LEVEL_PROCEDURE
1299 ,p_module => l_log_module);
1300 END IF;
1301 x_value_type_code := 'S';
1302 l_output_value := TO_NUMBER(TO_NUMBER(p_source_9));
1303 RETURN l_output_value;
1304
1305 END IF;
1306 --
1307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1308 trace
1309 (p_msg => 'END of AcctDerRule_8(invalid)'
1310 ,p_level => C_LEVEL_PROCEDURE
1311 ,p_module => l_log_module);
1312 END IF;
1313 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1314 x_value_type_code := null;
1315 l_output_value := null;
1316 xla_accounting_err_pkg.build_message
1317 (p_appli_s_name => 'XLA'
1318 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1319 ,p_token_1 => 'COMPONENT_NAME'
1320 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1321 l_component_type
1322 , l_component_code
1323 , l_component_type_code
1324 , l_component_appl_id
1325 , l_amb_context_code
1326 )
1327 ,p_token_2 => 'OWNER'
1328 ,p_value_2 => xla_lookups_pkg.get_meaning(
1329 'XLA_OWNER_TYPE'
1330 ,l_component_type_code
1331 )
1332 ,p_token_3 => 'PAD_NAME'
1333 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1334 ,p_token_4 => 'PAD_OWNER'
1335 ,p_value_4 => xla_lookups_pkg.get_meaning(
1336 'XLA_OWNER_TYPE'
1337 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1338 )
1339 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1340 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1341 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1342 ,p_ae_header_id => NULL
1343 );
1344 RETURN l_output_value;
1345 EXCEPTION
1346 WHEN xla_exceptions_pkg.application_exception THEN
1347 RAISE;
1348 WHEN OTHERS THEN
1349 xla_exceptions_pkg.raise_message
1350 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_8');
1351 END AcctDerRule_8;
1352 --
1353
1354 ---------------------------------------
1355 --
1356 -- PRIVATE FUNCTION
1357 -- AcctDerRule_9
1358 --
1359 ---------------------------------------
1360 FUNCTION AcctDerRule_9 (
1361 p_application_id IN NUMBER
1362 , p_ae_header_id IN NUMBER
1363 , p_side IN VARCHAR2
1364 --Allow Account Override Flag
1365 , p_source_4 IN VARCHAR2
1366 --Adjustment Receiver Cost/ Revenue CCID
1367 , p_source_10 IN NUMBER
1371 )
1368 , x_transaction_coa_id OUT NOCOPY NUMBER
1369 , x_accounting_coa_id OUT NOCOPY NUMBER
1370 , x_value_type_code OUT NOCOPY VARCHAR2
1372 RETURN NUMBER
1373 IS
1374 l_component_type VARCHAR2(80) ;
1375 l_component_code VARCHAR2(30) ;
1376 l_component_type_code VARCHAR2(1) ;
1377 l_component_appl_id INTEGER ;
1378 l_amb_context_code VARCHAR2(30) ;
1379 l_log_module VARCHAR2(240) ;
1380 l_output_value NUMBER ;
1381 BEGIN
1382 IF g_log_enabled THEN
1383 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_9';
1384 END IF;
1385 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1386 trace
1387 (p_msg => 'BEGIN of AcctDerRule_9'
1388 ,p_level => C_LEVEL_PROCEDURE
1389 ,p_module => l_log_module);
1390 END IF;
1391 --
1392 l_component_type := 'AMB_ADR';
1393 l_component_code := 'PA_RCVR_COST_REV_ADJ_ACCT_RULE';
1394 l_component_type_code := 'S';
1395 l_component_appl_id := 275;
1396 l_amb_context_code := 'DEFAULT';
1397 x_transaction_coa_id := null;
1398 x_accounting_coa_id := null;
1399 --
1400
1401 IF NVL(p_source_4,'
1402 ') = 'N'
1403 THEN
1404 --
1405 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1406 trace
1407 (p_msg => 'END of AcctDerRule_9'
1408 ,p_level => C_LEVEL_PROCEDURE
1409 ,p_module => l_log_module);
1410 END IF;
1411 x_value_type_code := 'S';
1412 l_output_value := TO_NUMBER(TO_NUMBER(p_source_10));
1413 RETURN l_output_value;
1414
1415 END IF;
1416 --
1417 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1418 trace
1419 (p_msg => 'END of AcctDerRule_9(invalid)'
1420 ,p_level => C_LEVEL_PROCEDURE
1421 ,p_module => l_log_module);
1422 END IF;
1423 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1424 x_value_type_code := null;
1425 l_output_value := null;
1426 xla_accounting_err_pkg.build_message
1427 (p_appli_s_name => 'XLA'
1428 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1429 ,p_token_1 => 'COMPONENT_NAME'
1430 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1431 l_component_type
1432 , l_component_code
1433 , l_component_type_code
1434 , l_component_appl_id
1435 , l_amb_context_code
1436 )
1437 ,p_token_2 => 'OWNER'
1438 ,p_value_2 => xla_lookups_pkg.get_meaning(
1439 'XLA_OWNER_TYPE'
1440 ,l_component_type_code
1441 )
1442 ,p_token_3 => 'PAD_NAME'
1443 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1444 ,p_token_4 => 'PAD_OWNER'
1445 ,p_value_4 => xla_lookups_pkg.get_meaning(
1446 'XLA_OWNER_TYPE'
1447 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1448 )
1449 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1450 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1451 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1452 ,p_ae_header_id => NULL
1453 );
1454 RETURN l_output_value;
1455 EXCEPTION
1456 WHEN xla_exceptions_pkg.application_exception THEN
1457 RAISE;
1458 WHEN OTHERS THEN
1459 xla_exceptions_pkg.raise_message
1460 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_9');
1461 END AcctDerRule_9;
1462 --
1463
1464 ---------------------------------------
1465 --
1466 -- PRIVATE FUNCTION
1467 -- AcctDerRule_10
1468 --
1469 ---------------------------------------
1470 FUNCTION AcctDerRule_10 (
1471 p_application_id IN NUMBER
1472 , p_ae_header_id IN NUMBER
1473 , p_side IN VARCHAR2
1474 --Allow Account Override Flag
1475 , p_source_4 IN VARCHAR2
1476 --Provider Cost Destination CCID
1477 , p_source_11 IN NUMBER
1478 --Adjustment Provider Cost Destination CCID
1479 , p_source_12 IN NUMBER
1480 , x_transaction_coa_id OUT NOCOPY NUMBER
1481 , x_accounting_coa_id OUT NOCOPY NUMBER
1482 , x_value_type_code OUT NOCOPY VARCHAR2
1483 )
1484 RETURN NUMBER
1485 IS
1486 l_component_type VARCHAR2(80) ;
1487 l_component_code VARCHAR2(30) ;
1488 l_component_type_code VARCHAR2(1) ;
1489 l_component_appl_id INTEGER ;
1490 l_amb_context_code VARCHAR2(30) ;
1491 l_log_module VARCHAR2(240) ;
1492 l_output_value NUMBER ;
1493 BEGIN
1494 IF g_log_enabled THEN
1495 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_10';
1496 END IF;
1497 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1498 trace
1499 (p_msg => 'BEGIN of AcctDerRule_10'
1500 ,p_level => C_LEVEL_PROCEDURE
1501 ,p_module => l_log_module);
1502 END IF;
1503 --
1504 l_component_type := 'AMB_ADR';
1508 l_amb_context_code := 'DEFAULT';
1505 l_component_code := 'PA_RECLASS_DEST_ACCT_RULE';
1506 l_component_type_code := 'S';
1507 l_component_appl_id := 275;
1509 x_transaction_coa_id := null;
1510 x_accounting_coa_id := null;
1511 --
1512
1513 IF NVL(p_source_4,'
1514 ') = 'Y'
1515 THEN
1516 --
1517 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1518 trace
1519 (p_msg => 'END of AcctDerRule_10'
1520 ,p_level => C_LEVEL_PROCEDURE
1521 ,p_module => l_log_module);
1522 END IF;
1523 x_value_type_code := 'S';
1524 l_output_value := TO_NUMBER(TO_NUMBER(p_source_11));
1525 RETURN l_output_value;
1526
1527 ELSIF NVL(p_source_4,'
1528 ') = 'N'
1529 THEN
1530 --
1531 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1532 trace
1533 (p_msg => 'END of AcctDerRule_10'
1534 ,p_level => C_LEVEL_PROCEDURE
1535 ,p_module => l_log_module);
1536 END IF;
1537 x_value_type_code := 'S';
1538 l_output_value := TO_NUMBER(TO_NUMBER(p_source_12));
1539 RETURN l_output_value;
1540
1541 END IF;
1542 --
1543 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1544 trace
1545 (p_msg => 'END of AcctDerRule_10(invalid)'
1546 ,p_level => C_LEVEL_PROCEDURE
1547 ,p_module => l_log_module);
1548 END IF;
1549 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1550 x_value_type_code := null;
1551 l_output_value := null;
1552 xla_accounting_err_pkg.build_message
1553 (p_appli_s_name => 'XLA'
1554 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1555 ,p_token_1 => 'COMPONENT_NAME'
1556 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1557 l_component_type
1558 , l_component_code
1559 , l_component_type_code
1560 , l_component_appl_id
1561 , l_amb_context_code
1562 )
1563 ,p_token_2 => 'OWNER'
1564 ,p_value_2 => xla_lookups_pkg.get_meaning(
1565 'XLA_OWNER_TYPE'
1566 ,l_component_type_code
1567 )
1568 ,p_token_3 => 'PAD_NAME'
1569 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1570 ,p_token_4 => 'PAD_OWNER'
1571 ,p_value_4 => xla_lookups_pkg.get_meaning(
1572 'XLA_OWNER_TYPE'
1573 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1574 )
1575 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1576 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1577 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1578 ,p_ae_header_id => NULL
1579 );
1580 RETURN l_output_value;
1581 EXCEPTION
1582 WHEN xla_exceptions_pkg.application_exception THEN
1583 RAISE;
1584 WHEN OTHERS THEN
1585 xla_exceptions_pkg.raise_message
1586 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_10');
1587 END AcctDerRule_10;
1588 --
1589
1590 ---------------------------------------
1591 --
1592 -- PRIVATE FUNCTION
1593 -- AcctDerRule_11
1594 --
1595 ---------------------------------------
1596 FUNCTION AcctDerRule_11 (
1597 p_application_id IN NUMBER
1598 , p_ae_header_id IN NUMBER
1599 , p_side IN VARCHAR2
1600 --Allow Account Override Flag
1601 , p_source_4 IN VARCHAR2
1602 --Adjustment Provider Cost Destination CCID
1603 , p_source_12 IN NUMBER
1604 , x_transaction_coa_id OUT NOCOPY NUMBER
1605 , x_accounting_coa_id OUT NOCOPY NUMBER
1606 , x_value_type_code OUT NOCOPY VARCHAR2
1607 )
1608 RETURN NUMBER
1609 IS
1610 l_component_type VARCHAR2(80) ;
1611 l_component_code VARCHAR2(30) ;
1612 l_component_type_code VARCHAR2(1) ;
1613 l_component_appl_id INTEGER ;
1614 l_amb_context_code VARCHAR2(30) ;
1615 l_log_module VARCHAR2(240) ;
1616 l_output_value NUMBER ;
1617 BEGIN
1618 IF g_log_enabled THEN
1619 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_11';
1620 END IF;
1621 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1622 trace
1623 (p_msg => 'BEGIN of AcctDerRule_11'
1624 ,p_level => C_LEVEL_PROCEDURE
1625 ,p_module => l_log_module);
1626 END IF;
1627 --
1628 l_component_type := 'AMB_ADR';
1629 l_component_code := 'PA_RECLASS_DEST_ADJ_ACCT_RULE';
1630 l_component_type_code := 'S';
1631 l_component_appl_id := 275;
1632 l_amb_context_code := 'DEFAULT';
1633 x_transaction_coa_id := null;
1634 x_accounting_coa_id := null;
1635 --
1636
1637 IF NVL(p_source_4,'
1638 ') = 'N'
1639 THEN
1640 --
1641 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1642 trace
1643 (p_msg => 'END of AcctDerRule_11'
1644 ,p_level => C_LEVEL_PROCEDURE
1648 l_output_value := TO_NUMBER(TO_NUMBER(p_source_12));
1645 ,p_module => l_log_module);
1646 END IF;
1647 x_value_type_code := 'S';
1649 RETURN l_output_value;
1650
1651 END IF;
1652 --
1653 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1654 trace
1655 (p_msg => 'END of AcctDerRule_11(invalid)'
1656 ,p_level => C_LEVEL_PROCEDURE
1657 ,p_module => l_log_module);
1658 END IF;
1659 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1660 x_value_type_code := null;
1661 l_output_value := null;
1662 xla_accounting_err_pkg.build_message
1663 (p_appli_s_name => 'XLA'
1664 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1665 ,p_token_1 => 'COMPONENT_NAME'
1666 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1667 l_component_type
1668 , l_component_code
1669 , l_component_type_code
1670 , l_component_appl_id
1671 , l_amb_context_code
1672 )
1673 ,p_token_2 => 'OWNER'
1674 ,p_value_2 => xla_lookups_pkg.get_meaning(
1675 'XLA_OWNER_TYPE'
1676 ,l_component_type_code
1677 )
1678 ,p_token_3 => 'PAD_NAME'
1679 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1680 ,p_token_4 => 'PAD_OWNER'
1681 ,p_value_4 => xla_lookups_pkg.get_meaning(
1682 'XLA_OWNER_TYPE'
1683 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1684 )
1685 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1686 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1687 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1688 ,p_ae_header_id => NULL
1689 );
1690 RETURN l_output_value;
1691 EXCEPTION
1692 WHEN xla_exceptions_pkg.application_exception THEN
1693 RAISE;
1694 WHEN OTHERS THEN
1695 xla_exceptions_pkg.raise_message
1696 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_11');
1697 END AcctDerRule_11;
1698 --
1699
1700 ---------------------------------------
1701 --
1702 -- PRIVATE FUNCTION
1703 -- AcctDerRule_12
1704 --
1705 ---------------------------------------
1706 FUNCTION AcctDerRule_12 (
1707 p_application_id IN NUMBER
1708 , p_ae_header_id IN NUMBER
1709 , p_side IN VARCHAR2
1710 --Allow Account Override Flag
1711 , p_source_4 IN VARCHAR2
1712 --Provider Cost Source CCID
1713 , p_source_13 IN NUMBER
1714 --Adjustment Provider Cost Source CCID
1715 , p_source_14 IN NUMBER
1716 , x_transaction_coa_id OUT NOCOPY NUMBER
1717 , x_accounting_coa_id OUT NOCOPY NUMBER
1718 , x_value_type_code OUT NOCOPY VARCHAR2
1719 )
1720 RETURN NUMBER
1721 IS
1722 l_component_type VARCHAR2(80) ;
1723 l_component_code VARCHAR2(30) ;
1724 l_component_type_code VARCHAR2(1) ;
1725 l_component_appl_id INTEGER ;
1726 l_amb_context_code VARCHAR2(30) ;
1727 l_log_module VARCHAR2(240) ;
1728 l_output_value NUMBER ;
1729 BEGIN
1730 IF g_log_enabled THEN
1731 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_12';
1732 END IF;
1733 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1734 trace
1735 (p_msg => 'BEGIN of AcctDerRule_12'
1736 ,p_level => C_LEVEL_PROCEDURE
1737 ,p_module => l_log_module);
1738 END IF;
1739 --
1740 l_component_type := 'AMB_ADR';
1741 l_component_code := 'PA_RECLASS_SOURCE_ACCT_RULE';
1742 l_component_type_code := 'S';
1743 l_component_appl_id := 275;
1744 l_amb_context_code := 'DEFAULT';
1745 x_transaction_coa_id := null;
1746 x_accounting_coa_id := null;
1747 --
1748
1749 IF NVL(p_source_4,'
1750 ') = 'Y'
1751 THEN
1752 --
1753 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1754 trace
1755 (p_msg => 'END of AcctDerRule_12'
1756 ,p_level => C_LEVEL_PROCEDURE
1757 ,p_module => l_log_module);
1758 END IF;
1759 x_value_type_code := 'S';
1760 l_output_value := TO_NUMBER(TO_NUMBER(p_source_13));
1761 RETURN l_output_value;
1762
1763 ELSIF NVL(p_source_4,'
1764 ') = 'N'
1765 THEN
1766 --
1767 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1768 trace
1769 (p_msg => 'END of AcctDerRule_12'
1770 ,p_level => C_LEVEL_PROCEDURE
1771 ,p_module => l_log_module);
1772 END IF;
1773 x_value_type_code := 'S';
1774 l_output_value := TO_NUMBER(TO_NUMBER(p_source_14));
1775 RETURN l_output_value;
1776
1777 END IF;
1778 --
1779 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1780 trace
1781 (p_msg => 'END of AcctDerRule_12(invalid)'
1782 ,p_level => C_LEVEL_PROCEDURE
1783 ,p_module => l_log_module);
1784 END IF;
1788 xla_accounting_err_pkg.build_message
1785 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1786 x_value_type_code := null;
1787 l_output_value := null;
1789 (p_appli_s_name => 'XLA'
1790 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1791 ,p_token_1 => 'COMPONENT_NAME'
1792 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1793 l_component_type
1794 , l_component_code
1795 , l_component_type_code
1796 , l_component_appl_id
1797 , l_amb_context_code
1798 )
1799 ,p_token_2 => 'OWNER'
1800 ,p_value_2 => xla_lookups_pkg.get_meaning(
1801 'XLA_OWNER_TYPE'
1802 ,l_component_type_code
1803 )
1804 ,p_token_3 => 'PAD_NAME'
1805 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1806 ,p_token_4 => 'PAD_OWNER'
1807 ,p_value_4 => xla_lookups_pkg.get_meaning(
1808 'XLA_OWNER_TYPE'
1809 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1810 )
1811 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1812 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1813 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1814 ,p_ae_header_id => NULL
1815 );
1816 RETURN l_output_value;
1817 EXCEPTION
1818 WHEN xla_exceptions_pkg.application_exception THEN
1819 RAISE;
1820 WHEN OTHERS THEN
1821 xla_exceptions_pkg.raise_message
1822 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_12');
1823 END AcctDerRule_12;
1824 --
1825
1826 ---------------------------------------
1827 --
1828 -- PRIVATE FUNCTION
1829 -- AcctDerRule_13
1830 --
1831 ---------------------------------------
1832 FUNCTION AcctDerRule_13 (
1833 p_application_id IN NUMBER
1834 , p_ae_header_id IN NUMBER
1835 , p_side IN VARCHAR2
1836 --Allow Account Override Flag
1837 , p_source_4 IN VARCHAR2
1838 --Adjustment Provider Cost Source CCID
1839 , p_source_14 IN NUMBER
1840 , x_transaction_coa_id OUT NOCOPY NUMBER
1841 , x_accounting_coa_id OUT NOCOPY NUMBER
1842 , x_value_type_code OUT NOCOPY VARCHAR2
1843 )
1844 RETURN NUMBER
1845 IS
1846 l_component_type VARCHAR2(80) ;
1847 l_component_code VARCHAR2(30) ;
1848 l_component_type_code VARCHAR2(1) ;
1849 l_component_appl_id INTEGER ;
1850 l_amb_context_code VARCHAR2(30) ;
1851 l_log_module VARCHAR2(240) ;
1852 l_output_value NUMBER ;
1853 BEGIN
1854 IF g_log_enabled THEN
1855 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_13';
1856 END IF;
1857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1858 trace
1859 (p_msg => 'BEGIN of AcctDerRule_13'
1860 ,p_level => C_LEVEL_PROCEDURE
1861 ,p_module => l_log_module);
1862 END IF;
1863 --
1864 l_component_type := 'AMB_ADR';
1865 l_component_code := 'PA_RECLASS_SRC_ADJ_ACCT_RULE';
1866 l_component_type_code := 'S';
1867 l_component_appl_id := 275;
1868 l_amb_context_code := 'DEFAULT';
1869 x_transaction_coa_id := null;
1870 x_accounting_coa_id := null;
1871 --
1872
1873 IF NVL(p_source_4,'
1874 ') = 'N'
1875 THEN
1876 --
1877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1878 trace
1879 (p_msg => 'END of AcctDerRule_13'
1880 ,p_level => C_LEVEL_PROCEDURE
1881 ,p_module => l_log_module);
1882 END IF;
1883 x_value_type_code := 'S';
1884 l_output_value := TO_NUMBER(TO_NUMBER(p_source_14));
1885 RETURN l_output_value;
1886
1887 END IF;
1888 --
1889 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1890 trace
1891 (p_msg => 'END of AcctDerRule_13(invalid)'
1892 ,p_level => C_LEVEL_PROCEDURE
1893 ,p_module => l_log_module);
1894 END IF;
1895 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
1896 x_value_type_code := null;
1897 l_output_value := null;
1898 xla_accounting_err_pkg.build_message
1899 (p_appli_s_name => 'XLA'
1900 ,p_msg_name => 'XLA_AP_INVALID_ADR'
1901 ,p_token_1 => 'COMPONENT_NAME'
1902 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
1903 l_component_type
1904 , l_component_code
1905 , l_component_type_code
1906 , l_component_appl_id
1907 , l_amb_context_code
1908 )
1909 ,p_token_2 => 'OWNER'
1913 )
1910 ,p_value_2 => xla_lookups_pkg.get_meaning(
1911 'XLA_OWNER_TYPE'
1912 ,l_component_type_code
1914 ,p_token_3 => 'PAD_NAME'
1915 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
1916 ,p_token_4 => 'PAD_OWNER'
1917 ,p_value_4 => xla_lookups_pkg.get_meaning(
1918 'XLA_OWNER_TYPE'
1919 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1920 )
1921 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
1922 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
1923 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1924 ,p_ae_header_id => NULL
1925 );
1926 RETURN l_output_value;
1927 EXCEPTION
1928 WHEN xla_exceptions_pkg.application_exception THEN
1929 RAISE;
1930 WHEN OTHERS THEN
1931 xla_exceptions_pkg.raise_message
1932 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_13');
1933 END AcctDerRule_13;
1934 --
1935
1936 ---------------------------------------
1937 --
1938 -- PRIVATE FUNCTION
1939 -- AcctDerRule_14
1940 --
1941 ---------------------------------------
1942 FUNCTION AcctDerRule_14 (
1943 p_application_id IN NUMBER
1944 , p_ae_header_id IN NUMBER
1945 , p_side IN VARCHAR2
1946 --Allow Account Override Flag
1947 , p_source_4 IN VARCHAR2
1948 --Adjustment Receiver Cost/ Revenue CCID
1949 , p_source_10 IN NUMBER
1950 --Receiver Cost/ Revenue CCID
1951 , p_source_15 IN NUMBER
1952 , x_transaction_coa_id OUT NOCOPY NUMBER
1953 , x_accounting_coa_id OUT NOCOPY NUMBER
1954 , x_value_type_code OUT NOCOPY VARCHAR2
1955 )
1956 RETURN NUMBER
1957 IS
1958 l_component_type VARCHAR2(80) ;
1959 l_component_code VARCHAR2(30) ;
1960 l_component_type_code VARCHAR2(1) ;
1961 l_component_appl_id INTEGER ;
1962 l_amb_context_code VARCHAR2(30) ;
1963 l_log_module VARCHAR2(240) ;
1964 l_output_value NUMBER ;
1965 BEGIN
1966 IF g_log_enabled THEN
1967 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_14';
1968 END IF;
1969 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1970 trace
1971 (p_msg => 'BEGIN of AcctDerRule_14'
1972 ,p_level => C_LEVEL_PROCEDURE
1973 ,p_module => l_log_module);
1974 END IF;
1975 --
1976 l_component_type := 'AMB_ADR';
1977 l_component_code := 'PA_RECVR_COST_REV_ACCT_RULE';
1978 l_component_type_code := 'S';
1979 l_component_appl_id := 275;
1980 l_amb_context_code := 'DEFAULT';
1981 x_transaction_coa_id := null;
1982 x_accounting_coa_id := null;
1983 --
1984
1985 IF NVL(p_source_4,'
1986 ') = 'Y'
1987 THEN
1988 --
1989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
1990 trace
1991 (p_msg => 'END of AcctDerRule_14'
1992 ,p_level => C_LEVEL_PROCEDURE
1993 ,p_module => l_log_module);
1994 END IF;
1995 x_value_type_code := 'S';
1996 l_output_value := TO_NUMBER(TO_NUMBER(p_source_15));
1997 RETURN l_output_value;
1998
1999 ELSIF NVL(p_source_4,'
2000 ') = 'N'
2001 THEN
2002 --
2003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2004 trace
2005 (p_msg => 'END of AcctDerRule_14'
2006 ,p_level => C_LEVEL_PROCEDURE
2007 ,p_module => l_log_module);
2008 END IF;
2009 x_value_type_code := 'S';
2010 l_output_value := TO_NUMBER(TO_NUMBER(p_source_10));
2011 RETURN l_output_value;
2012
2013 END IF;
2014 --
2015 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2016 trace
2017 (p_msg => 'END of AcctDerRule_14(invalid)'
2018 ,p_level => C_LEVEL_PROCEDURE
2019 ,p_module => l_log_module);
2020 END IF;
2021 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2022 x_value_type_code := null;
2023 l_output_value := null;
2024 xla_accounting_err_pkg.build_message
2025 (p_appli_s_name => 'XLA'
2026 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2027 ,p_token_1 => 'COMPONENT_NAME'
2028 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2029 l_component_type
2030 , l_component_code
2031 , l_component_type_code
2032 , l_component_appl_id
2033 , l_amb_context_code
2034 )
2035 ,p_token_2 => 'OWNER'
2036 ,p_value_2 => xla_lookups_pkg.get_meaning(
2037 'XLA_OWNER_TYPE'
2038 ,l_component_type_code
2039 )
2040 ,p_token_3 => 'PAD_NAME'
2041 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2045 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2042 ,p_token_4 => 'PAD_OWNER'
2043 ,p_value_4 => xla_lookups_pkg.get_meaning(
2044 'XLA_OWNER_TYPE'
2046 )
2047 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2048 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2049 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2050 ,p_ae_header_id => NULL
2051 );
2052 RETURN l_output_value;
2053 EXCEPTION
2054 WHEN xla_exceptions_pkg.application_exception THEN
2055 RAISE;
2056 WHEN OTHERS THEN
2057 xla_exceptions_pkg.raise_message
2058 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_14');
2059 END AcctDerRule_14;
2060 --
2061
2062 ---------------------------------------
2063 --
2064 -- PRIVATE FUNCTION
2065 -- AcctDerRule_15
2066 --
2067 ---------------------------------------
2068 FUNCTION AcctDerRule_15 (
2069 p_application_id IN NUMBER
2070 , p_ae_header_id IN NUMBER
2071 , p_side IN VARCHAR2
2072 --Realized Gains CCID
2073 , p_source_16 IN NUMBER
2074 , x_transaction_coa_id OUT NOCOPY NUMBER
2075 , x_accounting_coa_id OUT NOCOPY NUMBER
2076 , x_value_type_code OUT NOCOPY VARCHAR2
2077 )
2078 RETURN NUMBER
2079 IS
2080 l_component_type VARCHAR2(80) ;
2081 l_component_code VARCHAR2(30) ;
2082 l_component_type_code VARCHAR2(1) ;
2083 l_component_appl_id INTEGER ;
2084 l_amb_context_code VARCHAR2(30) ;
2085 l_log_module VARCHAR2(240) ;
2086 l_output_value NUMBER ;
2087 BEGIN
2088 IF g_log_enabled THEN
2089 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2090 END IF;
2091 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2092 trace
2093 (p_msg => 'BEGIN of AcctDerRule_15'
2094 ,p_level => C_LEVEL_PROCEDURE
2095 ,p_module => l_log_module);
2096 END IF;
2097 --
2098 l_component_type := 'AMB_ADR';
2099 l_component_code := 'REALIZED_GAINS_RULE';
2100 l_component_type_code := 'S';
2101 l_component_appl_id := 275;
2102 l_amb_context_code := 'DEFAULT';
2103 x_transaction_coa_id := null;
2104 x_accounting_coa_id := null;
2105 --
2106
2107 --
2108 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2109 trace
2110 (p_msg => 'END of AcctDerRule_15'
2111 ,p_level => C_LEVEL_PROCEDURE
2112 ,p_module => l_log_module);
2113 END IF;
2114 x_value_type_code := 'S';
2115 l_output_value := TO_NUMBER(TO_NUMBER(p_source_16));
2116 RETURN l_output_value;
2117
2118 --
2119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2120 trace
2121 (p_msg => 'END of AcctDerRule_15(invalid)'
2122 ,p_level => C_LEVEL_PROCEDURE
2123 ,p_module => l_log_module);
2124 END IF;
2125 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2126 x_value_type_code := null;
2127 l_output_value := null;
2128 xla_accounting_err_pkg.build_message
2129 (p_appli_s_name => 'XLA'
2130 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2131 ,p_token_1 => 'COMPONENT_NAME'
2132 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2133 l_component_type
2134 , l_component_code
2135 , l_component_type_code
2136 , l_component_appl_id
2137 , l_amb_context_code
2138 )
2139 ,p_token_2 => 'OWNER'
2140 ,p_value_2 => xla_lookups_pkg.get_meaning(
2141 'XLA_OWNER_TYPE'
2142 ,l_component_type_code
2143 )
2144 ,p_token_3 => 'PAD_NAME'
2145 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2146 ,p_token_4 => 'PAD_OWNER'
2147 ,p_value_4 => xla_lookups_pkg.get_meaning(
2148 'XLA_OWNER_TYPE'
2149 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2150 )
2151 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2152 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2153 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2154 ,p_ae_header_id => NULL
2155 );
2156 RETURN l_output_value;
2157 EXCEPTION
2158 WHEN xla_exceptions_pkg.application_exception THEN
2159 RAISE;
2160 WHEN OTHERS THEN
2161 xla_exceptions_pkg.raise_message
2162 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_15');
2163 END AcctDerRule_15;
2164 --
2165
2166 ---------------------------------------
2167 --
2168 -- PRIVATE FUNCTION
2169 -- AcctDerRule_16
2170 --
2174 , p_ae_header_id IN NUMBER
2171 ---------------------------------------
2172 FUNCTION AcctDerRule_16 (
2173 p_application_id IN NUMBER
2175 , p_side IN VARCHAR2
2176 --Realized Losses CCID
2177 , p_source_17 IN NUMBER
2178 , x_transaction_coa_id OUT NOCOPY NUMBER
2179 , x_accounting_coa_id OUT NOCOPY NUMBER
2180 , x_value_type_code OUT NOCOPY VARCHAR2
2181 )
2182 RETURN NUMBER
2183 IS
2184 l_component_type VARCHAR2(80) ;
2185 l_component_code VARCHAR2(30) ;
2186 l_component_type_code VARCHAR2(1) ;
2187 l_component_appl_id INTEGER ;
2188 l_amb_context_code VARCHAR2(30) ;
2189 l_log_module VARCHAR2(240) ;
2190 l_output_value NUMBER ;
2191 BEGIN
2192 IF g_log_enabled THEN
2193 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_16';
2194 END IF;
2195 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2196 trace
2197 (p_msg => 'BEGIN of AcctDerRule_16'
2198 ,p_level => C_LEVEL_PROCEDURE
2199 ,p_module => l_log_module);
2200 END IF;
2201 --
2202 l_component_type := 'AMB_ADR';
2203 l_component_code := 'REALIZED_LOSSES_RULE';
2204 l_component_type_code := 'S';
2205 l_component_appl_id := 275;
2206 l_amb_context_code := 'DEFAULT';
2207 x_transaction_coa_id := null;
2208 x_accounting_coa_id := null;
2209 --
2210
2211 --
2212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2213 trace
2214 (p_msg => 'END of AcctDerRule_16'
2215 ,p_level => C_LEVEL_PROCEDURE
2216 ,p_module => l_log_module);
2217 END IF;
2218 x_value_type_code := 'S';
2219 l_output_value := TO_NUMBER(TO_NUMBER(p_source_17));
2220 RETURN l_output_value;
2221
2222 --
2223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2224 trace
2225 (p_msg => 'END of AcctDerRule_16(invalid)'
2226 ,p_level => C_LEVEL_PROCEDURE
2227 ,p_module => l_log_module);
2228 END IF;
2229 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2230 x_value_type_code := null;
2231 l_output_value := null;
2232 xla_accounting_err_pkg.build_message
2233 (p_appli_s_name => 'XLA'
2234 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2235 ,p_token_1 => 'COMPONENT_NAME'
2236 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2237 l_component_type
2238 , l_component_code
2239 , l_component_type_code
2240 , l_component_appl_id
2241 , l_amb_context_code
2242 )
2243 ,p_token_2 => 'OWNER'
2244 ,p_value_2 => xla_lookups_pkg.get_meaning(
2245 'XLA_OWNER_TYPE'
2246 ,l_component_type_code
2247 )
2248 ,p_token_3 => 'PAD_NAME'
2249 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2250 ,p_token_4 => 'PAD_OWNER'
2251 ,p_value_4 => xla_lookups_pkg.get_meaning(
2252 'XLA_OWNER_TYPE'
2253 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2254 )
2255 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2256 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2257 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2258 ,p_ae_header_id => NULL
2259 );
2260 RETURN l_output_value;
2261 EXCEPTION
2262 WHEN xla_exceptions_pkg.application_exception THEN
2263 RAISE;
2264 WHEN OTHERS THEN
2265 xla_exceptions_pkg.raise_message
2266 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_16');
2267 END AcctDerRule_16;
2268 --
2269
2270 ---------------------------------------
2271 --
2272 -- PRIVATE FUNCTION
2273 -- AcctDerRule_17
2274 --
2275 ---------------------------------------
2276 FUNCTION AcctDerRule_17 (
2277 p_application_id IN NUMBER
2278 , p_ae_header_id IN NUMBER
2279 , p_side IN VARCHAR2
2280 --Revenue CCID
2281 , p_source_18 IN NUMBER
2282 , x_transaction_coa_id OUT NOCOPY NUMBER
2283 , x_accounting_coa_id OUT NOCOPY NUMBER
2284 , x_value_type_code OUT NOCOPY VARCHAR2
2285 )
2286 RETURN NUMBER
2287 IS
2288 l_component_type VARCHAR2(80) ;
2289 l_component_code VARCHAR2(30) ;
2290 l_component_type_code VARCHAR2(1) ;
2291 l_component_appl_id INTEGER ;
2292 l_amb_context_code VARCHAR2(30) ;
2293 l_log_module VARCHAR2(240) ;
2294 l_output_value NUMBER ;
2295 BEGIN
2296 IF g_log_enabled THEN
2297 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_17';
2298 END IF;
2299 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2300 trace
2301 (p_msg => 'BEGIN of AcctDerRule_17'
2302 ,p_level => C_LEVEL_PROCEDURE
2303 ,p_module => l_log_module);
2304 END IF;
2305 --
2309 l_component_appl_id := 275;
2306 l_component_type := 'AMB_ADR';
2307 l_component_code := 'REVENUE_RULE';
2308 l_component_type_code := 'S';
2310 l_amb_context_code := 'DEFAULT';
2311 x_transaction_coa_id := null;
2312 x_accounting_coa_id := null;
2313 --
2314
2315 --
2316 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2317 trace
2318 (p_msg => 'END of AcctDerRule_17'
2319 ,p_level => C_LEVEL_PROCEDURE
2320 ,p_module => l_log_module);
2321 END IF;
2322 x_value_type_code := 'S';
2323 l_output_value := TO_NUMBER(TO_NUMBER(p_source_18));
2324 RETURN l_output_value;
2325
2326 --
2327 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2328 trace
2329 (p_msg => 'END of AcctDerRule_17(invalid)'
2330 ,p_level => C_LEVEL_PROCEDURE
2331 ,p_module => l_log_module);
2332 END IF;
2333 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2334 x_value_type_code := null;
2335 l_output_value := null;
2336 xla_accounting_err_pkg.build_message
2337 (p_appli_s_name => 'XLA'
2338 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2339 ,p_token_1 => 'COMPONENT_NAME'
2340 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2341 l_component_type
2342 , l_component_code
2343 , l_component_type_code
2344 , l_component_appl_id
2345 , l_amb_context_code
2346 )
2347 ,p_token_2 => 'OWNER'
2348 ,p_value_2 => xla_lookups_pkg.get_meaning(
2349 'XLA_OWNER_TYPE'
2350 ,l_component_type_code
2351 )
2352 ,p_token_3 => 'PAD_NAME'
2353 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2354 ,p_token_4 => 'PAD_OWNER'
2355 ,p_value_4 => xla_lookups_pkg.get_meaning(
2356 'XLA_OWNER_TYPE'
2357 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2358 )
2359 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2360 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2361 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2362 ,p_ae_header_id => NULL
2363 );
2364 RETURN l_output_value;
2365 EXCEPTION
2366 WHEN xla_exceptions_pkg.application_exception THEN
2367 RAISE;
2368 WHEN OTHERS THEN
2369 xla_exceptions_pkg.raise_message
2370 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_17');
2371 END AcctDerRule_17;
2372 --
2373
2374 ---------------------------------------
2375 --
2376 -- PRIVATE FUNCTION
2377 -- AcctDerRule_18
2378 --
2379 ---------------------------------------
2380 FUNCTION AcctDerRule_18 (
2381 p_application_id IN NUMBER
2382 , p_ae_header_id IN NUMBER
2383 , p_side IN VARCHAR2
2384 --Unbilled Receivables CCID
2385 , p_source_19 IN NUMBER
2386 , x_transaction_coa_id OUT NOCOPY NUMBER
2387 , x_accounting_coa_id OUT NOCOPY NUMBER
2388 , x_value_type_code OUT NOCOPY VARCHAR2
2389 )
2390 RETURN NUMBER
2391 IS
2392 l_component_type VARCHAR2(80) ;
2393 l_component_code VARCHAR2(30) ;
2394 l_component_type_code VARCHAR2(1) ;
2395 l_component_appl_id INTEGER ;
2396 l_amb_context_code VARCHAR2(30) ;
2397 l_log_module VARCHAR2(240) ;
2398 l_output_value NUMBER ;
2399 BEGIN
2400 IF g_log_enabled THEN
2401 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_18';
2402 END IF;
2403 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2404 trace
2405 (p_msg => 'BEGIN of AcctDerRule_18'
2406 ,p_level => C_LEVEL_PROCEDURE
2407 ,p_module => l_log_module);
2408 END IF;
2409 --
2410 l_component_type := 'AMB_ADR';
2411 l_component_code := 'UBR_RULE';
2412 l_component_type_code := 'S';
2413 l_component_appl_id := 275;
2414 l_amb_context_code := 'DEFAULT';
2415 x_transaction_coa_id := null;
2416 x_accounting_coa_id := null;
2417 --
2418
2419 --
2420 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2421 trace
2422 (p_msg => 'END of AcctDerRule_18'
2423 ,p_level => C_LEVEL_PROCEDURE
2424 ,p_module => l_log_module);
2425 END IF;
2426 x_value_type_code := 'S';
2427 l_output_value := TO_NUMBER(TO_NUMBER(p_source_19));
2428 RETURN l_output_value;
2429
2430 --
2431 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2432 trace
2433 (p_msg => 'END of AcctDerRule_18(invalid)'
2434 ,p_level => C_LEVEL_PROCEDURE
2435 ,p_module => l_log_module);
2436 END IF;
2437 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2438 x_value_type_code := null;
2439 l_output_value := null;
2440 xla_accounting_err_pkg.build_message
2444 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2441 (p_appli_s_name => 'XLA'
2442 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2443 ,p_token_1 => 'COMPONENT_NAME'
2445 l_component_type
2446 , l_component_code
2447 , l_component_type_code
2448 , l_component_appl_id
2449 , l_amb_context_code
2450 )
2451 ,p_token_2 => 'OWNER'
2452 ,p_value_2 => xla_lookups_pkg.get_meaning(
2453 'XLA_OWNER_TYPE'
2454 ,l_component_type_code
2455 )
2456 ,p_token_3 => 'PAD_NAME'
2457 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2458 ,p_token_4 => 'PAD_OWNER'
2459 ,p_value_4 => xla_lookups_pkg.get_meaning(
2460 'XLA_OWNER_TYPE'
2461 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2462 )
2463 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2464 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2465 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2466 ,p_ae_header_id => NULL
2467 );
2468 RETURN l_output_value;
2469 EXCEPTION
2470 WHEN xla_exceptions_pkg.application_exception THEN
2471 RAISE;
2472 WHEN OTHERS THEN
2473 xla_exceptions_pkg.raise_message
2474 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_18');
2475 END AcctDerRule_18;
2476 --
2477
2478 ---------------------------------------
2479 --
2480 -- PRIVATE FUNCTION
2481 -- AcctDerRule_19
2482 --
2483 ---------------------------------------
2484 FUNCTION AcctDerRule_19 (
2485 p_application_id IN NUMBER
2486 , p_ae_header_id IN NUMBER
2487 , p_side IN VARCHAR2
2488 --Unearned Revenue CCID
2489 , p_source_20 IN NUMBER
2490 , x_transaction_coa_id OUT NOCOPY NUMBER
2491 , x_accounting_coa_id OUT NOCOPY NUMBER
2492 , x_value_type_code OUT NOCOPY VARCHAR2
2493 )
2494 RETURN NUMBER
2495 IS
2496 l_component_type VARCHAR2(80) ;
2497 l_component_code VARCHAR2(30) ;
2498 l_component_type_code VARCHAR2(1) ;
2499 l_component_appl_id INTEGER ;
2500 l_amb_context_code VARCHAR2(30) ;
2501 l_log_module VARCHAR2(240) ;
2502 l_output_value NUMBER ;
2503 BEGIN
2504 IF g_log_enabled THEN
2505 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_19';
2506 END IF;
2507 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2508 trace
2509 (p_msg => 'BEGIN of AcctDerRule_19'
2510 ,p_level => C_LEVEL_PROCEDURE
2511 ,p_module => l_log_module);
2512 END IF;
2513 --
2514 l_component_type := 'AMB_ADR';
2515 l_component_code := 'UER_RULE';
2516 l_component_type_code := 'S';
2517 l_component_appl_id := 275;
2518 l_amb_context_code := 'DEFAULT';
2519 x_transaction_coa_id := null;
2520 x_accounting_coa_id := null;
2521 --
2522
2523 --
2524 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2525 trace
2526 (p_msg => 'END of AcctDerRule_19'
2527 ,p_level => C_LEVEL_PROCEDURE
2528 ,p_module => l_log_module);
2529 END IF;
2530 x_value_type_code := 'S';
2531 l_output_value := TO_NUMBER(TO_NUMBER(p_source_20));
2532 RETURN l_output_value;
2533
2534 --
2535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2536 trace
2537 (p_msg => 'END of AcctDerRule_19(invalid)'
2538 ,p_level => C_LEVEL_PROCEDURE
2539 ,p_module => l_log_module);
2540 END IF;
2541 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
2542 x_value_type_code := null;
2543 l_output_value := null;
2544 xla_accounting_err_pkg.build_message
2545 (p_appli_s_name => 'XLA'
2546 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2547 ,p_token_1 => 'COMPONENT_NAME'
2548 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
2549 l_component_type
2550 , l_component_code
2551 , l_component_type_code
2552 , l_component_appl_id
2553 , l_amb_context_code
2554 )
2555 ,p_token_2 => 'OWNER'
2556 ,p_value_2 => xla_lookups_pkg.get_meaning(
2557 'XLA_OWNER_TYPE'
2558 ,l_component_type_code
2559 )
2560 ,p_token_3 => 'PAD_NAME'
2561 ,p_value_3 => xla_ae_journal_entry_pkg.g_cache_pad.pad_session_name
2565 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2562 ,p_token_4 => 'PAD_OWNER'
2563 ,p_value_4 => xla_lookups_pkg.get_meaning(
2564 'XLA_OWNER_TYPE'
2566 )
2567 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
2568 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
2569 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
2570 ,p_ae_header_id => NULL
2571 );
2572 RETURN l_output_value;
2573 EXCEPTION
2574 WHEN xla_exceptions_pkg.application_exception THEN
2575 RAISE;
2576 WHEN OTHERS THEN
2577 xla_exceptions_pkg.raise_message
2578 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctDerRule_19');
2579 END AcctDerRule_19;
2580 --
2581
2582 ---------------------------------------
2583 --
2584 -- PRIVATE FUNCTION
2585 -- AcctLineType_20
2586 --
2587 ---------------------------------------
2588 PROCEDURE AcctLineType_20 (
2589 p_application_id IN NUMBER
2590 ,p_event_id IN NUMBER
2591 ,p_calculate_acctd_flag IN VARCHAR2
2592 ,p_calculate_g_l_flag IN VARCHAR2
2593 ,p_actual_flag IN OUT VARCHAR2
2594 ,p_balance_type_code OUT VARCHAR2
2595 ,p_gain_or_loss_ref OUT VARCHAR2
2596
2597 --Cost CCID
2598 , p_source_3 IN NUMBER
2599 --Allow Account Override Flag
2600 , p_source_4 IN VARCHAR2
2601 --Adjustment Cost CCID
2602 , p_source_5 IN NUMBER
2603 --Cost Clearing CCID
2604 , p_source_6 IN NUMBER
2605 --Exchange Rate Variance Flag
2606 , p_source_21 IN VARCHAR2
2607 --Reversing Line Flag
2608 , p_source_22 IN VARCHAR2
2609 --Actual Upgrade Credit Accounting Class
2610 , p_source_23 IN VARCHAR2
2611 --Entered Raw Cost
2612 , p_source_24 IN NUMBER
2613 --Entered Currency Code
2614 , p_source_25 IN VARCHAR2
2615 --Accounted Raw Cost
2616 , p_source_26 IN NUMBER
2617 --Exchange Rate Date
2618 , p_source_27 IN DATE
2619 --Exchange Rate
2620 , p_source_28 IN NUMBER
2621 --Exchange Rate Type
2622 , p_source_29 IN VARCHAR2
2623 --Actual Upgrade Debit Accounting Class
2624 , p_source_30 IN VARCHAR2
2625 --Use Actuals Upgrade Attributes Flag
2626 , p_source_31 IN VARCHAR2
2627 --Expenditure Item ID
2628 , p_source_32 IN NUMBER
2629 --Cost Distribution Line Number
2630 , p_source_33 IN NUMBER
2631 --Line Type
2632 , p_source_34 IN VARCHAR2
2633 , p_source_34_meaning IN VARCHAR2
2634 --Reversed Line Number
2635 , p_source_35 IN NUMBER
2636 )
2637 IS
2638
2639 l_component_type VARCHAR2(80);
2640 l_component_code VARCHAR2(30);
2641 l_component_type_code VARCHAR2(1);
2642 l_component_appl_id INTEGER;
2643 l_amb_context_code VARCHAR2(30);
2644 l_entity_code VARCHAR2(30);
2645 l_event_class_code VARCHAR2(30);
2646 l_ae_header_id NUMBER;
2647 l_event_type_code VARCHAR2(30);
2648 l_line_definition_code VARCHAR2(30);
2649 l_line_definition_owner_code VARCHAR2(1);
2650 --
2651 -- adr variables
2652 l_segment VARCHAR2(30);
2653 l_ccid NUMBER;
2654 l_adr_transaction_coa_id NUMBER;
2655 l_adr_accounting_coa_id NUMBER;
2656 l_adr_flexfield_segment_code VARCHAR2(30);
2657 l_adr_flex_value_set_id NUMBER;
2658 l_adr_value_type_code VARCHAR2(30);
2659 l_adr_value_combination_id NUMBER;
2660 l_adr_value_segment_code VARCHAR2(30);
2661
2662 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
2663 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
2664 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
2665 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
2666
2667 -- 4262811 Variables ------------------------------------------------------------------------------------------
2668 l_entered_amt_idx NUMBER;
2669 l_accted_amt_idx NUMBER;
2670 l_acc_rev_flag VARCHAR2(1);
2671 l_accrual_line_num NUMBER;
2672 l_tmp_amt NUMBER;
2673 l_acc_rev_natural_side_code VARCHAR2(1);
2674
2675 l_num_entries NUMBER;
2676 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
2677 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
2678 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
2679 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
2680 l_recog_line_1 NUMBER;
2681 l_recog_line_2 NUMBER;
2682
2683 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
2684 l_bflow_applied_to_amt NUMBER; -- 5132302
2685 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
2686
2687 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
2688
2689 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
2690 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
2691
2692 ---------------------------------------------------------------------------------------------------------------
2693
2694
2695 --
2696 -- bulk performance
2697 --
2698 l_balance_type_code VARCHAR2(1);
2702 --
2699 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2700 l_log_module VARCHAR2(240);
2701
2703 -- Upgrade strategy
2704 --
2705 l_actual_upg_option VARCHAR2(1);
2706 l_enc_upg_option VARCHAR2(1);
2707
2708 --
2709 BEGIN
2710 --
2711 IF g_log_enabled THEN
2712 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_20';
2713 END IF;
2714 --
2715 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2716
2717 trace
2718 (p_msg => 'BEGIN of AcctLineType_20'
2719 ,p_level => C_LEVEL_PROCEDURE
2720 ,p_module => l_log_module);
2721
2722 END IF;
2723 --
2724 l_component_type := 'AMB_JLT';
2725 l_component_code := 'EXCHANGE_RATE_VARIANCE';
2726 l_component_type_code := 'S';
2727 l_component_appl_id := 275;
2728 l_amb_context_code := 'DEFAULT';
2729 l_entity_code := 'EXPENDITURES';
2730 l_event_class_code := 'SUPPLIER_COST';
2731 l_event_type_code := 'SUPPLIER_COST_ALL';
2732 l_line_definition_owner_code := 'S';
2733 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
2734 --
2735 l_balance_type_code := 'A';
2736 l_segment := NULL;
2737 l_ccid := NULL;
2738 l_adr_transaction_coa_id := NULL;
2739 l_adr_accounting_coa_id := NULL;
2740 l_adr_flexfield_segment_code := NULL;
2741 l_adr_flex_value_set_id := NULL;
2742 l_adr_value_type_code := NULL;
2743 l_adr_value_combination_id := NULL;
2744 l_adr_value_segment_code := NULL;
2745
2746 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
2747 l_bflow_class_code := ''; -- 4219869 Business Flow
2748 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
2749 l_budgetary_control_flag := 'N';
2750
2751 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2752 l_bflow_applied_to_amt := NULL; -- 5132302
2753 l_entered_amt_idx := NULL; -- 4262811
2754 l_accted_amt_idx := NULL; -- 4262811
2755 l_acc_rev_flag := NULL; -- 4262811
2756 l_accrual_line_num := NULL; -- 4262811
2757 l_tmp_amt := NULL; -- 4262811
2758 --
2759 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
2760 (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
2761 return;
2762 END IF;
2763
2764 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
2765 l_balance_type_code <> 'B' THEN
2766 IF NVL(p_source_21,'
2767 ') = 'Y'
2768 THEN
2769
2770 --
2771 XLA_AE_LINES_PKG.SetNewLine;
2772
2773 p_balance_type_code := l_balance_type_code;
2774 -- set the flag so later we will know whether the gain loss line needs to be created
2775
2776 IF(l_balance_type_code = 'A' ) THEN
2777 p_actual_flag :='G';
2778 END IF;
2779
2780 --
2781 -- bulk performance
2782 --
2783 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
2784 p_header_num => 0); -- 4262811
2785 --
2786 -- set accounting line options
2787 --
2788 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
2789 p_natural_side_code => 'D'
2790 , p_gain_or_loss_flag => 'Y'
2791 , p_gl_transfer_mode_code => 'S'
2792 , p_acct_entry_type_code => 'A'
2793 , p_switch_side_flag => 'Y'
2794 , p_merge_duplicate_code => 'N'
2795 );
2796 --
2797 l_acc_rev_natural_side_code := 'C'; -- 4262811
2798 --
2799 --
2800 -- set accounting line type info
2801 --
2802 xla_ae_lines_pkg.SetAcctLineType
2803 (p_component_type => l_component_type
2804 ,p_event_type_code => l_event_type_code
2805 ,p_line_definition_owner_code => l_line_definition_owner_code
2806 ,p_line_definition_code => l_line_definition_code
2807 ,p_accounting_line_code => l_component_code
2808 ,p_accounting_line_type_code => l_component_type_code
2809 ,p_accounting_line_appl_id => l_component_appl_id
2810 ,p_amb_context_code => l_amb_context_code
2811 ,p_entity_code => l_entity_code
2812 ,p_event_class_code => l_event_class_code);
2813 --
2814 -- set accounting class
2815 --
2816 xla_ae_lines_pkg.SetAcctClass(
2817 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
2818 , p_ae_header_id => l_ae_header_id
2819 );
2820
2821 --
2822 -- set rounding class
2823 --
2824 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
2825 'EXCHANGE_RATE_VARIANCE';
2826
2827 --
2828 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
2829 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
2830 --
2831 -- bulk performance
2832 --
2833 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
2834
2835 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
2836 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
2837
2838 -- 4955764
2839 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
2843
2840 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
2841
2842 -- 4458381 Public Sector Enh
2844 --
2845 -- set accounting attributes for the line type
2846 --
2847 l_entered_amt_idx := 22;
2848 l_accted_amt_idx := 27;
2849 l_bflow_applied_to_amt_idx := NULL; -- 5132302
2850 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
2851 l_rec_acct_attrs.array_char_value(1) := p_source_22;
2852 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
2853 l_rec_acct_attrs.array_char_value(2) := p_source_23;
2854 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
2855 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
2856 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
2857 l_rec_acct_attrs.array_num_value(4) := p_source_24;
2858 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
2859 l_rec_acct_attrs.array_char_value(5) := p_source_25;
2860 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
2861 l_rec_acct_attrs.array_num_value(6) := p_source_26;
2862 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
2863 l_rec_acct_attrs.array_date_value(7) := p_source_27;
2864 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
2865 l_rec_acct_attrs.array_num_value(8) := p_source_28;
2866 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
2867 l_rec_acct_attrs.array_char_value(9) := p_source_29;
2868 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
2869 l_rec_acct_attrs.array_char_value(10) := p_source_30;
2870 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
2871 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
2872 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
2873 l_rec_acct_attrs.array_num_value(12) := p_source_24;
2874 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
2875 l_rec_acct_attrs.array_char_value(13) := p_source_25;
2876 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
2877 l_rec_acct_attrs.array_num_value(14) := p_source_26;
2878 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
2879 l_rec_acct_attrs.array_date_value(15) := p_source_27;
2880 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
2881 l_rec_acct_attrs.array_num_value(16) := p_source_28;
2882 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
2883 l_rec_acct_attrs.array_char_value(17) := p_source_29;
2884 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
2885 l_rec_acct_attrs.array_char_value(18) := p_source_31;
2886 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
2887 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
2888 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
2889 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
2890 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
2891 l_rec_acct_attrs.array_char_value(21) := p_source_34;
2892 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
2893 l_rec_acct_attrs.array_num_value(22) := p_source_24;
2894 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
2895 l_rec_acct_attrs.array_char_value(23) := p_source_25;
2896 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
2897 l_rec_acct_attrs.array_date_value(24) := p_source_27;
2898 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
2899 l_rec_acct_attrs.array_num_value(25) := p_source_28;
2900 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
2901 l_rec_acct_attrs.array_char_value(26) := p_source_29;
2902 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
2903 l_rec_acct_attrs.array_num_value(27) := p_source_26;
2904 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
2905 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
2906 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
2907 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
2908 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
2909 l_rec_acct_attrs.array_char_value(30) := p_source_34;
2910
2911 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
2912 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
2913
2914 ---------------------------------------------------------------------------------------------------------------
2915 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
2916 ---------------------------------------------------------------------------------------------------------------
2917 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
2918
2919 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2920 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
2921
2922 IF xla_accounting_cache_pkg.GetValueChar
2923 (p_source_code => 'LEDGER_CATEGORY_CODE'
2924 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
2925 AND l_bflow_method_code = 'PRIOR_ENTRY'
2926 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
2927 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
2928 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
2929 )
2930 THEN
2931 xla_ae_lines_pkg.BflowUpgEntry
2932 (p_business_method_code => l_bflow_method_code
2933 ,p_business_class_code => l_bflow_class_code
2934 ,p_balance_type => l_balance_type_code);
2935 ELSE
2936 NULL;
2940 --
2937 -- No business flow processing for business flow method of NONE.
2938 END IF;
2939
2941 -- call analytical criteria
2942 --
2943
2944 --
2945 -- call description
2946 --
2947 -- No description or it is inherited.
2948 --
2949 -- call ADRs
2950 -- Bug 4922099
2951 --
2952 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
2953 (NVL(l_actual_upg_option, 'N') = 'O') OR
2954 (NVL(l_enc_upg_option, 'N') = 'O')
2955 )
2956 THEN
2957 NULL;
2958 --
2959 --
2960
2961 l_ccid := AcctDerRule_3(
2962 p_application_id => p_application_id
2963 , p_ae_header_id => l_ae_header_id
2964 , p_source_3 => p_source_3
2965 , p_source_4 => p_source_4
2966 , p_source_5 => p_source_5
2967 , x_transaction_coa_id => l_adr_transaction_coa_id
2968 , x_accounting_coa_id => l_adr_accounting_coa_id
2969 , x_value_type_code => l_adr_value_type_code
2970 , p_side => 'NA'
2971 );
2972
2973 xla_ae_lines_pkg.set_ccid(
2974 p_code_combination_id => l_ccid
2975 , p_value_type_code => l_adr_value_type_code
2976 , p_transaction_coa_id => l_adr_transaction_coa_id
2977 , p_accounting_coa_id => l_adr_accounting_coa_id
2978 , p_adr_code => 'PA_COST_ACCT_RULE'
2979 , p_adr_type_code => 'S'
2980 , p_component_type => l_component_type
2981 , p_component_code => l_component_code
2982 , p_component_type_code => l_component_type_code
2983 , p_component_appl_id => l_component_appl_id
2984 , p_amb_context_code => l_amb_context_code
2985 , p_side => 'NA'
2986 );
2987
2988
2989 --
2990 --
2991 END IF;
2992 --
2993 -- Bug 4922099
2994 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
2995 (NVL(l_enc_upg_option, 'N') = 'O')
2996 ) AND
2997 (l_bflow_method_code = 'PRIOR_ENTRY')
2998 )
2999 THEN
3000 IF
3001 --
3002 1 = 2
3003 --
3004 THEN
3005 xla_accounting_err_pkg.build_message
3006 (p_appli_s_name => 'XLA'
3007 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3008 ,p_token_1 => 'LINE_NUMBER'
3009 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3010 ,p_token_2 => 'LINE_TYPE_NAME'
3011 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3012 l_component_type
3013 ,l_component_code
3014 ,l_component_type_code
3015 ,l_component_appl_id
3016 ,l_amb_context_code
3017 ,l_entity_code
3018 ,l_event_class_code
3019 )
3020 ,p_token_3 => 'OWNER'
3021 ,p_value_3 => xla_lookups_pkg.get_meaning(
3022 p_lookup_type => 'XLA_OWNER_TYPE'
3023 ,p_lookup_code => l_component_type_code
3024 )
3025 ,p_token_4 => 'PRODUCT_NAME'
3026 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3027 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3028 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3029 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3030 ,p_ae_header_id => NULL
3031 );
3032
3033 IF (C_LEVEL_ERROR>= g_log_level) THEN
3034 trace
3035 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3036 ,p_level => C_LEVEL_ERROR
3037 ,p_module => l_log_module);
3038 END IF;
3039 END IF;
3040 END IF;
3041 --
3042 --
3043 ------------------------------------------------------------------------------------------------
3044 -- 4219869 Business Flow
3045 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3046 -- Prior Entry. Currently, the following code is always generated.
3047 ------------------------------------------------------------------------------------------------
3048 XLA_AE_LINES_PKG.ValidateCurrentLine;
3049
3050 ------------------------------------------------------------------------------------
3051 -- 4219869 Business Flow
3052 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3053 ------------------------------------------------------------------------------------
3054 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3055
3056 ----------------------------------------------------------------------------------
3060 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3057 -- 4219869 Business Flow
3058 -- Update journal entry status -- Need to generate this within IF <condition>
3059 ----------------------------------------------------------------------------------
3061 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3062 ,p_balance_type_code => l_balance_type_code
3063 );
3064
3065 -------------------------------------------------------------------------------------------
3066 -- 4262811 - Generate the Accrual Reversal lines
3067 -------------------------------------------------------------------------------------------
3068 BEGIN
3069 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3070 (g_array_event(p_event_id).array_value_num('header_index'));
3071 IF l_acc_rev_flag IS NULL THEN
3072 l_acc_rev_flag := 'N';
3073 END IF;
3074 EXCEPTION
3075 WHEN OTHERS THEN
3076 l_acc_rev_flag := 'N';
3077 END;
3078 --
3079 IF (l_acc_rev_flag = 'Y') THEN
3080
3081 -- 4645092 ------------------------------------------------------------------------------
3082 -- To allow MPA report to determine if it should generate report process
3083 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3084 ------------------------------------------------------------------------------------------
3085
3086 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3087 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3088
3089 --
3090 -- Update the line information that should be overwritten
3091 --
3092 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3093 p_header_num => 1);
3094 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3095
3096 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3097
3098 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3099 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3100 END IF;
3101
3102 --
3103 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3104 --
3105 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3106 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3107 ELSE
3108 ---------------------------------------------------------------------------------------------------
3109 -- 4262811a Switch Sign
3110 ---------------------------------------------------------------------------------------------------
3111 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3112 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3113 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3114 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3115 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3116 -- 5132302
3117 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3118 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3119
3120 END IF;
3121
3122 -- 4955764
3123 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3124 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3125
3126
3127 XLA_AE_LINES_PKG.ValidateCurrentLine;
3128 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3129
3130 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3131 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3132 ,p_balance_type_code => l_balance_type_code);
3133
3134 END IF;
3135
3136 -----------------------------------------------------------------------------------------
3137 -- 4262811 Multiperiod Accounting
3138 -----------------------------------------------------------------------------------------
3139 -- No MPA option is assigned.
3140
3141
3142 END IF;
3143 END IF;
3144 --
3145
3146 --
3147 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3148 trace
3149 (p_msg => 'END of AcctLineType_20'
3150 ,p_level => C_LEVEL_PROCEDURE
3151 ,p_module => l_log_module);
3152 END IF;
3153 --
3154 EXCEPTION
3155 WHEN xla_exceptions_pkg.application_exception THEN
3156 RAISE;
3157 WHEN OTHERS THEN
3158 xla_exceptions_pkg.raise_message
3159 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_20');
3160 END AcctLineType_20;
3161 --
3162
3163 ---------------------------------------
3164 --
3165 -- PRIVATE FUNCTION
3166 -- AcctLineType_21
3167 --
3168 ---------------------------------------
3169 PROCEDURE AcctLineType_21 (
3170 p_application_id IN NUMBER
3171 ,p_event_id IN NUMBER
3172 ,p_calculate_acctd_flag IN VARCHAR2
3173 ,p_calculate_g_l_flag IN VARCHAR2
3174 ,p_actual_flag IN OUT VARCHAR2
3175 ,p_balance_type_code OUT VARCHAR2
3176 ,p_gain_or_loss_ref OUT VARCHAR2
3177
3178 --Cost CCID
3179 , p_source_3 IN NUMBER
3180 --Allow Account Override Flag
3181 , p_source_4 IN VARCHAR2
3182 --Adjustment Cost CCID
3183 , p_source_5 IN NUMBER
3184 --Cost Clearing CCID
3188 --Reversing Line Flag
3185 , p_source_6 IN NUMBER
3186 --Exchange Rate Variance Flag
3187 , p_source_21 IN VARCHAR2
3189 , p_source_22 IN VARCHAR2
3190 --Actual Upgrade Credit Accounting Class
3191 , p_source_23 IN VARCHAR2
3192 --Entered Raw Cost
3193 , p_source_24 IN NUMBER
3194 --Entered Currency Code
3195 , p_source_25 IN VARCHAR2
3196 --Accounted Raw Cost
3197 , p_source_26 IN NUMBER
3198 --Exchange Rate Date
3199 , p_source_27 IN DATE
3200 --Exchange Rate
3201 , p_source_28 IN NUMBER
3202 --Exchange Rate Type
3203 , p_source_29 IN VARCHAR2
3204 --Actual Upgrade Debit Accounting Class
3205 , p_source_30 IN VARCHAR2
3206 --Use Actuals Upgrade Attributes Flag
3207 , p_source_31 IN VARCHAR2
3208 --Expenditure Item ID
3209 , p_source_32 IN NUMBER
3210 --Cost Distribution Line Number
3211 , p_source_33 IN NUMBER
3212 --Line Type
3213 , p_source_34 IN VARCHAR2
3214 , p_source_34_meaning IN VARCHAR2
3215 --Reversed Line Number
3216 , p_source_35 IN NUMBER
3217 )
3218 IS
3219
3220 l_component_type VARCHAR2(80);
3221 l_component_code VARCHAR2(30);
3222 l_component_type_code VARCHAR2(1);
3223 l_component_appl_id INTEGER;
3224 l_amb_context_code VARCHAR2(30);
3225 l_entity_code VARCHAR2(30);
3226 l_event_class_code VARCHAR2(30);
3227 l_ae_header_id NUMBER;
3228 l_event_type_code VARCHAR2(30);
3229 l_line_definition_code VARCHAR2(30);
3230 l_line_definition_owner_code VARCHAR2(1);
3231 --
3232 -- adr variables
3233 l_segment VARCHAR2(30);
3234 l_ccid NUMBER;
3235 l_adr_transaction_coa_id NUMBER;
3236 l_adr_accounting_coa_id NUMBER;
3237 l_adr_flexfield_segment_code VARCHAR2(30);
3238 l_adr_flex_value_set_id NUMBER;
3239 l_adr_value_type_code VARCHAR2(30);
3240 l_adr_value_combination_id NUMBER;
3241 l_adr_value_segment_code VARCHAR2(30);
3242
3243 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3244 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3245 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3246 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3247
3248 -- 4262811 Variables ------------------------------------------------------------------------------------------
3249 l_entered_amt_idx NUMBER;
3250 l_accted_amt_idx NUMBER;
3251 l_acc_rev_flag VARCHAR2(1);
3252 l_accrual_line_num NUMBER;
3253 l_tmp_amt NUMBER;
3254 l_acc_rev_natural_side_code VARCHAR2(1);
3255
3256 l_num_entries NUMBER;
3257 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3258 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3259 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3260 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3261 l_recog_line_1 NUMBER;
3262 l_recog_line_2 NUMBER;
3263
3264 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3265 l_bflow_applied_to_amt NUMBER; -- 5132302
3266 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3267
3268 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3269
3270 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3271 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3272
3273 ---------------------------------------------------------------------------------------------------------------
3274
3275
3276 --
3277 -- bulk performance
3278 --
3279 l_balance_type_code VARCHAR2(1);
3280 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3281 l_log_module VARCHAR2(240);
3282
3283 --
3284 -- Upgrade strategy
3285 --
3286 l_actual_upg_option VARCHAR2(1);
3287 l_enc_upg_option VARCHAR2(1);
3288
3289 --
3290 BEGIN
3291 --
3292 IF g_log_enabled THEN
3293 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_21';
3294 END IF;
3295 --
3296 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3297
3298 trace
3299 (p_msg => 'BEGIN of AcctLineType_21'
3300 ,p_level => C_LEVEL_PROCEDURE
3301 ,p_module => l_log_module);
3302
3303 END IF;
3304 --
3305 l_component_type := 'AMB_JLT';
3306 l_component_code := 'EXCHANGE_RATE_VARIANCE';
3307 l_component_type_code := 'S';
3308 l_component_appl_id := 275;
3309 l_amb_context_code := 'DEFAULT';
3310 l_entity_code := 'EXPENDITURES';
3311 l_event_class_code := 'SUPPLIER_COST_ADJ';
3312 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
3313 l_line_definition_owner_code := 'S';
3314 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
3315 --
3316 l_balance_type_code := 'A';
3317 l_segment := NULL;
3318 l_ccid := NULL;
3319 l_adr_transaction_coa_id := NULL;
3320 l_adr_accounting_coa_id := NULL;
3321 l_adr_flexfield_segment_code := NULL;
3322 l_adr_flex_value_set_id := NULL;
3323 l_adr_value_type_code := NULL;
3324 l_adr_value_combination_id := NULL;
3325 l_adr_value_segment_code := NULL;
3326
3327 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
3328 l_bflow_class_code := ''; -- 4219869 Business Flow
3332 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3329 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3330 l_budgetary_control_flag := 'N';
3331
3333 l_bflow_applied_to_amt := NULL; -- 5132302
3334 l_entered_amt_idx := NULL; -- 4262811
3335 l_accted_amt_idx := NULL; -- 4262811
3336 l_acc_rev_flag := NULL; -- 4262811
3337 l_accrual_line_num := NULL; -- 4262811
3338 l_tmp_amt := NULL; -- 4262811
3339 --
3340 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
3341 (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
3342 return;
3343 END IF;
3344
3345 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3346 l_balance_type_code <> 'B' THEN
3347 IF NVL(p_source_21,'
3348 ') = 'Y'
3349 THEN
3350
3351 --
3352 XLA_AE_LINES_PKG.SetNewLine;
3353
3354 p_balance_type_code := l_balance_type_code;
3355 -- set the flag so later we will know whether the gain loss line needs to be created
3356
3357 IF(l_balance_type_code = 'A' ) THEN
3358 p_actual_flag :='G';
3359 END IF;
3360
3361 --
3362 -- bulk performance
3363 --
3364 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3365 p_header_num => 0); -- 4262811
3366 --
3367 -- set accounting line options
3368 --
3369 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3370 p_natural_side_code => 'D'
3371 , p_gain_or_loss_flag => 'Y'
3372 , p_gl_transfer_mode_code => 'S'
3373 , p_acct_entry_type_code => 'A'
3374 , p_switch_side_flag => 'Y'
3375 , p_merge_duplicate_code => 'N'
3376 );
3377 --
3378 l_acc_rev_natural_side_code := 'C'; -- 4262811
3379 --
3380 --
3381 -- set accounting line type info
3382 --
3383 xla_ae_lines_pkg.SetAcctLineType
3384 (p_component_type => l_component_type
3385 ,p_event_type_code => l_event_type_code
3386 ,p_line_definition_owner_code => l_line_definition_owner_code
3387 ,p_line_definition_code => l_line_definition_code
3388 ,p_accounting_line_code => l_component_code
3389 ,p_accounting_line_type_code => l_component_type_code
3390 ,p_accounting_line_appl_id => l_component_appl_id
3391 ,p_amb_context_code => l_amb_context_code
3392 ,p_entity_code => l_entity_code
3393 ,p_event_class_code => l_event_class_code);
3394 --
3395 -- set accounting class
3396 --
3397 xla_ae_lines_pkg.SetAcctClass(
3398 p_accounting_class_code => 'EXCHANGE_RATE_VARIANCE'
3399 , p_ae_header_id => l_ae_header_id
3400 );
3401
3402 --
3403 -- set rounding class
3404 --
3405 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3406 'EXCHANGE_RATE_VARIANCE';
3407
3408 --
3409 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3410 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3411 --
3412 -- bulk performance
3413 --
3414 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3415
3416 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3417 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3418
3419 -- 4955764
3420 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3421 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
3422
3423 -- 4458381 Public Sector Enh
3424
3425 --
3426 -- set accounting attributes for the line type
3427 --
3428 l_entered_amt_idx := 22;
3429 l_accted_amt_idx := 27;
3430 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3431 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
3432 l_rec_acct_attrs.array_char_value(1) := p_source_22;
3433 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
3434 l_rec_acct_attrs.array_char_value(2) := p_source_23;
3435 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
3436 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
3437 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
3438 l_rec_acct_attrs.array_num_value(4) := p_source_24;
3439 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
3440 l_rec_acct_attrs.array_char_value(5) := p_source_25;
3441 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
3442 l_rec_acct_attrs.array_num_value(6) := p_source_26;
3443 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
3444 l_rec_acct_attrs.array_date_value(7) := p_source_27;
3445 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
3446 l_rec_acct_attrs.array_num_value(8) := p_source_28;
3447 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
3448 l_rec_acct_attrs.array_char_value(9) := p_source_29;
3449 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
3450 l_rec_acct_attrs.array_char_value(10) := p_source_30;
3451 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
3452 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
3456 l_rec_acct_attrs.array_char_value(13) := p_source_25;
3453 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
3454 l_rec_acct_attrs.array_num_value(12) := p_source_24;
3455 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
3457 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
3458 l_rec_acct_attrs.array_num_value(14) := p_source_26;
3459 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
3460 l_rec_acct_attrs.array_date_value(15) := p_source_27;
3461 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
3462 l_rec_acct_attrs.array_num_value(16) := p_source_28;
3463 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
3464 l_rec_acct_attrs.array_char_value(17) := p_source_29;
3465 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
3466 l_rec_acct_attrs.array_char_value(18) := p_source_31;
3467 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
3468 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
3469 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
3470 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
3471 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
3472 l_rec_acct_attrs.array_char_value(21) := p_source_34;
3473 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
3474 l_rec_acct_attrs.array_num_value(22) := p_source_24;
3475 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
3476 l_rec_acct_attrs.array_char_value(23) := p_source_25;
3477 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
3478 l_rec_acct_attrs.array_date_value(24) := p_source_27;
3479 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
3480 l_rec_acct_attrs.array_num_value(25) := p_source_28;
3481 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
3482 l_rec_acct_attrs.array_char_value(26) := p_source_29;
3483 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
3484 l_rec_acct_attrs.array_num_value(27) := p_source_26;
3485 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
3486 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
3487 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
3488 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
3489 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
3490 l_rec_acct_attrs.array_char_value(30) := p_source_34;
3491
3492 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
3493 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
3494
3495 ---------------------------------------------------------------------------------------------------------------
3496 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
3497 ---------------------------------------------------------------------------------------------------------------
3498 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
3499
3500 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3501 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
3502
3503 IF xla_accounting_cache_pkg.GetValueChar
3504 (p_source_code => 'LEDGER_CATEGORY_CODE'
3505 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
3506 AND l_bflow_method_code = 'PRIOR_ENTRY'
3507 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
3508 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
3509 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
3510 )
3511 THEN
3512 xla_ae_lines_pkg.BflowUpgEntry
3513 (p_business_method_code => l_bflow_method_code
3514 ,p_business_class_code => l_bflow_class_code
3515 ,p_balance_type => l_balance_type_code);
3516 ELSE
3517 NULL;
3518 -- No business flow processing for business flow method of NONE.
3519 END IF;
3520
3521 --
3522 -- call analytical criteria
3523 --
3524
3525 --
3526 -- call description
3527 --
3528 -- No description or it is inherited.
3529 --
3530 -- call ADRs
3531 -- Bug 4922099
3532 --
3533 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
3534 (NVL(l_actual_upg_option, 'N') = 'O') OR
3535 (NVL(l_enc_upg_option, 'N') = 'O')
3536 )
3537 THEN
3538 NULL;
3539 --
3540 --
3541
3542 l_ccid := AcctDerRule_4(
3543 p_application_id => p_application_id
3544 , p_ae_header_id => l_ae_header_id
3545 , p_source_4 => p_source_4
3546 , p_source_5 => p_source_5
3547 , x_transaction_coa_id => l_adr_transaction_coa_id
3548 , x_accounting_coa_id => l_adr_accounting_coa_id
3549 , x_value_type_code => l_adr_value_type_code
3550 , p_side => 'NA'
3551 );
3552
3553 xla_ae_lines_pkg.set_ccid(
3554 p_code_combination_id => l_ccid
3555 , p_value_type_code => l_adr_value_type_code
3556 , p_transaction_coa_id => l_adr_transaction_coa_id
3557 , p_accounting_coa_id => l_adr_accounting_coa_id
3558 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
3559 , p_adr_type_code => 'S'
3560 , p_component_type => l_component_type
3561 , p_component_code => l_component_code
3562 , p_component_type_code => l_component_type_code
3563 , p_component_appl_id => l_component_appl_id
3564 , p_amb_context_code => l_amb_context_code
3568
3565 , p_side => 'NA'
3566 );
3567
3569 --
3570 --
3571 END IF;
3572 --
3573 -- Bug 4922099
3574 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
3575 (NVL(l_enc_upg_option, 'N') = 'O')
3576 ) AND
3577 (l_bflow_method_code = 'PRIOR_ENTRY')
3578 )
3579 THEN
3580 IF
3581 --
3582 1 = 2
3583 --
3584 THEN
3585 xla_accounting_err_pkg.build_message
3586 (p_appli_s_name => 'XLA'
3587 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3588 ,p_token_1 => 'LINE_NUMBER'
3589 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
3590 ,p_token_2 => 'LINE_TYPE_NAME'
3591 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
3592 l_component_type
3593 ,l_component_code
3594 ,l_component_type_code
3595 ,l_component_appl_id
3596 ,l_amb_context_code
3597 ,l_entity_code
3598 ,l_event_class_code
3599 )
3600 ,p_token_3 => 'OWNER'
3601 ,p_value_3 => xla_lookups_pkg.get_meaning(
3602 p_lookup_type => 'XLA_OWNER_TYPE'
3603 ,p_lookup_code => l_component_type_code
3604 )
3605 ,p_token_4 => 'PRODUCT_NAME'
3606 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
3607 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3608 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
3609 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3610 ,p_ae_header_id => NULL
3611 );
3612
3613 IF (C_LEVEL_ERROR>= g_log_level) THEN
3614 trace
3615 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
3616 ,p_level => C_LEVEL_ERROR
3617 ,p_module => l_log_module);
3618 END IF;
3619 END IF;
3620 END IF;
3621 --
3622 --
3623 ------------------------------------------------------------------------------------------------
3624 -- 4219869 Business Flow
3625 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
3626 -- Prior Entry. Currently, the following code is always generated.
3627 ------------------------------------------------------------------------------------------------
3628 XLA_AE_LINES_PKG.ValidateCurrentLine;
3629
3630 ------------------------------------------------------------------------------------
3631 -- 4219869 Business Flow
3632 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
3633 ------------------------------------------------------------------------------------
3634 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3635
3636 ----------------------------------------------------------------------------------
3637 -- 4219869 Business Flow
3638 -- Update journal entry status -- Need to generate this within IF <condition>
3639 ----------------------------------------------------------------------------------
3640 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3641 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
3642 ,p_balance_type_code => l_balance_type_code
3643 );
3644
3645 -------------------------------------------------------------------------------------------
3646 -- 4262811 - Generate the Accrual Reversal lines
3647 -------------------------------------------------------------------------------------------
3648 BEGIN
3649 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
3650 (g_array_event(p_event_id).array_value_num('header_index'));
3651 IF l_acc_rev_flag IS NULL THEN
3652 l_acc_rev_flag := 'N';
3653 END IF;
3654 EXCEPTION
3655 WHEN OTHERS THEN
3656 l_acc_rev_flag := 'N';
3657 END;
3658 --
3659 IF (l_acc_rev_flag = 'Y') THEN
3660
3661 -- 4645092 ------------------------------------------------------------------------------
3662 -- To allow MPA report to determine if it should generate report process
3663 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
3664 ------------------------------------------------------------------------------------------
3665
3666 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
3667 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
3668
3669 --
3670 -- Update the line information that should be overwritten
3671 --
3672 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
3673 p_header_num => 1);
3677
3674 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
3675
3676 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
3678 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
3679 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
3680 END IF;
3681
3682 --
3683 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
3684 --
3685 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
3686 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
3687 ELSE
3688 ---------------------------------------------------------------------------------------------------
3689 -- 4262811a Switch Sign
3690 ---------------------------------------------------------------------------------------------------
3691 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
3692 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3693 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3694 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
3695 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3696 -- 5132302
3697 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
3698 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3699
3700 END IF;
3701
3702 -- 4955764
3703 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
3704 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
3705
3706
3707 XLA_AE_LINES_PKG.ValidateCurrentLine;
3708 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3709
3710 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
3711 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3712 ,p_balance_type_code => l_balance_type_code);
3713
3714 END IF;
3715
3716 -----------------------------------------------------------------------------------------
3717 -- 4262811 Multiperiod Accounting
3718 -----------------------------------------------------------------------------------------
3719 -- No MPA option is assigned.
3720
3721
3722 END IF;
3723 END IF;
3724 --
3725
3726 --
3727 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3728 trace
3729 (p_msg => 'END of AcctLineType_21'
3730 ,p_level => C_LEVEL_PROCEDURE
3731 ,p_module => l_log_module);
3732 END IF;
3733 --
3734 EXCEPTION
3735 WHEN xla_exceptions_pkg.application_exception THEN
3736 RAISE;
3737 WHEN OTHERS THEN
3738 xla_exceptions_pkg.raise_message
3739 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_21');
3740 END AcctLineType_21;
3741 --
3742
3743 ---------------------------------------
3744 --
3745 -- PRIVATE FUNCTION
3746 -- AcctLineType_22
3747 --
3748 ---------------------------------------
3749 PROCEDURE AcctLineType_22 (
3750 p_application_id IN NUMBER
3751 ,p_event_id IN NUMBER
3752 ,p_calculate_acctd_flag IN VARCHAR2
3753 ,p_calculate_g_l_flag IN VARCHAR2
3754 ,p_actual_flag IN OUT VARCHAR2
3755 ,p_balance_type_code OUT VARCHAR2
3756 ,p_gain_or_loss_ref OUT VARCHAR2
3757
3758 --Cost CCID
3759 , p_source_3 IN NUMBER
3760 --Allow Account Override Flag
3761 , p_source_4 IN VARCHAR2
3762 --Cost Clearing CCID
3763 , p_source_6 IN NUMBER
3764 --Adjustment Cost Clearing CCID
3765 , p_source_7 IN NUMBER
3766 --Exchange Rate Variance Flag
3767 , p_source_21 IN VARCHAR2
3768 --Reversing Line Flag
3769 , p_source_22 IN VARCHAR2
3770 --Actual Upgrade Credit Accounting Class
3771 , p_source_23 IN VARCHAR2
3772 --Entered Raw Cost
3773 , p_source_24 IN NUMBER
3774 --Entered Currency Code
3775 , p_source_25 IN VARCHAR2
3776 --Accounted Raw Cost
3777 , p_source_26 IN NUMBER
3778 --Exchange Rate Date
3779 , p_source_27 IN DATE
3780 --Exchange Rate
3781 , p_source_28 IN NUMBER
3782 --Exchange Rate Type
3783 , p_source_29 IN VARCHAR2
3784 --Actual Upgrade Debit Accounting Class
3785 , p_source_30 IN VARCHAR2
3786 --Use Actuals Upgrade Attributes Flag
3787 , p_source_31 IN VARCHAR2
3788 --Expenditure Item ID
3789 , p_source_32 IN NUMBER
3790 --Cost Distribution Line Number
3791 , p_source_33 IN NUMBER
3792 --Line Type
3793 , p_source_34 IN VARCHAR2
3794 , p_source_34_meaning IN VARCHAR2
3795 --Reversed Line Number
3796 , p_source_35 IN NUMBER
3797 )
3798 IS
3799
3800 l_component_type VARCHAR2(80);
3801 l_component_code VARCHAR2(30);
3802 l_component_type_code VARCHAR2(1);
3803 l_component_appl_id INTEGER;
3804 l_amb_context_code VARCHAR2(30);
3805 l_entity_code VARCHAR2(30);
3806 l_event_class_code VARCHAR2(30);
3807 l_ae_header_id NUMBER;
3808 l_event_type_code VARCHAR2(30);
3809 l_line_definition_code VARCHAR2(30);
3810 l_line_definition_owner_code VARCHAR2(1);
3811 --
3812 -- adr variables
3816 l_adr_accounting_coa_id NUMBER;
3813 l_segment VARCHAR2(30);
3814 l_ccid NUMBER;
3815 l_adr_transaction_coa_id NUMBER;
3817 l_adr_flexfield_segment_code VARCHAR2(30);
3818 l_adr_flex_value_set_id NUMBER;
3819 l_adr_value_type_code VARCHAR2(30);
3820 l_adr_value_combination_id NUMBER;
3821 l_adr_value_segment_code VARCHAR2(30);
3822
3823 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
3824 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
3825 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
3826 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
3827
3828 -- 4262811 Variables ------------------------------------------------------------------------------------------
3829 l_entered_amt_idx NUMBER;
3830 l_accted_amt_idx NUMBER;
3831 l_acc_rev_flag VARCHAR2(1);
3832 l_accrual_line_num NUMBER;
3833 l_tmp_amt NUMBER;
3834 l_acc_rev_natural_side_code VARCHAR2(1);
3835
3836 l_num_entries NUMBER;
3837 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
3838 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
3839 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
3840 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
3841 l_recog_line_1 NUMBER;
3842 l_recog_line_2 NUMBER;
3843
3844 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
3845 l_bflow_applied_to_amt NUMBER; -- 5132302
3846 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3847
3848 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3849
3850 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
3851 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
3852
3853 ---------------------------------------------------------------------------------------------------------------
3854
3855
3856 --
3857 -- bulk performance
3858 --
3859 l_balance_type_code VARCHAR2(1);
3860 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
3861 l_log_module VARCHAR2(240);
3862
3863 --
3864 -- Upgrade strategy
3865 --
3866 l_actual_upg_option VARCHAR2(1);
3867 l_enc_upg_option VARCHAR2(1);
3868
3869 --
3870 BEGIN
3871 --
3872 IF g_log_enabled THEN
3873 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_22';
3874 END IF;
3875 --
3876 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
3877
3878 trace
3879 (p_msg => 'BEGIN of AcctLineType_22'
3880 ,p_level => C_LEVEL_PROCEDURE
3881 ,p_module => l_log_module);
3882
3883 END IF;
3884 --
3885 l_component_type := 'AMB_JLT';
3886 l_component_code := 'EXCHANGE_RATE_VAR_CLEARING';
3887 l_component_type_code := 'S';
3888 l_component_appl_id := 275;
3889 l_amb_context_code := 'DEFAULT';
3890 l_entity_code := 'EXPENDITURES';
3891 l_event_class_code := 'SUPPLIER_COST_ADJ';
3892 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
3893 l_line_definition_owner_code := 'S';
3894 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
3895 --
3896 l_balance_type_code := 'A';
3897 l_segment := NULL;
3898 l_ccid := NULL;
3899 l_adr_transaction_coa_id := NULL;
3900 l_adr_accounting_coa_id := NULL;
3901 l_adr_flexfield_segment_code := NULL;
3902 l_adr_flex_value_set_id := NULL;
3903 l_adr_value_type_code := NULL;
3904 l_adr_value_combination_id := NULL;
3905 l_adr_value_segment_code := NULL;
3906
3907 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
3908 l_bflow_class_code := ''; -- 4219869 Business Flow
3909 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3910 l_budgetary_control_flag := 'N';
3911
3912 l_bflow_applied_to_amt_idx := NULL; -- 5132302
3913 l_bflow_applied_to_amt := NULL; -- 5132302
3914 l_entered_amt_idx := NULL; -- 4262811
3915 l_accted_amt_idx := NULL; -- 4262811
3916 l_acc_rev_flag := NULL; -- 4262811
3917 l_accrual_line_num := NULL; -- 4262811
3918 l_tmp_amt := NULL; -- 4262811
3919 --
3920 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
3921 (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
3922 return;
3923 END IF;
3924
3925 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
3926 l_balance_type_code <> 'B' THEN
3927 IF NVL(p_source_21,'
3928 ') = 'Y'
3929 THEN
3930
3931 --
3932 XLA_AE_LINES_PKG.SetNewLine;
3933
3934 p_balance_type_code := l_balance_type_code;
3935 -- set the flag so later we will know whether the gain loss line needs to be created
3936
3937 IF(l_balance_type_code = 'A' ) THEN
3938 p_actual_flag :='G';
3939 END IF;
3940
3941 --
3942 -- bulk performance
3943 --
3944 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
3945 p_header_num => 0); -- 4262811
3946 --
3947 -- set accounting line options
3948 --
3949 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
3953 , p_acct_entry_type_code => 'A'
3950 p_natural_side_code => 'C'
3951 , p_gain_or_loss_flag => 'Y'
3952 , p_gl_transfer_mode_code => 'S'
3954 , p_switch_side_flag => 'Y'
3955 , p_merge_duplicate_code => 'N'
3956 );
3957 --
3958 l_acc_rev_natural_side_code := 'D'; -- 4262811
3959 --
3960 --
3961 -- set accounting line type info
3962 --
3963 xla_ae_lines_pkg.SetAcctLineType
3964 (p_component_type => l_component_type
3965 ,p_event_type_code => l_event_type_code
3966 ,p_line_definition_owner_code => l_line_definition_owner_code
3967 ,p_line_definition_code => l_line_definition_code
3968 ,p_accounting_line_code => l_component_code
3969 ,p_accounting_line_type_code => l_component_type_code
3970 ,p_accounting_line_appl_id => l_component_appl_id
3971 ,p_amb_context_code => l_amb_context_code
3972 ,p_entity_code => l_entity_code
3973 ,p_event_class_code => l_event_class_code);
3974 --
3975 -- set accounting class
3976 --
3977 xla_ae_lines_pkg.SetAcctClass(
3978 p_accounting_class_code => 'COST_CLEARING'
3979 , p_ae_header_id => l_ae_header_id
3980 );
3981
3982 --
3983 -- set rounding class
3984 --
3985 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
3986 'COST_CLEARING';
3987
3988 --
3989 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
3990 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
3991 --
3992 -- bulk performance
3993 --
3994 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
3995
3996 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
3997 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
3998
3999 -- 4955764
4000 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4001 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4002
4003 -- 4458381 Public Sector Enh
4004
4005 --
4006 -- set accounting attributes for the line type
4007 --
4008 l_entered_amt_idx := 22;
4009 l_accted_amt_idx := 27;
4010 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4011 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
4012 l_rec_acct_attrs.array_char_value(1) := p_source_22;
4013 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
4014 l_rec_acct_attrs.array_char_value(2) := p_source_23;
4015 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
4016 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
4017 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
4018 l_rec_acct_attrs.array_num_value(4) := p_source_24;
4019 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
4020 l_rec_acct_attrs.array_char_value(5) := p_source_25;
4021 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
4022 l_rec_acct_attrs.array_num_value(6) := p_source_26;
4023 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
4024 l_rec_acct_attrs.array_date_value(7) := p_source_27;
4025 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
4026 l_rec_acct_attrs.array_num_value(8) := p_source_28;
4027 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
4028 l_rec_acct_attrs.array_char_value(9) := p_source_29;
4029 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
4030 l_rec_acct_attrs.array_char_value(10) := p_source_30;
4031 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
4032 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
4033 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
4034 l_rec_acct_attrs.array_num_value(12) := p_source_24;
4035 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
4036 l_rec_acct_attrs.array_char_value(13) := p_source_25;
4037 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
4038 l_rec_acct_attrs.array_num_value(14) := p_source_26;
4039 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
4040 l_rec_acct_attrs.array_date_value(15) := p_source_27;
4041 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
4042 l_rec_acct_attrs.array_num_value(16) := p_source_28;
4043 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
4044 l_rec_acct_attrs.array_char_value(17) := p_source_29;
4045 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
4046 l_rec_acct_attrs.array_char_value(18) := p_source_31;
4047 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
4048 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
4049 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
4050 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
4051 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
4052 l_rec_acct_attrs.array_char_value(21) := p_source_34;
4053 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
4054 l_rec_acct_attrs.array_num_value(22) := p_source_24;
4055 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
4056 l_rec_acct_attrs.array_char_value(23) := p_source_25;
4057 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
4058 l_rec_acct_attrs.array_date_value(24) := p_source_27;
4059 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
4063 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
4060 l_rec_acct_attrs.array_num_value(25) := p_source_28;
4061 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
4062 l_rec_acct_attrs.array_char_value(26) := p_source_29;
4064 l_rec_acct_attrs.array_num_value(27) := p_source_26;
4065 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
4066 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
4067 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
4068 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
4069 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
4070 l_rec_acct_attrs.array_char_value(30) := p_source_34;
4071
4072 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4073 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4074
4075 ---------------------------------------------------------------------------------------------------------------
4076 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4077 ---------------------------------------------------------------------------------------------------------------
4078 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4079
4080 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4081 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4082
4083 IF xla_accounting_cache_pkg.GetValueChar
4084 (p_source_code => 'LEDGER_CATEGORY_CODE'
4085 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4086 AND l_bflow_method_code = 'PRIOR_ENTRY'
4087 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4088 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4089 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4090 )
4091 THEN
4092 xla_ae_lines_pkg.BflowUpgEntry
4093 (p_business_method_code => l_bflow_method_code
4094 ,p_business_class_code => l_bflow_class_code
4095 ,p_balance_type => l_balance_type_code);
4096 ELSE
4097 NULL;
4098 -- No business flow processing for business flow method of NONE.
4099 END IF;
4100
4101 --
4102 -- call analytical criteria
4103 --
4104
4105 --
4106 -- call description
4107 --
4108 -- No description or it is inherited.
4109 --
4110 -- call ADRs
4111 -- Bug 4922099
4112 --
4113 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4114 (NVL(l_actual_upg_option, 'N') = 'O') OR
4115 (NVL(l_enc_upg_option, 'N') = 'O')
4116 )
4117 THEN
4118 NULL;
4119 --
4120 --
4121
4122 l_ccid := AcctDerRule_6(
4123 p_application_id => p_application_id
4124 , p_ae_header_id => l_ae_header_id
4125 , p_source_4 => p_source_4
4126 , p_source_7 => p_source_7
4127 , x_transaction_coa_id => l_adr_transaction_coa_id
4128 , x_accounting_coa_id => l_adr_accounting_coa_id
4129 , x_value_type_code => l_adr_value_type_code
4130 , p_side => 'NA'
4131 );
4132
4133 xla_ae_lines_pkg.set_ccid(
4134 p_code_combination_id => l_ccid
4135 , p_value_type_code => l_adr_value_type_code
4136 , p_transaction_coa_id => l_adr_transaction_coa_id
4137 , p_accounting_coa_id => l_adr_accounting_coa_id
4138 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
4139 , p_adr_type_code => 'S'
4140 , p_component_type => l_component_type
4141 , p_component_code => l_component_code
4142 , p_component_type_code => l_component_type_code
4143 , p_component_appl_id => l_component_appl_id
4144 , p_amb_context_code => l_amb_context_code
4145 , p_side => 'NA'
4146 );
4147
4148
4149 --
4150 --
4151 END IF;
4152 --
4153 -- Bug 4922099
4154 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4155 (NVL(l_enc_upg_option, 'N') = 'O')
4156 ) AND
4157 (l_bflow_method_code = 'PRIOR_ENTRY')
4158 )
4159 THEN
4160 IF
4161 --
4162 1 = 2
4163 --
4164 THEN
4165 xla_accounting_err_pkg.build_message
4166 (p_appli_s_name => 'XLA'
4167 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4168 ,p_token_1 => 'LINE_NUMBER'
4169 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4170 ,p_token_2 => 'LINE_TYPE_NAME'
4171 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4172 l_component_type
4173 ,l_component_code
4174 ,l_component_type_code
4175 ,l_component_appl_id
4176 ,l_amb_context_code
4177 ,l_entity_code
4178 ,l_event_class_code
4179 )
4183 ,p_lookup_code => l_component_type_code
4180 ,p_token_3 => 'OWNER'
4181 ,p_value_3 => xla_lookups_pkg.get_meaning(
4182 p_lookup_type => 'XLA_OWNER_TYPE'
4184 )
4185 ,p_token_4 => 'PRODUCT_NAME'
4186 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4187 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4188 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4189 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4190 ,p_ae_header_id => NULL
4191 );
4192
4193 IF (C_LEVEL_ERROR>= g_log_level) THEN
4194 trace
4195 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4196 ,p_level => C_LEVEL_ERROR
4197 ,p_module => l_log_module);
4198 END IF;
4199 END IF;
4200 END IF;
4201 --
4202 --
4203 ------------------------------------------------------------------------------------------------
4204 -- 4219869 Business Flow
4205 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4206 -- Prior Entry. Currently, the following code is always generated.
4207 ------------------------------------------------------------------------------------------------
4208 XLA_AE_LINES_PKG.ValidateCurrentLine;
4209
4210 ------------------------------------------------------------------------------------
4211 -- 4219869 Business Flow
4212 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4213 ------------------------------------------------------------------------------------
4214 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4215
4216 ----------------------------------------------------------------------------------
4217 -- 4219869 Business Flow
4218 -- Update journal entry status -- Need to generate this within IF <condition>
4219 ----------------------------------------------------------------------------------
4220 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4221 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4222 ,p_balance_type_code => l_balance_type_code
4223 );
4224
4225 -------------------------------------------------------------------------------------------
4226 -- 4262811 - Generate the Accrual Reversal lines
4227 -------------------------------------------------------------------------------------------
4228 BEGIN
4229 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4230 (g_array_event(p_event_id).array_value_num('header_index'));
4231 IF l_acc_rev_flag IS NULL THEN
4232 l_acc_rev_flag := 'N';
4233 END IF;
4234 EXCEPTION
4235 WHEN OTHERS THEN
4236 l_acc_rev_flag := 'N';
4237 END;
4238 --
4239 IF (l_acc_rev_flag = 'Y') THEN
4240
4241 -- 4645092 ------------------------------------------------------------------------------
4242 -- To allow MPA report to determine if it should generate report process
4243 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4244 ------------------------------------------------------------------------------------------
4245
4246 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4247 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4248
4249 --
4250 -- Update the line information that should be overwritten
4251 --
4252 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4253 p_header_num => 1);
4254 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4255
4256 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4257
4258 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4259 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4260 END IF;
4261
4262 --
4263 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4264 --
4265 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4266 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4267 ELSE
4268 ---------------------------------------------------------------------------------------------------
4269 -- 4262811a Switch Sign
4270 ---------------------------------------------------------------------------------------------------
4271 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4272 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4273 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4274 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4275 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4276 -- 5132302
4277 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4278 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4279
4283 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4280 END IF;
4281
4282 -- 4955764
4284 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4285
4286
4287 XLA_AE_LINES_PKG.ValidateCurrentLine;
4288 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4289
4290 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4291 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4292 ,p_balance_type_code => l_balance_type_code);
4293
4294 END IF;
4295
4296 -----------------------------------------------------------------------------------------
4297 -- 4262811 Multiperiod Accounting
4298 -----------------------------------------------------------------------------------------
4299 -- No MPA option is assigned.
4300
4301
4302 END IF;
4303 END IF;
4304 --
4305
4306 --
4307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4308 trace
4309 (p_msg => 'END of AcctLineType_22'
4310 ,p_level => C_LEVEL_PROCEDURE
4311 ,p_module => l_log_module);
4312 END IF;
4313 --
4314 EXCEPTION
4315 WHEN xla_exceptions_pkg.application_exception THEN
4316 RAISE;
4317 WHEN OTHERS THEN
4318 xla_exceptions_pkg.raise_message
4319 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_22');
4320 END AcctLineType_22;
4321 --
4322
4323 ---------------------------------------
4324 --
4325 -- PRIVATE FUNCTION
4326 -- AcctLineType_23
4327 --
4328 ---------------------------------------
4329 PROCEDURE AcctLineType_23 (
4330 p_application_id IN NUMBER
4331 ,p_event_id IN NUMBER
4332 ,p_calculate_acctd_flag IN VARCHAR2
4333 ,p_calculate_g_l_flag IN VARCHAR2
4334 ,p_actual_flag IN OUT VARCHAR2
4335 ,p_balance_type_code OUT VARCHAR2
4336 ,p_gain_or_loss_ref OUT VARCHAR2
4337
4338 --Cost CCID
4339 , p_source_3 IN NUMBER
4340 --Allow Account Override Flag
4341 , p_source_4 IN VARCHAR2
4342 --Cost Clearing CCID
4343 , p_source_6 IN NUMBER
4344 --Adjustment Cost Clearing CCID
4345 , p_source_7 IN NUMBER
4346 --Exchange Rate Variance Flag
4347 , p_source_21 IN VARCHAR2
4348 --Reversing Line Flag
4349 , p_source_22 IN VARCHAR2
4350 --Actual Upgrade Credit Accounting Class
4351 , p_source_23 IN VARCHAR2
4352 --Entered Raw Cost
4353 , p_source_24 IN NUMBER
4354 --Entered Currency Code
4355 , p_source_25 IN VARCHAR2
4356 --Accounted Raw Cost
4357 , p_source_26 IN NUMBER
4358 --Exchange Rate Date
4359 , p_source_27 IN DATE
4360 --Exchange Rate
4361 , p_source_28 IN NUMBER
4362 --Exchange Rate Type
4363 , p_source_29 IN VARCHAR2
4364 --Actual Upgrade Debit Accounting Class
4365 , p_source_30 IN VARCHAR2
4366 --Use Actuals Upgrade Attributes Flag
4367 , p_source_31 IN VARCHAR2
4368 --Expenditure Item ID
4369 , p_source_32 IN NUMBER
4370 --Cost Distribution Line Number
4371 , p_source_33 IN NUMBER
4372 --Line Type
4373 , p_source_34 IN VARCHAR2
4374 , p_source_34_meaning IN VARCHAR2
4375 --Reversed Line Number
4376 , p_source_35 IN NUMBER
4377 )
4378 IS
4379
4380 l_component_type VARCHAR2(80);
4381 l_component_code VARCHAR2(30);
4382 l_component_type_code VARCHAR2(1);
4383 l_component_appl_id INTEGER;
4384 l_amb_context_code VARCHAR2(30);
4385 l_entity_code VARCHAR2(30);
4386 l_event_class_code VARCHAR2(30);
4387 l_ae_header_id NUMBER;
4388 l_event_type_code VARCHAR2(30);
4389 l_line_definition_code VARCHAR2(30);
4390 l_line_definition_owner_code VARCHAR2(1);
4391 --
4392 -- adr variables
4393 l_segment VARCHAR2(30);
4394 l_ccid NUMBER;
4395 l_adr_transaction_coa_id NUMBER;
4396 l_adr_accounting_coa_id NUMBER;
4397 l_adr_flexfield_segment_code VARCHAR2(30);
4398 l_adr_flex_value_set_id NUMBER;
4399 l_adr_value_type_code VARCHAR2(30);
4400 l_adr_value_combination_id NUMBER;
4401 l_adr_value_segment_code VARCHAR2(30);
4402
4403 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4404 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4405 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4406 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4407
4408 -- 4262811 Variables ------------------------------------------------------------------------------------------
4409 l_entered_amt_idx NUMBER;
4410 l_accted_amt_idx NUMBER;
4411 l_acc_rev_flag VARCHAR2(1);
4412 l_accrual_line_num NUMBER;
4413 l_tmp_amt NUMBER;
4414 l_acc_rev_natural_side_code VARCHAR2(1);
4415
4416 l_num_entries NUMBER;
4417 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4418 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4419 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4420 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4421 l_recog_line_1 NUMBER;
4422 l_recog_line_2 NUMBER;
4423
4424 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4425 l_bflow_applied_to_amt NUMBER; -- 5132302
4426 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4427
4431 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
4428 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4429
4430 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4432
4433 ---------------------------------------------------------------------------------------------------------------
4434
4435
4436 --
4437 -- bulk performance
4438 --
4439 l_balance_type_code VARCHAR2(1);
4440 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
4441 l_log_module VARCHAR2(240);
4442
4443 --
4444 -- Upgrade strategy
4445 --
4446 l_actual_upg_option VARCHAR2(1);
4447 l_enc_upg_option VARCHAR2(1);
4448
4449 --
4450 BEGIN
4451 --
4452 IF g_log_enabled THEN
4453 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_23';
4454 END IF;
4455 --
4456 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4457
4458 trace
4459 (p_msg => 'BEGIN of AcctLineType_23'
4460 ,p_level => C_LEVEL_PROCEDURE
4461 ,p_module => l_log_module);
4462
4463 END IF;
4464 --
4465 l_component_type := 'AMB_JLT';
4466 l_component_code := 'EXCHANGE_RATE_VAR_CLEARING';
4467 l_component_type_code := 'S';
4468 l_component_appl_id := 275;
4469 l_amb_context_code := 'DEFAULT';
4470 l_entity_code := 'EXPENDITURES';
4471 l_event_class_code := 'SUPPLIER_COST';
4472 l_event_type_code := 'SUPPLIER_COST_ALL';
4473 l_line_definition_owner_code := 'S';
4474 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
4475 --
4476 l_balance_type_code := 'A';
4477 l_segment := NULL;
4478 l_ccid := NULL;
4479 l_adr_transaction_coa_id := NULL;
4480 l_adr_accounting_coa_id := NULL;
4481 l_adr_flexfield_segment_code := NULL;
4482 l_adr_flex_value_set_id := NULL;
4483 l_adr_value_type_code := NULL;
4484 l_adr_value_combination_id := NULL;
4485 l_adr_value_segment_code := NULL;
4486
4487 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
4488 l_bflow_class_code := ''; -- 4219869 Business Flow
4489 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
4490 l_budgetary_control_flag := 'N';
4491
4492 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4493 l_bflow_applied_to_amt := NULL; -- 5132302
4494 l_entered_amt_idx := NULL; -- 4262811
4495 l_accted_amt_idx := NULL; -- 4262811
4496 l_acc_rev_flag := NULL; -- 4262811
4497 l_accrual_line_num := NULL; -- 4262811
4498 l_tmp_amt := NULL; -- 4262811
4499 --
4500 IF ((p_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
4501 (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
4502 return;
4503 END IF;
4504
4505 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
4506 l_balance_type_code <> 'B' THEN
4507 IF NVL(p_source_21,'
4508 ') = 'Y'
4509 THEN
4510
4511 --
4512 XLA_AE_LINES_PKG.SetNewLine;
4513
4514 p_balance_type_code := l_balance_type_code;
4515 -- set the flag so later we will know whether the gain loss line needs to be created
4516
4517 IF(l_balance_type_code = 'A' ) THEN
4518 p_actual_flag :='G';
4519 END IF;
4520
4521 --
4522 -- bulk performance
4523 --
4524 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
4525 p_header_num => 0); -- 4262811
4526 --
4527 -- set accounting line options
4528 --
4529 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
4530 p_natural_side_code => 'C'
4531 , p_gain_or_loss_flag => 'Y'
4532 , p_gl_transfer_mode_code => 'S'
4533 , p_acct_entry_type_code => 'A'
4534 , p_switch_side_flag => 'Y'
4535 , p_merge_duplicate_code => 'N'
4536 );
4537 --
4538 l_acc_rev_natural_side_code := 'D'; -- 4262811
4539 --
4540 --
4541 -- set accounting line type info
4542 --
4543 xla_ae_lines_pkg.SetAcctLineType
4544 (p_component_type => l_component_type
4545 ,p_event_type_code => l_event_type_code
4546 ,p_line_definition_owner_code => l_line_definition_owner_code
4547 ,p_line_definition_code => l_line_definition_code
4548 ,p_accounting_line_code => l_component_code
4549 ,p_accounting_line_type_code => l_component_type_code
4550 ,p_accounting_line_appl_id => l_component_appl_id
4551 ,p_amb_context_code => l_amb_context_code
4552 ,p_entity_code => l_entity_code
4553 ,p_event_class_code => l_event_class_code);
4554 --
4555 -- set accounting class
4556 --
4557 xla_ae_lines_pkg.SetAcctClass(
4558 p_accounting_class_code => 'COST_CLEARING'
4559 , p_ae_header_id => l_ae_header_id
4560 );
4561
4562 --
4563 -- set rounding class
4564 --
4565 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
4566 'COST_CLEARING';
4567
4568 --
4569 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
4573 --
4570 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
4571 --
4572 -- bulk performance
4574 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
4575
4576 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
4577 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
4578
4579 -- 4955764
4580 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4581 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
4582
4583 -- 4458381 Public Sector Enh
4584
4585 --
4586 -- set accounting attributes for the line type
4587 --
4588 l_entered_amt_idx := 22;
4589 l_accted_amt_idx := 27;
4590 l_bflow_applied_to_amt_idx := NULL; -- 5132302
4591 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
4592 l_rec_acct_attrs.array_char_value(1) := p_source_22;
4593 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
4594 l_rec_acct_attrs.array_char_value(2) := p_source_23;
4595 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
4596 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
4597 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
4598 l_rec_acct_attrs.array_num_value(4) := p_source_24;
4599 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
4600 l_rec_acct_attrs.array_char_value(5) := p_source_25;
4601 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
4602 l_rec_acct_attrs.array_num_value(6) := p_source_26;
4603 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
4604 l_rec_acct_attrs.array_date_value(7) := p_source_27;
4605 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
4606 l_rec_acct_attrs.array_num_value(8) := p_source_28;
4607 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
4608 l_rec_acct_attrs.array_char_value(9) := p_source_29;
4609 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
4610 l_rec_acct_attrs.array_char_value(10) := p_source_30;
4611 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
4612 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
4613 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
4614 l_rec_acct_attrs.array_num_value(12) := p_source_24;
4615 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
4616 l_rec_acct_attrs.array_char_value(13) := p_source_25;
4617 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
4618 l_rec_acct_attrs.array_num_value(14) := p_source_26;
4619 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
4620 l_rec_acct_attrs.array_date_value(15) := p_source_27;
4621 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
4622 l_rec_acct_attrs.array_num_value(16) := p_source_28;
4623 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
4624 l_rec_acct_attrs.array_char_value(17) := p_source_29;
4625 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
4626 l_rec_acct_attrs.array_char_value(18) := p_source_31;
4627 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
4628 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
4629 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
4630 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
4631 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
4632 l_rec_acct_attrs.array_char_value(21) := p_source_34;
4633 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
4634 l_rec_acct_attrs.array_num_value(22) := p_source_24;
4635 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
4636 l_rec_acct_attrs.array_char_value(23) := p_source_25;
4637 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
4638 l_rec_acct_attrs.array_date_value(24) := p_source_27;
4639 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
4640 l_rec_acct_attrs.array_num_value(25) := p_source_28;
4641 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
4642 l_rec_acct_attrs.array_char_value(26) := p_source_29;
4643 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
4644 l_rec_acct_attrs.array_num_value(27) := p_source_26;
4645 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
4646 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
4647 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
4648 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
4649 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
4650 l_rec_acct_attrs.array_char_value(30) := p_source_34;
4651
4652 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
4653 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
4654
4655 ---------------------------------------------------------------------------------------------------------------
4656 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
4657 ---------------------------------------------------------------------------------------------------------------
4658 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
4659
4660 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4661 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
4662
4663 IF xla_accounting_cache_pkg.GetValueChar
4664 (p_source_code => 'LEDGER_CATEGORY_CODE'
4665 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
4669 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
4666 AND l_bflow_method_code = 'PRIOR_ENTRY'
4667 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
4668 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
4670 )
4671 THEN
4672 xla_ae_lines_pkg.BflowUpgEntry
4673 (p_business_method_code => l_bflow_method_code
4674 ,p_business_class_code => l_bflow_class_code
4675 ,p_balance_type => l_balance_type_code);
4676 ELSE
4677 NULL;
4678 -- No business flow processing for business flow method of NONE.
4679 END IF;
4680
4681 --
4682 -- call analytical criteria
4683 --
4684
4685 --
4686 -- call description
4687 --
4688 -- No description or it is inherited.
4689 --
4690 -- call ADRs
4691 -- Bug 4922099
4692 --
4693 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
4694 (NVL(l_actual_upg_option, 'N') = 'O') OR
4695 (NVL(l_enc_upg_option, 'N') = 'O')
4696 )
4697 THEN
4698 NULL;
4699 --
4700 --
4701
4702 l_ccid := AcctDerRule_5(
4703 p_application_id => p_application_id
4704 , p_ae_header_id => l_ae_header_id
4705 , p_source_4 => p_source_4
4706 , p_source_6 => p_source_6
4707 , p_source_7 => p_source_7
4708 , x_transaction_coa_id => l_adr_transaction_coa_id
4709 , x_accounting_coa_id => l_adr_accounting_coa_id
4710 , x_value_type_code => l_adr_value_type_code
4711 , p_side => 'NA'
4712 );
4713
4714 xla_ae_lines_pkg.set_ccid(
4715 p_code_combination_id => l_ccid
4716 , p_value_type_code => l_adr_value_type_code
4717 , p_transaction_coa_id => l_adr_transaction_coa_id
4718 , p_accounting_coa_id => l_adr_accounting_coa_id
4719 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
4720 , p_adr_type_code => 'S'
4721 , p_component_type => l_component_type
4722 , p_component_code => l_component_code
4723 , p_component_type_code => l_component_type_code
4724 , p_component_appl_id => l_component_appl_id
4725 , p_amb_context_code => l_amb_context_code
4726 , p_side => 'NA'
4727 );
4728
4729
4730 --
4731 --
4732 END IF;
4733 --
4734 -- Bug 4922099
4735 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
4736 (NVL(l_enc_upg_option, 'N') = 'O')
4737 ) AND
4738 (l_bflow_method_code = 'PRIOR_ENTRY')
4739 )
4740 THEN
4741 IF
4742 --
4743 1 = 2
4744 --
4745 THEN
4746 xla_accounting_err_pkg.build_message
4747 (p_appli_s_name => 'XLA'
4748 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4749 ,p_token_1 => 'LINE_NUMBER'
4750 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
4751 ,p_token_2 => 'LINE_TYPE_NAME'
4752 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
4753 l_component_type
4754 ,l_component_code
4755 ,l_component_type_code
4756 ,l_component_appl_id
4757 ,l_amb_context_code
4758 ,l_entity_code
4759 ,l_event_class_code
4760 )
4761 ,p_token_3 => 'OWNER'
4762 ,p_value_3 => xla_lookups_pkg.get_meaning(
4763 p_lookup_type => 'XLA_OWNER_TYPE'
4764 ,p_lookup_code => l_component_type_code
4765 )
4766 ,p_token_4 => 'PRODUCT_NAME'
4767 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
4768 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
4769 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
4770 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
4771 ,p_ae_header_id => NULL
4772 );
4773
4774 IF (C_LEVEL_ERROR>= g_log_level) THEN
4775 trace
4776 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
4777 ,p_level => C_LEVEL_ERROR
4778 ,p_module => l_log_module);
4779 END IF;
4780 END IF;
4781 END IF;
4782 --
4783 --
4784 ------------------------------------------------------------------------------------------------
4785 -- 4219869 Business Flow
4786 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
4787 -- Prior Entry. Currently, the following code is always generated.
4791 ------------------------------------------------------------------------------------
4788 ------------------------------------------------------------------------------------------------
4789 XLA_AE_LINES_PKG.ValidateCurrentLine;
4790
4792 -- 4219869 Business Flow
4793 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
4794 ------------------------------------------------------------------------------------
4795 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4796
4797 ----------------------------------------------------------------------------------
4798 -- 4219869 Business Flow
4799 -- Update journal entry status -- Need to generate this within IF <condition>
4800 ----------------------------------------------------------------------------------
4801 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4802 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
4803 ,p_balance_type_code => l_balance_type_code
4804 );
4805
4806 -------------------------------------------------------------------------------------------
4807 -- 4262811 - Generate the Accrual Reversal lines
4808 -------------------------------------------------------------------------------------------
4809 BEGIN
4810 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
4811 (g_array_event(p_event_id).array_value_num('header_index'));
4812 IF l_acc_rev_flag IS NULL THEN
4813 l_acc_rev_flag := 'N';
4814 END IF;
4815 EXCEPTION
4816 WHEN OTHERS THEN
4817 l_acc_rev_flag := 'N';
4818 END;
4819 --
4820 IF (l_acc_rev_flag = 'Y') THEN
4821
4822 -- 4645092 ------------------------------------------------------------------------------
4823 -- To allow MPA report to determine if it should generate report process
4824 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
4825 ------------------------------------------------------------------------------------------
4826
4827 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
4828 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
4829
4830 --
4831 -- Update the line information that should be overwritten
4832 --
4833 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
4834 p_header_num => 1);
4835 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
4836
4837 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
4838
4839 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
4840 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
4841 END IF;
4842
4843 --
4844 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
4845 --
4846 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
4847 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
4848 ELSE
4849 ---------------------------------------------------------------------------------------------------
4850 -- 4262811a Switch Sign
4851 ---------------------------------------------------------------------------------------------------
4852 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
4853 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4854 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4855 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
4856 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4857 -- 5132302
4858 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
4859 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
4860
4861 END IF;
4862
4863 -- 4955764
4864 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
4865 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
4866
4867
4868 XLA_AE_LINES_PKG.ValidateCurrentLine;
4869 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
4870
4871 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
4872 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
4873 ,p_balance_type_code => l_balance_type_code);
4874
4875 END IF;
4876
4877 -----------------------------------------------------------------------------------------
4878 -- 4262811 Multiperiod Accounting
4879 -----------------------------------------------------------------------------------------
4880 -- No MPA option is assigned.
4881
4882
4883 END IF;
4884 END IF;
4885 --
4886
4887 --
4888 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
4889 trace
4890 (p_msg => 'END of AcctLineType_23'
4891 ,p_level => C_LEVEL_PROCEDURE
4892 ,p_module => l_log_module);
4893 END IF;
4894 --
4895 EXCEPTION
4896 WHEN xla_exceptions_pkg.application_exception THEN
4897 RAISE;
4898 WHEN OTHERS THEN
4899 xla_exceptions_pkg.raise_message
4900 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_23');
4901 END AcctLineType_23;
4902 --
4903
4904 ---------------------------------------
4905 --
4906 -- PRIVATE FUNCTION
4907 -- AcctLineType_24
4908 --
4909 ---------------------------------------
4913 ,p_calculate_acctd_flag IN VARCHAR2
4910 PROCEDURE AcctLineType_24 (
4911 p_application_id IN NUMBER
4912 ,p_event_id IN NUMBER
4914 ,p_calculate_g_l_flag IN VARCHAR2
4915 ,p_actual_flag IN OUT VARCHAR2
4916 ,p_balance_type_code OUT VARCHAR2
4917 ,p_gain_or_loss_ref OUT VARCHAR2
4918
4919 --Revenue CCID
4920 , p_source_18 IN NUMBER
4921 --Entered Currency Code
4922 , p_source_25 IN VARCHAR2
4923 --Exchange Rate Date
4924 , p_source_27 IN DATE
4925 --Exchange Rate
4926 , p_source_28 IN NUMBER
4927 --Exchange Rate Type
4928 , p_source_29 IN VARCHAR2
4929 --Revenue Distribution Type
4930 , p_source_36 IN VARCHAR2
4931 --System Linkage Function
4932 , p_source_37 IN VARCHAR2
4933 --Crediting Revenue Flag
4934 , p_source_38 IN VARCHAR2
4935 --Revenue First Distribution ID
4936 , p_source_39 IN NUMBER
4937 --Revenue Second Distribution ID
4938 , p_source_40 IN NUMBER
4939 --Entered Amount
4940 , p_source_41 IN NUMBER
4941 --Event ID
4942 , p_source_42 IN NUMBER
4943 --Accounted Amount
4944 , p_source_43 IN NUMBER
4945 )
4946 IS
4947
4948 l_component_type VARCHAR2(80);
4949 l_component_code VARCHAR2(30);
4950 l_component_type_code VARCHAR2(1);
4951 l_component_appl_id INTEGER;
4952 l_amb_context_code VARCHAR2(30);
4953 l_entity_code VARCHAR2(30);
4954 l_event_class_code VARCHAR2(30);
4955 l_ae_header_id NUMBER;
4956 l_event_type_code VARCHAR2(30);
4957 l_line_definition_code VARCHAR2(30);
4958 l_line_definition_owner_code VARCHAR2(1);
4959 --
4960 -- adr variables
4961 l_segment VARCHAR2(30);
4962 l_ccid NUMBER;
4963 l_adr_transaction_coa_id NUMBER;
4964 l_adr_accounting_coa_id NUMBER;
4965 l_adr_flexfield_segment_code VARCHAR2(30);
4966 l_adr_flex_value_set_id NUMBER;
4967 l_adr_value_type_code VARCHAR2(30);
4968 l_adr_value_combination_id NUMBER;
4969 l_adr_value_segment_code VARCHAR2(30);
4970
4971 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
4972 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
4973 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
4974 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
4975
4976 -- 4262811 Variables ------------------------------------------------------------------------------------------
4977 l_entered_amt_idx NUMBER;
4978 l_accted_amt_idx NUMBER;
4979 l_acc_rev_flag VARCHAR2(1);
4980 l_accrual_line_num NUMBER;
4981 l_tmp_amt NUMBER;
4982 l_acc_rev_natural_side_code VARCHAR2(1);
4983
4984 l_num_entries NUMBER;
4985 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
4986 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
4987 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
4988 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
4989 l_recog_line_1 NUMBER;
4990 l_recog_line_2 NUMBER;
4991
4992 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
4993 l_bflow_applied_to_amt NUMBER; -- 5132302
4994 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
4995
4996 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
4997
4998 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
4999 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5000
5001 ---------------------------------------------------------------------------------------------------------------
5002
5003
5004 --
5005 -- bulk performance
5006 --
5007 l_balance_type_code VARCHAR2(1);
5008 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5009 l_log_module VARCHAR2(240);
5010
5011 --
5012 -- Upgrade strategy
5013 --
5014 l_actual_upg_option VARCHAR2(1);
5015 l_enc_upg_option VARCHAR2(1);
5016
5017 --
5018 BEGIN
5019 --
5020 IF g_log_enabled THEN
5021 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_24';
5022 END IF;
5023 --
5024 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5025
5026 trace
5027 (p_msg => 'BEGIN of AcctLineType_24'
5028 ,p_level => C_LEVEL_PROCEDURE
5029 ,p_module => l_log_module);
5030
5031 END IF;
5032 --
5033 l_component_type := 'AMB_JLT';
5034 l_component_code := 'PA_BTC_REV';
5035 l_component_type_code := 'S';
5036 l_component_appl_id := 275;
5037 l_amb_context_code := 'DEFAULT';
5038 l_entity_code := 'REVENUE';
5039 l_event_class_code := 'REVENUE';
5040 l_event_type_code := 'REVENUE_ALL';
5041 l_line_definition_owner_code := 'S';
5042 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
5043 --
5044 l_balance_type_code := 'A';
5045 l_segment := NULL;
5046 l_ccid := NULL;
5047 l_adr_transaction_coa_id := NULL;
5048 l_adr_accounting_coa_id := NULL;
5049 l_adr_flexfield_segment_code := NULL;
5050 l_adr_flex_value_set_id := NULL;
5051 l_adr_value_type_code := NULL;
5052 l_adr_value_combination_id := NULL;
5053 l_adr_value_segment_code := NULL;
5054
5055 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5059
5056 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
5057 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5058 l_budgetary_control_flag := 'N';
5060 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5061 l_bflow_applied_to_amt := NULL; -- 5132302
5062 l_entered_amt_idx := NULL; -- 4262811
5063 l_accted_amt_idx := NULL; -- 4262811
5064 l_acc_rev_flag := NULL; -- 4262811
5065 l_accrual_line_num := NULL; -- 4262811
5066 l_tmp_amt := NULL; -- 4262811
5067 --
5068
5069 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5070 l_balance_type_code <> 'B' THEN
5071 IF NVL(p_source_36,'
5072 ') = 'Revenue - Normal Revenue' AND
5073 NVL(p_source_37,'
5074 ') = 'BTC' AND
5075 NVL(p_source_38,'
5076 ') = 'N'
5077 THEN
5078
5079 --
5080 XLA_AE_LINES_PKG.SetNewLine;
5081
5082 p_balance_type_code := l_balance_type_code;
5083 -- set the flag so later we will know whether the gain loss line needs to be created
5084
5085 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5086 p_actual_flag :='A';
5087 END IF;
5088
5089 --
5090 -- bulk performance
5091 --
5092 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5093 p_header_num => 0); -- 4262811
5094 --
5095 -- set accounting line options
5096 --
5097 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5098 p_natural_side_code => 'C'
5099 , p_gain_or_loss_flag => 'N'
5100 , p_gl_transfer_mode_code => 'S'
5101 , p_acct_entry_type_code => 'A'
5102 , p_switch_side_flag => 'Y'
5103 , p_merge_duplicate_code => 'N'
5104 );
5105 --
5106 l_acc_rev_natural_side_code := 'D'; -- 4262811
5107 --
5108 --
5109 -- set accounting line type info
5110 --
5111 xla_ae_lines_pkg.SetAcctLineType
5112 (p_component_type => l_component_type
5113 ,p_event_type_code => l_event_type_code
5114 ,p_line_definition_owner_code => l_line_definition_owner_code
5115 ,p_line_definition_code => l_line_definition_code
5116 ,p_accounting_line_code => l_component_code
5117 ,p_accounting_line_type_code => l_component_type_code
5118 ,p_accounting_line_appl_id => l_component_appl_id
5119 ,p_amb_context_code => l_amb_context_code
5120 ,p_entity_code => l_entity_code
5121 ,p_event_class_code => l_event_class_code);
5122 --
5123 -- set accounting class
5124 --
5125 xla_ae_lines_pkg.SetAcctClass(
5126 p_accounting_class_code => 'REVENUE'
5127 , p_ae_header_id => l_ae_header_id
5128 );
5129
5130 --
5131 -- set rounding class
5132 --
5133 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5134 'REVENUE';
5135
5136 --
5137 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5138 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5139 --
5140 -- bulk performance
5141 --
5142 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5143
5144 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5145 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5146
5147 -- 4955764
5148 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5149 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5150
5151 -- 4458381 Public Sector Enh
5152
5153 --
5154 -- set accounting attributes for the line type
5155 --
5156 l_entered_amt_idx := 4;
5157 l_accted_amt_idx := 10;
5158 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5159 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
5160 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
5161 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
5162 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
5163 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
5164 l_rec_acct_attrs.array_char_value(3) := p_source_36;
5165 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
5166 l_rec_acct_attrs.array_num_value(4) := p_source_41;
5167 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
5168 l_rec_acct_attrs.array_char_value(5) := p_source_25;
5169 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
5170 l_rec_acct_attrs.array_date_value(6) := p_source_27;
5171 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
5172 l_rec_acct_attrs.array_num_value(7) := p_source_28;
5173 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
5174 l_rec_acct_attrs.array_char_value(8) := p_source_29;
5175 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
5176 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
5177 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
5178 l_rec_acct_attrs.array_num_value(10) := p_source_43;
5179
5180 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5181 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5182
5183 ---------------------------------------------------------------------------------------------------------------
5187
5184 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5185 ---------------------------------------------------------------------------------------------------------------
5186 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5188 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5189 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5190
5191 IF xla_accounting_cache_pkg.GetValueChar
5192 (p_source_code => 'LEDGER_CATEGORY_CODE'
5193 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5194 AND l_bflow_method_code = 'PRIOR_ENTRY'
5195 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5196 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5197 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5198 )
5199 THEN
5200 xla_ae_lines_pkg.BflowUpgEntry
5201 (p_business_method_code => l_bflow_method_code
5202 ,p_business_class_code => l_bflow_class_code
5203 ,p_balance_type => l_balance_type_code);
5204 ELSE
5205 NULL;
5206 -- No business flow processing for business flow method of NONE.
5207 END IF;
5208
5209 --
5210 -- call analytical criteria
5211 --
5212
5213 --
5214 -- call description
5215 --
5216 -- No description or it is inherited.
5217 --
5218 -- call ADRs
5219 -- Bug 4922099
5220 --
5221 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5222 (NVL(l_actual_upg_option, 'N') = 'O') OR
5223 (NVL(l_enc_upg_option, 'N') = 'O')
5224 )
5225 THEN
5226 NULL;
5227 --
5228 --
5229
5230 l_ccid := AcctDerRule_17(
5231 p_application_id => p_application_id
5232 , p_ae_header_id => l_ae_header_id
5233 , p_source_18 => p_source_18
5234 , x_transaction_coa_id => l_adr_transaction_coa_id
5235 , x_accounting_coa_id => l_adr_accounting_coa_id
5236 , x_value_type_code => l_adr_value_type_code
5237 , p_side => 'NA'
5238 );
5239
5240 xla_ae_lines_pkg.set_ccid(
5241 p_code_combination_id => l_ccid
5242 , p_value_type_code => l_adr_value_type_code
5243 , p_transaction_coa_id => l_adr_transaction_coa_id
5244 , p_accounting_coa_id => l_adr_accounting_coa_id
5245 , p_adr_code => 'REVENUE_RULE'
5246 , p_adr_type_code => 'S'
5247 , p_component_type => l_component_type
5248 , p_component_code => l_component_code
5249 , p_component_type_code => l_component_type_code
5250 , p_component_appl_id => l_component_appl_id
5251 , p_amb_context_code => l_amb_context_code
5252 , p_side => 'NA'
5253 );
5254
5255
5256 --
5257 --
5258 END IF;
5259 --
5260 -- Bug 4922099
5261 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5262 (NVL(l_enc_upg_option, 'N') = 'O')
5263 ) AND
5264 (l_bflow_method_code = 'PRIOR_ENTRY')
5265 )
5266 THEN
5267 IF
5268 --
5269 1 = 2
5270 --
5271 THEN
5272 xla_accounting_err_pkg.build_message
5273 (p_appli_s_name => 'XLA'
5274 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5275 ,p_token_1 => 'LINE_NUMBER'
5276 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5277 ,p_token_2 => 'LINE_TYPE_NAME'
5278 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5279 l_component_type
5280 ,l_component_code
5281 ,l_component_type_code
5282 ,l_component_appl_id
5283 ,l_amb_context_code
5284 ,l_entity_code
5285 ,l_event_class_code
5286 )
5287 ,p_token_3 => 'OWNER'
5288 ,p_value_3 => xla_lookups_pkg.get_meaning(
5289 p_lookup_type => 'XLA_OWNER_TYPE'
5290 ,p_lookup_code => l_component_type_code
5291 )
5292 ,p_token_4 => 'PRODUCT_NAME'
5293 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5294 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5295 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5296 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5297 ,p_ae_header_id => NULL
5298 );
5299
5303 ,p_level => C_LEVEL_ERROR
5300 IF (C_LEVEL_ERROR>= g_log_level) THEN
5301 trace
5302 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5304 ,p_module => l_log_module);
5305 END IF;
5306 END IF;
5307 END IF;
5308 --
5309 --
5310 ------------------------------------------------------------------------------------------------
5311 -- 4219869 Business Flow
5312 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5313 -- Prior Entry. Currently, the following code is always generated.
5314 ------------------------------------------------------------------------------------------------
5315 XLA_AE_LINES_PKG.ValidateCurrentLine;
5316
5317 ------------------------------------------------------------------------------------
5318 -- 4219869 Business Flow
5319 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5320 ------------------------------------------------------------------------------------
5321 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5322
5323 ----------------------------------------------------------------------------------
5324 -- 4219869 Business Flow
5325 -- Update journal entry status -- Need to generate this within IF <condition>
5326 ----------------------------------------------------------------------------------
5327 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5328 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5329 ,p_balance_type_code => l_balance_type_code
5330 );
5331
5332 -------------------------------------------------------------------------------------------
5333 -- 4262811 - Generate the Accrual Reversal lines
5334 -------------------------------------------------------------------------------------------
5335 BEGIN
5336 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5337 (g_array_event(p_event_id).array_value_num('header_index'));
5338 IF l_acc_rev_flag IS NULL THEN
5339 l_acc_rev_flag := 'N';
5340 END IF;
5341 EXCEPTION
5342 WHEN OTHERS THEN
5343 l_acc_rev_flag := 'N';
5344 END;
5345 --
5346 IF (l_acc_rev_flag = 'Y') THEN
5347
5348 -- 4645092 ------------------------------------------------------------------------------
5349 -- To allow MPA report to determine if it should generate report process
5350 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5351 ------------------------------------------------------------------------------------------
5352
5353 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5354 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5355
5356 --
5357 -- Update the line information that should be overwritten
5358 --
5359 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
5360 p_header_num => 1);
5361 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
5362
5363 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
5364
5365 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
5366 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
5367 END IF;
5368
5369 --
5370 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
5371 --
5372 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
5373 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
5374 ELSE
5375 ---------------------------------------------------------------------------------------------------
5376 -- 4262811a Switch Sign
5377 ---------------------------------------------------------------------------------------------------
5378 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
5379 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5380 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5381 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
5382 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5383 -- 5132302
5384 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
5385 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
5386
5387 END IF;
5388
5389 -- 4955764
5390 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5391 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
5392
5393
5394 XLA_AE_LINES_PKG.ValidateCurrentLine;
5395 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5396
5397 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5398 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
5399 ,p_balance_type_code => l_balance_type_code);
5400
5401 END IF;
5402
5403 -----------------------------------------------------------------------------------------
5404 -- 4262811 Multiperiod Accounting
5405 -----------------------------------------------------------------------------------------
5406 -- No MPA option is assigned.
5407
5408
5409 END IF;
5410 END IF;
5411 --
5412
5413 --
5414 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5415 trace
5419 END IF;
5416 (p_msg => 'END of AcctLineType_24'
5417 ,p_level => C_LEVEL_PROCEDURE
5418 ,p_module => l_log_module);
5420 --
5421 EXCEPTION
5422 WHEN xla_exceptions_pkg.application_exception THEN
5423 RAISE;
5424 WHEN OTHERS THEN
5425 xla_exceptions_pkg.raise_message
5426 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_24');
5427 END AcctLineType_24;
5428 --
5429
5430 ---------------------------------------
5431 --
5432 -- PRIVATE FUNCTION
5433 -- AcctLineType_25
5434 --
5435 ---------------------------------------
5436 PROCEDURE AcctLineType_25 (
5437 p_application_id IN NUMBER
5438 ,p_event_id IN NUMBER
5439 ,p_calculate_acctd_flag IN VARCHAR2
5440 ,p_calculate_g_l_flag IN VARCHAR2
5441 ,p_actual_flag IN OUT VARCHAR2
5442 ,p_balance_type_code OUT VARCHAR2
5443 ,p_gain_or_loss_ref OUT VARCHAR2
5444
5445 --Budget Code Combination ID
5446 , p_source_2 IN NUMBER
5447 --Cost CCID
5448 , p_source_3 IN NUMBER
5449 --Allow Account Override Flag
5450 , p_source_4 IN VARCHAR2
5451 --Adjustment Cost CCID
5452 , p_source_5 IN NUMBER
5453 --Cost Clearing CCID
5454 , p_source_6 IN NUMBER
5455 --Reversing Line Flag
5456 , p_source_22 IN VARCHAR2
5457 --Actual Upgrade Credit Accounting Class
5458 , p_source_23 IN VARCHAR2
5459 --Entered Currency Code
5460 , p_source_25 IN VARCHAR2
5461 --Exchange Rate Date
5462 , p_source_27 IN DATE
5463 --Exchange Rate
5464 , p_source_28 IN NUMBER
5465 --Exchange Rate Type
5466 , p_source_29 IN VARCHAR2
5467 --Actual Upgrade Debit Accounting Class
5468 , p_source_30 IN VARCHAR2
5469 --Use Actuals Upgrade Attributes Flag
5470 , p_source_31 IN VARCHAR2
5471 --Expenditure Item ID
5472 , p_source_32 IN NUMBER
5473 --Cost Distribution Line Number
5474 , p_source_33 IN NUMBER
5475 --Line Type
5476 , p_source_34 IN VARCHAR2
5477 , p_source_34_meaning IN VARCHAR2
5478 --Reversed Line Number
5479 , p_source_35 IN NUMBER
5480 --Entered Burdened Cost
5481 , p_source_44 IN NUMBER
5482 --Accounted Burdened Cost
5483 , p_source_45 IN NUMBER
5484 --Encumbrance Amount
5485 , p_source_46 IN NUMBER
5486 --Project Encumbrance Applied to Application Identifier
5487 , p_source_47 IN NUMBER
5488 --Project Encumbrance Applied to Distribution Type
5489 , p_source_48 IN VARCHAR2
5490 --Project Encumbrance Applied to Entity Code
5491 , p_source_49 IN VARCHAR2
5492 --Project Encumbrance Applied to First Distribution ID
5493 , p_source_50 IN NUMBER
5494 --Project Encumbrance Applied to First System Transaction ID
5495 , p_source_51 IN NUMBER
5496 --Project Encumbrance Applied to Second Distribution ID
5497 , p_source_52 IN VARCHAR2
5498 --Encumbrance Upgrade Credit Accounting Class
5499 , p_source_53 IN VARCHAR2
5500 --Encumbrance Upgrade Debit Accounting Class
5501 , p_source_54 IN VARCHAR2
5502 --Use Encumbrance Upgrade Attributes Flag
5503 , p_source_55 IN VARCHAR2
5504 --Encumbrance Type ID
5505 , p_source_56 IN NUMBER
5506 --Project Encumbrance Type ID
5507 , p_source_57 IN NUMBER
5508 )
5509 IS
5510
5511 l_component_type VARCHAR2(80);
5512 l_component_code VARCHAR2(30);
5513 l_component_type_code VARCHAR2(1);
5514 l_component_appl_id INTEGER;
5515 l_amb_context_code VARCHAR2(30);
5516 l_entity_code VARCHAR2(30);
5517 l_event_class_code VARCHAR2(30);
5518 l_ae_header_id NUMBER;
5519 l_event_type_code VARCHAR2(30);
5520 l_line_definition_code VARCHAR2(30);
5521 l_line_definition_owner_code VARCHAR2(1);
5522 --
5523 -- adr variables
5524 l_segment VARCHAR2(30);
5525 l_ccid NUMBER;
5526 l_adr_transaction_coa_id NUMBER;
5527 l_adr_accounting_coa_id NUMBER;
5528 l_adr_flexfield_segment_code VARCHAR2(30);
5529 l_adr_flex_value_set_id NUMBER;
5530 l_adr_value_type_code VARCHAR2(30);
5531 l_adr_value_combination_id NUMBER;
5532 l_adr_value_segment_code VARCHAR2(30);
5533
5534 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
5535 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
5536 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
5537 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
5538
5539 -- 4262811 Variables ------------------------------------------------------------------------------------------
5540 l_entered_amt_idx NUMBER;
5541 l_accted_amt_idx NUMBER;
5542 l_acc_rev_flag VARCHAR2(1);
5543 l_accrual_line_num NUMBER;
5544 l_tmp_amt NUMBER;
5545 l_acc_rev_natural_side_code VARCHAR2(1);
5546
5547 l_num_entries NUMBER;
5548 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
5549 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
5550 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
5551 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
5552 l_recog_line_1 NUMBER;
5553 l_recog_line_2 NUMBER;
5554
5555 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
5556 l_bflow_applied_to_amt NUMBER; -- 5132302
5557 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
5558
5562 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5559 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
5560
5561 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
5563
5564 ---------------------------------------------------------------------------------------------------------------
5565
5566
5567 --
5568 -- bulk performance
5569 --
5570 l_balance_type_code VARCHAR2(1);
5571 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5572 l_log_module VARCHAR2(240);
5573
5574 --
5575 -- Upgrade strategy
5576 --
5577 l_actual_upg_option VARCHAR2(1);
5578 l_enc_upg_option VARCHAR2(1);
5579
5580 --
5581 BEGIN
5582 --
5583 IF g_log_enabled THEN
5584 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_25';
5585 END IF;
5586 --
5587 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
5588
5589 trace
5590 (p_msg => 'BEGIN of AcctLineType_25'
5591 ,p_level => C_LEVEL_PROCEDURE
5592 ,p_module => l_log_module);
5593
5594 END IF;
5595 --
5596 l_component_type := 'AMB_JLT';
5597 l_component_code := 'PA_BURDEN_COST';
5598 l_component_type_code := 'S';
5599 l_component_appl_id := 275;
5600 l_amb_context_code := 'DEFAULT';
5601 l_entity_code := 'EXPENDITURES';
5602 l_event_class_code := 'BURDEN_COST';
5603 l_event_type_code := 'BURDEN_COST_ALL';
5604 l_line_definition_owner_code := 'S';
5605 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
5606 --
5607 l_balance_type_code := 'A';
5608 l_segment := NULL;
5609 l_ccid := NULL;
5610 l_adr_transaction_coa_id := NULL;
5611 l_adr_accounting_coa_id := NULL;
5612 l_adr_flexfield_segment_code := NULL;
5613 l_adr_flex_value_set_id := NULL;
5614 l_adr_value_type_code := NULL;
5615 l_adr_value_combination_id := NULL;
5616 l_adr_value_segment_code := NULL;
5617
5618 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
5619 l_bflow_class_code := ''; -- 4219869 Business Flow
5620 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
5621 l_budgetary_control_flag := 'N';
5622
5623 l_bflow_applied_to_amt_idx := NULL; -- 5132302
5624 l_bflow_applied_to_amt := NULL; -- 5132302
5625 l_entered_amt_idx := NULL; -- 4262811
5626 l_accted_amt_idx := NULL; -- 4262811
5627 l_acc_rev_flag := NULL; -- 4262811
5628 l_accrual_line_num := NULL; -- 4262811
5629 l_tmp_amt := NULL; -- 4262811
5630 --
5631
5632 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
5633 l_balance_type_code <> 'B' THEN
5634 IF NVL(p_source_34,'
5635 ') = 'R'
5636 THEN
5637
5638 --
5639 XLA_AE_LINES_PKG.SetNewLine;
5640
5641 p_balance_type_code := l_balance_type_code;
5642 -- set the flag so later we will know whether the gain loss line needs to be created
5643
5644 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
5645 p_actual_flag :='A';
5646 END IF;
5647
5648 --
5649 -- bulk performance
5650 --
5651 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
5652 p_header_num => 0); -- 4262811
5653 --
5654 -- set accounting line options
5655 --
5656 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
5657 p_natural_side_code => 'D'
5658 , p_gain_or_loss_flag => 'N'
5659 , p_gl_transfer_mode_code => 'S'
5660 , p_acct_entry_type_code => 'A'
5661 , p_switch_side_flag => 'Y'
5662 , p_merge_duplicate_code => 'N'
5663 );
5664 --
5665 l_acc_rev_natural_side_code := 'C'; -- 4262811
5666 --
5667 --
5668 -- set accounting line type info
5669 --
5670 xla_ae_lines_pkg.SetAcctLineType
5671 (p_component_type => l_component_type
5672 ,p_event_type_code => l_event_type_code
5673 ,p_line_definition_owner_code => l_line_definition_owner_code
5674 ,p_line_definition_code => l_line_definition_code
5675 ,p_accounting_line_code => l_component_code
5676 ,p_accounting_line_type_code => l_component_type_code
5677 ,p_accounting_line_appl_id => l_component_appl_id
5678 ,p_amb_context_code => l_amb_context_code
5679 ,p_entity_code => l_entity_code
5680 ,p_event_class_code => l_event_class_code);
5681 --
5682 -- set accounting class
5683 --
5684 xla_ae_lines_pkg.SetAcctClass(
5685 p_accounting_class_code => 'COST'
5686 , p_ae_header_id => l_ae_header_id
5687 );
5688
5689 --
5690 -- set rounding class
5691 --
5692 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
5693 'COST';
5694
5695 --
5696 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
5697 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
5698 --
5699 -- bulk performance
5700 --
5701 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
5702
5703 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
5707 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
5704 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
5705
5706 -- 4955764
5708 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
5709
5710 -- 4458381 Public Sector Enh
5711
5712 --
5713 -- set accounting attributes for the line type
5714 --
5715 l_entered_amt_idx := 40;
5716 l_accted_amt_idx := 45;
5717 l_bflow_applied_to_amt_idx := 19; -- 5132302
5718 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
5719 l_rec_acct_attrs.array_char_value(1) := p_source_22;
5720 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
5721 l_rec_acct_attrs.array_char_value(2) := p_source_23;
5722 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
5723 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
5724 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
5725 l_rec_acct_attrs.array_num_value(4) := p_source_44;
5726 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
5727 l_rec_acct_attrs.array_char_value(5) := p_source_25;
5728 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
5729 l_rec_acct_attrs.array_num_value(6) := p_source_45;
5730 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
5731 l_rec_acct_attrs.array_date_value(7) := p_source_27;
5732 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
5733 l_rec_acct_attrs.array_num_value(8) := p_source_28;
5734 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
5735 l_rec_acct_attrs.array_char_value(9) := p_source_29;
5736 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
5737 l_rec_acct_attrs.array_char_value(10) := p_source_30;
5738 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
5739 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
5740 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
5741 l_rec_acct_attrs.array_num_value(12) := p_source_44;
5742 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
5743 l_rec_acct_attrs.array_char_value(13) := p_source_25;
5744 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
5745 l_rec_acct_attrs.array_num_value(14) := p_source_45;
5746 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
5747 l_rec_acct_attrs.array_date_value(15) := p_source_27;
5748 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
5749 l_rec_acct_attrs.array_num_value(16) := p_source_28;
5750 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
5751 l_rec_acct_attrs.array_char_value(17) := p_source_29;
5752 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
5753 l_rec_acct_attrs.array_char_value(18) := p_source_31;
5754 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
5755 l_rec_acct_attrs.array_num_value(19) := p_source_46;
5756 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
5757 l_rec_acct_attrs.array_num_value(20) := p_source_47;
5758 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
5759 l_rec_acct_attrs.array_char_value(21) := p_source_48;
5760 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
5761 l_rec_acct_attrs.array_char_value(22) := p_source_49;
5762 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
5763 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
5764 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
5765 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
5766 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
5767 l_rec_acct_attrs.array_char_value(25) := p_source_52;
5768 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
5769 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
5770 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
5771 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
5772 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
5773 l_rec_acct_attrs.array_char_value(28) := p_source_34;
5774 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
5775 l_rec_acct_attrs.array_char_value(29) := p_source_53;
5776 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
5777 l_rec_acct_attrs.array_num_value(30) := p_source_2;
5778 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
5779 l_rec_acct_attrs.array_num_value(31) := p_source_46;
5780 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
5781 l_rec_acct_attrs.array_char_value(32) := p_source_25;
5782 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
5783 l_rec_acct_attrs.array_num_value(33) := p_source_46;
5784 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
5785 l_rec_acct_attrs.array_char_value(34) := p_source_54;
5786 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
5787 l_rec_acct_attrs.array_num_value(35) := p_source_2;
5788 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
5789 l_rec_acct_attrs.array_num_value(36) := p_source_46;
5790 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
5791 l_rec_acct_attrs.array_char_value(37) := p_source_25;
5792 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
5793 l_rec_acct_attrs.array_num_value(38) := p_source_46;
5794 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
5795 l_rec_acct_attrs.array_char_value(39) := p_source_55;
5796 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
5797 l_rec_acct_attrs.array_num_value(40) := p_source_44;
5798 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
5802 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
5799 l_rec_acct_attrs.array_char_value(41) := p_source_25;
5800 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
5801 l_rec_acct_attrs.array_date_value(42) := p_source_27;
5803 l_rec_acct_attrs.array_num_value(43) := p_source_28;
5804 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
5805 l_rec_acct_attrs.array_char_value(44) := p_source_29;
5806 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
5807 l_rec_acct_attrs.array_num_value(45) := p_source_45;
5808 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
5809 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_32);
5810 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
5811 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_35);
5812 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
5813 l_rec_acct_attrs.array_char_value(48) := p_source_34;
5814 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
5815 l_rec_acct_attrs.array_num_value(49) := p_source_56;
5816 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
5817 l_rec_acct_attrs.array_num_value(50) := p_source_57;
5818
5819 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
5820 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
5821
5822 ---------------------------------------------------------------------------------------------------------------
5823 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
5824 ---------------------------------------------------------------------------------------------------------------
5825 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
5826
5827 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5828 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
5829
5830 IF xla_accounting_cache_pkg.GetValueChar
5831 (p_source_code => 'LEDGER_CATEGORY_CODE'
5832 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
5833 AND l_bflow_method_code = 'PRIOR_ENTRY'
5834 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
5835 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
5836 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
5837 )
5838 THEN
5839 xla_ae_lines_pkg.BflowUpgEntry
5840 (p_business_method_code => l_bflow_method_code
5841 ,p_business_class_code => l_bflow_class_code
5842 ,p_balance_type => l_balance_type_code);
5843 ELSE
5844 NULL;
5845 -- No business flow processing for business flow method of NONE.
5846 END IF;
5847
5848 --
5849 -- call analytical criteria
5850 --
5851
5852 --
5853 -- call description
5854 --
5855 -- No description or it is inherited.
5856 --
5857 -- call ADRs
5858 -- Bug 4922099
5859 --
5860 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
5861 (NVL(l_actual_upg_option, 'N') = 'O') OR
5862 (NVL(l_enc_upg_option, 'N') = 'O')
5863 )
5864 THEN
5865 NULL;
5866 --
5867 --
5868
5869 l_ccid := AcctDerRule_3(
5870 p_application_id => p_application_id
5871 , p_ae_header_id => l_ae_header_id
5872 , p_source_3 => p_source_3
5873 , p_source_4 => p_source_4
5874 , p_source_5 => p_source_5
5875 , x_transaction_coa_id => l_adr_transaction_coa_id
5876 , x_accounting_coa_id => l_adr_accounting_coa_id
5877 , x_value_type_code => l_adr_value_type_code
5878 , p_side => 'NA'
5879 );
5880
5881 xla_ae_lines_pkg.set_ccid(
5882 p_code_combination_id => l_ccid
5883 , p_value_type_code => l_adr_value_type_code
5884 , p_transaction_coa_id => l_adr_transaction_coa_id
5885 , p_accounting_coa_id => l_adr_accounting_coa_id
5886 , p_adr_code => 'PA_COST_ACCT_RULE'
5887 , p_adr_type_code => 'S'
5888 , p_component_type => l_component_type
5889 , p_component_code => l_component_code
5890 , p_component_type_code => l_component_type_code
5891 , p_component_appl_id => l_component_appl_id
5892 , p_amb_context_code => l_amb_context_code
5893 , p_side => 'NA'
5894 );
5895
5896
5897 --
5898 --
5899 END IF;
5900 --
5901 -- Bug 4922099
5902 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
5903 (NVL(l_enc_upg_option, 'N') = 'O')
5904 ) AND
5905 (l_bflow_method_code = 'PRIOR_ENTRY')
5906 )
5907 THEN
5908 IF
5909 --
5910 1 = 2
5911 --
5912 THEN
5913 xla_accounting_err_pkg.build_message
5914 (p_appli_s_name => 'XLA'
5915 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5916 ,p_token_1 => 'LINE_NUMBER'
5917 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
5918 ,p_token_2 => 'LINE_TYPE_NAME'
5919 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
5920 l_component_type
5921 ,l_component_code
5925 ,l_entity_code
5922 ,l_component_type_code
5923 ,l_component_appl_id
5924 ,l_amb_context_code
5926 ,l_event_class_code
5927 )
5928 ,p_token_3 => 'OWNER'
5929 ,p_value_3 => xla_lookups_pkg.get_meaning(
5930 p_lookup_type => 'XLA_OWNER_TYPE'
5931 ,p_lookup_code => l_component_type_code
5932 )
5933 ,p_token_4 => 'PRODUCT_NAME'
5934 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
5935 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
5936 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
5937 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
5938 ,p_ae_header_id => NULL
5939 );
5940
5941 IF (C_LEVEL_ERROR>= g_log_level) THEN
5942 trace
5943 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5944 ,p_level => C_LEVEL_ERROR
5945 ,p_module => l_log_module);
5946 END IF;
5947 END IF;
5948 END IF;
5949 --
5950 --
5951 ------------------------------------------------------------------------------------------------
5952 -- 4219869 Business Flow
5953 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
5954 -- Prior Entry. Currently, the following code is always generated.
5955 ------------------------------------------------------------------------------------------------
5956 XLA_AE_LINES_PKG.ValidateCurrentLine;
5957
5958 ------------------------------------------------------------------------------------
5959 -- 4219869 Business Flow
5960 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
5961 ------------------------------------------------------------------------------------
5962 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
5963
5964 ----------------------------------------------------------------------------------
5965 -- 4219869 Business Flow
5966 -- Update journal entry status -- Need to generate this within IF <condition>
5967 ----------------------------------------------------------------------------------
5968 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5969 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
5970 ,p_balance_type_code => l_balance_type_code
5971 );
5972
5973 -------------------------------------------------------------------------------------------
5974 -- 4262811 - Generate the Accrual Reversal lines
5975 -------------------------------------------------------------------------------------------
5976 BEGIN
5977 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
5978 (g_array_event(p_event_id).array_value_num('header_index'));
5979 IF l_acc_rev_flag IS NULL THEN
5980 l_acc_rev_flag := 'N';
5981 END IF;
5982 EXCEPTION
5983 WHEN OTHERS THEN
5984 l_acc_rev_flag := 'N';
5985 END;
5986 --
5987 IF (l_acc_rev_flag = 'Y') THEN
5988
5989 -- 4645092 ------------------------------------------------------------------------------
5990 -- To allow MPA report to determine if it should generate report process
5991 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
5992 ------------------------------------------------------------------------------------------
5993
5994 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
5995 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
5996
5997 --
5998 -- Update the line information that should be overwritten
5999 --
6000 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6001 p_header_num => 1);
6002 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6003
6004 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6005
6006 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6007 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6008 END IF;
6009
6010 --
6011 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6012 --
6013 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6014 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6015 ELSE
6016 ---------------------------------------------------------------------------------------------------
6017 -- 4262811a Switch Sign
6018 ---------------------------------------------------------------------------------------------------
6019 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6020 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6024 -- 5132302
6021 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6022 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6023 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6025 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6026 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6027
6028 END IF;
6029
6030 -- 4955764
6031 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6032 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6033
6034
6035 XLA_AE_LINES_PKG.ValidateCurrentLine;
6036 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6037
6038 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6039 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6040 ,p_balance_type_code => l_balance_type_code);
6041
6042 END IF;
6043
6044 -----------------------------------------------------------------------------------------
6045 -- 4262811 Multiperiod Accounting
6046 -----------------------------------------------------------------------------------------
6047 -- No MPA option is assigned.
6048
6049
6050 END IF;
6051 END IF;
6052 --
6053
6054 --
6055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6056 trace
6057 (p_msg => 'END of AcctLineType_25'
6058 ,p_level => C_LEVEL_PROCEDURE
6059 ,p_module => l_log_module);
6060 END IF;
6061 --
6062 EXCEPTION
6063 WHEN xla_exceptions_pkg.application_exception THEN
6064 RAISE;
6065 WHEN OTHERS THEN
6066 xla_exceptions_pkg.raise_message
6067 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_25');
6068 END AcctLineType_25;
6069 --
6070
6071 ---------------------------------------
6072 --
6073 -- PRIVATE FUNCTION
6074 -- AcctLineType_26
6075 --
6076 ---------------------------------------
6077 PROCEDURE AcctLineType_26 (
6078 p_application_id IN NUMBER
6079 ,p_event_id IN NUMBER
6080 ,p_calculate_acctd_flag IN VARCHAR2
6081 ,p_calculate_g_l_flag IN VARCHAR2
6082 ,p_actual_flag IN OUT VARCHAR2
6083 ,p_balance_type_code OUT VARCHAR2
6084 ,p_gain_or_loss_ref OUT VARCHAR2
6085
6086 --Budget Code Combination ID
6087 , p_source_2 IN NUMBER
6088 --Cost CCID
6089 , p_source_3 IN NUMBER
6090 --Allow Account Override Flag
6091 , p_source_4 IN VARCHAR2
6092 --Adjustment Cost CCID
6093 , p_source_5 IN NUMBER
6094 --Cost Clearing CCID
6095 , p_source_6 IN NUMBER
6096 --Reversing Line Flag
6097 , p_source_22 IN VARCHAR2
6098 --Actual Upgrade Credit Accounting Class
6099 , p_source_23 IN VARCHAR2
6100 --Entered Currency Code
6101 , p_source_25 IN VARCHAR2
6102 --Exchange Rate Date
6103 , p_source_27 IN DATE
6104 --Exchange Rate
6105 , p_source_28 IN NUMBER
6106 --Exchange Rate Type
6107 , p_source_29 IN VARCHAR2
6108 --Actual Upgrade Debit Accounting Class
6109 , p_source_30 IN VARCHAR2
6110 --Use Actuals Upgrade Attributes Flag
6111 , p_source_31 IN VARCHAR2
6112 --Expenditure Item ID
6113 , p_source_32 IN NUMBER
6114 --Cost Distribution Line Number
6115 , p_source_33 IN NUMBER
6116 --Line Type
6117 , p_source_34 IN VARCHAR2
6118 , p_source_34_meaning IN VARCHAR2
6119 --Reversed Line Number
6120 , p_source_35 IN NUMBER
6121 --Entered Burdened Cost
6122 , p_source_44 IN NUMBER
6123 --Accounted Burdened Cost
6124 , p_source_45 IN NUMBER
6125 --Encumbrance Amount
6126 , p_source_46 IN NUMBER
6127 --Project Encumbrance Applied to Application Identifier
6128 , p_source_47 IN NUMBER
6129 --Project Encumbrance Applied to Distribution Type
6130 , p_source_48 IN VARCHAR2
6131 --Project Encumbrance Applied to Entity Code
6132 , p_source_49 IN VARCHAR2
6133 --Project Encumbrance Applied to First Distribution ID
6134 , p_source_50 IN NUMBER
6135 --Project Encumbrance Applied to First System Transaction ID
6136 , p_source_51 IN NUMBER
6137 --Project Encumbrance Applied to Second Distribution ID
6138 , p_source_52 IN VARCHAR2
6139 --Encumbrance Upgrade Credit Accounting Class
6140 , p_source_53 IN VARCHAR2
6141 --Encumbrance Upgrade Debit Accounting Class
6142 , p_source_54 IN VARCHAR2
6143 --Use Encumbrance Upgrade Attributes Flag
6144 , p_source_55 IN VARCHAR2
6145 --Encumbrance Type ID
6146 , p_source_56 IN NUMBER
6147 --Project Encumbrance Type ID
6148 , p_source_57 IN NUMBER
6149 )
6150 IS
6151
6152 l_component_type VARCHAR2(80);
6153 l_component_code VARCHAR2(30);
6154 l_component_type_code VARCHAR2(1);
6155 l_component_appl_id INTEGER;
6156 l_amb_context_code VARCHAR2(30);
6157 l_entity_code VARCHAR2(30);
6158 l_event_class_code VARCHAR2(30);
6159 l_ae_header_id NUMBER;
6160 l_event_type_code VARCHAR2(30);
6161 l_line_definition_code VARCHAR2(30);
6162 l_line_definition_owner_code VARCHAR2(1);
6163 --
6164 -- adr variables
6165 l_segment VARCHAR2(30);
6166 l_ccid NUMBER;
6167 l_adr_transaction_coa_id NUMBER;
6171 l_adr_value_type_code VARCHAR2(30);
6168 l_adr_accounting_coa_id NUMBER;
6169 l_adr_flexfield_segment_code VARCHAR2(30);
6170 l_adr_flex_value_set_id NUMBER;
6172 l_adr_value_combination_id NUMBER;
6173 l_adr_value_segment_code VARCHAR2(30);
6174
6175 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6176 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6177 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6178 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6179
6180 -- 4262811 Variables ------------------------------------------------------------------------------------------
6181 l_entered_amt_idx NUMBER;
6182 l_accted_amt_idx NUMBER;
6183 l_acc_rev_flag VARCHAR2(1);
6184 l_accrual_line_num NUMBER;
6185 l_tmp_amt NUMBER;
6186 l_acc_rev_natural_side_code VARCHAR2(1);
6187
6188 l_num_entries NUMBER;
6189 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6190 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6191 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6192 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6193 l_recog_line_1 NUMBER;
6194 l_recog_line_2 NUMBER;
6195
6196 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6197 l_bflow_applied_to_amt NUMBER; -- 5132302
6198 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6199
6200 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6201
6202 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6203 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6204
6205 ---------------------------------------------------------------------------------------------------------------
6206
6207
6208 --
6209 -- bulk performance
6210 --
6211 l_balance_type_code VARCHAR2(1);
6212 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6213 l_log_module VARCHAR2(240);
6214
6215 --
6216 -- Upgrade strategy
6217 --
6218 l_actual_upg_option VARCHAR2(1);
6219 l_enc_upg_option VARCHAR2(1);
6220
6221 --
6222 BEGIN
6223 --
6224 IF g_log_enabled THEN
6225 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_26';
6226 END IF;
6227 --
6228 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6229
6230 trace
6231 (p_msg => 'BEGIN of AcctLineType_26'
6232 ,p_level => C_LEVEL_PROCEDURE
6233 ,p_module => l_log_module);
6234
6235 END IF;
6236 --
6237 l_component_type := 'AMB_JLT';
6238 l_component_code := 'PA_BURDEN_COST_ADJ';
6239 l_component_type_code := 'S';
6240 l_component_appl_id := 275;
6241 l_amb_context_code := 'DEFAULT';
6242 l_entity_code := 'EXPENDITURES';
6243 l_event_class_code := 'BURDEN_COST_ADJ';
6244 l_event_type_code := 'BURDEN_COST_ADJ_ALL';
6245 l_line_definition_owner_code := 'S';
6246 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
6247 --
6248 l_balance_type_code := 'A';
6249 l_segment := NULL;
6250 l_ccid := NULL;
6251 l_adr_transaction_coa_id := NULL;
6252 l_adr_accounting_coa_id := NULL;
6253 l_adr_flexfield_segment_code := NULL;
6254 l_adr_flex_value_set_id := NULL;
6255 l_adr_value_type_code := NULL;
6256 l_adr_value_combination_id := NULL;
6257 l_adr_value_segment_code := NULL;
6258
6259 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6260 l_bflow_class_code := ''; -- 4219869 Business Flow
6261 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6262 l_budgetary_control_flag := 'N';
6263
6264 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6265 l_bflow_applied_to_amt := NULL; -- 5132302
6266 l_entered_amt_idx := NULL; -- 4262811
6267 l_accted_amt_idx := NULL; -- 4262811
6268 l_acc_rev_flag := NULL; -- 4262811
6269 l_accrual_line_num := NULL; -- 4262811
6270 l_tmp_amt := NULL; -- 4262811
6271 --
6272
6273 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6274 l_balance_type_code <> 'B' THEN
6275 IF NVL(p_source_34,'
6276 ') = 'R'
6277 THEN
6278
6279 --
6280 XLA_AE_LINES_PKG.SetNewLine;
6281
6282 p_balance_type_code := l_balance_type_code;
6283 -- set the flag so later we will know whether the gain loss line needs to be created
6284
6285 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6286 p_actual_flag :='A';
6287 END IF;
6288
6289 --
6290 -- bulk performance
6291 --
6292 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6293 p_header_num => 0); -- 4262811
6294 --
6295 -- set accounting line options
6296 --
6297 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6298 p_natural_side_code => 'D'
6299 , p_gain_or_loss_flag => 'N'
6300 , p_gl_transfer_mode_code => 'S'
6301 , p_acct_entry_type_code => 'A'
6302 , p_switch_side_flag => 'Y'
6303 , p_merge_duplicate_code => 'N'
6304 );
6305 --
6306 l_acc_rev_natural_side_code := 'C'; -- 4262811
6307 --
6308 --
6309 -- set accounting line type info
6310 --
6314 ,p_line_definition_owner_code => l_line_definition_owner_code
6311 xla_ae_lines_pkg.SetAcctLineType
6312 (p_component_type => l_component_type
6313 ,p_event_type_code => l_event_type_code
6315 ,p_line_definition_code => l_line_definition_code
6316 ,p_accounting_line_code => l_component_code
6317 ,p_accounting_line_type_code => l_component_type_code
6318 ,p_accounting_line_appl_id => l_component_appl_id
6319 ,p_amb_context_code => l_amb_context_code
6320 ,p_entity_code => l_entity_code
6321 ,p_event_class_code => l_event_class_code);
6322 --
6323 -- set accounting class
6324 --
6325 xla_ae_lines_pkg.SetAcctClass(
6326 p_accounting_class_code => 'COST'
6327 , p_ae_header_id => l_ae_header_id
6328 );
6329
6330 --
6331 -- set rounding class
6332 --
6333 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6334 'COST';
6335
6336 --
6337 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6338 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6339 --
6340 -- bulk performance
6341 --
6342 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6343
6344 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6345 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6346
6347 -- 4955764
6348 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6349 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6350
6351 -- 4458381 Public Sector Enh
6352
6353 --
6354 -- set accounting attributes for the line type
6355 --
6356 l_entered_amt_idx := 40;
6357 l_accted_amt_idx := 45;
6358 l_bflow_applied_to_amt_idx := 19; -- 5132302
6359 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
6360 l_rec_acct_attrs.array_char_value(1) := p_source_22;
6361 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
6362 l_rec_acct_attrs.array_char_value(2) := p_source_23;
6363 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
6364 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
6365 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
6366 l_rec_acct_attrs.array_num_value(4) := p_source_44;
6367 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
6368 l_rec_acct_attrs.array_char_value(5) := p_source_25;
6369 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
6370 l_rec_acct_attrs.array_num_value(6) := p_source_45;
6371 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
6372 l_rec_acct_attrs.array_date_value(7) := p_source_27;
6373 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
6374 l_rec_acct_attrs.array_num_value(8) := p_source_28;
6375 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
6376 l_rec_acct_attrs.array_char_value(9) := p_source_29;
6377 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
6378 l_rec_acct_attrs.array_char_value(10) := p_source_30;
6379 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
6380 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
6381 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
6382 l_rec_acct_attrs.array_num_value(12) := p_source_44;
6383 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
6384 l_rec_acct_attrs.array_char_value(13) := p_source_25;
6385 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
6386 l_rec_acct_attrs.array_num_value(14) := p_source_45;
6387 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
6388 l_rec_acct_attrs.array_date_value(15) := p_source_27;
6389 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
6390 l_rec_acct_attrs.array_num_value(16) := p_source_28;
6391 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
6392 l_rec_acct_attrs.array_char_value(17) := p_source_29;
6393 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
6394 l_rec_acct_attrs.array_char_value(18) := p_source_31;
6395 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
6396 l_rec_acct_attrs.array_num_value(19) := p_source_46;
6397 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
6398 l_rec_acct_attrs.array_num_value(20) := p_source_47;
6399 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
6400 l_rec_acct_attrs.array_char_value(21) := p_source_48;
6401 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
6402 l_rec_acct_attrs.array_char_value(22) := p_source_49;
6403 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
6404 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
6405 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
6406 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
6407 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
6408 l_rec_acct_attrs.array_char_value(25) := p_source_52;
6409 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
6410 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
6411 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
6412 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
6413 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
6414 l_rec_acct_attrs.array_char_value(28) := p_source_34;
6418 l_rec_acct_attrs.array_num_value(30) := p_source_2;
6415 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
6416 l_rec_acct_attrs.array_char_value(29) := p_source_53;
6417 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
6419 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
6420 l_rec_acct_attrs.array_num_value(31) := p_source_46;
6421 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
6422 l_rec_acct_attrs.array_char_value(32) := p_source_25;
6423 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
6424 l_rec_acct_attrs.array_num_value(33) := p_source_46;
6425 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
6426 l_rec_acct_attrs.array_char_value(34) := p_source_54;
6427 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
6428 l_rec_acct_attrs.array_num_value(35) := p_source_2;
6429 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
6430 l_rec_acct_attrs.array_num_value(36) := p_source_46;
6431 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
6432 l_rec_acct_attrs.array_char_value(37) := p_source_25;
6433 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
6434 l_rec_acct_attrs.array_num_value(38) := p_source_46;
6435 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
6436 l_rec_acct_attrs.array_char_value(39) := p_source_55;
6437 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
6438 l_rec_acct_attrs.array_num_value(40) := p_source_44;
6439 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
6440 l_rec_acct_attrs.array_char_value(41) := p_source_25;
6441 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
6442 l_rec_acct_attrs.array_date_value(42) := p_source_27;
6443 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
6444 l_rec_acct_attrs.array_num_value(43) := p_source_28;
6445 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
6446 l_rec_acct_attrs.array_char_value(44) := p_source_29;
6447 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
6448 l_rec_acct_attrs.array_num_value(45) := p_source_45;
6449 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
6450 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_32);
6451 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
6452 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_35);
6453 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
6454 l_rec_acct_attrs.array_char_value(48) := p_source_34;
6455 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
6456 l_rec_acct_attrs.array_num_value(49) := p_source_56;
6457 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
6458 l_rec_acct_attrs.array_num_value(50) := p_source_57;
6459
6460 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
6461 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
6462
6463 ---------------------------------------------------------------------------------------------------------------
6464 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
6465 ---------------------------------------------------------------------------------------------------------------
6466 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
6467
6468 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6469 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
6470
6471 IF xla_accounting_cache_pkg.GetValueChar
6472 (p_source_code => 'LEDGER_CATEGORY_CODE'
6473 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
6474 AND l_bflow_method_code = 'PRIOR_ENTRY'
6475 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
6476 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
6477 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
6478 )
6479 THEN
6480 xla_ae_lines_pkg.BflowUpgEntry
6481 (p_business_method_code => l_bflow_method_code
6482 ,p_business_class_code => l_bflow_class_code
6483 ,p_balance_type => l_balance_type_code);
6484 ELSE
6485 NULL;
6486 -- No business flow processing for business flow method of NONE.
6487 END IF;
6488
6489 --
6490 -- call analytical criteria
6491 --
6492
6493 --
6494 -- call description
6495 --
6496 -- No description or it is inherited.
6497 --
6498 -- call ADRs
6499 -- Bug 4922099
6500 --
6501 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
6502 (NVL(l_actual_upg_option, 'N') = 'O') OR
6503 (NVL(l_enc_upg_option, 'N') = 'O')
6504 )
6505 THEN
6506 NULL;
6507 --
6508 --
6509
6510 l_ccid := AcctDerRule_4(
6511 p_application_id => p_application_id
6512 , p_ae_header_id => l_ae_header_id
6513 , p_source_4 => p_source_4
6514 , p_source_5 => p_source_5
6515 , x_transaction_coa_id => l_adr_transaction_coa_id
6516 , x_accounting_coa_id => l_adr_accounting_coa_id
6517 , x_value_type_code => l_adr_value_type_code
6518 , p_side => 'NA'
6519 );
6520
6521 xla_ae_lines_pkg.set_ccid(
6522 p_code_combination_id => l_ccid
6523 , p_value_type_code => l_adr_value_type_code
6524 , p_transaction_coa_id => l_adr_transaction_coa_id
6525 , p_accounting_coa_id => l_adr_accounting_coa_id
6526 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
6530 , p_component_type_code => l_component_type_code
6527 , p_adr_type_code => 'S'
6528 , p_component_type => l_component_type
6529 , p_component_code => l_component_code
6531 , p_component_appl_id => l_component_appl_id
6532 , p_amb_context_code => l_amb_context_code
6533 , p_side => 'NA'
6534 );
6535
6536
6537 --
6538 --
6539 END IF;
6540 --
6541 -- Bug 4922099
6542 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
6543 (NVL(l_enc_upg_option, 'N') = 'O')
6544 ) AND
6545 (l_bflow_method_code = 'PRIOR_ENTRY')
6546 )
6547 THEN
6548 IF
6549 --
6550 1 = 2
6551 --
6552 THEN
6553 xla_accounting_err_pkg.build_message
6554 (p_appli_s_name => 'XLA'
6555 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6556 ,p_token_1 => 'LINE_NUMBER'
6557 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
6558 ,p_token_2 => 'LINE_TYPE_NAME'
6559 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
6560 l_component_type
6561 ,l_component_code
6562 ,l_component_type_code
6563 ,l_component_appl_id
6564 ,l_amb_context_code
6565 ,l_entity_code
6566 ,l_event_class_code
6567 )
6568 ,p_token_3 => 'OWNER'
6569 ,p_value_3 => xla_lookups_pkg.get_meaning(
6570 p_lookup_type => 'XLA_OWNER_TYPE'
6571 ,p_lookup_code => l_component_type_code
6572 )
6573 ,p_token_4 => 'PRODUCT_NAME'
6574 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
6575 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
6576 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
6577 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
6578 ,p_ae_header_id => NULL
6579 );
6580
6581 IF (C_LEVEL_ERROR>= g_log_level) THEN
6582 trace
6583 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
6584 ,p_level => C_LEVEL_ERROR
6585 ,p_module => l_log_module);
6586 END IF;
6587 END IF;
6588 END IF;
6589 --
6590 --
6591 ------------------------------------------------------------------------------------------------
6592 -- 4219869 Business Flow
6593 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
6594 -- Prior Entry. Currently, the following code is always generated.
6595 ------------------------------------------------------------------------------------------------
6596 XLA_AE_LINES_PKG.ValidateCurrentLine;
6597
6598 ------------------------------------------------------------------------------------
6599 -- 4219869 Business Flow
6600 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
6601 ------------------------------------------------------------------------------------
6602 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6603
6604 ----------------------------------------------------------------------------------
6605 -- 4219869 Business Flow
6606 -- Update journal entry status -- Need to generate this within IF <condition>
6607 ----------------------------------------------------------------------------------
6608 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6609 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
6610 ,p_balance_type_code => l_balance_type_code
6611 );
6612
6613 -------------------------------------------------------------------------------------------
6614 -- 4262811 - Generate the Accrual Reversal lines
6615 -------------------------------------------------------------------------------------------
6616 BEGIN
6617 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
6618 (g_array_event(p_event_id).array_value_num('header_index'));
6619 IF l_acc_rev_flag IS NULL THEN
6620 l_acc_rev_flag := 'N';
6621 END IF;
6622 EXCEPTION
6623 WHEN OTHERS THEN
6624 l_acc_rev_flag := 'N';
6625 END;
6626 --
6627 IF (l_acc_rev_flag = 'Y') THEN
6628
6629 -- 4645092 ------------------------------------------------------------------------------
6630 -- To allow MPA report to determine if it should generate report process
6631 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
6632 ------------------------------------------------------------------------------------------
6633
6637 --
6634 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6635 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6636
6638 -- Update the line information that should be overwritten
6639 --
6640 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
6641 p_header_num => 1);
6642 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
6643
6644 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6645
6646 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6647 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
6648 END IF;
6649
6650 --
6651 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
6652 --
6653 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
6654 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
6655 ELSE
6656 ---------------------------------------------------------------------------------------------------
6657 -- 4262811a Switch Sign
6658 ---------------------------------------------------------------------------------------------------
6659 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
6660 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6661 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6662 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
6663 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6664 -- 5132302
6665 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
6666 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
6667
6668 END IF;
6669
6670 -- 4955764
6671 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6672 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
6673
6674
6675 XLA_AE_LINES_PKG.ValidateCurrentLine;
6676 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
6677
6678 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
6679 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
6680 ,p_balance_type_code => l_balance_type_code);
6681
6682 END IF;
6683
6684 -----------------------------------------------------------------------------------------
6685 -- 4262811 Multiperiod Accounting
6686 -----------------------------------------------------------------------------------------
6687 -- No MPA option is assigned.
6688
6689
6690 END IF;
6691 END IF;
6692 --
6693
6694 --
6695 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6696 trace
6697 (p_msg => 'END of AcctLineType_26'
6698 ,p_level => C_LEVEL_PROCEDURE
6699 ,p_module => l_log_module);
6700 END IF;
6701 --
6702 EXCEPTION
6703 WHEN xla_exceptions_pkg.application_exception THEN
6704 RAISE;
6705 WHEN OTHERS THEN
6706 xla_exceptions_pkg.raise_message
6707 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_26');
6708 END AcctLineType_26;
6709 --
6710
6711 ---------------------------------------
6712 --
6713 -- PRIVATE FUNCTION
6714 -- AcctLineType_27
6715 --
6716 ---------------------------------------
6717 PROCEDURE AcctLineType_27 (
6718 p_application_id IN NUMBER
6719 ,p_event_id IN NUMBER
6720 ,p_calculate_acctd_flag IN VARCHAR2
6721 ,p_calculate_g_l_flag IN VARCHAR2
6722 ,p_actual_flag IN OUT VARCHAR2
6723 ,p_balance_type_code OUT VARCHAR2
6724 ,p_gain_or_loss_ref OUT VARCHAR2
6725
6726 --Budget Code Combination ID
6727 , p_source_2 IN NUMBER
6728 --Cost CCID
6729 , p_source_3 IN NUMBER
6730 --Allow Account Override Flag
6731 , p_source_4 IN VARCHAR2
6732 --Cost Clearing CCID
6733 , p_source_6 IN NUMBER
6734 --Adjustment Cost Clearing CCID
6735 , p_source_7 IN NUMBER
6736 --Reversing Line Flag
6737 , p_source_22 IN VARCHAR2
6738 --Actual Upgrade Credit Accounting Class
6739 , p_source_23 IN VARCHAR2
6740 --Entered Currency Code
6741 , p_source_25 IN VARCHAR2
6742 --Exchange Rate Date
6743 , p_source_27 IN DATE
6744 --Exchange Rate
6745 , p_source_28 IN NUMBER
6746 --Exchange Rate Type
6747 , p_source_29 IN VARCHAR2
6748 --Actual Upgrade Debit Accounting Class
6749 , p_source_30 IN VARCHAR2
6750 --Use Actuals Upgrade Attributes Flag
6751 , p_source_31 IN VARCHAR2
6752 --Expenditure Item ID
6753 , p_source_32 IN NUMBER
6754 --Cost Distribution Line Number
6755 , p_source_33 IN NUMBER
6756 --Line Type
6757 , p_source_34 IN VARCHAR2
6758 , p_source_34_meaning IN VARCHAR2
6759 --Reversed Line Number
6760 , p_source_35 IN NUMBER
6761 --Entered Burdened Cost
6762 , p_source_44 IN NUMBER
6763 --Accounted Burdened Cost
6764 , p_source_45 IN NUMBER
6765 --Encumbrance Amount
6766 , p_source_46 IN NUMBER
6767 --Project Encumbrance Applied to Application Identifier
6768 , p_source_47 IN NUMBER
6769 --Project Encumbrance Applied to Distribution Type
6773 --Project Encumbrance Applied to First Distribution ID
6770 , p_source_48 IN VARCHAR2
6771 --Project Encumbrance Applied to Entity Code
6772 , p_source_49 IN VARCHAR2
6774 , p_source_50 IN NUMBER
6775 --Project Encumbrance Applied to First System Transaction ID
6776 , p_source_51 IN NUMBER
6777 --Project Encumbrance Applied to Second Distribution ID
6778 , p_source_52 IN VARCHAR2
6779 --Encumbrance Upgrade Credit Accounting Class
6780 , p_source_53 IN VARCHAR2
6781 --Encumbrance Upgrade Debit Accounting Class
6782 , p_source_54 IN VARCHAR2
6783 --Use Encumbrance Upgrade Attributes Flag
6784 , p_source_55 IN VARCHAR2
6785 --Encumbrance Type ID
6786 , p_source_56 IN NUMBER
6787 --Project Encumbrance Type ID
6788 , p_source_57 IN NUMBER
6789 )
6790 IS
6791
6792 l_component_type VARCHAR2(80);
6793 l_component_code VARCHAR2(30);
6794 l_component_type_code VARCHAR2(1);
6795 l_component_appl_id INTEGER;
6796 l_amb_context_code VARCHAR2(30);
6797 l_entity_code VARCHAR2(30);
6798 l_event_class_code VARCHAR2(30);
6799 l_ae_header_id NUMBER;
6800 l_event_type_code VARCHAR2(30);
6801 l_line_definition_code VARCHAR2(30);
6802 l_line_definition_owner_code VARCHAR2(1);
6803 --
6804 -- adr variables
6805 l_segment VARCHAR2(30);
6806 l_ccid NUMBER;
6807 l_adr_transaction_coa_id NUMBER;
6808 l_adr_accounting_coa_id NUMBER;
6809 l_adr_flexfield_segment_code VARCHAR2(30);
6810 l_adr_flex_value_set_id NUMBER;
6811 l_adr_value_type_code VARCHAR2(30);
6812 l_adr_value_combination_id NUMBER;
6813 l_adr_value_segment_code VARCHAR2(30);
6814
6815 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
6816 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
6817 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
6818 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
6819
6820 -- 4262811 Variables ------------------------------------------------------------------------------------------
6821 l_entered_amt_idx NUMBER;
6822 l_accted_amt_idx NUMBER;
6823 l_acc_rev_flag VARCHAR2(1);
6824 l_accrual_line_num NUMBER;
6825 l_tmp_amt NUMBER;
6826 l_acc_rev_natural_side_code VARCHAR2(1);
6827
6828 l_num_entries NUMBER;
6829 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
6830 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
6831 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
6832 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
6833 l_recog_line_1 NUMBER;
6834 l_recog_line_2 NUMBER;
6835
6836 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
6837 l_bflow_applied_to_amt NUMBER; -- 5132302
6838 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
6839
6840 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
6841
6842 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
6843 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
6844
6845 ---------------------------------------------------------------------------------------------------------------
6846
6847
6848 --
6849 -- bulk performance
6850 --
6851 l_balance_type_code VARCHAR2(1);
6852 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
6853 l_log_module VARCHAR2(240);
6854
6855 --
6856 -- Upgrade strategy
6857 --
6858 l_actual_upg_option VARCHAR2(1);
6859 l_enc_upg_option VARCHAR2(1);
6860
6861 --
6862 BEGIN
6863 --
6864 IF g_log_enabled THEN
6865 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_27';
6866 END IF;
6867 --
6868 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
6869
6870 trace
6871 (p_msg => 'BEGIN of AcctLineType_27'
6872 ,p_level => C_LEVEL_PROCEDURE
6873 ,p_module => l_log_module);
6874
6875 END IF;
6876 --
6877 l_component_type := 'AMB_JLT';
6878 l_component_code := 'PA_BURDEN_COST_ADJ_CLEARING';
6879 l_component_type_code := 'S';
6880 l_component_appl_id := 275;
6881 l_amb_context_code := 'DEFAULT';
6882 l_entity_code := 'EXPENDITURES';
6883 l_event_class_code := 'BURDEN_COST_ADJ';
6884 l_event_type_code := 'BURDEN_COST_ADJ_ALL';
6885 l_line_definition_owner_code := 'S';
6886 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
6887 --
6888 l_balance_type_code := 'A';
6889 l_segment := NULL;
6890 l_ccid := NULL;
6891 l_adr_transaction_coa_id := NULL;
6892 l_adr_accounting_coa_id := NULL;
6893 l_adr_flexfield_segment_code := NULL;
6894 l_adr_flex_value_set_id := NULL;
6895 l_adr_value_type_code := NULL;
6896 l_adr_value_combination_id := NULL;
6897 l_adr_value_segment_code := NULL;
6898
6899 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
6900 l_bflow_class_code := ''; -- 4219869 Business Flow
6901 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
6902 l_budgetary_control_flag := 'N';
6903
6904 l_bflow_applied_to_amt_idx := NULL; -- 5132302
6905 l_bflow_applied_to_amt := NULL; -- 5132302
6906 l_entered_amt_idx := NULL; -- 4262811
6907 l_accted_amt_idx := NULL; -- 4262811
6911 --
6908 l_acc_rev_flag := NULL; -- 4262811
6909 l_accrual_line_num := NULL; -- 4262811
6910 l_tmp_amt := NULL; -- 4262811
6912
6913 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
6914 l_balance_type_code <> 'B' THEN
6915 IF NVL(p_source_34,'
6916 ') = 'R'
6917 THEN
6918
6919 --
6920 XLA_AE_LINES_PKG.SetNewLine;
6921
6922 p_balance_type_code := l_balance_type_code;
6923 -- set the flag so later we will know whether the gain loss line needs to be created
6924
6925 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
6926 p_actual_flag :='A';
6927 END IF;
6928
6929 --
6930 -- bulk performance
6931 --
6932 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
6933 p_header_num => 0); -- 4262811
6934 --
6935 -- set accounting line options
6936 --
6937 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
6938 p_natural_side_code => 'C'
6939 , p_gain_or_loss_flag => 'N'
6940 , p_gl_transfer_mode_code => 'S'
6941 , p_acct_entry_type_code => 'A'
6942 , p_switch_side_flag => 'Y'
6943 , p_merge_duplicate_code => 'N'
6944 );
6945 --
6946 l_acc_rev_natural_side_code := 'D'; -- 4262811
6947 --
6948 --
6949 -- set accounting line type info
6950 --
6951 xla_ae_lines_pkg.SetAcctLineType
6952 (p_component_type => l_component_type
6953 ,p_event_type_code => l_event_type_code
6954 ,p_line_definition_owner_code => l_line_definition_owner_code
6955 ,p_line_definition_code => l_line_definition_code
6956 ,p_accounting_line_code => l_component_code
6957 ,p_accounting_line_type_code => l_component_type_code
6958 ,p_accounting_line_appl_id => l_component_appl_id
6959 ,p_amb_context_code => l_amb_context_code
6960 ,p_entity_code => l_entity_code
6961 ,p_event_class_code => l_event_class_code);
6962 --
6963 -- set accounting class
6964 --
6965 xla_ae_lines_pkg.SetAcctClass(
6966 p_accounting_class_code => 'COST_CLEARING'
6967 , p_ae_header_id => l_ae_header_id
6968 );
6969
6970 --
6971 -- set rounding class
6972 --
6973 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
6974 'COST_CLEARING';
6975
6976 --
6977 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
6978 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
6979 --
6980 -- bulk performance
6981 --
6982 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
6983
6984 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
6985 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
6986
6987 -- 4955764
6988 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
6989 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
6990
6991 -- 4458381 Public Sector Enh
6992
6993 --
6994 -- set accounting attributes for the line type
6995 --
6996 l_entered_amt_idx := 40;
6997 l_accted_amt_idx := 45;
6998 l_bflow_applied_to_amt_idx := 19; -- 5132302
6999 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7000 l_rec_acct_attrs.array_char_value(1) := p_source_22;
7001 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
7002 l_rec_acct_attrs.array_char_value(2) := p_source_23;
7003 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
7004 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
7005 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
7006 l_rec_acct_attrs.array_num_value(4) := p_source_44;
7007 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
7008 l_rec_acct_attrs.array_char_value(5) := p_source_25;
7009 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
7010 l_rec_acct_attrs.array_num_value(6) := p_source_45;
7011 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
7012 l_rec_acct_attrs.array_date_value(7) := p_source_27;
7013 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
7014 l_rec_acct_attrs.array_num_value(8) := p_source_28;
7015 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
7016 l_rec_acct_attrs.array_char_value(9) := p_source_29;
7017 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
7018 l_rec_acct_attrs.array_char_value(10) := p_source_30;
7019 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
7020 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
7021 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
7022 l_rec_acct_attrs.array_num_value(12) := p_source_44;
7023 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
7024 l_rec_acct_attrs.array_char_value(13) := p_source_25;
7025 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
7026 l_rec_acct_attrs.array_num_value(14) := p_source_45;
7027 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
7028 l_rec_acct_attrs.array_date_value(15) := p_source_27;
7029 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
7030 l_rec_acct_attrs.array_num_value(16) := p_source_28;
7034 l_rec_acct_attrs.array_char_value(18) := p_source_31;
7031 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
7032 l_rec_acct_attrs.array_char_value(17) := p_source_29;
7033 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
7035 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
7036 l_rec_acct_attrs.array_num_value(19) := p_source_46;
7037 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
7038 l_rec_acct_attrs.array_num_value(20) := p_source_47;
7039 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7040 l_rec_acct_attrs.array_char_value(21) := p_source_48;
7041 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
7042 l_rec_acct_attrs.array_char_value(22) := p_source_49;
7043 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
7044 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
7045 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7046 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
7047 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
7048 l_rec_acct_attrs.array_char_value(25) := p_source_52;
7049 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
7050 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
7051 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
7052 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
7053 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
7054 l_rec_acct_attrs.array_char_value(28) := p_source_34;
7055 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
7056 l_rec_acct_attrs.array_char_value(29) := p_source_53;
7057 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
7058 l_rec_acct_attrs.array_num_value(30) := p_source_2;
7059 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
7060 l_rec_acct_attrs.array_num_value(31) := p_source_46;
7061 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
7062 l_rec_acct_attrs.array_char_value(32) := p_source_25;
7063 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
7064 l_rec_acct_attrs.array_num_value(33) := p_source_46;
7065 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
7066 l_rec_acct_attrs.array_char_value(34) := p_source_54;
7067 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
7068 l_rec_acct_attrs.array_num_value(35) := p_source_2;
7069 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
7070 l_rec_acct_attrs.array_num_value(36) := p_source_46;
7071 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
7072 l_rec_acct_attrs.array_char_value(37) := p_source_25;
7073 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
7074 l_rec_acct_attrs.array_num_value(38) := p_source_46;
7075 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
7076 l_rec_acct_attrs.array_char_value(39) := p_source_55;
7077 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
7078 l_rec_acct_attrs.array_num_value(40) := p_source_44;
7079 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
7080 l_rec_acct_attrs.array_char_value(41) := p_source_25;
7081 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
7082 l_rec_acct_attrs.array_date_value(42) := p_source_27;
7083 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
7084 l_rec_acct_attrs.array_num_value(43) := p_source_28;
7085 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
7086 l_rec_acct_attrs.array_char_value(44) := p_source_29;
7087 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
7088 l_rec_acct_attrs.array_num_value(45) := p_source_45;
7089 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
7090 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_32);
7091 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
7092 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_35);
7093 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
7094 l_rec_acct_attrs.array_char_value(48) := p_source_34;
7095 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
7096 l_rec_acct_attrs.array_num_value(49) := p_source_56;
7097 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
7098 l_rec_acct_attrs.array_num_value(50) := p_source_57;
7099
7100 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7101 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7102
7103 ---------------------------------------------------------------------------------------------------------------
7104 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7105 ---------------------------------------------------------------------------------------------------------------
7106 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7107
7108 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7109 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7110
7111 IF xla_accounting_cache_pkg.GetValueChar
7112 (p_source_code => 'LEDGER_CATEGORY_CODE'
7113 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7114 AND l_bflow_method_code = 'PRIOR_ENTRY'
7115 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7116 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7117 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7118 )
7119 THEN
7120 xla_ae_lines_pkg.BflowUpgEntry
7121 (p_business_method_code => l_bflow_method_code
7125 NULL;
7122 ,p_business_class_code => l_bflow_class_code
7123 ,p_balance_type => l_balance_type_code);
7124 ELSE
7126 -- No business flow processing for business flow method of NONE.
7127 END IF;
7128
7129 --
7130 -- call analytical criteria
7131 --
7132
7133 --
7134 -- call description
7135 --
7136 -- No description or it is inherited.
7137 --
7138 -- call ADRs
7139 -- Bug 4922099
7140 --
7141 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7142 (NVL(l_actual_upg_option, 'N') = 'O') OR
7143 (NVL(l_enc_upg_option, 'N') = 'O')
7144 )
7145 THEN
7146 NULL;
7147 --
7148 --
7149
7150 l_ccid := AcctDerRule_6(
7151 p_application_id => p_application_id
7152 , p_ae_header_id => l_ae_header_id
7153 , p_source_4 => p_source_4
7154 , p_source_7 => p_source_7
7155 , x_transaction_coa_id => l_adr_transaction_coa_id
7156 , x_accounting_coa_id => l_adr_accounting_coa_id
7157 , x_value_type_code => l_adr_value_type_code
7158 , p_side => 'NA'
7159 );
7160
7161 xla_ae_lines_pkg.set_ccid(
7162 p_code_combination_id => l_ccid
7163 , p_value_type_code => l_adr_value_type_code
7164 , p_transaction_coa_id => l_adr_transaction_coa_id
7165 , p_accounting_coa_id => l_adr_accounting_coa_id
7166 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
7167 , p_adr_type_code => 'S'
7168 , p_component_type => l_component_type
7169 , p_component_code => l_component_code
7170 , p_component_type_code => l_component_type_code
7171 , p_component_appl_id => l_component_appl_id
7172 , p_amb_context_code => l_amb_context_code
7173 , p_side => 'NA'
7174 );
7175
7176
7177 --
7178 --
7179 END IF;
7180 --
7181 -- Bug 4922099
7182 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7183 (NVL(l_enc_upg_option, 'N') = 'O')
7184 ) AND
7185 (l_bflow_method_code = 'PRIOR_ENTRY')
7186 )
7187 THEN
7188 IF
7189 --
7190 1 = 2
7191 --
7192 THEN
7193 xla_accounting_err_pkg.build_message
7194 (p_appli_s_name => 'XLA'
7195 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7196 ,p_token_1 => 'LINE_NUMBER'
7197 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7198 ,p_token_2 => 'LINE_TYPE_NAME'
7199 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7200 l_component_type
7201 ,l_component_code
7202 ,l_component_type_code
7203 ,l_component_appl_id
7204 ,l_amb_context_code
7205 ,l_entity_code
7206 ,l_event_class_code
7207 )
7208 ,p_token_3 => 'OWNER'
7209 ,p_value_3 => xla_lookups_pkg.get_meaning(
7210 p_lookup_type => 'XLA_OWNER_TYPE'
7211 ,p_lookup_code => l_component_type_code
7212 )
7213 ,p_token_4 => 'PRODUCT_NAME'
7214 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7215 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7216 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7217 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7218 ,p_ae_header_id => NULL
7219 );
7220
7221 IF (C_LEVEL_ERROR>= g_log_level) THEN
7222 trace
7223 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7224 ,p_level => C_LEVEL_ERROR
7225 ,p_module => l_log_module);
7226 END IF;
7227 END IF;
7228 END IF;
7229 --
7230 --
7231 ------------------------------------------------------------------------------------------------
7232 -- 4219869 Business Flow
7233 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7234 -- Prior Entry. Currently, the following code is always generated.
7235 ------------------------------------------------------------------------------------------------
7236 XLA_AE_LINES_PKG.ValidateCurrentLine;
7237
7238 ------------------------------------------------------------------------------------
7239 -- 4219869 Business Flow
7240 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7241 ------------------------------------------------------------------------------------
7245 -- 4219869 Business Flow
7242 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7243
7244 ----------------------------------------------------------------------------------
7246 -- Update journal entry status -- Need to generate this within IF <condition>
7247 ----------------------------------------------------------------------------------
7248 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7249 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7250 ,p_balance_type_code => l_balance_type_code
7251 );
7252
7253 -------------------------------------------------------------------------------------------
7254 -- 4262811 - Generate the Accrual Reversal lines
7255 -------------------------------------------------------------------------------------------
7256 BEGIN
7257 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7258 (g_array_event(p_event_id).array_value_num('header_index'));
7259 IF l_acc_rev_flag IS NULL THEN
7260 l_acc_rev_flag := 'N';
7261 END IF;
7262 EXCEPTION
7263 WHEN OTHERS THEN
7264 l_acc_rev_flag := 'N';
7265 END;
7266 --
7267 IF (l_acc_rev_flag = 'Y') THEN
7268
7269 -- 4645092 ------------------------------------------------------------------------------
7270 -- To allow MPA report to determine if it should generate report process
7271 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7272 ------------------------------------------------------------------------------------------
7273
7274 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7275 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7276
7277 --
7278 -- Update the line information that should be overwritten
7279 --
7280 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7281 p_header_num => 1);
7282 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7283
7284 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7285
7286 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7287 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7288 END IF;
7289
7290 --
7291 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7292 --
7293 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7294 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7295 ELSE
7296 ---------------------------------------------------------------------------------------------------
7297 -- 4262811a Switch Sign
7298 ---------------------------------------------------------------------------------------------------
7299 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7300 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7301 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7302 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7303 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7304 -- 5132302
7305 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7306 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7307
7308 END IF;
7309
7310 -- 4955764
7311 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7312 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7313
7314
7315 XLA_AE_LINES_PKG.ValidateCurrentLine;
7316 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7317
7318 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7319 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7320 ,p_balance_type_code => l_balance_type_code);
7321
7322 END IF;
7323
7324 -----------------------------------------------------------------------------------------
7325 -- 4262811 Multiperiod Accounting
7326 -----------------------------------------------------------------------------------------
7327 -- No MPA option is assigned.
7328
7329
7330 END IF;
7331 END IF;
7332 --
7333
7334 --
7335 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7336 trace
7337 (p_msg => 'END of AcctLineType_27'
7338 ,p_level => C_LEVEL_PROCEDURE
7339 ,p_module => l_log_module);
7340 END IF;
7341 --
7342 EXCEPTION
7343 WHEN xla_exceptions_pkg.application_exception THEN
7344 RAISE;
7345 WHEN OTHERS THEN
7346 xla_exceptions_pkg.raise_message
7347 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_27');
7348 END AcctLineType_27;
7349 --
7350
7351 ---------------------------------------
7352 --
7353 -- PRIVATE FUNCTION
7354 -- AcctLineType_28
7355 --
7356 ---------------------------------------
7357 PROCEDURE AcctLineType_28 (
7358 p_application_id IN NUMBER
7359 ,p_event_id IN NUMBER
7360 ,p_calculate_acctd_flag IN VARCHAR2
7361 ,p_calculate_g_l_flag IN VARCHAR2
7362 ,p_actual_flag IN OUT VARCHAR2
7363 ,p_balance_type_code OUT VARCHAR2
7364 ,p_gain_or_loss_ref OUT VARCHAR2
7365
7366 --Budget Code Combination ID
7367 , p_source_2 IN NUMBER
7368 --Cost CCID
7372 --Cost Clearing CCID
7369 , p_source_3 IN NUMBER
7370 --Allow Account Override Flag
7371 , p_source_4 IN VARCHAR2
7373 , p_source_6 IN NUMBER
7374 --Adjustment Cost Clearing CCID
7375 , p_source_7 IN NUMBER
7376 --Reversing Line Flag
7377 , p_source_22 IN VARCHAR2
7378 --Actual Upgrade Credit Accounting Class
7379 , p_source_23 IN VARCHAR2
7380 --Entered Currency Code
7381 , p_source_25 IN VARCHAR2
7382 --Exchange Rate Date
7383 , p_source_27 IN DATE
7384 --Exchange Rate
7385 , p_source_28 IN NUMBER
7386 --Exchange Rate Type
7387 , p_source_29 IN VARCHAR2
7388 --Actual Upgrade Debit Accounting Class
7389 , p_source_30 IN VARCHAR2
7390 --Use Actuals Upgrade Attributes Flag
7391 , p_source_31 IN VARCHAR2
7392 --Expenditure Item ID
7393 , p_source_32 IN NUMBER
7394 --Cost Distribution Line Number
7395 , p_source_33 IN NUMBER
7396 --Line Type
7397 , p_source_34 IN VARCHAR2
7398 , p_source_34_meaning IN VARCHAR2
7399 --Reversed Line Number
7400 , p_source_35 IN NUMBER
7401 --Entered Burdened Cost
7402 , p_source_44 IN NUMBER
7403 --Accounted Burdened Cost
7404 , p_source_45 IN NUMBER
7405 --Encumbrance Amount
7406 , p_source_46 IN NUMBER
7407 --Project Encumbrance Applied to Application Identifier
7408 , p_source_47 IN NUMBER
7409 --Project Encumbrance Applied to Distribution Type
7410 , p_source_48 IN VARCHAR2
7411 --Project Encumbrance Applied to Entity Code
7412 , p_source_49 IN VARCHAR2
7413 --Project Encumbrance Applied to First Distribution ID
7414 , p_source_50 IN NUMBER
7415 --Project Encumbrance Applied to First System Transaction ID
7416 , p_source_51 IN NUMBER
7417 --Project Encumbrance Applied to Second Distribution ID
7418 , p_source_52 IN VARCHAR2
7419 --Encumbrance Upgrade Credit Accounting Class
7420 , p_source_53 IN VARCHAR2
7421 --Encumbrance Upgrade Debit Accounting Class
7422 , p_source_54 IN VARCHAR2
7423 --Use Encumbrance Upgrade Attributes Flag
7424 , p_source_55 IN VARCHAR2
7425 --Encumbrance Type ID
7426 , p_source_56 IN NUMBER
7427 --Project Encumbrance Type ID
7428 , p_source_57 IN NUMBER
7429 )
7430 IS
7431
7432 l_component_type VARCHAR2(80);
7433 l_component_code VARCHAR2(30);
7434 l_component_type_code VARCHAR2(1);
7435 l_component_appl_id INTEGER;
7436 l_amb_context_code VARCHAR2(30);
7437 l_entity_code VARCHAR2(30);
7438 l_event_class_code VARCHAR2(30);
7439 l_ae_header_id NUMBER;
7440 l_event_type_code VARCHAR2(30);
7441 l_line_definition_code VARCHAR2(30);
7442 l_line_definition_owner_code VARCHAR2(1);
7443 --
7444 -- adr variables
7445 l_segment VARCHAR2(30);
7446 l_ccid NUMBER;
7447 l_adr_transaction_coa_id NUMBER;
7448 l_adr_accounting_coa_id NUMBER;
7449 l_adr_flexfield_segment_code VARCHAR2(30);
7450 l_adr_flex_value_set_id NUMBER;
7451 l_adr_value_type_code VARCHAR2(30);
7452 l_adr_value_combination_id NUMBER;
7453 l_adr_value_segment_code VARCHAR2(30);
7454
7455 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
7456 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
7457 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
7458 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
7459
7460 -- 4262811 Variables ------------------------------------------------------------------------------------------
7461 l_entered_amt_idx NUMBER;
7462 l_accted_amt_idx NUMBER;
7463 l_acc_rev_flag VARCHAR2(1);
7464 l_accrual_line_num NUMBER;
7465 l_tmp_amt NUMBER;
7466 l_acc_rev_natural_side_code VARCHAR2(1);
7467
7468 l_num_entries NUMBER;
7469 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
7470 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
7471 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
7472 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
7473 l_recog_line_1 NUMBER;
7474 l_recog_line_2 NUMBER;
7475
7476 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
7477 l_bflow_applied_to_amt NUMBER; -- 5132302
7478 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
7479
7480 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
7481
7482 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
7483 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7484
7485 ---------------------------------------------------------------------------------------------------------------
7486
7487
7488 --
7489 -- bulk performance
7490 --
7491 l_balance_type_code VARCHAR2(1);
7492 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
7493 l_log_module VARCHAR2(240);
7494
7495 --
7496 -- Upgrade strategy
7497 --
7498 l_actual_upg_option VARCHAR2(1);
7499 l_enc_upg_option VARCHAR2(1);
7500
7501 --
7502 BEGIN
7503 --
7504 IF g_log_enabled THEN
7505 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_28';
7506 END IF;
7507 --
7508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7509
7510 trace
7511 (p_msg => 'BEGIN of AcctLineType_28'
7515 END IF;
7512 ,p_level => C_LEVEL_PROCEDURE
7513 ,p_module => l_log_module);
7514
7516 --
7517 l_component_type := 'AMB_JLT';
7518 l_component_code := 'PA_BURDEN_COST_CLEARING';
7519 l_component_type_code := 'S';
7520 l_component_appl_id := 275;
7521 l_amb_context_code := 'DEFAULT';
7522 l_entity_code := 'EXPENDITURES';
7523 l_event_class_code := 'BURDEN_COST';
7524 l_event_type_code := 'BURDEN_COST_ALL';
7525 l_line_definition_owner_code := 'S';
7526 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
7527 --
7528 l_balance_type_code := 'A';
7529 l_segment := NULL;
7530 l_ccid := NULL;
7531 l_adr_transaction_coa_id := NULL;
7532 l_adr_accounting_coa_id := NULL;
7533 l_adr_flexfield_segment_code := NULL;
7534 l_adr_flex_value_set_id := NULL;
7535 l_adr_value_type_code := NULL;
7536 l_adr_value_combination_id := NULL;
7537 l_adr_value_segment_code := NULL;
7538
7539 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
7540 l_bflow_class_code := ''; -- 4219869 Business Flow
7541 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
7542 l_budgetary_control_flag := 'N';
7543
7544 l_bflow_applied_to_amt_idx := NULL; -- 5132302
7545 l_bflow_applied_to_amt := NULL; -- 5132302
7546 l_entered_amt_idx := NULL; -- 4262811
7547 l_accted_amt_idx := NULL; -- 4262811
7548 l_acc_rev_flag := NULL; -- 4262811
7549 l_accrual_line_num := NULL; -- 4262811
7550 l_tmp_amt := NULL; -- 4262811
7551 --
7552
7553 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
7554 l_balance_type_code <> 'B' THEN
7555 IF NVL(p_source_34,'
7556 ') = 'R'
7557 THEN
7558
7559 --
7560 XLA_AE_LINES_PKG.SetNewLine;
7561
7562 p_balance_type_code := l_balance_type_code;
7563 -- set the flag so later we will know whether the gain loss line needs to be created
7564
7565 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
7566 p_actual_flag :='A';
7567 END IF;
7568
7569 --
7570 -- bulk performance
7571 --
7572 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
7573 p_header_num => 0); -- 4262811
7574 --
7575 -- set accounting line options
7576 --
7577 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
7578 p_natural_side_code => 'C'
7579 , p_gain_or_loss_flag => 'N'
7580 , p_gl_transfer_mode_code => 'S'
7581 , p_acct_entry_type_code => 'A'
7582 , p_switch_side_flag => 'Y'
7583 , p_merge_duplicate_code => 'N'
7584 );
7585 --
7586 l_acc_rev_natural_side_code := 'D'; -- 4262811
7587 --
7588 --
7589 -- set accounting line type info
7590 --
7591 xla_ae_lines_pkg.SetAcctLineType
7592 (p_component_type => l_component_type
7593 ,p_event_type_code => l_event_type_code
7594 ,p_line_definition_owner_code => l_line_definition_owner_code
7595 ,p_line_definition_code => l_line_definition_code
7596 ,p_accounting_line_code => l_component_code
7597 ,p_accounting_line_type_code => l_component_type_code
7598 ,p_accounting_line_appl_id => l_component_appl_id
7599 ,p_amb_context_code => l_amb_context_code
7600 ,p_entity_code => l_entity_code
7601 ,p_event_class_code => l_event_class_code);
7602 --
7603 -- set accounting class
7604 --
7605 xla_ae_lines_pkg.SetAcctClass(
7606 p_accounting_class_code => 'COST_CLEARING'
7607 , p_ae_header_id => l_ae_header_id
7608 );
7609
7610 --
7611 -- set rounding class
7612 --
7613 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
7614 'COST_CLEARING';
7615
7616 --
7617 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
7618 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
7619 --
7620 -- bulk performance
7621 --
7622 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
7623
7624 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
7625 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
7626
7627 -- 4955764
7628 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7629 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
7630
7631 -- 4458381 Public Sector Enh
7632
7633 --
7634 -- set accounting attributes for the line type
7635 --
7636 l_entered_amt_idx := 40;
7637 l_accted_amt_idx := 45;
7638 l_bflow_applied_to_amt_idx := 19; -- 5132302
7639 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
7640 l_rec_acct_attrs.array_char_value(1) := p_source_22;
7641 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
7642 l_rec_acct_attrs.array_char_value(2) := p_source_23;
7643 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
7644 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
7645 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
7646 l_rec_acct_attrs.array_num_value(4) := p_source_44;
7650 l_rec_acct_attrs.array_num_value(6) := p_source_45;
7647 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
7648 l_rec_acct_attrs.array_char_value(5) := p_source_25;
7649 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
7651 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
7652 l_rec_acct_attrs.array_date_value(7) := p_source_27;
7653 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
7654 l_rec_acct_attrs.array_num_value(8) := p_source_28;
7655 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
7656 l_rec_acct_attrs.array_char_value(9) := p_source_29;
7657 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
7658 l_rec_acct_attrs.array_char_value(10) := p_source_30;
7659 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
7660 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
7661 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
7662 l_rec_acct_attrs.array_num_value(12) := p_source_44;
7663 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
7664 l_rec_acct_attrs.array_char_value(13) := p_source_25;
7665 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
7666 l_rec_acct_attrs.array_num_value(14) := p_source_45;
7667 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
7668 l_rec_acct_attrs.array_date_value(15) := p_source_27;
7669 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
7670 l_rec_acct_attrs.array_num_value(16) := p_source_28;
7671 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
7672 l_rec_acct_attrs.array_char_value(17) := p_source_29;
7673 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
7674 l_rec_acct_attrs.array_char_value(18) := p_source_31;
7675 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
7676 l_rec_acct_attrs.array_num_value(19) := p_source_46;
7677 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
7678 l_rec_acct_attrs.array_num_value(20) := p_source_47;
7679 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
7680 l_rec_acct_attrs.array_char_value(21) := p_source_48;
7681 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
7682 l_rec_acct_attrs.array_char_value(22) := p_source_49;
7683 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
7684 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
7685 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
7686 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
7687 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
7688 l_rec_acct_attrs.array_char_value(25) := p_source_52;
7689 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
7690 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
7691 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
7692 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
7693 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
7694 l_rec_acct_attrs.array_char_value(28) := p_source_34;
7695 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
7696 l_rec_acct_attrs.array_char_value(29) := p_source_53;
7697 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
7698 l_rec_acct_attrs.array_num_value(30) := p_source_2;
7699 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
7700 l_rec_acct_attrs.array_num_value(31) := p_source_46;
7701 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
7702 l_rec_acct_attrs.array_char_value(32) := p_source_25;
7703 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
7704 l_rec_acct_attrs.array_num_value(33) := p_source_46;
7705 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
7706 l_rec_acct_attrs.array_char_value(34) := p_source_54;
7707 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
7708 l_rec_acct_attrs.array_num_value(35) := p_source_2;
7709 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
7710 l_rec_acct_attrs.array_num_value(36) := p_source_46;
7711 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
7712 l_rec_acct_attrs.array_char_value(37) := p_source_25;
7713 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
7714 l_rec_acct_attrs.array_num_value(38) := p_source_46;
7715 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
7716 l_rec_acct_attrs.array_char_value(39) := p_source_55;
7717 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
7718 l_rec_acct_attrs.array_num_value(40) := p_source_44;
7719 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
7720 l_rec_acct_attrs.array_char_value(41) := p_source_25;
7721 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
7722 l_rec_acct_attrs.array_date_value(42) := p_source_27;
7723 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
7724 l_rec_acct_attrs.array_num_value(43) := p_source_28;
7725 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
7726 l_rec_acct_attrs.array_char_value(44) := p_source_29;
7727 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
7728 l_rec_acct_attrs.array_num_value(45) := p_source_45;
7729 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
7730 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_32);
7731 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
7732 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_35);
7733 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
7734 l_rec_acct_attrs.array_char_value(48) := p_source_34;
7735 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
7736 l_rec_acct_attrs.array_num_value(49) := p_source_56;
7740 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
7737 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
7738 l_rec_acct_attrs.array_num_value(50) := p_source_57;
7739
7741 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
7742
7743 ---------------------------------------------------------------------------------------------------------------
7744 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
7745 ---------------------------------------------------------------------------------------------------------------
7746 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
7747
7748 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7749 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
7750
7751 IF xla_accounting_cache_pkg.GetValueChar
7752 (p_source_code => 'LEDGER_CATEGORY_CODE'
7753 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
7754 AND l_bflow_method_code = 'PRIOR_ENTRY'
7755 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
7756 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
7757 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
7758 )
7759 THEN
7760 xla_ae_lines_pkg.BflowUpgEntry
7761 (p_business_method_code => l_bflow_method_code
7762 ,p_business_class_code => l_bflow_class_code
7763 ,p_balance_type => l_balance_type_code);
7764 ELSE
7765 NULL;
7766 -- No business flow processing for business flow method of NONE.
7767 END IF;
7768
7769 --
7770 -- call analytical criteria
7771 --
7772
7773 --
7774 -- call description
7775 --
7776 -- No description or it is inherited.
7777 --
7778 -- call ADRs
7779 -- Bug 4922099
7780 --
7781 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
7782 (NVL(l_actual_upg_option, 'N') = 'O') OR
7783 (NVL(l_enc_upg_option, 'N') = 'O')
7784 )
7785 THEN
7786 NULL;
7787 --
7788 --
7789
7790 l_ccid := AcctDerRule_5(
7791 p_application_id => p_application_id
7792 , p_ae_header_id => l_ae_header_id
7793 , p_source_4 => p_source_4
7794 , p_source_6 => p_source_6
7795 , p_source_7 => p_source_7
7796 , x_transaction_coa_id => l_adr_transaction_coa_id
7797 , x_accounting_coa_id => l_adr_accounting_coa_id
7798 , x_value_type_code => l_adr_value_type_code
7799 , p_side => 'NA'
7800 );
7801
7802 xla_ae_lines_pkg.set_ccid(
7803 p_code_combination_id => l_ccid
7804 , p_value_type_code => l_adr_value_type_code
7805 , p_transaction_coa_id => l_adr_transaction_coa_id
7806 , p_accounting_coa_id => l_adr_accounting_coa_id
7807 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
7808 , p_adr_type_code => 'S'
7809 , p_component_type => l_component_type
7810 , p_component_code => l_component_code
7811 , p_component_type_code => l_component_type_code
7812 , p_component_appl_id => l_component_appl_id
7813 , p_amb_context_code => l_amb_context_code
7814 , p_side => 'NA'
7815 );
7816
7817
7818 --
7819 --
7820 END IF;
7821 --
7822 -- Bug 4922099
7823 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
7824 (NVL(l_enc_upg_option, 'N') = 'O')
7825 ) AND
7826 (l_bflow_method_code = 'PRIOR_ENTRY')
7827 )
7828 THEN
7829 IF
7830 --
7831 1 = 2
7832 --
7833 THEN
7834 xla_accounting_err_pkg.build_message
7835 (p_appli_s_name => 'XLA'
7836 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7837 ,p_token_1 => 'LINE_NUMBER'
7838 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
7839 ,p_token_2 => 'LINE_TYPE_NAME'
7840 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
7841 l_component_type
7842 ,l_component_code
7843 ,l_component_type_code
7844 ,l_component_appl_id
7845 ,l_amb_context_code
7846 ,l_entity_code
7847 ,l_event_class_code
7848 )
7849 ,p_token_3 => 'OWNER'
7850 ,p_value_3 => xla_lookups_pkg.get_meaning(
7851 p_lookup_type => 'XLA_OWNER_TYPE'
7852 ,p_lookup_code => l_component_type_code
7853 )
7854 ,p_token_4 => 'PRODUCT_NAME'
7858 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
7855 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
7856 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
7857 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
7859 ,p_ae_header_id => NULL
7860 );
7861
7862 IF (C_LEVEL_ERROR>= g_log_level) THEN
7863 trace
7864 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
7865 ,p_level => C_LEVEL_ERROR
7866 ,p_module => l_log_module);
7867 END IF;
7868 END IF;
7869 END IF;
7870 --
7871 --
7872 ------------------------------------------------------------------------------------------------
7873 -- 4219869 Business Flow
7874 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
7875 -- Prior Entry. Currently, the following code is always generated.
7876 ------------------------------------------------------------------------------------------------
7877 XLA_AE_LINES_PKG.ValidateCurrentLine;
7878
7879 ------------------------------------------------------------------------------------
7880 -- 4219869 Business Flow
7881 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
7882 ------------------------------------------------------------------------------------
7883 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7884
7885 ----------------------------------------------------------------------------------
7886 -- 4219869 Business Flow
7887 -- Update journal entry status -- Need to generate this within IF <condition>
7888 ----------------------------------------------------------------------------------
7889 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7890 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
7891 ,p_balance_type_code => l_balance_type_code
7892 );
7893
7894 -------------------------------------------------------------------------------------------
7895 -- 4262811 - Generate the Accrual Reversal lines
7896 -------------------------------------------------------------------------------------------
7897 BEGIN
7898 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
7899 (g_array_event(p_event_id).array_value_num('header_index'));
7900 IF l_acc_rev_flag IS NULL THEN
7901 l_acc_rev_flag := 'N';
7902 END IF;
7903 EXCEPTION
7904 WHEN OTHERS THEN
7905 l_acc_rev_flag := 'N';
7906 END;
7907 --
7908 IF (l_acc_rev_flag = 'Y') THEN
7909
7910 -- 4645092 ------------------------------------------------------------------------------
7911 -- To allow MPA report to determine if it should generate report process
7912 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
7913 ------------------------------------------------------------------------------------------
7914
7915 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
7916 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7917
7918 --
7919 -- Update the line information that should be overwritten
7920 --
7921 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
7922 p_header_num => 1);
7923 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
7924
7925 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
7926
7927 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
7928 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
7929 END IF;
7930
7931 --
7932 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
7933 --
7934 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
7935 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
7936 ELSE
7937 ---------------------------------------------------------------------------------------------------
7938 -- 4262811a Switch Sign
7939 ---------------------------------------------------------------------------------------------------
7940 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
7941 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7942 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7943 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
7944 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7945 -- 5132302
7946 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
7947 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
7948
7949 END IF;
7950
7951 -- 4955764
7952 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
7953 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
7954
7955
7956 XLA_AE_LINES_PKG.ValidateCurrentLine;
7957 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7958
7959 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
7963 END IF;
7960 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
7961 ,p_balance_type_code => l_balance_type_code);
7962
7964
7965 -----------------------------------------------------------------------------------------
7966 -- 4262811 Multiperiod Accounting
7967 -----------------------------------------------------------------------------------------
7968 -- No MPA option is assigned.
7969
7970
7971 END IF;
7972 END IF;
7973 --
7974
7975 --
7976 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
7977 trace
7978 (p_msg => 'END of AcctLineType_28'
7979 ,p_level => C_LEVEL_PROCEDURE
7980 ,p_module => l_log_module);
7981 END IF;
7982 --
7983 EXCEPTION
7984 WHEN xla_exceptions_pkg.application_exception THEN
7985 RAISE;
7986 WHEN OTHERS THEN
7987 xla_exceptions_pkg.raise_message
7988 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_28');
7989 END AcctLineType_28;
7990 --
7991
7992 ---------------------------------------
7993 --
7994 -- PRIVATE FUNCTION
7995 -- AcctLineType_29
7996 --
7997 ---------------------------------------
7998 PROCEDURE AcctLineType_29 (
7999 p_application_id IN NUMBER
8000 ,p_event_id IN NUMBER
8001 ,p_calculate_acctd_flag IN VARCHAR2
8002 ,p_calculate_g_l_flag IN VARCHAR2
8003 ,p_actual_flag IN OUT VARCHAR2
8004 ,p_balance_type_code OUT VARCHAR2
8005 ,p_gain_or_loss_ref OUT VARCHAR2
8006
8007 --Revenue CCID
8008 , p_source_18 IN NUMBER
8009 --Entered Currency Code
8010 , p_source_25 IN VARCHAR2
8011 --Exchange Rate Date
8012 , p_source_27 IN DATE
8013 --Exchange Rate
8014 , p_source_28 IN NUMBER
8015 --Exchange Rate Type
8016 , p_source_29 IN VARCHAR2
8017 --Revenue Distribution Type
8018 , p_source_36 IN VARCHAR2
8019 --System Linkage Function
8020 , p_source_37 IN VARCHAR2
8021 --Crediting Revenue Flag
8022 , p_source_38 IN VARCHAR2
8023 --Revenue First Distribution ID
8024 , p_source_39 IN NUMBER
8025 --Revenue Second Distribution ID
8026 , p_source_40 IN NUMBER
8027 --Entered Amount
8028 , p_source_41 IN NUMBER
8029 --Event ID
8030 , p_source_42 IN NUMBER
8031 --Accounted Amount
8032 , p_source_43 IN NUMBER
8033 )
8034 IS
8035
8036 l_component_type VARCHAR2(80);
8037 l_component_code VARCHAR2(30);
8038 l_component_type_code VARCHAR2(1);
8039 l_component_appl_id INTEGER;
8040 l_amb_context_code VARCHAR2(30);
8041 l_entity_code VARCHAR2(30);
8042 l_event_class_code VARCHAR2(30);
8043 l_ae_header_id NUMBER;
8044 l_event_type_code VARCHAR2(30);
8045 l_line_definition_code VARCHAR2(30);
8046 l_line_definition_owner_code VARCHAR2(1);
8047 --
8048 -- adr variables
8049 l_segment VARCHAR2(30);
8050 l_ccid NUMBER;
8051 l_adr_transaction_coa_id NUMBER;
8052 l_adr_accounting_coa_id NUMBER;
8053 l_adr_flexfield_segment_code VARCHAR2(30);
8054 l_adr_flex_value_set_id NUMBER;
8055 l_adr_value_type_code VARCHAR2(30);
8056 l_adr_value_combination_id NUMBER;
8057 l_adr_value_segment_code VARCHAR2(30);
8058
8059 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8060 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8061 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8062 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8063
8064 -- 4262811 Variables ------------------------------------------------------------------------------------------
8065 l_entered_amt_idx NUMBER;
8066 l_accted_amt_idx NUMBER;
8067 l_acc_rev_flag VARCHAR2(1);
8068 l_accrual_line_num NUMBER;
8069 l_tmp_amt NUMBER;
8070 l_acc_rev_natural_side_code VARCHAR2(1);
8071
8072 l_num_entries NUMBER;
8073 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8074 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8075 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8076 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8077 l_recog_line_1 NUMBER;
8078 l_recog_line_2 NUMBER;
8079
8080 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8081 l_bflow_applied_to_amt NUMBER; -- 5132302
8082 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8083
8084 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8085
8086 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8087 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8088
8089 ---------------------------------------------------------------------------------------------------------------
8090
8091
8092 --
8093 -- bulk performance
8094 --
8095 l_balance_type_code VARCHAR2(1);
8096 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8097 l_log_module VARCHAR2(240);
8098
8099 --
8100 -- Upgrade strategy
8101 --
8102 l_actual_upg_option VARCHAR2(1);
8103 l_enc_upg_option VARCHAR2(1);
8104
8105 --
8106 BEGIN
8107 --
8108 IF g_log_enabled THEN
8109 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_29';
8110 END IF;
8111 --
8115 (p_msg => 'BEGIN of AcctLineType_29'
8112 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8113
8114 trace
8116 ,p_level => C_LEVEL_PROCEDURE
8117 ,p_module => l_log_module);
8118
8119 END IF;
8120 --
8121 l_component_type := 'AMB_JLT';
8122 l_component_code := 'PA_ER_REV';
8123 l_component_type_code := 'S';
8124 l_component_appl_id := 275;
8125 l_amb_context_code := 'DEFAULT';
8126 l_entity_code := 'REVENUE';
8127 l_event_class_code := 'REVENUE';
8128 l_event_type_code := 'REVENUE_ALL';
8129 l_line_definition_owner_code := 'S';
8130 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
8131 --
8132 l_balance_type_code := 'A';
8133 l_segment := NULL;
8134 l_ccid := NULL;
8135 l_adr_transaction_coa_id := NULL;
8136 l_adr_accounting_coa_id := NULL;
8137 l_adr_flexfield_segment_code := NULL;
8138 l_adr_flex_value_set_id := NULL;
8139 l_adr_value_type_code := NULL;
8140 l_adr_value_combination_id := NULL;
8141 l_adr_value_segment_code := NULL;
8142
8143 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8144 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
8145 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8146 l_budgetary_control_flag := 'N';
8147
8148 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8149 l_bflow_applied_to_amt := NULL; -- 5132302
8150 l_entered_amt_idx := NULL; -- 4262811
8151 l_accted_amt_idx := NULL; -- 4262811
8152 l_acc_rev_flag := NULL; -- 4262811
8153 l_accrual_line_num := NULL; -- 4262811
8154 l_tmp_amt := NULL; -- 4262811
8155 --
8156
8157 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8158 l_balance_type_code <> 'B' THEN
8159 IF NVL(p_source_36,'
8160 ') = 'Revenue - Normal Revenue' AND
8161 NVL(p_source_37,'
8162 ') = 'ER' AND
8163 NVL(p_source_38,'
8164 ') = 'N'
8165 THEN
8166
8167 --
8168 XLA_AE_LINES_PKG.SetNewLine;
8169
8170 p_balance_type_code := l_balance_type_code;
8171 -- set the flag so later we will know whether the gain loss line needs to be created
8172
8173 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8174 p_actual_flag :='A';
8175 END IF;
8176
8177 --
8178 -- bulk performance
8179 --
8180 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8181 p_header_num => 0); -- 4262811
8182 --
8183 -- set accounting line options
8184 --
8185 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8186 p_natural_side_code => 'C'
8187 , p_gain_or_loss_flag => 'N'
8188 , p_gl_transfer_mode_code => 'S'
8189 , p_acct_entry_type_code => 'A'
8190 , p_switch_side_flag => 'Y'
8191 , p_merge_duplicate_code => 'N'
8192 );
8193 --
8194 l_acc_rev_natural_side_code := 'D'; -- 4262811
8195 --
8196 --
8197 -- set accounting line type info
8198 --
8199 xla_ae_lines_pkg.SetAcctLineType
8200 (p_component_type => l_component_type
8201 ,p_event_type_code => l_event_type_code
8202 ,p_line_definition_owner_code => l_line_definition_owner_code
8203 ,p_line_definition_code => l_line_definition_code
8204 ,p_accounting_line_code => l_component_code
8205 ,p_accounting_line_type_code => l_component_type_code
8206 ,p_accounting_line_appl_id => l_component_appl_id
8207 ,p_amb_context_code => l_amb_context_code
8208 ,p_entity_code => l_entity_code
8209 ,p_event_class_code => l_event_class_code);
8210 --
8211 -- set accounting class
8212 --
8213 xla_ae_lines_pkg.SetAcctClass(
8214 p_accounting_class_code => 'REVENUE'
8215 , p_ae_header_id => l_ae_header_id
8216 );
8217
8218 --
8219 -- set rounding class
8220 --
8221 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8222 'REVENUE';
8223
8224 --
8225 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8226 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8227 --
8228 -- bulk performance
8229 --
8230 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8231
8232 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8233 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8234
8235 -- 4955764
8236 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8237 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8238
8239 -- 4458381 Public Sector Enh
8240
8241 --
8242 -- set accounting attributes for the line type
8243 --
8244 l_entered_amt_idx := 4;
8245 l_accted_amt_idx := 10;
8246 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8247 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
8248 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
8249 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
8250 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
8251 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
8255 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
8252 l_rec_acct_attrs.array_char_value(3) := p_source_36;
8253 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
8254 l_rec_acct_attrs.array_num_value(4) := p_source_41;
8256 l_rec_acct_attrs.array_char_value(5) := p_source_25;
8257 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
8258 l_rec_acct_attrs.array_date_value(6) := p_source_27;
8259 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
8260 l_rec_acct_attrs.array_num_value(7) := p_source_28;
8261 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
8262 l_rec_acct_attrs.array_char_value(8) := p_source_29;
8263 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
8264 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
8265 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
8266 l_rec_acct_attrs.array_num_value(10) := p_source_43;
8267
8268 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8269 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8270
8271 ---------------------------------------------------------------------------------------------------------------
8272 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8273 ---------------------------------------------------------------------------------------------------------------
8274 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8275
8276 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8277 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8278
8279 IF xla_accounting_cache_pkg.GetValueChar
8280 (p_source_code => 'LEDGER_CATEGORY_CODE'
8281 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8282 AND l_bflow_method_code = 'PRIOR_ENTRY'
8283 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8284 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8285 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8286 )
8287 THEN
8288 xla_ae_lines_pkg.BflowUpgEntry
8289 (p_business_method_code => l_bflow_method_code
8290 ,p_business_class_code => l_bflow_class_code
8291 ,p_balance_type => l_balance_type_code);
8292 ELSE
8293 NULL;
8294 -- No business flow processing for business flow method of NONE.
8295 END IF;
8296
8297 --
8298 -- call analytical criteria
8299 --
8300
8301 --
8302 -- call description
8303 --
8304 -- No description or it is inherited.
8305 --
8306 -- call ADRs
8307 -- Bug 4922099
8308 --
8309 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8310 (NVL(l_actual_upg_option, 'N') = 'O') OR
8311 (NVL(l_enc_upg_option, 'N') = 'O')
8312 )
8313 THEN
8314 NULL;
8315 --
8316 --
8317
8318 l_ccid := AcctDerRule_17(
8319 p_application_id => p_application_id
8320 , p_ae_header_id => l_ae_header_id
8321 , p_source_18 => p_source_18
8322 , x_transaction_coa_id => l_adr_transaction_coa_id
8323 , x_accounting_coa_id => l_adr_accounting_coa_id
8324 , x_value_type_code => l_adr_value_type_code
8325 , p_side => 'NA'
8326 );
8327
8328 xla_ae_lines_pkg.set_ccid(
8329 p_code_combination_id => l_ccid
8330 , p_value_type_code => l_adr_value_type_code
8331 , p_transaction_coa_id => l_adr_transaction_coa_id
8332 , p_accounting_coa_id => l_adr_accounting_coa_id
8333 , p_adr_code => 'REVENUE_RULE'
8334 , p_adr_type_code => 'S'
8335 , p_component_type => l_component_type
8336 , p_component_code => l_component_code
8337 , p_component_type_code => l_component_type_code
8338 , p_component_appl_id => l_component_appl_id
8339 , p_amb_context_code => l_amb_context_code
8340 , p_side => 'NA'
8341 );
8342
8343
8344 --
8345 --
8346 END IF;
8347 --
8348 -- Bug 4922099
8349 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8350 (NVL(l_enc_upg_option, 'N') = 'O')
8351 ) AND
8352 (l_bflow_method_code = 'PRIOR_ENTRY')
8353 )
8354 THEN
8355 IF
8356 --
8357 1 = 2
8358 --
8359 THEN
8360 xla_accounting_err_pkg.build_message
8361 (p_appli_s_name => 'XLA'
8362 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8363 ,p_token_1 => 'LINE_NUMBER'
8364 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8365 ,p_token_2 => 'LINE_TYPE_NAME'
8366 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8367 l_component_type
8368 ,l_component_code
8369 ,l_component_type_code
8370 ,l_component_appl_id
8371 ,l_amb_context_code
8372 ,l_entity_code
8376 ,p_value_3 => xla_lookups_pkg.get_meaning(
8373 ,l_event_class_code
8374 )
8375 ,p_token_3 => 'OWNER'
8377 p_lookup_type => 'XLA_OWNER_TYPE'
8378 ,p_lookup_code => l_component_type_code
8379 )
8380 ,p_token_4 => 'PRODUCT_NAME'
8381 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8382 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8383 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8384 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8385 ,p_ae_header_id => NULL
8386 );
8387
8388 IF (C_LEVEL_ERROR>= g_log_level) THEN
8389 trace
8390 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8391 ,p_level => C_LEVEL_ERROR
8392 ,p_module => l_log_module);
8393 END IF;
8394 END IF;
8395 END IF;
8396 --
8397 --
8398 ------------------------------------------------------------------------------------------------
8399 -- 4219869 Business Flow
8400 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8401 -- Prior Entry. Currently, the following code is always generated.
8402 ------------------------------------------------------------------------------------------------
8403 XLA_AE_LINES_PKG.ValidateCurrentLine;
8404
8405 ------------------------------------------------------------------------------------
8406 -- 4219869 Business Flow
8407 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8408 ------------------------------------------------------------------------------------
8409 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8410
8411 ----------------------------------------------------------------------------------
8412 -- 4219869 Business Flow
8413 -- Update journal entry status -- Need to generate this within IF <condition>
8414 ----------------------------------------------------------------------------------
8415 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8416 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8417 ,p_balance_type_code => l_balance_type_code
8418 );
8419
8420 -------------------------------------------------------------------------------------------
8421 -- 4262811 - Generate the Accrual Reversal lines
8422 -------------------------------------------------------------------------------------------
8423 BEGIN
8424 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8425 (g_array_event(p_event_id).array_value_num('header_index'));
8426 IF l_acc_rev_flag IS NULL THEN
8427 l_acc_rev_flag := 'N';
8428 END IF;
8429 EXCEPTION
8430 WHEN OTHERS THEN
8431 l_acc_rev_flag := 'N';
8432 END;
8433 --
8434 IF (l_acc_rev_flag = 'Y') THEN
8435
8436 -- 4645092 ------------------------------------------------------------------------------
8437 -- To allow MPA report to determine if it should generate report process
8438 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8439 ------------------------------------------------------------------------------------------
8440
8441 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8442 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8443
8444 --
8445 -- Update the line information that should be overwritten
8446 --
8447 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8448 p_header_num => 1);
8449 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8450
8451 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8452
8453 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8454 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8455 END IF;
8456
8457 --
8458 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8459 --
8460 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8461 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8462 ELSE
8463 ---------------------------------------------------------------------------------------------------
8464 -- 4262811a Switch Sign
8465 ---------------------------------------------------------------------------------------------------
8466 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8467 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8468 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8469 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8470 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8471 -- 5132302
8475 END IF;
8472 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
8473 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8474
8476
8477 -- 4955764
8478 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8479 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
8480
8481
8482 XLA_AE_LINES_PKG.ValidateCurrentLine;
8483 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8484
8485 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8486 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
8487 ,p_balance_type_code => l_balance_type_code);
8488
8489 END IF;
8490
8491 -----------------------------------------------------------------------------------------
8492 -- 4262811 Multiperiod Accounting
8493 -----------------------------------------------------------------------------------------
8494 -- No MPA option is assigned.
8495
8496
8497 END IF;
8498 END IF;
8499 --
8500
8501 --
8502 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8503 trace
8504 (p_msg => 'END of AcctLineType_29'
8505 ,p_level => C_LEVEL_PROCEDURE
8506 ,p_module => l_log_module);
8507 END IF;
8508 --
8509 EXCEPTION
8510 WHEN xla_exceptions_pkg.application_exception THEN
8511 RAISE;
8512 WHEN OTHERS THEN
8513 xla_exceptions_pkg.raise_message
8514 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_29');
8515 END AcctLineType_29;
8516 --
8517
8518 ---------------------------------------
8519 --
8520 -- PRIVATE FUNCTION
8521 -- AcctLineType_30
8522 --
8523 ---------------------------------------
8524 PROCEDURE AcctLineType_30 (
8525 p_application_id IN NUMBER
8526 ,p_event_id IN NUMBER
8527 ,p_calculate_acctd_flag IN VARCHAR2
8528 ,p_calculate_g_l_flag IN VARCHAR2
8529 ,p_actual_flag IN OUT VARCHAR2
8530 ,p_balance_type_code OUT VARCHAR2
8531 ,p_gain_or_loss_ref OUT VARCHAR2
8532
8533 --Event Revenue CCID
8534 , p_source_1 IN NUMBER
8535 --Entered Currency Code
8536 , p_source_25 IN VARCHAR2
8537 --Exchange Rate Date
8538 , p_source_27 IN DATE
8539 --Exchange Rate
8540 , p_source_28 IN NUMBER
8541 --Exchange Rate Type
8542 , p_source_29 IN VARCHAR2
8543 --Revenue Distribution Type
8544 , p_source_36 IN VARCHAR2
8545 --Crediting Revenue Flag
8546 , p_source_38 IN VARCHAR2
8547 --Revenue First Distribution ID
8548 , p_source_39 IN NUMBER
8549 --Revenue Second Distribution ID
8550 , p_source_40 IN NUMBER
8551 --Entered Amount
8552 , p_source_41 IN NUMBER
8553 --Event ID
8554 , p_source_42 IN NUMBER
8555 --Accounted Amount
8556 , p_source_43 IN NUMBER
8557 --Revenue Event Type Classification
8558 , p_source_58 IN VARCHAR2
8559 , p_source_58_meaning IN VARCHAR2
8560 )
8561 IS
8562
8563 l_component_type VARCHAR2(80);
8564 l_component_code VARCHAR2(30);
8565 l_component_type_code VARCHAR2(1);
8566 l_component_appl_id INTEGER;
8567 l_amb_context_code VARCHAR2(30);
8568 l_entity_code VARCHAR2(30);
8569 l_event_class_code VARCHAR2(30);
8570 l_ae_header_id NUMBER;
8571 l_event_type_code VARCHAR2(30);
8572 l_line_definition_code VARCHAR2(30);
8573 l_line_definition_owner_code VARCHAR2(1);
8574 --
8575 -- adr variables
8576 l_segment VARCHAR2(30);
8577 l_ccid NUMBER;
8578 l_adr_transaction_coa_id NUMBER;
8579 l_adr_accounting_coa_id NUMBER;
8580 l_adr_flexfield_segment_code VARCHAR2(30);
8581 l_adr_flex_value_set_id NUMBER;
8582 l_adr_value_type_code VARCHAR2(30);
8583 l_adr_value_combination_id NUMBER;
8584 l_adr_value_segment_code VARCHAR2(30);
8585
8586 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
8587 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
8588 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
8589 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
8590
8591 -- 4262811 Variables ------------------------------------------------------------------------------------------
8592 l_entered_amt_idx NUMBER;
8593 l_accted_amt_idx NUMBER;
8594 l_acc_rev_flag VARCHAR2(1);
8595 l_accrual_line_num NUMBER;
8596 l_tmp_amt NUMBER;
8597 l_acc_rev_natural_side_code VARCHAR2(1);
8598
8599 l_num_entries NUMBER;
8600 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
8601 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
8602 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
8603 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
8604 l_recog_line_1 NUMBER;
8605 l_recog_line_2 NUMBER;
8606
8607 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
8608 l_bflow_applied_to_amt NUMBER; -- 5132302
8609 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
8610
8611 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
8612
8613 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
8614 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
8618
8615
8616 ---------------------------------------------------------------------------------------------------------------
8617
8619 --
8620 -- bulk performance
8621 --
8622 l_balance_type_code VARCHAR2(1);
8623 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
8624 l_log_module VARCHAR2(240);
8625
8626 --
8627 -- Upgrade strategy
8628 --
8629 l_actual_upg_option VARCHAR2(1);
8630 l_enc_upg_option VARCHAR2(1);
8631
8632 --
8633 BEGIN
8634 --
8635 IF g_log_enabled THEN
8636 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_30';
8637 END IF;
8638 --
8639 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8640
8641 trace
8642 (p_msg => 'BEGIN of AcctLineType_30'
8643 ,p_level => C_LEVEL_PROCEDURE
8644 ,p_module => l_log_module);
8645
8646 END IF;
8647 --
8648 l_component_type := 'AMB_JLT';
8649 l_component_code := 'PA_EVENT_REV';
8650 l_component_type_code := 'S';
8651 l_component_appl_id := 275;
8652 l_amb_context_code := 'DEFAULT';
8653 l_entity_code := 'REVENUE';
8654 l_event_class_code := 'REVENUE';
8655 l_event_type_code := 'REVENUE_ALL';
8656 l_line_definition_owner_code := 'S';
8657 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
8658 --
8659 l_balance_type_code := 'A';
8660 l_segment := NULL;
8661 l_ccid := NULL;
8662 l_adr_transaction_coa_id := NULL;
8663 l_adr_accounting_coa_id := NULL;
8664 l_adr_flexfield_segment_code := NULL;
8665 l_adr_flex_value_set_id := NULL;
8666 l_adr_value_type_code := NULL;
8667 l_adr_value_combination_id := NULL;
8668 l_adr_value_segment_code := NULL;
8669
8670 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
8671 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
8672 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
8673 l_budgetary_control_flag := 'N';
8674
8675 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8676 l_bflow_applied_to_amt := NULL; -- 5132302
8677 l_entered_amt_idx := NULL; -- 4262811
8678 l_accted_amt_idx := NULL; -- 4262811
8679 l_acc_rev_flag := NULL; -- 4262811
8680 l_accrual_line_num := NULL; -- 4262811
8681 l_tmp_amt := NULL; -- 4262811
8682 --
8683
8684 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
8685 l_balance_type_code <> 'B' THEN
8686 IF NVL(p_source_36,'
8687 ') = 'Revenue - Event Revenue' AND
8688 NVL(p_source_58,'
8689 ') <> 'WRITE OFF' AND
8690 NVL(p_source_38,'
8691 ') = 'N'
8692 THEN
8693
8694 --
8695 XLA_AE_LINES_PKG.SetNewLine;
8696
8697 p_balance_type_code := l_balance_type_code;
8698 -- set the flag so later we will know whether the gain loss line needs to be created
8699
8700 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
8701 p_actual_flag :='A';
8702 END IF;
8703
8704 --
8705 -- bulk performance
8706 --
8707 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
8708 p_header_num => 0); -- 4262811
8709 --
8710 -- set accounting line options
8711 --
8712 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
8713 p_natural_side_code => 'C'
8714 , p_gain_or_loss_flag => 'N'
8715 , p_gl_transfer_mode_code => 'S'
8716 , p_acct_entry_type_code => 'A'
8717 , p_switch_side_flag => 'Y'
8718 , p_merge_duplicate_code => 'N'
8719 );
8720 --
8721 l_acc_rev_natural_side_code := 'D'; -- 4262811
8722 --
8723 --
8724 -- set accounting line type info
8725 --
8726 xla_ae_lines_pkg.SetAcctLineType
8727 (p_component_type => l_component_type
8728 ,p_event_type_code => l_event_type_code
8729 ,p_line_definition_owner_code => l_line_definition_owner_code
8730 ,p_line_definition_code => l_line_definition_code
8731 ,p_accounting_line_code => l_component_code
8732 ,p_accounting_line_type_code => l_component_type_code
8733 ,p_accounting_line_appl_id => l_component_appl_id
8734 ,p_amb_context_code => l_amb_context_code
8735 ,p_entity_code => l_entity_code
8736 ,p_event_class_code => l_event_class_code);
8737 --
8738 -- set accounting class
8739 --
8740 xla_ae_lines_pkg.SetAcctClass(
8741 p_accounting_class_code => 'REVENUE'
8742 , p_ae_header_id => l_ae_header_id
8743 );
8744
8745 --
8746 -- set rounding class
8747 --
8748 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
8749 'REVENUE';
8750
8751 --
8752 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
8753 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
8754 --
8755 -- bulk performance
8756 --
8757 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
8758
8759 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
8760 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
8761
8762 -- 4955764
8763 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
8767
8764 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
8765
8766 -- 4458381 Public Sector Enh
8768 --
8769 -- set accounting attributes for the line type
8770 --
8771 l_entered_amt_idx := 4;
8772 l_accted_amt_idx := 10;
8773 l_bflow_applied_to_amt_idx := NULL; -- 5132302
8774 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
8775 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
8776 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
8777 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
8778 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
8779 l_rec_acct_attrs.array_char_value(3) := p_source_36;
8780 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
8781 l_rec_acct_attrs.array_num_value(4) := p_source_41;
8782 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
8783 l_rec_acct_attrs.array_char_value(5) := p_source_25;
8784 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
8785 l_rec_acct_attrs.array_date_value(6) := p_source_27;
8786 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
8787 l_rec_acct_attrs.array_num_value(7) := p_source_28;
8788 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
8789 l_rec_acct_attrs.array_char_value(8) := p_source_29;
8790 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
8791 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
8792 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
8793 l_rec_acct_attrs.array_num_value(10) := p_source_43;
8794
8795 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
8796 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
8797
8798 ---------------------------------------------------------------------------------------------------------------
8799 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
8800 ---------------------------------------------------------------------------------------------------------------
8801 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
8802
8803 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8804 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
8805
8806 IF xla_accounting_cache_pkg.GetValueChar
8807 (p_source_code => 'LEDGER_CATEGORY_CODE'
8808 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
8809 AND l_bflow_method_code = 'PRIOR_ENTRY'
8810 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
8811 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8812 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8813 )
8814 THEN
8815 xla_ae_lines_pkg.BflowUpgEntry
8816 (p_business_method_code => l_bflow_method_code
8817 ,p_business_class_code => l_bflow_class_code
8818 ,p_balance_type => l_balance_type_code);
8819 ELSE
8820 NULL;
8821 -- No business flow processing for business flow method of NONE.
8822 END IF;
8823
8824 --
8825 -- call analytical criteria
8826 --
8827
8828 --
8829 -- call description
8830 --
8831 -- No description or it is inherited.
8832 --
8833 -- call ADRs
8834 -- Bug 4922099
8835 --
8836 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
8837 (NVL(l_actual_upg_option, 'N') = 'O') OR
8838 (NVL(l_enc_upg_option, 'N') = 'O')
8839 )
8840 THEN
8841 NULL;
8842 --
8843 --
8844
8845 l_ccid := AcctDerRule_1(
8846 p_application_id => p_application_id
8847 , p_ae_header_id => l_ae_header_id
8848 , p_source_1 => p_source_1
8849 , x_transaction_coa_id => l_adr_transaction_coa_id
8850 , x_accounting_coa_id => l_adr_accounting_coa_id
8851 , x_value_type_code => l_adr_value_type_code
8852 , p_side => 'NA'
8853 );
8854
8855 xla_ae_lines_pkg.set_ccid(
8856 p_code_combination_id => l_ccid
8857 , p_value_type_code => l_adr_value_type_code
8858 , p_transaction_coa_id => l_adr_transaction_coa_id
8859 , p_accounting_coa_id => l_adr_accounting_coa_id
8860 , p_adr_code => 'EVENT_REVENUE_RULE'
8861 , p_adr_type_code => 'S'
8862 , p_component_type => l_component_type
8863 , p_component_code => l_component_code
8864 , p_component_type_code => l_component_type_code
8865 , p_component_appl_id => l_component_appl_id
8866 , p_amb_context_code => l_amb_context_code
8867 , p_side => 'NA'
8868 );
8869
8870
8871 --
8872 --
8873 END IF;
8874 --
8875 -- Bug 4922099
8876 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
8877 (NVL(l_enc_upg_option, 'N') = 'O')
8878 ) AND
8879 (l_bflow_method_code = 'PRIOR_ENTRY')
8880 )
8881 THEN
8882 IF
8883 --
8884 1 = 2
8885 --
8886 THEN
8887 xla_accounting_err_pkg.build_message
8888 (p_appli_s_name => 'XLA'
8889 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8890 ,p_token_1 => 'LINE_NUMBER'
8891 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8895 ,l_component_code
8892 ,p_token_2 => 'LINE_TYPE_NAME'
8893 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8894 l_component_type
8896 ,l_component_type_code
8897 ,l_component_appl_id
8898 ,l_amb_context_code
8899 ,l_entity_code
8900 ,l_event_class_code
8901 )
8902 ,p_token_3 => 'OWNER'
8903 ,p_value_3 => xla_lookups_pkg.get_meaning(
8904 p_lookup_type => 'XLA_OWNER_TYPE'
8905 ,p_lookup_code => l_component_type_code
8906 )
8907 ,p_token_4 => 'PRODUCT_NAME'
8908 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
8909 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
8910 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
8911 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
8912 ,p_ae_header_id => NULL
8913 );
8914
8915 IF (C_LEVEL_ERROR>= g_log_level) THEN
8916 trace
8917 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
8918 ,p_level => C_LEVEL_ERROR
8919 ,p_module => l_log_module);
8920 END IF;
8921 END IF;
8922 END IF;
8923 --
8924 --
8925 ------------------------------------------------------------------------------------------------
8926 -- 4219869 Business Flow
8927 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
8928 -- Prior Entry. Currently, the following code is always generated.
8929 ------------------------------------------------------------------------------------------------
8930 XLA_AE_LINES_PKG.ValidateCurrentLine;
8931
8932 ------------------------------------------------------------------------------------
8933 -- 4219869 Business Flow
8934 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
8935 ------------------------------------------------------------------------------------
8936 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
8937
8938 ----------------------------------------------------------------------------------
8939 -- 4219869 Business Flow
8940 -- Update journal entry status -- Need to generate this within IF <condition>
8941 ----------------------------------------------------------------------------------
8942 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
8943 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
8944 ,p_balance_type_code => l_balance_type_code
8945 );
8946
8947 -------------------------------------------------------------------------------------------
8948 -- 4262811 - Generate the Accrual Reversal lines
8949 -------------------------------------------------------------------------------------------
8950 BEGIN
8951 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
8952 (g_array_event(p_event_id).array_value_num('header_index'));
8953 IF l_acc_rev_flag IS NULL THEN
8954 l_acc_rev_flag := 'N';
8955 END IF;
8956 EXCEPTION
8957 WHEN OTHERS THEN
8958 l_acc_rev_flag := 'N';
8959 END;
8960 --
8961 IF (l_acc_rev_flag = 'Y') THEN
8962
8963 -- 4645092 ------------------------------------------------------------------------------
8964 -- To allow MPA report to determine if it should generate report process
8965 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
8966 ------------------------------------------------------------------------------------------
8967
8968 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
8969 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
8970
8971 --
8972 -- Update the line information that should be overwritten
8973 --
8974 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
8975 p_header_num => 1);
8976 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
8977
8978 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
8979
8980 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
8981 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
8982 END IF;
8983
8984 --
8985 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
8986 --
8987 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
8988 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
8989 ELSE
8990 ---------------------------------------------------------------------------------------------------
8994 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8991 -- 4262811a Switch Sign
8992 ---------------------------------------------------------------------------------------------------
8993 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
8995 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8996 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
8997 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
8998 -- 5132302
8999 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9000 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9001
9002 END IF;
9003
9004 -- 4955764
9005 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9006 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9007
9008
9009 XLA_AE_LINES_PKG.ValidateCurrentLine;
9010 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9011
9012 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9013 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9014 ,p_balance_type_code => l_balance_type_code);
9015
9016 END IF;
9017
9018 -----------------------------------------------------------------------------------------
9019 -- 4262811 Multiperiod Accounting
9020 -----------------------------------------------------------------------------------------
9021 -- No MPA option is assigned.
9022
9023
9024 END IF;
9025 END IF;
9026 --
9027
9028 --
9029 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9030 trace
9031 (p_msg => 'END of AcctLineType_30'
9032 ,p_level => C_LEVEL_PROCEDURE
9033 ,p_module => l_log_module);
9034 END IF;
9035 --
9036 EXCEPTION
9037 WHEN xla_exceptions_pkg.application_exception THEN
9038 RAISE;
9039 WHEN OTHERS THEN
9040 xla_exceptions_pkg.raise_message
9041 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_30');
9042 END AcctLineType_30;
9043 --
9044
9045 ---------------------------------------
9046 --
9047 -- PRIVATE FUNCTION
9048 -- AcctLineType_31
9049 --
9050 ---------------------------------------
9051 PROCEDURE AcctLineType_31 (
9052 p_application_id IN NUMBER
9053 ,p_event_id IN NUMBER
9054 ,p_calculate_acctd_flag IN VARCHAR2
9055 ,p_calculate_g_l_flag IN VARCHAR2
9056 ,p_actual_flag IN OUT VARCHAR2
9057 ,p_balance_type_code OUT VARCHAR2
9058 ,p_gain_or_loss_ref OUT VARCHAR2
9059
9060 --Actual Upgrade Credit Accounting Class
9061 , p_source_23 IN VARCHAR2
9062 --Entered Currency Code
9063 , p_source_25 IN VARCHAR2
9064 --Exchange Rate Date
9065 , p_source_27 IN DATE
9066 --Exchange Rate
9067 , p_source_28 IN NUMBER
9068 --Exchange Rate Type
9069 , p_source_29 IN VARCHAR2
9070 --Actual Upgrade Debit Accounting Class
9071 , p_source_30 IN VARCHAR2
9072 --Use Actuals Upgrade Attributes Flag
9073 , p_source_31 IN VARCHAR2
9074 --Revenue Distribution Type
9075 , p_source_36 IN VARCHAR2
9076 --Crediting Revenue Flag
9077 , p_source_38 IN VARCHAR2
9078 --Revenue First Distribution ID
9079 , p_source_39 IN NUMBER
9080 --Revenue Second Distribution ID
9081 , p_source_40 IN NUMBER
9082 --Entered Amount
9083 , p_source_41 IN NUMBER
9084 --Event ID
9085 , p_source_42 IN NUMBER
9086 --Accounted Amount
9087 , p_source_43 IN NUMBER
9088 --Revenue Event Type Classification
9089 , p_source_58 IN VARCHAR2
9090 , p_source_58_meaning IN VARCHAR2
9091 --Actual Upgrade Credit CCID
9092 , p_source_59 IN NUMBER
9093 --Actual Upgrade Debit CCID
9094 , p_source_60 IN NUMBER
9095 --Application ID
9096 , p_source_61 IN NUMBER
9097 --Revenue Entity Code
9098 , p_source_62 IN VARCHAR2
9099 --Crediting Revenue First Distribution ID
9100 , p_source_63 IN NUMBER
9101 --Project ID
9102 , p_source_64 IN NUMBER
9103 --Crediting Revenue Second Distribution ID
9104 , p_source_65 IN NUMBER
9105 --Draft Revenue Number Credited
9106 , p_source_66 IN NUMBER
9107 )
9108 IS
9109
9110 l_component_type VARCHAR2(80);
9111 l_component_code VARCHAR2(30);
9112 l_component_type_code VARCHAR2(1);
9113 l_component_appl_id INTEGER;
9114 l_amb_context_code VARCHAR2(30);
9115 l_entity_code VARCHAR2(30);
9116 l_event_class_code VARCHAR2(30);
9117 l_ae_header_id NUMBER;
9118 l_event_type_code VARCHAR2(30);
9119 l_line_definition_code VARCHAR2(30);
9120 l_line_definition_owner_code VARCHAR2(1);
9121 --
9122 -- adr variables
9123 l_segment VARCHAR2(30);
9124 l_ccid NUMBER;
9125 l_adr_transaction_coa_id NUMBER;
9126 l_adr_accounting_coa_id NUMBER;
9127 l_adr_flexfield_segment_code VARCHAR2(30);
9128 l_adr_flex_value_set_id NUMBER;
9129 l_adr_value_type_code VARCHAR2(30);
9130 l_adr_value_combination_id NUMBER;
9131 l_adr_value_segment_code VARCHAR2(30);
9132
9133 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9134 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9138 -- 4262811 Variables ------------------------------------------------------------------------------------------
9135 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9136 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9137
9139 l_entered_amt_idx NUMBER;
9140 l_accted_amt_idx NUMBER;
9141 l_acc_rev_flag VARCHAR2(1);
9142 l_accrual_line_num NUMBER;
9143 l_tmp_amt NUMBER;
9144 l_acc_rev_natural_side_code VARCHAR2(1);
9145
9146 l_num_entries NUMBER;
9147 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9148 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9149 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9150 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9151 l_recog_line_1 NUMBER;
9152 l_recog_line_2 NUMBER;
9153
9154 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9155 l_bflow_applied_to_amt NUMBER; -- 5132302
9156 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9157
9158 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9159
9160 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9161 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9162
9163 ---------------------------------------------------------------------------------------------------------------
9164
9165
9166 --
9167 -- bulk performance
9168 --
9169 l_balance_type_code VARCHAR2(1);
9170 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9171 l_log_module VARCHAR2(240);
9172
9173 --
9174 -- Upgrade strategy
9175 --
9176 l_actual_upg_option VARCHAR2(1);
9177 l_enc_upg_option VARCHAR2(1);
9178
9179 --
9180 BEGIN
9181 --
9182 IF g_log_enabled THEN
9183 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_31';
9184 END IF;
9185 --
9186 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9187
9188 trace
9189 (p_msg => 'BEGIN of AcctLineType_31'
9190 ,p_level => C_LEVEL_PROCEDURE
9191 ,p_module => l_log_module);
9192
9193 END IF;
9194 --
9195 l_component_type := 'AMB_JLT';
9196 l_component_code := 'PA_EVENT_REV_ADJ';
9197 l_component_type_code := 'S';
9198 l_component_appl_id := 275;
9199 l_amb_context_code := 'DEFAULT';
9200 l_entity_code := 'REVENUE';
9201 l_event_class_code := 'REVENUE_ADJ';
9202 l_event_type_code := 'REVENUE_ADJ_ALL';
9203 l_line_definition_owner_code := 'S';
9204 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
9205 --
9206 l_balance_type_code := 'A';
9207 l_segment := NULL;
9208 l_ccid := NULL;
9209 l_adr_transaction_coa_id := NULL;
9210 l_adr_accounting_coa_id := NULL;
9211 l_adr_flexfield_segment_code := NULL;
9212 l_adr_flex_value_set_id := NULL;
9213 l_adr_value_type_code := NULL;
9214 l_adr_value_combination_id := NULL;
9215 l_adr_value_segment_code := NULL;
9216
9217 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
9218 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
9219 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
9220 l_budgetary_control_flag := 'N';
9221
9222 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9223 l_bflow_applied_to_amt := NULL; -- 5132302
9224 l_entered_amt_idx := NULL; -- 4262811
9225 l_accted_amt_idx := NULL; -- 4262811
9226 l_acc_rev_flag := NULL; -- 4262811
9227 l_accrual_line_num := NULL; -- 4262811
9228 l_tmp_amt := NULL; -- 4262811
9229 --
9230
9231 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9232 l_balance_type_code <> 'B' THEN
9233 IF NVL(p_source_36,'
9234 ') = 'Revenue - Event Revenue' AND
9235 NVL(p_source_58,'
9236 ') <> 'WRITE OFF' AND
9237 NVL(p_source_38,'
9238 ') = 'Y'
9239 THEN
9240
9241 --
9242 XLA_AE_LINES_PKG.SetNewLine;
9243
9244 p_balance_type_code := l_balance_type_code;
9245 -- set the flag so later we will know whether the gain loss line needs to be created
9246
9247 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9248 p_actual_flag :='A';
9249 END IF;
9250
9251 --
9252 -- bulk performance
9253 --
9254 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9255 p_header_num => 0); -- 4262811
9256 --
9257 -- set accounting line options
9258 --
9259 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9260 p_natural_side_code => 'D'
9261 , p_gain_or_loss_flag => 'N'
9262 , p_gl_transfer_mode_code => 'S'
9263 , p_acct_entry_type_code => 'A'
9264 , p_switch_side_flag => 'Y'
9265 , p_merge_duplicate_code => 'N'
9266 );
9267 --
9268 l_acc_rev_natural_side_code := 'C'; -- 4262811
9269 --
9270 --
9271 -- set accounting line type info
9272 --
9273 xla_ae_lines_pkg.SetAcctLineType
9274 (p_component_type => l_component_type
9275 ,p_event_type_code => l_event_type_code
9276 ,p_line_definition_owner_code => l_line_definition_owner_code
9277 ,p_line_definition_code => l_line_definition_code
9281 ,p_amb_context_code => l_amb_context_code
9278 ,p_accounting_line_code => l_component_code
9279 ,p_accounting_line_type_code => l_component_type_code
9280 ,p_accounting_line_appl_id => l_component_appl_id
9282 ,p_entity_code => l_entity_code
9283 ,p_event_class_code => l_event_class_code);
9284 --
9285 -- set accounting class
9286 --
9287 xla_ae_lines_pkg.SetAcctClass(
9288 p_accounting_class_code => 'REVENUE'
9289 , p_ae_header_id => l_ae_header_id
9290 );
9291
9292 --
9293 -- set rounding class
9294 --
9295 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9296 'REVENUE';
9297
9298 --
9299 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9300 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9301 --
9302 -- bulk performance
9303 --
9304 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9305
9306 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9307 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9308
9309 -- 4955764
9310 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9311 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9312
9313 -- 4458381 Public Sector Enh
9314
9315 --
9316 -- set accounting attributes for the line type
9317 --
9318 l_entered_amt_idx := 28;
9319 l_accted_amt_idx := 31;
9320 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9321 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
9322 l_rec_acct_attrs.array_char_value(1) := p_source_23;
9323 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
9324 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
9325 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
9326 l_rec_acct_attrs.array_num_value(3) := p_source_41;
9327 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
9328 l_rec_acct_attrs.array_char_value(4) := p_source_25;
9329 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
9330 l_rec_acct_attrs.array_num_value(5) := p_source_43;
9331 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
9332 l_rec_acct_attrs.array_date_value(6) := p_source_27;
9333 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
9334 l_rec_acct_attrs.array_num_value(7) := p_source_28;
9335 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
9336 l_rec_acct_attrs.array_char_value(8) := p_source_29;
9337 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
9338 l_rec_acct_attrs.array_char_value(9) := p_source_30;
9339 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
9340 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
9341 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
9342 l_rec_acct_attrs.array_num_value(11) := p_source_41;
9343 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
9344 l_rec_acct_attrs.array_char_value(12) := p_source_25;
9345 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
9346 l_rec_acct_attrs.array_num_value(13) := p_source_43;
9347 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
9348 l_rec_acct_attrs.array_date_value(14) := p_source_27;
9349 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
9350 l_rec_acct_attrs.array_num_value(15) := p_source_28;
9351 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
9352 l_rec_acct_attrs.array_char_value(16) := p_source_29;
9353 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
9354 l_rec_acct_attrs.array_char_value(17) := p_source_31;
9355 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
9356 l_rec_acct_attrs.array_num_value(18) := p_source_61;
9357 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
9358 l_rec_acct_attrs.array_char_value(19) := p_source_36;
9359 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
9360 l_rec_acct_attrs.array_char_value(20) := p_source_62;
9361 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
9362 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
9363 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
9364 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
9365 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
9366 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
9367 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
9368 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
9369 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
9370 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
9371 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
9372 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
9373 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
9374 l_rec_acct_attrs.array_char_value(27) := p_source_36;
9375 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
9376 l_rec_acct_attrs.array_num_value(28) := p_source_41;
9377 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
9378 l_rec_acct_attrs.array_char_value(29) := p_source_25;
9379 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
9380 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_42);
9384 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9381 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
9382 l_rec_acct_attrs.array_num_value(31) := p_source_43;
9383
9385 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9386
9387 ---------------------------------------------------------------------------------------------------------------
9388 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9389 ---------------------------------------------------------------------------------------------------------------
9390 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9391
9392 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9393 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9394
9395 IF xla_accounting_cache_pkg.GetValueChar
9396 (p_source_code => 'LEDGER_CATEGORY_CODE'
9397 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9398 AND l_bflow_method_code = 'PRIOR_ENTRY'
9399 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9400 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9401 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9402 )
9403 THEN
9404 xla_ae_lines_pkg.BflowUpgEntry
9405 (p_business_method_code => l_bflow_method_code
9406 ,p_business_class_code => l_bflow_class_code
9407 ,p_balance_type => l_balance_type_code);
9408 ELSE
9409 NULL;
9410 XLA_AE_LINES_PKG.business_flow_validation(
9411 p_business_method_code => l_bflow_method_code
9412 ,p_business_class_code => l_bflow_class_code
9413 ,p_inherit_description_flag => l_inherit_desc_flag);
9414 END IF;
9415
9416 --
9417 -- call analytical criteria
9418 --
9419 -- Inherited Analytical Criteria for business flow method of Prior Entry.
9420 --
9421 -- call description
9422 --
9423 -- No description or it is inherited.
9424 --
9425 -- call ADRs
9426 -- Bug 4922099
9427 --
9428 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9429 (NVL(l_actual_upg_option, 'N') = 'O') OR
9430 (NVL(l_enc_upg_option, 'N') = 'O')
9431 )
9432 THEN
9433 NULL;
9434 --
9435 --
9436
9437 --
9438 --
9439 END IF;
9440 --
9441 -- Bug 4922099
9442 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9443 (NVL(l_enc_upg_option, 'N') = 'O')
9444 ) AND
9445 (l_bflow_method_code = 'PRIOR_ENTRY')
9446 )
9447 THEN
9448 IF
9449 --
9450 1 = 1
9451 --
9452 THEN
9453 xla_accounting_err_pkg.build_message
9454 (p_appli_s_name => 'XLA'
9455 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9456 ,p_token_1 => 'LINE_NUMBER'
9457 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9458 ,p_token_2 => 'LINE_TYPE_NAME'
9459 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9460 l_component_type
9461 ,l_component_code
9462 ,l_component_type_code
9463 ,l_component_appl_id
9464 ,l_amb_context_code
9465 ,l_entity_code
9466 ,l_event_class_code
9467 )
9468 ,p_token_3 => 'OWNER'
9469 ,p_value_3 => xla_lookups_pkg.get_meaning(
9470 p_lookup_type => 'XLA_OWNER_TYPE'
9471 ,p_lookup_code => l_component_type_code
9472 )
9473 ,p_token_4 => 'PRODUCT_NAME'
9474 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
9475 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
9476 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
9477 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
9478 ,p_ae_header_id => NULL
9479 );
9480
9481 IF (C_LEVEL_ERROR>= g_log_level) THEN
9482 trace
9483 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9484 ,p_level => C_LEVEL_ERROR
9485 ,p_module => l_log_module);
9486 END IF;
9487 END IF;
9488 END IF;
9489 --
9490 --
9491 ------------------------------------------------------------------------------------------------
9492 -- 4219869 Business Flow
9496 -- No ValidateCurrentLine for business flow method of Prior Entry
9493 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
9494 -- Prior Entry. Currently, the following code is always generated.
9495 ------------------------------------------------------------------------------------------------
9497
9498 ------------------------------------------------------------------------------------
9499 -- 4219869 Business Flow
9500 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
9501 ------------------------------------------------------------------------------------
9502 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9503
9504 ----------------------------------------------------------------------------------
9505 -- 4219869 Business Flow
9506 -- Update journal entry status -- Need to generate this within IF <condition>
9507 ----------------------------------------------------------------------------------
9508 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9509 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
9510 ,p_balance_type_code => l_balance_type_code
9511 );
9512
9513 -------------------------------------------------------------------------------------------
9514 -- 4262811 - Generate the Accrual Reversal lines
9515 -------------------------------------------------------------------------------------------
9516 BEGIN
9517 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
9518 (g_array_event(p_event_id).array_value_num('header_index'));
9519 IF l_acc_rev_flag IS NULL THEN
9520 l_acc_rev_flag := 'N';
9521 END IF;
9522 EXCEPTION
9523 WHEN OTHERS THEN
9524 l_acc_rev_flag := 'N';
9525 END;
9526 --
9527 IF (l_acc_rev_flag = 'Y') THEN
9528
9529 -- 4645092 ------------------------------------------------------------------------------
9530 -- To allow MPA report to determine if it should generate report process
9531 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
9532 ------------------------------------------------------------------------------------------
9533
9534 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
9535 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
9536
9537 --
9538 -- Update the line information that should be overwritten
9539 --
9540 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
9541 p_header_num => 1);
9542 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
9543
9544 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
9545
9546 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
9547 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
9548 END IF;
9549
9550 --
9551 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
9552 --
9553 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
9554 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
9555 ELSE
9556 ---------------------------------------------------------------------------------------------------
9557 -- 4262811a Switch Sign
9558 ---------------------------------------------------------------------------------------------------
9559 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
9560 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9561 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9562 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
9563 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9564 -- 5132302
9565 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
9566 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
9567
9568 END IF;
9569
9570 -- 4955764
9571 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9572 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
9573
9574
9575 XLA_AE_LINES_PKG.ValidateCurrentLine;
9576 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
9577
9578 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
9579 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
9580 ,p_balance_type_code => l_balance_type_code);
9581
9582 END IF;
9583
9584 -----------------------------------------------------------------------------------------
9585 -- 4262811 Multiperiod Accounting
9586 -----------------------------------------------------------------------------------------
9587 -- No MPA option is assigned.
9588
9589
9590 END IF;
9591 END IF;
9592 --
9593
9594 --
9595 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9596 trace
9597 (p_msg => 'END of AcctLineType_31'
9598 ,p_level => C_LEVEL_PROCEDURE
9599 ,p_module => l_log_module);
9600 END IF;
9601 --
9602 EXCEPTION
9603 WHEN xla_exceptions_pkg.application_exception THEN
9604 RAISE;
9605 WHEN OTHERS THEN
9606 xla_exceptions_pkg.raise_message
9607 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_31');
9608 END AcctLineType_31;
9609 --
9610
9614 -- AcctLineType_32
9611 ---------------------------------------
9612 --
9613 -- PRIVATE FUNCTION
9615 --
9616 ---------------------------------------
9617 PROCEDURE AcctLineType_32 (
9618 p_application_id IN NUMBER
9619 ,p_event_id IN NUMBER
9620 ,p_calculate_acctd_flag IN VARCHAR2
9621 ,p_calculate_g_l_flag IN VARCHAR2
9622 ,p_actual_flag IN OUT VARCHAR2
9623 ,p_balance_type_code OUT VARCHAR2
9624 ,p_gain_or_loss_ref OUT VARCHAR2
9625
9626 --Event Revenue CCID
9627 , p_source_1 IN NUMBER
9628 --Entered Currency Code
9629 , p_source_25 IN VARCHAR2
9630 --Exchange Rate Date
9631 , p_source_27 IN DATE
9632 --Exchange Rate
9633 , p_source_28 IN NUMBER
9634 --Exchange Rate Type
9635 , p_source_29 IN VARCHAR2
9636 --Revenue Distribution Type
9637 , p_source_36 IN VARCHAR2
9638 --Crediting Revenue Flag
9639 , p_source_38 IN VARCHAR2
9640 --Revenue First Distribution ID
9641 , p_source_39 IN NUMBER
9642 --Revenue Second Distribution ID
9643 , p_source_40 IN NUMBER
9644 --Entered Amount
9645 , p_source_41 IN NUMBER
9646 --Event ID
9647 , p_source_42 IN NUMBER
9648 --Accounted Amount
9649 , p_source_43 IN NUMBER
9650 --Revenue Event Type Classification
9651 , p_source_58 IN VARCHAR2
9652 , p_source_58_meaning IN VARCHAR2
9653 )
9654 IS
9655
9656 l_component_type VARCHAR2(80);
9657 l_component_code VARCHAR2(30);
9658 l_component_type_code VARCHAR2(1);
9659 l_component_appl_id INTEGER;
9660 l_amb_context_code VARCHAR2(30);
9661 l_entity_code VARCHAR2(30);
9662 l_event_class_code VARCHAR2(30);
9663 l_ae_header_id NUMBER;
9664 l_event_type_code VARCHAR2(30);
9665 l_line_definition_code VARCHAR2(30);
9666 l_line_definition_owner_code VARCHAR2(1);
9667 --
9668 -- adr variables
9669 l_segment VARCHAR2(30);
9670 l_ccid NUMBER;
9671 l_adr_transaction_coa_id NUMBER;
9672 l_adr_accounting_coa_id NUMBER;
9673 l_adr_flexfield_segment_code VARCHAR2(30);
9674 l_adr_flex_value_set_id NUMBER;
9675 l_adr_value_type_code VARCHAR2(30);
9676 l_adr_value_combination_id NUMBER;
9677 l_adr_value_segment_code VARCHAR2(30);
9678
9679 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
9680 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
9681 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9682 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9683
9684 -- 4262811 Variables ------------------------------------------------------------------------------------------
9685 l_entered_amt_idx NUMBER;
9686 l_accted_amt_idx NUMBER;
9687 l_acc_rev_flag VARCHAR2(1);
9688 l_accrual_line_num NUMBER;
9689 l_tmp_amt NUMBER;
9690 l_acc_rev_natural_side_code VARCHAR2(1);
9691
9692 l_num_entries NUMBER;
9693 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
9694 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
9695 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
9696 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
9697 l_recog_line_1 NUMBER;
9698 l_recog_line_2 NUMBER;
9699
9700 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
9701 l_bflow_applied_to_amt NUMBER; -- 5132302
9702 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
9703
9704 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
9705
9706 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
9707 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
9708
9709 ---------------------------------------------------------------------------------------------------------------
9710
9711
9712 --
9713 -- bulk performance
9714 --
9715 l_balance_type_code VARCHAR2(1);
9716 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
9717 l_log_module VARCHAR2(240);
9718
9719 --
9720 -- Upgrade strategy
9721 --
9722 l_actual_upg_option VARCHAR2(1);
9723 l_enc_upg_option VARCHAR2(1);
9724
9725 --
9726 BEGIN
9727 --
9728 IF g_log_enabled THEN
9729 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_32';
9730 END IF;
9731 --
9732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
9733
9734 trace
9735 (p_msg => 'BEGIN of AcctLineType_32'
9736 ,p_level => C_LEVEL_PROCEDURE
9737 ,p_module => l_log_module);
9738
9739 END IF;
9740 --
9741 l_component_type := 'AMB_JLT';
9742 l_component_code := 'PA_EVENT_WO_REV';
9743 l_component_type_code := 'S';
9744 l_component_appl_id := 275;
9745 l_amb_context_code := 'DEFAULT';
9746 l_entity_code := 'REVENUE';
9747 l_event_class_code := 'REVENUE';
9748 l_event_type_code := 'REVENUE_ALL';
9749 l_line_definition_owner_code := 'S';
9750 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
9751 --
9752 l_balance_type_code := 'A';
9753 l_segment := NULL;
9754 l_ccid := NULL;
9755 l_adr_transaction_coa_id := NULL;
9756 l_adr_accounting_coa_id := NULL;
9757 l_adr_flexfield_segment_code := NULL;
9761 l_adr_value_segment_code := NULL;
9758 l_adr_flex_value_set_id := NULL;
9759 l_adr_value_type_code := NULL;
9760 l_adr_value_combination_id := NULL;
9762
9763 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
9764 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
9765 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
9766 l_budgetary_control_flag := 'N';
9767
9768 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9769 l_bflow_applied_to_amt := NULL; -- 5132302
9770 l_entered_amt_idx := NULL; -- 4262811
9771 l_accted_amt_idx := NULL; -- 4262811
9772 l_acc_rev_flag := NULL; -- 4262811
9773 l_accrual_line_num := NULL; -- 4262811
9774 l_tmp_amt := NULL; -- 4262811
9775 --
9776
9777 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
9778 l_balance_type_code <> 'B' THEN
9779 IF NVL(p_source_36,'
9780 ') = 'Revenue - Event Revenue' AND
9781 NVL(p_source_58,'
9782 ') = 'WRITE OFF' AND
9783 NVL(p_source_38,'
9784 ') = 'N'
9785 THEN
9786
9787 --
9788 XLA_AE_LINES_PKG.SetNewLine;
9789
9790 p_balance_type_code := l_balance_type_code;
9791 -- set the flag so later we will know whether the gain loss line needs to be created
9792
9793 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
9794 p_actual_flag :='A';
9795 END IF;
9796
9797 --
9798 -- bulk performance
9799 --
9800 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
9801 p_header_num => 0); -- 4262811
9802 --
9803 -- set accounting line options
9804 --
9805 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
9806 p_natural_side_code => 'D'
9807 , p_gain_or_loss_flag => 'N'
9808 , p_gl_transfer_mode_code => 'S'
9809 , p_acct_entry_type_code => 'A'
9810 , p_switch_side_flag => 'Y'
9811 , p_merge_duplicate_code => 'N'
9812 );
9813 --
9814 l_acc_rev_natural_side_code := 'C'; -- 4262811
9815 --
9816 --
9817 -- set accounting line type info
9818 --
9819 xla_ae_lines_pkg.SetAcctLineType
9820 (p_component_type => l_component_type
9821 ,p_event_type_code => l_event_type_code
9822 ,p_line_definition_owner_code => l_line_definition_owner_code
9823 ,p_line_definition_code => l_line_definition_code
9824 ,p_accounting_line_code => l_component_code
9825 ,p_accounting_line_type_code => l_component_type_code
9826 ,p_accounting_line_appl_id => l_component_appl_id
9827 ,p_amb_context_code => l_amb_context_code
9828 ,p_entity_code => l_entity_code
9829 ,p_event_class_code => l_event_class_code);
9830 --
9831 -- set accounting class
9832 --
9833 xla_ae_lines_pkg.SetAcctClass(
9834 p_accounting_class_code => 'EVENT_WO_REVENUE'
9835 , p_ae_header_id => l_ae_header_id
9836 );
9837
9838 --
9839 -- set rounding class
9840 --
9841 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
9842 'EVENT_WO_REVENUE';
9843
9844 --
9845 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
9846 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
9847 --
9848 -- bulk performance
9849 --
9850 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
9851
9852 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
9853 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
9854
9855 -- 4955764
9856 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
9857 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
9858
9859 -- 4458381 Public Sector Enh
9860
9861 --
9862 -- set accounting attributes for the line type
9863 --
9864 l_entered_amt_idx := 4;
9865 l_accted_amt_idx := 10;
9866 l_bflow_applied_to_amt_idx := NULL; -- 5132302
9867 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
9868 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
9869 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
9870 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
9871 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
9872 l_rec_acct_attrs.array_char_value(3) := p_source_36;
9873 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
9874 l_rec_acct_attrs.array_num_value(4) := p_source_41;
9875 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
9876 l_rec_acct_attrs.array_char_value(5) := p_source_25;
9877 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
9878 l_rec_acct_attrs.array_date_value(6) := p_source_27;
9879 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
9880 l_rec_acct_attrs.array_num_value(7) := p_source_28;
9881 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
9882 l_rec_acct_attrs.array_char_value(8) := p_source_29;
9883 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
9884 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
9885 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
9886 l_rec_acct_attrs.array_num_value(10) := p_source_43;
9887
9891 ---------------------------------------------------------------------------------------------------------------
9888 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
9889 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
9890
9892 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
9893 ---------------------------------------------------------------------------------------------------------------
9894 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
9895
9896 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9897 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
9898
9899 IF xla_accounting_cache_pkg.GetValueChar
9900 (p_source_code => 'LEDGER_CATEGORY_CODE'
9901 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
9902 AND l_bflow_method_code = 'PRIOR_ENTRY'
9903 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
9904 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
9905 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
9906 )
9907 THEN
9908 xla_ae_lines_pkg.BflowUpgEntry
9909 (p_business_method_code => l_bflow_method_code
9910 ,p_business_class_code => l_bflow_class_code
9911 ,p_balance_type => l_balance_type_code);
9912 ELSE
9913 NULL;
9914 -- No business flow processing for business flow method of NONE.
9915 END IF;
9916
9917 --
9918 -- call analytical criteria
9919 --
9920
9921 --
9922 -- call description
9923 --
9924 -- No description or it is inherited.
9925 --
9926 -- call ADRs
9927 -- Bug 4922099
9928 --
9929 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
9930 (NVL(l_actual_upg_option, 'N') = 'O') OR
9931 (NVL(l_enc_upg_option, 'N') = 'O')
9932 )
9933 THEN
9934 NULL;
9935 --
9936 --
9937
9938 l_ccid := AcctDerRule_1(
9939 p_application_id => p_application_id
9940 , p_ae_header_id => l_ae_header_id
9941 , p_source_1 => p_source_1
9942 , x_transaction_coa_id => l_adr_transaction_coa_id
9943 , x_accounting_coa_id => l_adr_accounting_coa_id
9944 , x_value_type_code => l_adr_value_type_code
9945 , p_side => 'NA'
9946 );
9947
9948 xla_ae_lines_pkg.set_ccid(
9949 p_code_combination_id => l_ccid
9950 , p_value_type_code => l_adr_value_type_code
9951 , p_transaction_coa_id => l_adr_transaction_coa_id
9952 , p_accounting_coa_id => l_adr_accounting_coa_id
9953 , p_adr_code => 'EVENT_REVENUE_RULE'
9954 , p_adr_type_code => 'S'
9955 , p_component_type => l_component_type
9956 , p_component_code => l_component_code
9957 , p_component_type_code => l_component_type_code
9958 , p_component_appl_id => l_component_appl_id
9959 , p_amb_context_code => l_amb_context_code
9960 , p_side => 'NA'
9961 );
9962
9963
9964 --
9965 --
9966 END IF;
9967 --
9968 -- Bug 4922099
9969 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
9970 (NVL(l_enc_upg_option, 'N') = 'O')
9971 ) AND
9972 (l_bflow_method_code = 'PRIOR_ENTRY')
9973 )
9974 THEN
9975 IF
9976 --
9977 1 = 2
9978 --
9979 THEN
9980 xla_accounting_err_pkg.build_message
9981 (p_appli_s_name => 'XLA'
9982 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
9983 ,p_token_1 => 'LINE_NUMBER'
9984 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
9985 ,p_token_2 => 'LINE_TYPE_NAME'
9986 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
9987 l_component_type
9988 ,l_component_code
9989 ,l_component_type_code
9990 ,l_component_appl_id
9991 ,l_amb_context_code
9992 ,l_entity_code
9993 ,l_event_class_code
9994 )
9995 ,p_token_3 => 'OWNER'
9996 ,p_value_3 => xla_lookups_pkg.get_meaning(
9997 p_lookup_type => 'XLA_OWNER_TYPE'
9998 ,p_lookup_code => l_component_type_code
9999 )
10000 ,p_token_4 => 'PRODUCT_NAME'
10001 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10002 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10006 );
10003 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10004 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10005 ,p_ae_header_id => NULL
10007
10008 IF (C_LEVEL_ERROR>= g_log_level) THEN
10009 trace
10010 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10011 ,p_level => C_LEVEL_ERROR
10012 ,p_module => l_log_module);
10013 END IF;
10014 END IF;
10015 END IF;
10016 --
10017 --
10018 ------------------------------------------------------------------------------------------------
10019 -- 4219869 Business Flow
10020 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10021 -- Prior Entry. Currently, the following code is always generated.
10022 ------------------------------------------------------------------------------------------------
10023 XLA_AE_LINES_PKG.ValidateCurrentLine;
10024
10025 ------------------------------------------------------------------------------------
10026 -- 4219869 Business Flow
10027 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10028 ------------------------------------------------------------------------------------
10029 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10030
10031 ----------------------------------------------------------------------------------
10032 -- 4219869 Business Flow
10033 -- Update journal entry status -- Need to generate this within IF <condition>
10034 ----------------------------------------------------------------------------------
10035 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10036 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10037 ,p_balance_type_code => l_balance_type_code
10038 );
10039
10040 -------------------------------------------------------------------------------------------
10041 -- 4262811 - Generate the Accrual Reversal lines
10042 -------------------------------------------------------------------------------------------
10043 BEGIN
10044 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10045 (g_array_event(p_event_id).array_value_num('header_index'));
10046 IF l_acc_rev_flag IS NULL THEN
10047 l_acc_rev_flag := 'N';
10048 END IF;
10049 EXCEPTION
10050 WHEN OTHERS THEN
10051 l_acc_rev_flag := 'N';
10052 END;
10053 --
10054 IF (l_acc_rev_flag = 'Y') THEN
10055
10056 -- 4645092 ------------------------------------------------------------------------------
10057 -- To allow MPA report to determine if it should generate report process
10058 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10059 ------------------------------------------------------------------------------------------
10060
10061 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10062 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10063
10064 --
10065 -- Update the line information that should be overwritten
10066 --
10067 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10068 p_header_num => 1);
10069 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10070
10071 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10072
10073 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10074 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10075 END IF;
10076
10077 --
10078 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10079 --
10080 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10081 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10082 ELSE
10083 ---------------------------------------------------------------------------------------------------
10084 -- 4262811a Switch Sign
10085 ---------------------------------------------------------------------------------------------------
10086 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10087 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10088 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10089 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10090 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10091 -- 5132302
10092 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10093 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10094
10095 END IF;
10096
10097 -- 4955764
10098 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10099 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10100
10101
10102 XLA_AE_LINES_PKG.ValidateCurrentLine;
10103 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10104
10105 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10106 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10107 ,p_balance_type_code => l_balance_type_code);
10108
10109 END IF;
10110
10114 -- No MPA option is assigned.
10111 -----------------------------------------------------------------------------------------
10112 -- 4262811 Multiperiod Accounting
10113 -----------------------------------------------------------------------------------------
10115
10116
10117 END IF;
10118 END IF;
10119 --
10120
10121 --
10122 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10123 trace
10124 (p_msg => 'END of AcctLineType_32'
10125 ,p_level => C_LEVEL_PROCEDURE
10126 ,p_module => l_log_module);
10127 END IF;
10128 --
10129 EXCEPTION
10130 WHEN xla_exceptions_pkg.application_exception THEN
10131 RAISE;
10132 WHEN OTHERS THEN
10133 xla_exceptions_pkg.raise_message
10134 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_32');
10135 END AcctLineType_32;
10136 --
10137
10138 ---------------------------------------
10139 --
10140 -- PRIVATE FUNCTION
10141 -- AcctLineType_33
10142 --
10143 ---------------------------------------
10144 PROCEDURE AcctLineType_33 (
10145 p_application_id IN NUMBER
10146 ,p_event_id IN NUMBER
10147 ,p_calculate_acctd_flag IN VARCHAR2
10148 ,p_calculate_g_l_flag IN VARCHAR2
10149 ,p_actual_flag IN OUT VARCHAR2
10150 ,p_balance_type_code OUT VARCHAR2
10151 ,p_gain_or_loss_ref OUT VARCHAR2
10152
10153 --Actual Upgrade Credit Accounting Class
10154 , p_source_23 IN VARCHAR2
10155 --Entered Currency Code
10156 , p_source_25 IN VARCHAR2
10157 --Exchange Rate Date
10158 , p_source_27 IN DATE
10159 --Exchange Rate
10160 , p_source_28 IN NUMBER
10161 --Exchange Rate Type
10162 , p_source_29 IN VARCHAR2
10163 --Actual Upgrade Debit Accounting Class
10164 , p_source_30 IN VARCHAR2
10165 --Use Actuals Upgrade Attributes Flag
10166 , p_source_31 IN VARCHAR2
10167 --Revenue Distribution Type
10168 , p_source_36 IN VARCHAR2
10169 --Crediting Revenue Flag
10170 , p_source_38 IN VARCHAR2
10171 --Revenue First Distribution ID
10172 , p_source_39 IN NUMBER
10173 --Revenue Second Distribution ID
10174 , p_source_40 IN NUMBER
10175 --Entered Amount
10176 , p_source_41 IN NUMBER
10177 --Event ID
10178 , p_source_42 IN NUMBER
10179 --Accounted Amount
10180 , p_source_43 IN NUMBER
10181 --Revenue Event Type Classification
10182 , p_source_58 IN VARCHAR2
10183 , p_source_58_meaning IN VARCHAR2
10184 --Actual Upgrade Credit CCID
10185 , p_source_59 IN NUMBER
10186 --Actual Upgrade Debit CCID
10187 , p_source_60 IN NUMBER
10188 --Application ID
10189 , p_source_61 IN NUMBER
10190 --Revenue Entity Code
10191 , p_source_62 IN VARCHAR2
10192 --Crediting Revenue First Distribution ID
10193 , p_source_63 IN NUMBER
10194 --Project ID
10195 , p_source_64 IN NUMBER
10196 --Crediting Revenue Second Distribution ID
10197 , p_source_65 IN NUMBER
10198 --Draft Revenue Number Credited
10199 , p_source_66 IN NUMBER
10200 )
10201 IS
10202
10203 l_component_type VARCHAR2(80);
10204 l_component_code VARCHAR2(30);
10205 l_component_type_code VARCHAR2(1);
10206 l_component_appl_id INTEGER;
10207 l_amb_context_code VARCHAR2(30);
10208 l_entity_code VARCHAR2(30);
10209 l_event_class_code VARCHAR2(30);
10210 l_ae_header_id NUMBER;
10211 l_event_type_code VARCHAR2(30);
10212 l_line_definition_code VARCHAR2(30);
10213 l_line_definition_owner_code VARCHAR2(1);
10214 --
10215 -- adr variables
10216 l_segment VARCHAR2(30);
10217 l_ccid NUMBER;
10218 l_adr_transaction_coa_id NUMBER;
10219 l_adr_accounting_coa_id NUMBER;
10220 l_adr_flexfield_segment_code VARCHAR2(30);
10221 l_adr_flex_value_set_id NUMBER;
10222 l_adr_value_type_code VARCHAR2(30);
10223 l_adr_value_combination_id NUMBER;
10224 l_adr_value_segment_code VARCHAR2(30);
10225
10226 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10227 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10228 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10229 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10230
10231 -- 4262811 Variables ------------------------------------------------------------------------------------------
10232 l_entered_amt_idx NUMBER;
10233 l_accted_amt_idx NUMBER;
10234 l_acc_rev_flag VARCHAR2(1);
10235 l_accrual_line_num NUMBER;
10236 l_tmp_amt NUMBER;
10237 l_acc_rev_natural_side_code VARCHAR2(1);
10238
10239 l_num_entries NUMBER;
10240 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10241 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10242 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10243 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10244 l_recog_line_1 NUMBER;
10245 l_recog_line_2 NUMBER;
10246
10247 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10248 l_bflow_applied_to_amt NUMBER; -- 5132302
10249 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10250
10251 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10252
10253 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10257
10254 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10255
10256 ---------------------------------------------------------------------------------------------------------------
10258
10259 --
10260 -- bulk performance
10261 --
10262 l_balance_type_code VARCHAR2(1);
10263 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10264 l_log_module VARCHAR2(240);
10265
10266 --
10267 -- Upgrade strategy
10268 --
10269 l_actual_upg_option VARCHAR2(1);
10270 l_enc_upg_option VARCHAR2(1);
10271
10272 --
10273 BEGIN
10274 --
10275 IF g_log_enabled THEN
10276 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_33';
10277 END IF;
10278 --
10279 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10280
10281 trace
10282 (p_msg => 'BEGIN of AcctLineType_33'
10283 ,p_level => C_LEVEL_PROCEDURE
10284 ,p_module => l_log_module);
10285
10286 END IF;
10287 --
10288 l_component_type := 'AMB_JLT';
10289 l_component_code := 'PA_EVENT_WO_REV_ADJ';
10290 l_component_type_code := 'S';
10291 l_component_appl_id := 275;
10292 l_amb_context_code := 'DEFAULT';
10293 l_entity_code := 'REVENUE';
10294 l_event_class_code := 'REVENUE_ADJ';
10295 l_event_type_code := 'REVENUE_ADJ_ALL';
10296 l_line_definition_owner_code := 'S';
10297 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
10298 --
10299 l_balance_type_code := 'A';
10300 l_segment := NULL;
10301 l_ccid := NULL;
10302 l_adr_transaction_coa_id := NULL;
10303 l_adr_accounting_coa_id := NULL;
10304 l_adr_flexfield_segment_code := NULL;
10305 l_adr_flex_value_set_id := NULL;
10306 l_adr_value_type_code := NULL;
10307 l_adr_value_combination_id := NULL;
10308 l_adr_value_segment_code := NULL;
10309
10310 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
10311 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
10312 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
10313 l_budgetary_control_flag := 'N';
10314
10315 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10316 l_bflow_applied_to_amt := NULL; -- 5132302
10317 l_entered_amt_idx := NULL; -- 4262811
10318 l_accted_amt_idx := NULL; -- 4262811
10319 l_acc_rev_flag := NULL; -- 4262811
10320 l_accrual_line_num := NULL; -- 4262811
10321 l_tmp_amt := NULL; -- 4262811
10322 --
10323
10324 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10325 l_balance_type_code <> 'B' THEN
10326 IF NVL(p_source_36,'
10327 ') = 'Revenue - Event Revenue' AND
10328 NVL(p_source_58,'
10329 ') = 'WRITE OFF' AND
10330 NVL(p_source_38,'
10331 ') = 'Y'
10332 THEN
10333
10334 --
10335 XLA_AE_LINES_PKG.SetNewLine;
10336
10337 p_balance_type_code := l_balance_type_code;
10338 -- set the flag so later we will know whether the gain loss line needs to be created
10339
10340 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10341 p_actual_flag :='A';
10342 END IF;
10343
10344 --
10345 -- bulk performance
10346 --
10347 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10348 p_header_num => 0); -- 4262811
10349 --
10350 -- set accounting line options
10351 --
10352 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10353 p_natural_side_code => 'C'
10354 , p_gain_or_loss_flag => 'N'
10355 , p_gl_transfer_mode_code => 'S'
10356 , p_acct_entry_type_code => 'A'
10357 , p_switch_side_flag => 'Y'
10358 , p_merge_duplicate_code => 'N'
10359 );
10360 --
10361 l_acc_rev_natural_side_code := 'D'; -- 4262811
10362 --
10363 --
10364 -- set accounting line type info
10365 --
10366 xla_ae_lines_pkg.SetAcctLineType
10367 (p_component_type => l_component_type
10368 ,p_event_type_code => l_event_type_code
10369 ,p_line_definition_owner_code => l_line_definition_owner_code
10370 ,p_line_definition_code => l_line_definition_code
10371 ,p_accounting_line_code => l_component_code
10372 ,p_accounting_line_type_code => l_component_type_code
10373 ,p_accounting_line_appl_id => l_component_appl_id
10374 ,p_amb_context_code => l_amb_context_code
10375 ,p_entity_code => l_entity_code
10376 ,p_event_class_code => l_event_class_code);
10377 --
10378 -- set accounting class
10379 --
10380 xla_ae_lines_pkg.SetAcctClass(
10381 p_accounting_class_code => 'EVENT_WO_REVENUE'
10382 , p_ae_header_id => l_ae_header_id
10383 );
10384
10385 --
10386 -- set rounding class
10387 --
10388 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10389 'EVENT_WO_REVENUE';
10390
10391 --
10392 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10393 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10394 --
10395 -- bulk performance
10396 --
10397 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10398
10402 -- 4955764
10399 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10400 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10401
10403 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10404 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10405
10406 -- 4458381 Public Sector Enh
10407
10408 --
10409 -- set accounting attributes for the line type
10410 --
10411 l_entered_amt_idx := 28;
10412 l_accted_amt_idx := 31;
10413 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10414 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
10415 l_rec_acct_attrs.array_char_value(1) := p_source_23;
10416 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
10417 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
10418 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
10419 l_rec_acct_attrs.array_num_value(3) := p_source_41;
10420 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
10421 l_rec_acct_attrs.array_char_value(4) := p_source_25;
10422 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
10423 l_rec_acct_attrs.array_num_value(5) := p_source_43;
10424 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
10425 l_rec_acct_attrs.array_date_value(6) := p_source_27;
10426 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
10427 l_rec_acct_attrs.array_num_value(7) := p_source_28;
10428 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
10429 l_rec_acct_attrs.array_char_value(8) := p_source_29;
10430 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
10431 l_rec_acct_attrs.array_char_value(9) := p_source_30;
10432 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
10433 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
10434 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
10435 l_rec_acct_attrs.array_num_value(11) := p_source_41;
10436 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
10437 l_rec_acct_attrs.array_char_value(12) := p_source_25;
10438 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
10439 l_rec_acct_attrs.array_num_value(13) := p_source_43;
10440 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
10441 l_rec_acct_attrs.array_date_value(14) := p_source_27;
10442 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
10443 l_rec_acct_attrs.array_num_value(15) := p_source_28;
10444 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
10445 l_rec_acct_attrs.array_char_value(16) := p_source_29;
10446 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
10447 l_rec_acct_attrs.array_char_value(17) := p_source_31;
10448 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
10449 l_rec_acct_attrs.array_num_value(18) := p_source_61;
10450 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
10451 l_rec_acct_attrs.array_char_value(19) := p_source_36;
10452 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
10453 l_rec_acct_attrs.array_char_value(20) := p_source_62;
10454 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
10455 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
10456 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
10457 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
10458 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
10459 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
10460 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
10461 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
10462 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
10463 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
10464 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
10465 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
10466 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
10467 l_rec_acct_attrs.array_char_value(27) := p_source_36;
10468 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
10469 l_rec_acct_attrs.array_num_value(28) := p_source_41;
10470 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
10471 l_rec_acct_attrs.array_char_value(29) := p_source_25;
10472 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
10473 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_42);
10474 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
10475 l_rec_acct_attrs.array_num_value(31) := p_source_43;
10476
10477 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10478 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10479
10480 ---------------------------------------------------------------------------------------------------------------
10481 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10482 ---------------------------------------------------------------------------------------------------------------
10483 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10484
10485 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10486 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10487
10488 IF xla_accounting_cache_pkg.GetValueChar
10489 (p_source_code => 'LEDGER_CATEGORY_CODE'
10490 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10494 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10491 AND l_bflow_method_code = 'PRIOR_ENTRY'
10492 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10493 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10495 )
10496 THEN
10497 xla_ae_lines_pkg.BflowUpgEntry
10498 (p_business_method_code => l_bflow_method_code
10499 ,p_business_class_code => l_bflow_class_code
10500 ,p_balance_type => l_balance_type_code);
10501 ELSE
10502 NULL;
10503 XLA_AE_LINES_PKG.business_flow_validation(
10504 p_business_method_code => l_bflow_method_code
10505 ,p_business_class_code => l_bflow_class_code
10506 ,p_inherit_description_flag => l_inherit_desc_flag);
10507 END IF;
10508
10509 --
10510 -- call analytical criteria
10511 --
10512 -- Inherited Analytical Criteria for business flow method of Prior Entry.
10513 --
10514 -- call description
10515 --
10516 -- No description or it is inherited.
10517 --
10518 -- call ADRs
10519 -- Bug 4922099
10520 --
10521 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
10522 (NVL(l_actual_upg_option, 'N') = 'O') OR
10523 (NVL(l_enc_upg_option, 'N') = 'O')
10524 )
10525 THEN
10526 NULL;
10527 --
10528 --
10529
10530 --
10531 --
10532 END IF;
10533 --
10534 -- Bug 4922099
10535 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
10536 (NVL(l_enc_upg_option, 'N') = 'O')
10537 ) AND
10538 (l_bflow_method_code = 'PRIOR_ENTRY')
10539 )
10540 THEN
10541 IF
10542 --
10543 1 = 1
10544 --
10545 THEN
10546 xla_accounting_err_pkg.build_message
10547 (p_appli_s_name => 'XLA'
10548 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10549 ,p_token_1 => 'LINE_NUMBER'
10550 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
10551 ,p_token_2 => 'LINE_TYPE_NAME'
10552 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
10553 l_component_type
10554 ,l_component_code
10555 ,l_component_type_code
10556 ,l_component_appl_id
10557 ,l_amb_context_code
10558 ,l_entity_code
10559 ,l_event_class_code
10560 )
10561 ,p_token_3 => 'OWNER'
10562 ,p_value_3 => xla_lookups_pkg.get_meaning(
10563 p_lookup_type => 'XLA_OWNER_TYPE'
10564 ,p_lookup_code => l_component_type_code
10565 )
10566 ,p_token_4 => 'PRODUCT_NAME'
10567 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
10568 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
10569 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
10570 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
10571 ,p_ae_header_id => NULL
10572 );
10573
10574 IF (C_LEVEL_ERROR>= g_log_level) THEN
10575 trace
10576 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
10577 ,p_level => C_LEVEL_ERROR
10578 ,p_module => l_log_module);
10579 END IF;
10580 END IF;
10581 END IF;
10582 --
10583 --
10584 ------------------------------------------------------------------------------------------------
10585 -- 4219869 Business Flow
10586 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
10587 -- Prior Entry. Currently, the following code is always generated.
10588 ------------------------------------------------------------------------------------------------
10589 -- No ValidateCurrentLine for business flow method of Prior Entry
10590
10591 ------------------------------------------------------------------------------------
10592 -- 4219869 Business Flow
10593 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
10594 ------------------------------------------------------------------------------------
10595 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10596
10597 ----------------------------------------------------------------------------------
10598 -- 4219869 Business Flow
10599 -- Update journal entry status -- Need to generate this within IF <condition>
10600 ----------------------------------------------------------------------------------
10601 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10602 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
10606 -------------------------------------------------------------------------------------------
10603 ,p_balance_type_code => l_balance_type_code
10604 );
10605
10607 -- 4262811 - Generate the Accrual Reversal lines
10608 -------------------------------------------------------------------------------------------
10609 BEGIN
10610 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
10611 (g_array_event(p_event_id).array_value_num('header_index'));
10612 IF l_acc_rev_flag IS NULL THEN
10613 l_acc_rev_flag := 'N';
10614 END IF;
10615 EXCEPTION
10616 WHEN OTHERS THEN
10617 l_acc_rev_flag := 'N';
10618 END;
10619 --
10620 IF (l_acc_rev_flag = 'Y') THEN
10621
10622 -- 4645092 ------------------------------------------------------------------------------
10623 -- To allow MPA report to determine if it should generate report process
10624 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
10625 ------------------------------------------------------------------------------------------
10626
10627 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
10628 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
10629
10630 --
10631 -- Update the line information that should be overwritten
10632 --
10633 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
10634 p_header_num => 1);
10635 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
10636
10637 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
10638
10639 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
10640 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
10641 END IF;
10642
10643 --
10644 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
10645 --
10646 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
10647 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
10648 ELSE
10649 ---------------------------------------------------------------------------------------------------
10650 -- 4262811a Switch Sign
10651 ---------------------------------------------------------------------------------------------------
10652 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
10653 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10654 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10655 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
10656 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10657 -- 5132302
10658 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
10659 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
10660
10661 END IF;
10662
10663 -- 4955764
10664 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10665 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
10666
10667
10668 XLA_AE_LINES_PKG.ValidateCurrentLine;
10669 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10670
10671 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
10672 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
10673 ,p_balance_type_code => l_balance_type_code);
10674
10675 END IF;
10676
10677 -----------------------------------------------------------------------------------------
10678 -- 4262811 Multiperiod Accounting
10679 -----------------------------------------------------------------------------------------
10680 -- No MPA option is assigned.
10681
10682
10683 END IF;
10684 END IF;
10685 --
10686
10687 --
10688 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10689 trace
10690 (p_msg => 'END of AcctLineType_33'
10691 ,p_level => C_LEVEL_PROCEDURE
10692 ,p_module => l_log_module);
10693 END IF;
10694 --
10695 EXCEPTION
10696 WHEN xla_exceptions_pkg.application_exception THEN
10697 RAISE;
10698 WHEN OTHERS THEN
10699 xla_exceptions_pkg.raise_message
10700 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_33');
10701 END AcctLineType_33;
10702 --
10703
10704 ---------------------------------------
10705 --
10706 -- PRIVATE FUNCTION
10707 -- AcctLineType_34
10708 --
10709 ---------------------------------------
10710 PROCEDURE AcctLineType_34 (
10711 p_application_id IN NUMBER
10712 ,p_event_id IN NUMBER
10713 ,p_calculate_acctd_flag IN VARCHAR2
10714 ,p_calculate_g_l_flag IN VARCHAR2
10715 ,p_actual_flag IN OUT VARCHAR2
10716 ,p_balance_type_code OUT VARCHAR2
10717 ,p_gain_or_loss_ref OUT VARCHAR2
10718
10719 --Revenue CCID
10720 , p_source_18 IN NUMBER
10721 --Entered Currency Code
10722 , p_source_25 IN VARCHAR2
10723 --Exchange Rate Date
10724 , p_source_27 IN DATE
10725 --Exchange Rate
10726 , p_source_28 IN NUMBER
10727 --Exchange Rate Type
10728 , p_source_29 IN VARCHAR2
10729 --Revenue Distribution Type
10730 , p_source_36 IN VARCHAR2
10731 --System Linkage Function
10735 --Revenue First Distribution ID
10732 , p_source_37 IN VARCHAR2
10733 --Crediting Revenue Flag
10734 , p_source_38 IN VARCHAR2
10736 , p_source_39 IN NUMBER
10737 --Revenue Second Distribution ID
10738 , p_source_40 IN NUMBER
10739 --Entered Amount
10740 , p_source_41 IN NUMBER
10741 --Event ID
10742 , p_source_42 IN NUMBER
10743 --Accounted Amount
10744 , p_source_43 IN NUMBER
10745 )
10746 IS
10747
10748 l_component_type VARCHAR2(80);
10749 l_component_code VARCHAR2(30);
10750 l_component_type_code VARCHAR2(1);
10751 l_component_appl_id INTEGER;
10752 l_amb_context_code VARCHAR2(30);
10753 l_entity_code VARCHAR2(30);
10754 l_event_class_code VARCHAR2(30);
10755 l_ae_header_id NUMBER;
10756 l_event_type_code VARCHAR2(30);
10757 l_line_definition_code VARCHAR2(30);
10758 l_line_definition_owner_code VARCHAR2(1);
10759 --
10760 -- adr variables
10761 l_segment VARCHAR2(30);
10762 l_ccid NUMBER;
10763 l_adr_transaction_coa_id NUMBER;
10764 l_adr_accounting_coa_id NUMBER;
10765 l_adr_flexfield_segment_code VARCHAR2(30);
10766 l_adr_flex_value_set_id NUMBER;
10767 l_adr_value_type_code VARCHAR2(30);
10768 l_adr_value_combination_id NUMBER;
10769 l_adr_value_segment_code VARCHAR2(30);
10770
10771 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
10772 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
10773 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
10774 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
10775
10776 -- 4262811 Variables ------------------------------------------------------------------------------------------
10777 l_entered_amt_idx NUMBER;
10778 l_accted_amt_idx NUMBER;
10779 l_acc_rev_flag VARCHAR2(1);
10780 l_accrual_line_num NUMBER;
10781 l_tmp_amt NUMBER;
10782 l_acc_rev_natural_side_code VARCHAR2(1);
10783
10784 l_num_entries NUMBER;
10785 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
10786 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
10787 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
10788 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
10789 l_recog_line_1 NUMBER;
10790 l_recog_line_2 NUMBER;
10791
10792 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
10793 l_bflow_applied_to_amt NUMBER; -- 5132302
10794 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
10795
10796 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
10797
10798 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
10799 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10800
10801 ---------------------------------------------------------------------------------------------------------------
10802
10803
10804 --
10805 -- bulk performance
10806 --
10807 l_balance_type_code VARCHAR2(1);
10808 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
10809 l_log_module VARCHAR2(240);
10810
10811 --
10812 -- Upgrade strategy
10813 --
10814 l_actual_upg_option VARCHAR2(1);
10815 l_enc_upg_option VARCHAR2(1);
10816
10817 --
10818 BEGIN
10819 --
10820 IF g_log_enabled THEN
10821 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_34';
10822 END IF;
10823 --
10824 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
10825
10826 trace
10827 (p_msg => 'BEGIN of AcctLineType_34'
10828 ,p_level => C_LEVEL_PROCEDURE
10829 ,p_module => l_log_module);
10830
10831 END IF;
10832 --
10833 l_component_type := 'AMB_JLT';
10834 l_component_code := 'PA_INV_REV';
10835 l_component_type_code := 'S';
10836 l_component_appl_id := 275;
10837 l_amb_context_code := 'DEFAULT';
10838 l_entity_code := 'REVENUE';
10839 l_event_class_code := 'REVENUE';
10840 l_event_type_code := 'REVENUE_ALL';
10841 l_line_definition_owner_code := 'S';
10842 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
10843 --
10844 l_balance_type_code := 'A';
10845 l_segment := NULL;
10846 l_ccid := NULL;
10847 l_adr_transaction_coa_id := NULL;
10848 l_adr_accounting_coa_id := NULL;
10849 l_adr_flexfield_segment_code := NULL;
10850 l_adr_flex_value_set_id := NULL;
10851 l_adr_value_type_code := NULL;
10852 l_adr_value_combination_id := NULL;
10853 l_adr_value_segment_code := NULL;
10854
10855 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
10856 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
10857 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
10858 l_budgetary_control_flag := 'N';
10859
10860 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10861 l_bflow_applied_to_amt := NULL; -- 5132302
10862 l_entered_amt_idx := NULL; -- 4262811
10863 l_accted_amt_idx := NULL; -- 4262811
10864 l_acc_rev_flag := NULL; -- 4262811
10865 l_accrual_line_num := NULL; -- 4262811
10866 l_tmp_amt := NULL; -- 4262811
10867 --
10868
10872 ') = 'Revenue - Normal Revenue' AND
10869 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
10870 l_balance_type_code <> 'B' THEN
10871 IF NVL(p_source_36,'
10873 NVL(p_source_37,'
10874 ') = 'INV' AND
10875 NVL(p_source_38,'
10876 ') = 'N'
10877 THEN
10878
10879 --
10880 XLA_AE_LINES_PKG.SetNewLine;
10881
10882 p_balance_type_code := l_balance_type_code;
10883 -- set the flag so later we will know whether the gain loss line needs to be created
10884
10885 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
10886 p_actual_flag :='A';
10887 END IF;
10888
10889 --
10890 -- bulk performance
10891 --
10892 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
10893 p_header_num => 0); -- 4262811
10894 --
10895 -- set accounting line options
10896 --
10897 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
10898 p_natural_side_code => 'C'
10899 , p_gain_or_loss_flag => 'N'
10900 , p_gl_transfer_mode_code => 'S'
10901 , p_acct_entry_type_code => 'A'
10902 , p_switch_side_flag => 'Y'
10903 , p_merge_duplicate_code => 'N'
10904 );
10905 --
10906 l_acc_rev_natural_side_code := 'D'; -- 4262811
10907 --
10908 --
10909 -- set accounting line type info
10910 --
10911 xla_ae_lines_pkg.SetAcctLineType
10912 (p_component_type => l_component_type
10913 ,p_event_type_code => l_event_type_code
10914 ,p_line_definition_owner_code => l_line_definition_owner_code
10915 ,p_line_definition_code => l_line_definition_code
10916 ,p_accounting_line_code => l_component_code
10917 ,p_accounting_line_type_code => l_component_type_code
10918 ,p_accounting_line_appl_id => l_component_appl_id
10919 ,p_amb_context_code => l_amb_context_code
10920 ,p_entity_code => l_entity_code
10921 ,p_event_class_code => l_event_class_code);
10922 --
10923 -- set accounting class
10924 --
10925 xla_ae_lines_pkg.SetAcctClass(
10926 p_accounting_class_code => 'REVENUE'
10927 , p_ae_header_id => l_ae_header_id
10928 );
10929
10930 --
10931 -- set rounding class
10932 --
10933 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
10934 'REVENUE';
10935
10936 --
10937 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
10938 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
10939 --
10940 -- bulk performance
10941 --
10942 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
10943
10944 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
10945 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
10946
10947 -- 4955764
10948 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10949 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
10950
10951 -- 4458381 Public Sector Enh
10952
10953 --
10954 -- set accounting attributes for the line type
10955 --
10956 l_entered_amt_idx := 4;
10957 l_accted_amt_idx := 10;
10958 l_bflow_applied_to_amt_idx := NULL; -- 5132302
10959 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
10960 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
10961 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
10962 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
10963 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
10964 l_rec_acct_attrs.array_char_value(3) := p_source_36;
10965 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
10966 l_rec_acct_attrs.array_num_value(4) := p_source_41;
10967 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
10968 l_rec_acct_attrs.array_char_value(5) := p_source_25;
10969 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
10970 l_rec_acct_attrs.array_date_value(6) := p_source_27;
10971 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
10972 l_rec_acct_attrs.array_num_value(7) := p_source_28;
10973 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
10974 l_rec_acct_attrs.array_char_value(8) := p_source_29;
10975 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
10976 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
10977 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
10978 l_rec_acct_attrs.array_num_value(10) := p_source_43;
10979
10980 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
10981 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
10982
10983 ---------------------------------------------------------------------------------------------------------------
10984 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
10985 ---------------------------------------------------------------------------------------------------------------
10986 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
10987
10988 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10989 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
10990
10994 AND l_bflow_method_code = 'PRIOR_ENTRY'
10991 IF xla_accounting_cache_pkg.GetValueChar
10992 (p_source_code => 'LEDGER_CATEGORY_CODE'
10993 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
10995 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
10996 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
10997 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
10998 )
10999 THEN
11000 xla_ae_lines_pkg.BflowUpgEntry
11001 (p_business_method_code => l_bflow_method_code
11002 ,p_business_class_code => l_bflow_class_code
11003 ,p_balance_type => l_balance_type_code);
11004 ELSE
11005 NULL;
11006 -- No business flow processing for business flow method of NONE.
11007 END IF;
11008
11009 --
11010 -- call analytical criteria
11011 --
11012
11013 --
11014 -- call description
11015 --
11016 -- No description or it is inherited.
11017 --
11018 -- call ADRs
11019 -- Bug 4922099
11020 --
11021 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11022 (NVL(l_actual_upg_option, 'N') = 'O') OR
11023 (NVL(l_enc_upg_option, 'N') = 'O')
11024 )
11025 THEN
11026 NULL;
11027 --
11028 --
11029
11030 l_ccid := AcctDerRule_17(
11031 p_application_id => p_application_id
11032 , p_ae_header_id => l_ae_header_id
11033 , p_source_18 => p_source_18
11034 , x_transaction_coa_id => l_adr_transaction_coa_id
11035 , x_accounting_coa_id => l_adr_accounting_coa_id
11036 , x_value_type_code => l_adr_value_type_code
11037 , p_side => 'NA'
11038 );
11039
11040 xla_ae_lines_pkg.set_ccid(
11041 p_code_combination_id => l_ccid
11042 , p_value_type_code => l_adr_value_type_code
11043 , p_transaction_coa_id => l_adr_transaction_coa_id
11044 , p_accounting_coa_id => l_adr_accounting_coa_id
11045 , p_adr_code => 'REVENUE_RULE'
11046 , p_adr_type_code => 'S'
11047 , p_component_type => l_component_type
11048 , p_component_code => l_component_code
11049 , p_component_type_code => l_component_type_code
11050 , p_component_appl_id => l_component_appl_id
11051 , p_amb_context_code => l_amb_context_code
11052 , p_side => 'NA'
11053 );
11054
11055
11056 --
11057 --
11058 END IF;
11059 --
11060 -- Bug 4922099
11061 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11062 (NVL(l_enc_upg_option, 'N') = 'O')
11063 ) AND
11064 (l_bflow_method_code = 'PRIOR_ENTRY')
11065 )
11066 THEN
11067 IF
11068 --
11069 1 = 2
11070 --
11071 THEN
11072 xla_accounting_err_pkg.build_message
11073 (p_appli_s_name => 'XLA'
11074 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11075 ,p_token_1 => 'LINE_NUMBER'
11076 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11077 ,p_token_2 => 'LINE_TYPE_NAME'
11078 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11079 l_component_type
11080 ,l_component_code
11081 ,l_component_type_code
11082 ,l_component_appl_id
11083 ,l_amb_context_code
11084 ,l_entity_code
11085 ,l_event_class_code
11086 )
11087 ,p_token_3 => 'OWNER'
11088 ,p_value_3 => xla_lookups_pkg.get_meaning(
11089 p_lookup_type => 'XLA_OWNER_TYPE'
11090 ,p_lookup_code => l_component_type_code
11091 )
11092 ,p_token_4 => 'PRODUCT_NAME'
11093 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11094 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11095 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11096 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11097 ,p_ae_header_id => NULL
11098 );
11099
11100 IF (C_LEVEL_ERROR>= g_log_level) THEN
11101 trace
11102 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11103 ,p_level => C_LEVEL_ERROR
11104 ,p_module => l_log_module);
11105 END IF;
11106 END IF;
11107 END IF;
11108 --
11109 --
11113 -- Prior Entry. Currently, the following code is always generated.
11110 ------------------------------------------------------------------------------------------------
11111 -- 4219869 Business Flow
11112 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11114 ------------------------------------------------------------------------------------------------
11115 XLA_AE_LINES_PKG.ValidateCurrentLine;
11116
11117 ------------------------------------------------------------------------------------
11118 -- 4219869 Business Flow
11119 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11120 ------------------------------------------------------------------------------------
11121 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11122
11123 ----------------------------------------------------------------------------------
11124 -- 4219869 Business Flow
11125 -- Update journal entry status -- Need to generate this within IF <condition>
11126 ----------------------------------------------------------------------------------
11127 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11128 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11129 ,p_balance_type_code => l_balance_type_code
11130 );
11131
11132 -------------------------------------------------------------------------------------------
11133 -- 4262811 - Generate the Accrual Reversal lines
11134 -------------------------------------------------------------------------------------------
11135 BEGIN
11136 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11137 (g_array_event(p_event_id).array_value_num('header_index'));
11138 IF l_acc_rev_flag IS NULL THEN
11139 l_acc_rev_flag := 'N';
11140 END IF;
11141 EXCEPTION
11142 WHEN OTHERS THEN
11143 l_acc_rev_flag := 'N';
11144 END;
11145 --
11146 IF (l_acc_rev_flag = 'Y') THEN
11147
11148 -- 4645092 ------------------------------------------------------------------------------
11149 -- To allow MPA report to determine if it should generate report process
11150 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11151 ------------------------------------------------------------------------------------------
11152
11153 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11154 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11155
11156 --
11157 -- Update the line information that should be overwritten
11158 --
11159 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11160 p_header_num => 1);
11161 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11162
11163 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11164
11165 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11166 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11167 END IF;
11168
11169 --
11170 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11171 --
11172 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11173 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11174 ELSE
11175 ---------------------------------------------------------------------------------------------------
11176 -- 4262811a Switch Sign
11177 ---------------------------------------------------------------------------------------------------
11178 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11179 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11180 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11181 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11182 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11183 -- 5132302
11184 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11185 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11186
11187 END IF;
11188
11189 -- 4955764
11190 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11191 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11192
11193
11194 XLA_AE_LINES_PKG.ValidateCurrentLine;
11195 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11196
11197 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11198 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11199 ,p_balance_type_code => l_balance_type_code);
11200
11201 END IF;
11202
11203 -----------------------------------------------------------------------------------------
11204 -- 4262811 Multiperiod Accounting
11205 -----------------------------------------------------------------------------------------
11206 -- No MPA option is assigned.
11207
11208
11209 END IF;
11210 END IF;
11211 --
11212
11213 --
11214 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11215 trace
11216 (p_msg => 'END of AcctLineType_34'
11217 ,p_level => C_LEVEL_PROCEDURE
11218 ,p_module => l_log_module);
11219 END IF;
11220 --
11221 EXCEPTION
11222 WHEN xla_exceptions_pkg.application_exception THEN
11223 RAISE;
11224 WHEN OTHERS THEN
11228 --
11225 xla_exceptions_pkg.raise_message
11226 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_34');
11227 END AcctLineType_34;
11229
11230 ---------------------------------------
11231 --
11232 -- PRIVATE FUNCTION
11233 -- AcctLineType_35
11234 --
11235 ---------------------------------------
11236 PROCEDURE AcctLineType_35 (
11237 p_application_id IN NUMBER
11238 ,p_event_id IN NUMBER
11239 ,p_calculate_acctd_flag IN VARCHAR2
11240 ,p_calculate_g_l_flag IN VARCHAR2
11241 ,p_actual_flag IN OUT VARCHAR2
11242 ,p_balance_type_code OUT VARCHAR2
11243 ,p_gain_or_loss_ref OUT VARCHAR2
11244
11245 --Revenue CCID
11246 , p_source_18 IN NUMBER
11247 --Entered Currency Code
11248 , p_source_25 IN VARCHAR2
11249 --Exchange Rate Date
11250 , p_source_27 IN DATE
11251 --Exchange Rate
11252 , p_source_28 IN NUMBER
11253 --Exchange Rate Type
11254 , p_source_29 IN VARCHAR2
11255 --Revenue Distribution Type
11256 , p_source_36 IN VARCHAR2
11257 --System Linkage Function
11258 , p_source_37 IN VARCHAR2
11259 --Crediting Revenue Flag
11260 , p_source_38 IN VARCHAR2
11261 --Revenue First Distribution ID
11262 , p_source_39 IN NUMBER
11263 --Revenue Second Distribution ID
11264 , p_source_40 IN NUMBER
11265 --Entered Amount
11266 , p_source_41 IN NUMBER
11267 --Event ID
11268 , p_source_42 IN NUMBER
11269 --Accounted Amount
11270 , p_source_43 IN NUMBER
11271 )
11272 IS
11273
11274 l_component_type VARCHAR2(80);
11275 l_component_code VARCHAR2(30);
11276 l_component_type_code VARCHAR2(1);
11277 l_component_appl_id INTEGER;
11278 l_amb_context_code VARCHAR2(30);
11279 l_entity_code VARCHAR2(30);
11280 l_event_class_code VARCHAR2(30);
11281 l_ae_header_id NUMBER;
11282 l_event_type_code VARCHAR2(30);
11283 l_line_definition_code VARCHAR2(30);
11284 l_line_definition_owner_code VARCHAR2(1);
11285 --
11286 -- adr variables
11287 l_segment VARCHAR2(30);
11288 l_ccid NUMBER;
11289 l_adr_transaction_coa_id NUMBER;
11290 l_adr_accounting_coa_id NUMBER;
11291 l_adr_flexfield_segment_code VARCHAR2(30);
11292 l_adr_flex_value_set_id NUMBER;
11293 l_adr_value_type_code VARCHAR2(30);
11294 l_adr_value_combination_id NUMBER;
11295 l_adr_value_segment_code VARCHAR2(30);
11296
11297 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11298 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11299 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11300 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11301
11302 -- 4262811 Variables ------------------------------------------------------------------------------------------
11303 l_entered_amt_idx NUMBER;
11304 l_accted_amt_idx NUMBER;
11305 l_acc_rev_flag VARCHAR2(1);
11306 l_accrual_line_num NUMBER;
11307 l_tmp_amt NUMBER;
11308 l_acc_rev_natural_side_code VARCHAR2(1);
11309
11310 l_num_entries NUMBER;
11311 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11312 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11313 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11314 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11315 l_recog_line_1 NUMBER;
11316 l_recog_line_2 NUMBER;
11317
11318 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11319 l_bflow_applied_to_amt NUMBER; -- 5132302
11320 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11321
11322 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11323
11324 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11325 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11326
11327 ---------------------------------------------------------------------------------------------------------------
11328
11329
11330 --
11331 -- bulk performance
11332 --
11333 l_balance_type_code VARCHAR2(1);
11334 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11335 l_log_module VARCHAR2(240);
11336
11337 --
11338 -- Upgrade strategy
11339 --
11340 l_actual_upg_option VARCHAR2(1);
11341 l_enc_upg_option VARCHAR2(1);
11342
11343 --
11344 BEGIN
11345 --
11346 IF g_log_enabled THEN
11347 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_35';
11348 END IF;
11349 --
11350 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11351
11352 trace
11353 (p_msg => 'BEGIN of AcctLineType_35'
11354 ,p_level => C_LEVEL_PROCEDURE
11355 ,p_module => l_log_module);
11356
11357 END IF;
11358 --
11359 l_component_type := 'AMB_JLT';
11360 l_component_code := 'PA_LABOR_REV';
11361 l_component_type_code := 'S';
11362 l_component_appl_id := 275;
11363 l_amb_context_code := 'DEFAULT';
11364 l_entity_code := 'REVENUE';
11365 l_event_class_code := 'REVENUE';
11366 l_event_type_code := 'REVENUE_ALL';
11367 l_line_definition_owner_code := 'S';
11368 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
11369 --
11370 l_balance_type_code := 'A';
11374 l_adr_accounting_coa_id := NULL;
11371 l_segment := NULL;
11372 l_ccid := NULL;
11373 l_adr_transaction_coa_id := NULL;
11375 l_adr_flexfield_segment_code := NULL;
11376 l_adr_flex_value_set_id := NULL;
11377 l_adr_value_type_code := NULL;
11378 l_adr_value_combination_id := NULL;
11379 l_adr_value_segment_code := NULL;
11380
11381 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11382 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
11383 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11384 l_budgetary_control_flag := 'N';
11385
11386 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11387 l_bflow_applied_to_amt := NULL; -- 5132302
11388 l_entered_amt_idx := NULL; -- 4262811
11389 l_accted_amt_idx := NULL; -- 4262811
11390 l_acc_rev_flag := NULL; -- 4262811
11391 l_accrual_line_num := NULL; -- 4262811
11392 l_tmp_amt := NULL; -- 4262811
11393 --
11394
11395 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11396 l_balance_type_code <> 'B' THEN
11397 IF NVL(p_source_36,'
11398 ') = 'Revenue - Normal Revenue' AND
11399 (NVL(p_source_37,'
11400 ') = 'ST' OR
11401 NVL(p_source_37,'
11402 ') = 'OT') AND
11403 NVL(p_source_38,'
11404 ') = 'N'
11405 THEN
11406
11407 --
11408 XLA_AE_LINES_PKG.SetNewLine;
11409
11410 p_balance_type_code := l_balance_type_code;
11411 -- set the flag so later we will know whether the gain loss line needs to be created
11412
11413 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11414 p_actual_flag :='A';
11415 END IF;
11416
11417 --
11418 -- bulk performance
11419 --
11420 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11421 p_header_num => 0); -- 4262811
11422 --
11423 -- set accounting line options
11424 --
11425 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11426 p_natural_side_code => 'C'
11427 , p_gain_or_loss_flag => 'N'
11428 , p_gl_transfer_mode_code => 'S'
11429 , p_acct_entry_type_code => 'A'
11430 , p_switch_side_flag => 'Y'
11431 , p_merge_duplicate_code => 'N'
11432 );
11433 --
11434 l_acc_rev_natural_side_code := 'D'; -- 4262811
11435 --
11436 --
11437 -- set accounting line type info
11438 --
11439 xla_ae_lines_pkg.SetAcctLineType
11440 (p_component_type => l_component_type
11441 ,p_event_type_code => l_event_type_code
11442 ,p_line_definition_owner_code => l_line_definition_owner_code
11443 ,p_line_definition_code => l_line_definition_code
11444 ,p_accounting_line_code => l_component_code
11445 ,p_accounting_line_type_code => l_component_type_code
11446 ,p_accounting_line_appl_id => l_component_appl_id
11447 ,p_amb_context_code => l_amb_context_code
11448 ,p_entity_code => l_entity_code
11449 ,p_event_class_code => l_event_class_code);
11450 --
11451 -- set accounting class
11452 --
11453 xla_ae_lines_pkg.SetAcctClass(
11454 p_accounting_class_code => 'REVENUE'
11455 , p_ae_header_id => l_ae_header_id
11456 );
11457
11458 --
11459 -- set rounding class
11460 --
11461 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11462 'REVENUE';
11463
11464 --
11465 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11466 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11467 --
11468 -- bulk performance
11469 --
11470 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11471
11472 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11473 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
11474
11475 -- 4955764
11476 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11477 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
11478
11479 -- 4458381 Public Sector Enh
11480
11481 --
11482 -- set accounting attributes for the line type
11483 --
11484 l_entered_amt_idx := 4;
11485 l_accted_amt_idx := 10;
11486 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11487 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
11488 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
11489 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
11490 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
11491 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
11492 l_rec_acct_attrs.array_char_value(3) := p_source_36;
11493 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
11494 l_rec_acct_attrs.array_num_value(4) := p_source_41;
11495 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
11496 l_rec_acct_attrs.array_char_value(5) := p_source_25;
11497 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
11498 l_rec_acct_attrs.array_date_value(6) := p_source_27;
11499 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
11500 l_rec_acct_attrs.array_num_value(7) := p_source_28;
11501 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
11505 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
11502 l_rec_acct_attrs.array_char_value(8) := p_source_29;
11503 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
11504 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
11506 l_rec_acct_attrs.array_num_value(10) := p_source_43;
11507
11508 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
11509 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
11510
11511 ---------------------------------------------------------------------------------------------------------------
11512 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
11513 ---------------------------------------------------------------------------------------------------------------
11514 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
11515
11516 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11517 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
11518
11519 IF xla_accounting_cache_pkg.GetValueChar
11520 (p_source_code => 'LEDGER_CATEGORY_CODE'
11521 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
11522 AND l_bflow_method_code = 'PRIOR_ENTRY'
11523 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
11524 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
11525 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11526 )
11527 THEN
11528 xla_ae_lines_pkg.BflowUpgEntry
11529 (p_business_method_code => l_bflow_method_code
11530 ,p_business_class_code => l_bflow_class_code
11531 ,p_balance_type => l_balance_type_code);
11532 ELSE
11533 NULL;
11534 -- No business flow processing for business flow method of NONE.
11535 END IF;
11536
11537 --
11538 -- call analytical criteria
11539 --
11540
11541 --
11542 -- call description
11543 --
11544 -- No description or it is inherited.
11545 --
11546 -- call ADRs
11547 -- Bug 4922099
11548 --
11549 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
11550 (NVL(l_actual_upg_option, 'N') = 'O') OR
11551 (NVL(l_enc_upg_option, 'N') = 'O')
11552 )
11553 THEN
11554 NULL;
11555 --
11556 --
11557
11558 l_ccid := AcctDerRule_17(
11559 p_application_id => p_application_id
11560 , p_ae_header_id => l_ae_header_id
11561 , p_source_18 => p_source_18
11562 , x_transaction_coa_id => l_adr_transaction_coa_id
11563 , x_accounting_coa_id => l_adr_accounting_coa_id
11564 , x_value_type_code => l_adr_value_type_code
11565 , p_side => 'NA'
11566 );
11567
11568 xla_ae_lines_pkg.set_ccid(
11569 p_code_combination_id => l_ccid
11570 , p_value_type_code => l_adr_value_type_code
11571 , p_transaction_coa_id => l_adr_transaction_coa_id
11572 , p_accounting_coa_id => l_adr_accounting_coa_id
11573 , p_adr_code => 'REVENUE_RULE'
11574 , p_adr_type_code => 'S'
11575 , p_component_type => l_component_type
11576 , p_component_code => l_component_code
11577 , p_component_type_code => l_component_type_code
11578 , p_component_appl_id => l_component_appl_id
11579 , p_amb_context_code => l_amb_context_code
11580 , p_side => 'NA'
11581 );
11582
11583
11584 --
11585 --
11586 END IF;
11587 --
11588 -- Bug 4922099
11589 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
11590 (NVL(l_enc_upg_option, 'N') = 'O')
11591 ) AND
11592 (l_bflow_method_code = 'PRIOR_ENTRY')
11593 )
11594 THEN
11595 IF
11596 --
11597 1 = 2
11598 --
11599 THEN
11600 xla_accounting_err_pkg.build_message
11601 (p_appli_s_name => 'XLA'
11602 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11603 ,p_token_1 => 'LINE_NUMBER'
11604 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
11605 ,p_token_2 => 'LINE_TYPE_NAME'
11606 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11607 l_component_type
11608 ,l_component_code
11609 ,l_component_type_code
11610 ,l_component_appl_id
11611 ,l_amb_context_code
11612 ,l_entity_code
11613 ,l_event_class_code
11614 )
11615 ,p_token_3 => 'OWNER'
11616 ,p_value_3 => xla_lookups_pkg.get_meaning(
11617 p_lookup_type => 'XLA_OWNER_TYPE'
11618 ,p_lookup_code => l_component_type_code
11622 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
11619 )
11620 ,p_token_4 => 'PRODUCT_NAME'
11621 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11623 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
11624 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
11625 ,p_ae_header_id => NULL
11626 );
11627
11628 IF (C_LEVEL_ERROR>= g_log_level) THEN
11629 trace
11630 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
11631 ,p_level => C_LEVEL_ERROR
11632 ,p_module => l_log_module);
11633 END IF;
11634 END IF;
11635 END IF;
11636 --
11637 --
11638 ------------------------------------------------------------------------------------------------
11639 -- 4219869 Business Flow
11640 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11641 -- Prior Entry. Currently, the following code is always generated.
11642 ------------------------------------------------------------------------------------------------
11643 XLA_AE_LINES_PKG.ValidateCurrentLine;
11644
11645 ------------------------------------------------------------------------------------
11646 -- 4219869 Business Flow
11647 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
11648 ------------------------------------------------------------------------------------
11649 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11650
11651 ----------------------------------------------------------------------------------
11652 -- 4219869 Business Flow
11653 -- Update journal entry status -- Need to generate this within IF <condition>
11654 ----------------------------------------------------------------------------------
11655 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11656 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
11657 ,p_balance_type_code => l_balance_type_code
11658 );
11659
11660 -------------------------------------------------------------------------------------------
11661 -- 4262811 - Generate the Accrual Reversal lines
11662 -------------------------------------------------------------------------------------------
11663 BEGIN
11664 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
11665 (g_array_event(p_event_id).array_value_num('header_index'));
11666 IF l_acc_rev_flag IS NULL THEN
11667 l_acc_rev_flag := 'N';
11668 END IF;
11669 EXCEPTION
11670 WHEN OTHERS THEN
11671 l_acc_rev_flag := 'N';
11672 END;
11673 --
11674 IF (l_acc_rev_flag = 'Y') THEN
11675
11676 -- 4645092 ------------------------------------------------------------------------------
11677 -- To allow MPA report to determine if it should generate report process
11678 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
11679 ------------------------------------------------------------------------------------------
11680
11681 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
11682 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
11683
11684 --
11685 -- Update the line information that should be overwritten
11686 --
11687 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
11688 p_header_num => 1);
11689 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
11690
11691 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
11692
11693 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
11694 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
11695 END IF;
11696
11697 --
11698 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
11699 --
11700 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
11701 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
11702 ELSE
11703 ---------------------------------------------------------------------------------------------------
11704 -- 4262811a Switch Sign
11705 ---------------------------------------------------------------------------------------------------
11706 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
11707 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11708 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11709 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
11710 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11711 -- 5132302
11712 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
11713 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
11714
11715 END IF;
11716
11717 -- 4955764
11718 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
11719 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
11720
11721
11725 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
11722 XLA_AE_LINES_PKG.ValidateCurrentLine;
11723 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11724
11726 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
11727 ,p_balance_type_code => l_balance_type_code);
11728
11729 END IF;
11730
11731 -----------------------------------------------------------------------------------------
11732 -- 4262811 Multiperiod Accounting
11733 -----------------------------------------------------------------------------------------
11734 -- No MPA option is assigned.
11735
11736
11737 END IF;
11738 END IF;
11739 --
11740
11741 --
11742 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11743 trace
11744 (p_msg => 'END of AcctLineType_35'
11745 ,p_level => C_LEVEL_PROCEDURE
11746 ,p_module => l_log_module);
11747 END IF;
11748 --
11749 EXCEPTION
11750 WHEN xla_exceptions_pkg.application_exception THEN
11751 RAISE;
11752 WHEN OTHERS THEN
11753 xla_exceptions_pkg.raise_message
11754 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_35');
11755 END AcctLineType_35;
11756 --
11757
11758 ---------------------------------------
11759 --
11760 -- PRIVATE FUNCTION
11761 -- AcctLineType_36
11762 --
11763 ---------------------------------------
11764 PROCEDURE AcctLineType_36 (
11765 p_application_id IN NUMBER
11766 ,p_event_id IN NUMBER
11767 ,p_calculate_acctd_flag IN VARCHAR2
11768 ,p_calculate_g_l_flag IN VARCHAR2
11769 ,p_actual_flag IN OUT VARCHAR2
11770 ,p_balance_type_code OUT VARCHAR2
11771 ,p_gain_or_loss_ref OUT VARCHAR2
11772
11773 --Revenue CCID
11774 , p_source_18 IN NUMBER
11775 --Entered Currency Code
11776 , p_source_25 IN VARCHAR2
11777 --Exchange Rate Date
11778 , p_source_27 IN DATE
11779 --Exchange Rate
11780 , p_source_28 IN NUMBER
11781 --Exchange Rate Type
11782 , p_source_29 IN VARCHAR2
11783 --Revenue Distribution Type
11784 , p_source_36 IN VARCHAR2
11785 --System Linkage Function
11786 , p_source_37 IN VARCHAR2
11787 --Crediting Revenue Flag
11788 , p_source_38 IN VARCHAR2
11789 --Revenue First Distribution ID
11790 , p_source_39 IN NUMBER
11791 --Revenue Second Distribution ID
11792 , p_source_40 IN NUMBER
11793 --Entered Amount
11794 , p_source_41 IN NUMBER
11795 --Event ID
11796 , p_source_42 IN NUMBER
11797 --Accounted Amount
11798 , p_source_43 IN NUMBER
11799 )
11800 IS
11801
11802 l_component_type VARCHAR2(80);
11803 l_component_code VARCHAR2(30);
11804 l_component_type_code VARCHAR2(1);
11805 l_component_appl_id INTEGER;
11806 l_amb_context_code VARCHAR2(30);
11807 l_entity_code VARCHAR2(30);
11808 l_event_class_code VARCHAR2(30);
11809 l_ae_header_id NUMBER;
11810 l_event_type_code VARCHAR2(30);
11811 l_line_definition_code VARCHAR2(30);
11812 l_line_definition_owner_code VARCHAR2(1);
11813 --
11814 -- adr variables
11815 l_segment VARCHAR2(30);
11816 l_ccid NUMBER;
11817 l_adr_transaction_coa_id NUMBER;
11818 l_adr_accounting_coa_id NUMBER;
11819 l_adr_flexfield_segment_code VARCHAR2(30);
11820 l_adr_flex_value_set_id NUMBER;
11821 l_adr_value_type_code VARCHAR2(30);
11822 l_adr_value_combination_id NUMBER;
11823 l_adr_value_segment_code VARCHAR2(30);
11824
11825 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
11826 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
11827 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
11828 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
11829
11830 -- 4262811 Variables ------------------------------------------------------------------------------------------
11831 l_entered_amt_idx NUMBER;
11832 l_accted_amt_idx NUMBER;
11833 l_acc_rev_flag VARCHAR2(1);
11834 l_accrual_line_num NUMBER;
11835 l_tmp_amt NUMBER;
11836 l_acc_rev_natural_side_code VARCHAR2(1);
11837
11838 l_num_entries NUMBER;
11839 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
11840 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
11841 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
11842 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
11843 l_recog_line_1 NUMBER;
11844 l_recog_line_2 NUMBER;
11845
11846 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
11847 l_bflow_applied_to_amt NUMBER; -- 5132302
11848 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
11849
11850 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
11851
11852 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
11853 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
11854
11855 ---------------------------------------------------------------------------------------------------------------
11856
11857
11858 --
11859 -- bulk performance
11860 --
11861 l_balance_type_code VARCHAR2(1);
11862 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
11863 l_log_module VARCHAR2(240);
11864
11865 --
11866 -- Upgrade strategy
11867 --
11871 --
11868 l_actual_upg_option VARCHAR2(1);
11869 l_enc_upg_option VARCHAR2(1);
11870
11872 BEGIN
11873 --
11874 IF g_log_enabled THEN
11875 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_36';
11876 END IF;
11877 --
11878 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11879
11880 trace
11881 (p_msg => 'BEGIN of AcctLineType_36'
11882 ,p_level => C_LEVEL_PROCEDURE
11883 ,p_module => l_log_module);
11884
11885 END IF;
11886 --
11887 l_component_type := 'AMB_JLT';
11888 l_component_code := 'PA_PJ_REV';
11889 l_component_type_code := 'S';
11890 l_component_appl_id := 275;
11891 l_amb_context_code := 'DEFAULT';
11892 l_entity_code := 'REVENUE';
11893 l_event_class_code := 'REVENUE';
11894 l_event_type_code := 'REVENUE_ALL';
11895 l_line_definition_owner_code := 'S';
11896 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
11897 --
11898 l_balance_type_code := 'A';
11899 l_segment := NULL;
11900 l_ccid := NULL;
11901 l_adr_transaction_coa_id := NULL;
11902 l_adr_accounting_coa_id := NULL;
11903 l_adr_flexfield_segment_code := NULL;
11904 l_adr_flex_value_set_id := NULL;
11905 l_adr_value_type_code := NULL;
11906 l_adr_value_combination_id := NULL;
11907 l_adr_value_segment_code := NULL;
11908
11909 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
11910 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
11911 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
11912 l_budgetary_control_flag := 'N';
11913
11914 l_bflow_applied_to_amt_idx := NULL; -- 5132302
11915 l_bflow_applied_to_amt := NULL; -- 5132302
11916 l_entered_amt_idx := NULL; -- 4262811
11917 l_accted_amt_idx := NULL; -- 4262811
11918 l_acc_rev_flag := NULL; -- 4262811
11919 l_accrual_line_num := NULL; -- 4262811
11920 l_tmp_amt := NULL; -- 4262811
11921 --
11922
11923 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
11924 l_balance_type_code <> 'B' THEN
11925 IF NVL(p_source_36,'
11926 ') = 'Revenue - Normal Revenue' AND
11927 NVL(p_source_37,'
11928 ') = 'PJ' AND
11929 NVL(p_source_38,'
11930 ') = 'N'
11931 THEN
11932
11933 --
11934 XLA_AE_LINES_PKG.SetNewLine;
11935
11936 p_balance_type_code := l_balance_type_code;
11937 -- set the flag so later we will know whether the gain loss line needs to be created
11938
11939 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
11940 p_actual_flag :='A';
11941 END IF;
11942
11943 --
11944 -- bulk performance
11945 --
11946 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
11947 p_header_num => 0); -- 4262811
11948 --
11949 -- set accounting line options
11950 --
11951 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
11952 p_natural_side_code => 'C'
11953 , p_gain_or_loss_flag => 'N'
11954 , p_gl_transfer_mode_code => 'S'
11955 , p_acct_entry_type_code => 'A'
11956 , p_switch_side_flag => 'Y'
11957 , p_merge_duplicate_code => 'N'
11958 );
11959 --
11960 l_acc_rev_natural_side_code := 'D'; -- 4262811
11961 --
11962 --
11963 -- set accounting line type info
11964 --
11965 xla_ae_lines_pkg.SetAcctLineType
11966 (p_component_type => l_component_type
11967 ,p_event_type_code => l_event_type_code
11968 ,p_line_definition_owner_code => l_line_definition_owner_code
11969 ,p_line_definition_code => l_line_definition_code
11970 ,p_accounting_line_code => l_component_code
11971 ,p_accounting_line_type_code => l_component_type_code
11972 ,p_accounting_line_appl_id => l_component_appl_id
11973 ,p_amb_context_code => l_amb_context_code
11974 ,p_entity_code => l_entity_code
11975 ,p_event_class_code => l_event_class_code);
11976 --
11977 -- set accounting class
11978 --
11979 xla_ae_lines_pkg.SetAcctClass(
11980 p_accounting_class_code => 'REVENUE'
11981 , p_ae_header_id => l_ae_header_id
11982 );
11983
11984 --
11985 -- set rounding class
11986 --
11987 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
11988 'REVENUE';
11989
11990 --
11991 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
11992 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
11993 --
11994 -- bulk performance
11995 --
11996 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
11997
11998 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
11999 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12000
12001 -- 4955764
12002 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12003 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12004
12005 -- 4458381 Public Sector Enh
12006
12007 --
12008 -- set accounting attributes for the line type
12009 --
12010 l_entered_amt_idx := 4;
12011 l_accted_amt_idx := 10;
12015 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
12012 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12013 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
12014 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
12016 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
12017 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
12018 l_rec_acct_attrs.array_char_value(3) := p_source_36;
12019 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
12020 l_rec_acct_attrs.array_num_value(4) := p_source_41;
12021 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
12022 l_rec_acct_attrs.array_char_value(5) := p_source_25;
12023 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
12024 l_rec_acct_attrs.array_date_value(6) := p_source_27;
12025 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
12026 l_rec_acct_attrs.array_num_value(7) := p_source_28;
12027 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
12028 l_rec_acct_attrs.array_char_value(8) := p_source_29;
12029 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
12030 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
12031 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
12032 l_rec_acct_attrs.array_num_value(10) := p_source_43;
12033
12034 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12035 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12036
12037 ---------------------------------------------------------------------------------------------------------------
12038 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12039 ---------------------------------------------------------------------------------------------------------------
12040 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12041
12042 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12043 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12044
12045 IF xla_accounting_cache_pkg.GetValueChar
12046 (p_source_code => 'LEDGER_CATEGORY_CODE'
12047 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12048 AND l_bflow_method_code = 'PRIOR_ENTRY'
12049 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12050 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12051 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12052 )
12053 THEN
12054 xla_ae_lines_pkg.BflowUpgEntry
12055 (p_business_method_code => l_bflow_method_code
12056 ,p_business_class_code => l_bflow_class_code
12057 ,p_balance_type => l_balance_type_code);
12058 ELSE
12059 NULL;
12060 -- No business flow processing for business flow method of NONE.
12061 END IF;
12062
12063 --
12064 -- call analytical criteria
12065 --
12066
12067 --
12068 -- call description
12069 --
12070 -- No description or it is inherited.
12071 --
12072 -- call ADRs
12073 -- Bug 4922099
12074 --
12075 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12076 (NVL(l_actual_upg_option, 'N') = 'O') OR
12077 (NVL(l_enc_upg_option, 'N') = 'O')
12078 )
12079 THEN
12080 NULL;
12081 --
12082 --
12083
12084 l_ccid := AcctDerRule_17(
12085 p_application_id => p_application_id
12086 , p_ae_header_id => l_ae_header_id
12087 , p_source_18 => p_source_18
12088 , x_transaction_coa_id => l_adr_transaction_coa_id
12089 , x_accounting_coa_id => l_adr_accounting_coa_id
12090 , x_value_type_code => l_adr_value_type_code
12091 , p_side => 'NA'
12092 );
12093
12094 xla_ae_lines_pkg.set_ccid(
12095 p_code_combination_id => l_ccid
12096 , p_value_type_code => l_adr_value_type_code
12097 , p_transaction_coa_id => l_adr_transaction_coa_id
12098 , p_accounting_coa_id => l_adr_accounting_coa_id
12099 , p_adr_code => 'REVENUE_RULE'
12100 , p_adr_type_code => 'S'
12101 , p_component_type => l_component_type
12102 , p_component_code => l_component_code
12103 , p_component_type_code => l_component_type_code
12104 , p_component_appl_id => l_component_appl_id
12105 , p_amb_context_code => l_amb_context_code
12106 , p_side => 'NA'
12107 );
12108
12109
12110 --
12111 --
12112 END IF;
12113 --
12114 -- Bug 4922099
12115 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12116 (NVL(l_enc_upg_option, 'N') = 'O')
12117 ) AND
12118 (l_bflow_method_code = 'PRIOR_ENTRY')
12119 )
12120 THEN
12121 IF
12122 --
12123 1 = 2
12124 --
12125 THEN
12126 xla_accounting_err_pkg.build_message
12127 (p_appli_s_name => 'XLA'
12128 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12129 ,p_token_1 => 'LINE_NUMBER'
12130 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12131 ,p_token_2 => 'LINE_TYPE_NAME'
12132 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12136 ,l_component_appl_id
12133 l_component_type
12134 ,l_component_code
12135 ,l_component_type_code
12137 ,l_amb_context_code
12138 ,l_entity_code
12139 ,l_event_class_code
12140 )
12141 ,p_token_3 => 'OWNER'
12142 ,p_value_3 => xla_lookups_pkg.get_meaning(
12143 p_lookup_type => 'XLA_OWNER_TYPE'
12144 ,p_lookup_code => l_component_type_code
12145 )
12146 ,p_token_4 => 'PRODUCT_NAME'
12147 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12148 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12149 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12150 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12151 ,p_ae_header_id => NULL
12152 );
12153
12154 IF (C_LEVEL_ERROR>= g_log_level) THEN
12155 trace
12156 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12157 ,p_level => C_LEVEL_ERROR
12158 ,p_module => l_log_module);
12159 END IF;
12160 END IF;
12161 END IF;
12162 --
12163 --
12164 ------------------------------------------------------------------------------------------------
12165 -- 4219869 Business Flow
12166 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12167 -- Prior Entry. Currently, the following code is always generated.
12168 ------------------------------------------------------------------------------------------------
12169 XLA_AE_LINES_PKG.ValidateCurrentLine;
12170
12171 ------------------------------------------------------------------------------------
12172 -- 4219869 Business Flow
12173 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12174 ------------------------------------------------------------------------------------
12175 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12176
12177 ----------------------------------------------------------------------------------
12178 -- 4219869 Business Flow
12179 -- Update journal entry status -- Need to generate this within IF <condition>
12180 ----------------------------------------------------------------------------------
12181 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12182 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12183 ,p_balance_type_code => l_balance_type_code
12184 );
12185
12186 -------------------------------------------------------------------------------------------
12187 -- 4262811 - Generate the Accrual Reversal lines
12188 -------------------------------------------------------------------------------------------
12189 BEGIN
12190 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12191 (g_array_event(p_event_id).array_value_num('header_index'));
12192 IF l_acc_rev_flag IS NULL THEN
12193 l_acc_rev_flag := 'N';
12194 END IF;
12195 EXCEPTION
12196 WHEN OTHERS THEN
12197 l_acc_rev_flag := 'N';
12198 END;
12199 --
12200 IF (l_acc_rev_flag = 'Y') THEN
12201
12202 -- 4645092 ------------------------------------------------------------------------------
12203 -- To allow MPA report to determine if it should generate report process
12204 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12205 ------------------------------------------------------------------------------------------
12206
12207 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12208 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12209
12210 --
12211 -- Update the line information that should be overwritten
12212 --
12213 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12214 p_header_num => 1);
12215 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12216
12217 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12218
12219 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12220 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12221 END IF;
12222
12223 --
12224 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12225 --
12226 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12227 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12228 ELSE
12229 ---------------------------------------------------------------------------------------------------
12230 -- 4262811a Switch Sign
12234 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12231 ---------------------------------------------------------------------------------------------------
12232 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12233 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12235 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12236 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12237 -- 5132302
12238 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12239 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12240
12241 END IF;
12242
12243 -- 4955764
12244 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12245 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12246
12247
12248 XLA_AE_LINES_PKG.ValidateCurrentLine;
12249 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12250
12251 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12252 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12253 ,p_balance_type_code => l_balance_type_code);
12254
12255 END IF;
12256
12257 -----------------------------------------------------------------------------------------
12258 -- 4262811 Multiperiod Accounting
12259 -----------------------------------------------------------------------------------------
12260 -- No MPA option is assigned.
12261
12262
12263 END IF;
12264 END IF;
12265 --
12266
12267 --
12268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12269 trace
12270 (p_msg => 'END of AcctLineType_36'
12271 ,p_level => C_LEVEL_PROCEDURE
12272 ,p_module => l_log_module);
12273 END IF;
12274 --
12275 EXCEPTION
12276 WHEN xla_exceptions_pkg.application_exception THEN
12277 RAISE;
12278 WHEN OTHERS THEN
12279 xla_exceptions_pkg.raise_message
12280 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_36');
12281 END AcctLineType_36;
12282 --
12283
12284 ---------------------------------------
12285 --
12286 -- PRIVATE FUNCTION
12287 -- AcctLineType_37
12288 --
12289 ---------------------------------------
12290 PROCEDURE AcctLineType_37 (
12291 p_application_id IN NUMBER
12292 ,p_event_id IN NUMBER
12293 ,p_calculate_acctd_flag IN VARCHAR2
12294 ,p_calculate_g_l_flag IN VARCHAR2
12295 ,p_actual_flag IN OUT VARCHAR2
12296 ,p_balance_type_code OUT VARCHAR2
12297 ,p_gain_or_loss_ref OUT VARCHAR2
12298
12299 --Allow Account Override Flag
12300 , p_source_4 IN VARCHAR2
12301 --Provider Cost/ Revenue CCID
12302 , p_source_8 IN NUMBER
12303 --Adjustment Provider Cost/ Revenue CCID
12304 , p_source_9 IN NUMBER
12305 --Receiver Cost/ Revenue CCID
12306 , p_source_15 IN NUMBER
12307 --Reversing Line Flag
12308 , p_source_22 IN VARCHAR2
12309 --Actual Upgrade Credit Accounting Class
12310 , p_source_23 IN VARCHAR2
12311 --Entered Currency Code
12312 , p_source_25 IN VARCHAR2
12313 --Exchange Rate Date
12314 , p_source_27 IN DATE
12315 --Exchange Rate
12316 , p_source_28 IN NUMBER
12317 --Exchange Rate Type
12318 , p_source_29 IN VARCHAR2
12319 --Actual Upgrade Debit Accounting Class
12320 , p_source_30 IN VARCHAR2
12321 --Use Actuals Upgrade Attributes Flag
12322 , p_source_31 IN VARCHAR2
12323 --Expenditure Item ID
12324 , p_source_32 IN NUMBER
12325 --Cost Distribution Line Number
12326 , p_source_33 IN NUMBER
12327 --Line Type
12328 , p_source_34 IN VARCHAR2
12329 , p_source_34_meaning IN VARCHAR2
12330 --Reversed Line Number
12331 , p_source_35 IN NUMBER
12332 --Entered Amount
12333 , p_source_41 IN NUMBER
12334 --Accounted Amount
12335 , p_source_43 IN NUMBER
12336 --Transfer Amount Type
12337 , p_source_67 IN VARCHAR2
12338 , p_source_67_meaning IN VARCHAR2
12339 )
12340 IS
12341
12342 l_component_type VARCHAR2(80);
12343 l_component_code VARCHAR2(30);
12344 l_component_type_code VARCHAR2(1);
12345 l_component_appl_id INTEGER;
12346 l_amb_context_code VARCHAR2(30);
12347 l_entity_code VARCHAR2(30);
12348 l_event_class_code VARCHAR2(30);
12349 l_ae_header_id NUMBER;
12350 l_event_type_code VARCHAR2(30);
12351 l_line_definition_code VARCHAR2(30);
12352 l_line_definition_owner_code VARCHAR2(1);
12353 --
12354 -- adr variables
12355 l_segment VARCHAR2(30);
12356 l_ccid NUMBER;
12357 l_adr_transaction_coa_id NUMBER;
12358 l_adr_accounting_coa_id NUMBER;
12359 l_adr_flexfield_segment_code VARCHAR2(30);
12360 l_adr_flex_value_set_id NUMBER;
12361 l_adr_value_type_code VARCHAR2(30);
12362 l_adr_value_combination_id NUMBER;
12363 l_adr_value_segment_code VARCHAR2(30);
12364
12365 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12366 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12367 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12368 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12369
12373 l_acc_rev_flag VARCHAR2(1);
12370 -- 4262811 Variables ------------------------------------------------------------------------------------------
12371 l_entered_amt_idx NUMBER;
12372 l_accted_amt_idx NUMBER;
12374 l_accrual_line_num NUMBER;
12375 l_tmp_amt NUMBER;
12376 l_acc_rev_natural_side_code VARCHAR2(1);
12377
12378 l_num_entries NUMBER;
12379 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12380 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12381 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12382 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12383 l_recog_line_1 NUMBER;
12384 l_recog_line_2 NUMBER;
12385
12386 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12387 l_bflow_applied_to_amt NUMBER; -- 5132302
12388 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12389
12390 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12391
12392 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12393 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12394
12395 ---------------------------------------------------------------------------------------------------------------
12396
12397
12398 --
12399 -- bulk performance
12400 --
12401 l_balance_type_code VARCHAR2(1);
12402 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12403 l_log_module VARCHAR2(240);
12404
12405 --
12406 -- Upgrade strategy
12407 --
12408 l_actual_upg_option VARCHAR2(1);
12409 l_enc_upg_option VARCHAR2(1);
12410
12411 --
12412 BEGIN
12413 --
12414 IF g_log_enabled THEN
12415 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_37';
12416 END IF;
12417 --
12418 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12419
12420 trace
12421 (p_msg => 'BEGIN of AcctLineType_37'
12422 ,p_level => C_LEVEL_PROCEDURE
12423 ,p_module => l_log_module);
12424
12425 END IF;
12426 --
12427 l_component_type := 'AMB_JLT';
12428 l_component_code := 'PA_PROVIDER_COST';
12429 l_component_type_code := 'S';
12430 l_component_appl_id := 275;
12431 l_amb_context_code := 'DEFAULT';
12432 l_entity_code := 'EXPENDITURES';
12433 l_event_class_code := 'BORROWED_AND_LENT';
12434 l_event_type_code := 'BORROWED_AND_LENT_ALL';
12435 l_line_definition_owner_code := 'S';
12436 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
12437 --
12438 l_balance_type_code := 'A';
12439 l_segment := NULL;
12440 l_ccid := NULL;
12441 l_adr_transaction_coa_id := NULL;
12442 l_adr_accounting_coa_id := NULL;
12443 l_adr_flexfield_segment_code := NULL;
12444 l_adr_flex_value_set_id := NULL;
12445 l_adr_value_type_code := NULL;
12446 l_adr_value_combination_id := NULL;
12447 l_adr_value_segment_code := NULL;
12448
12449 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
12450 l_bflow_class_code := ''; -- 4219869 Business Flow
12451 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
12452 l_budgetary_control_flag := 'N';
12453
12454 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12455 l_bflow_applied_to_amt := NULL; -- 5132302
12456 l_entered_amt_idx := NULL; -- 4262811
12457 l_accted_amt_idx := NULL; -- 4262811
12458 l_acc_rev_flag := NULL; -- 4262811
12459 l_accrual_line_num := NULL; -- 4262811
12460 l_tmp_amt := NULL; -- 4262811
12461 --
12462
12463 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
12464 l_balance_type_code <> 'B' THEN
12465 IF NVL(p_source_67,'
12466 ') = 'COST_TRANSFER' OR
12467 NVL(p_source_67,'
12468 ') = 'COST_REVENUE' OR
12469 p_source_67 IS NULL
12470 THEN
12471
12472 --
12473 XLA_AE_LINES_PKG.SetNewLine;
12474
12475 p_balance_type_code := l_balance_type_code;
12476 -- set the flag so later we will know whether the gain loss line needs to be created
12477
12478 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
12479 p_actual_flag :='A';
12480 END IF;
12481
12482 --
12483 -- bulk performance
12484 --
12485 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
12486 p_header_num => 0); -- 4262811
12487 --
12488 -- set accounting line options
12489 --
12490 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
12491 p_natural_side_code => 'C'
12492 , p_gain_or_loss_flag => 'N'
12493 , p_gl_transfer_mode_code => 'S'
12494 , p_acct_entry_type_code => 'A'
12495 , p_switch_side_flag => 'Y'
12496 , p_merge_duplicate_code => 'N'
12497 );
12498 --
12499 l_acc_rev_natural_side_code := 'D'; -- 4262811
12500 --
12501 --
12502 -- set accounting line type info
12503 --
12504 xla_ae_lines_pkg.SetAcctLineType
12505 (p_component_type => l_component_type
12506 ,p_event_type_code => l_event_type_code
12507 ,p_line_definition_owner_code => l_line_definition_owner_code
12508 ,p_line_definition_code => l_line_definition_code
12509 ,p_accounting_line_code => l_component_code
12513 ,p_entity_code => l_entity_code
12510 ,p_accounting_line_type_code => l_component_type_code
12511 ,p_accounting_line_appl_id => l_component_appl_id
12512 ,p_amb_context_code => l_amb_context_code
12514 ,p_event_class_code => l_event_class_code);
12515 --
12516 -- set accounting class
12517 --
12518 xla_ae_lines_pkg.SetAcctClass(
12519 p_accounting_class_code => 'PROVIDER_COST'
12520 , p_ae_header_id => l_ae_header_id
12521 );
12522
12523 --
12524 -- set rounding class
12525 --
12526 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
12527 'PROVIDER_COST';
12528
12529 --
12530 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
12531 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
12532 --
12533 -- bulk performance
12534 --
12535 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
12536
12537 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
12538 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
12539
12540 -- 4955764
12541 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12542 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
12543
12544 -- 4458381 Public Sector Enh
12545
12546 --
12547 -- set accounting attributes for the line type
12548 --
12549 l_entered_amt_idx := 22;
12550 l_accted_amt_idx := 27;
12551 l_bflow_applied_to_amt_idx := NULL; -- 5132302
12552 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
12553 l_rec_acct_attrs.array_char_value(1) := p_source_22;
12554 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
12555 l_rec_acct_attrs.array_char_value(2) := p_source_23;
12556 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
12557 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
12558 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
12559 l_rec_acct_attrs.array_num_value(4) := p_source_41;
12560 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
12561 l_rec_acct_attrs.array_char_value(5) := p_source_25;
12562 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
12563 l_rec_acct_attrs.array_num_value(6) := p_source_43;
12564 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
12565 l_rec_acct_attrs.array_date_value(7) := p_source_27;
12566 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
12567 l_rec_acct_attrs.array_num_value(8) := p_source_28;
12568 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
12569 l_rec_acct_attrs.array_char_value(9) := p_source_29;
12570 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
12571 l_rec_acct_attrs.array_char_value(10) := p_source_30;
12572 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
12573 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
12574 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
12575 l_rec_acct_attrs.array_num_value(12) := p_source_41;
12576 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
12577 l_rec_acct_attrs.array_char_value(13) := p_source_25;
12578 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
12579 l_rec_acct_attrs.array_num_value(14) := p_source_43;
12580 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
12581 l_rec_acct_attrs.array_date_value(15) := p_source_27;
12582 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
12583 l_rec_acct_attrs.array_num_value(16) := p_source_28;
12584 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
12585 l_rec_acct_attrs.array_char_value(17) := p_source_29;
12586 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
12587 l_rec_acct_attrs.array_char_value(18) := p_source_31;
12588 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
12589 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
12590 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
12591 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
12592 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
12593 l_rec_acct_attrs.array_char_value(21) := p_source_34;
12594 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
12595 l_rec_acct_attrs.array_num_value(22) := p_source_41;
12596 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
12597 l_rec_acct_attrs.array_char_value(23) := p_source_25;
12598 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
12599 l_rec_acct_attrs.array_date_value(24) := p_source_27;
12600 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
12601 l_rec_acct_attrs.array_num_value(25) := p_source_28;
12602 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
12603 l_rec_acct_attrs.array_char_value(26) := p_source_29;
12604 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
12605 l_rec_acct_attrs.array_num_value(27) := p_source_43;
12606 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
12607 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
12608 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
12609 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
12610 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
12611 l_rec_acct_attrs.array_char_value(30) := p_source_34;
12612
12613 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
12617 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
12614 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
12615
12616 ---------------------------------------------------------------------------------------------------------------
12618 ---------------------------------------------------------------------------------------------------------------
12619 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
12620
12621 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12622 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
12623
12624 IF xla_accounting_cache_pkg.GetValueChar
12625 (p_source_code => 'LEDGER_CATEGORY_CODE'
12626 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
12627 AND l_bflow_method_code = 'PRIOR_ENTRY'
12628 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
12629 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
12630 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
12631 )
12632 THEN
12633 xla_ae_lines_pkg.BflowUpgEntry
12634 (p_business_method_code => l_bflow_method_code
12635 ,p_business_class_code => l_bflow_class_code
12636 ,p_balance_type => l_balance_type_code);
12637 ELSE
12638 NULL;
12639 -- No business flow processing for business flow method of NONE.
12640 END IF;
12641
12642 --
12643 -- call analytical criteria
12644 --
12645
12646 --
12647 -- call description
12648 --
12649 -- No description or it is inherited.
12650 --
12651 -- call ADRs
12652 -- Bug 4922099
12653 --
12654 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
12655 (NVL(l_actual_upg_option, 'N') = 'O') OR
12656 (NVL(l_enc_upg_option, 'N') = 'O')
12657 )
12658 THEN
12659 NULL;
12660 --
12661 --
12662
12663 l_ccid := AcctDerRule_7(
12664 p_application_id => p_application_id
12665 , p_ae_header_id => l_ae_header_id
12666 , p_source_4 => p_source_4
12667 , p_source_8 => p_source_8
12668 , p_source_9 => p_source_9
12669 , x_transaction_coa_id => l_adr_transaction_coa_id
12670 , x_accounting_coa_id => l_adr_accounting_coa_id
12671 , x_value_type_code => l_adr_value_type_code
12672 , p_side => 'NA'
12673 );
12674
12675 xla_ae_lines_pkg.set_ccid(
12676 p_code_combination_id => l_ccid
12677 , p_value_type_code => l_adr_value_type_code
12678 , p_transaction_coa_id => l_adr_transaction_coa_id
12679 , p_accounting_coa_id => l_adr_accounting_coa_id
12680 , p_adr_code => 'PA_PROV_COST_REV_ACCT_RULE'
12681 , p_adr_type_code => 'S'
12682 , p_component_type => l_component_type
12683 , p_component_code => l_component_code
12684 , p_component_type_code => l_component_type_code
12685 , p_component_appl_id => l_component_appl_id
12686 , p_amb_context_code => l_amb_context_code
12687 , p_side => 'NA'
12688 );
12689
12690
12691 --
12692 --
12693 END IF;
12694 --
12695 -- Bug 4922099
12696 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
12697 (NVL(l_enc_upg_option, 'N') = 'O')
12698 ) AND
12699 (l_bflow_method_code = 'PRIOR_ENTRY')
12700 )
12701 THEN
12702 IF
12703 --
12704 1 = 2
12705 --
12706 THEN
12707 xla_accounting_err_pkg.build_message
12708 (p_appli_s_name => 'XLA'
12709 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12710 ,p_token_1 => 'LINE_NUMBER'
12711 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
12712 ,p_token_2 => 'LINE_TYPE_NAME'
12713 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
12714 l_component_type
12715 ,l_component_code
12716 ,l_component_type_code
12717 ,l_component_appl_id
12718 ,l_amb_context_code
12719 ,l_entity_code
12720 ,l_event_class_code
12721 )
12722 ,p_token_3 => 'OWNER'
12723 ,p_value_3 => xla_lookups_pkg.get_meaning(
12724 p_lookup_type => 'XLA_OWNER_TYPE'
12725 ,p_lookup_code => l_component_type_code
12726 )
12727 ,p_token_4 => 'PRODUCT_NAME'
12728 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
12732 ,p_ae_header_id => NULL
12729 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
12730 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
12731 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
12733 );
12734
12735 IF (C_LEVEL_ERROR>= g_log_level) THEN
12736 trace
12737 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
12738 ,p_level => C_LEVEL_ERROR
12739 ,p_module => l_log_module);
12740 END IF;
12741 END IF;
12742 END IF;
12743 --
12744 --
12745 ------------------------------------------------------------------------------------------------
12746 -- 4219869 Business Flow
12747 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
12748 -- Prior Entry. Currently, the following code is always generated.
12749 ------------------------------------------------------------------------------------------------
12750 XLA_AE_LINES_PKG.ValidateCurrentLine;
12751
12752 ------------------------------------------------------------------------------------
12753 -- 4219869 Business Flow
12754 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
12755 ------------------------------------------------------------------------------------
12756 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12757
12758 ----------------------------------------------------------------------------------
12759 -- 4219869 Business Flow
12760 -- Update journal entry status -- Need to generate this within IF <condition>
12761 ----------------------------------------------------------------------------------
12762 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12763 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
12764 ,p_balance_type_code => l_balance_type_code
12765 );
12766
12767 -------------------------------------------------------------------------------------------
12768 -- 4262811 - Generate the Accrual Reversal lines
12769 -------------------------------------------------------------------------------------------
12770 BEGIN
12771 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
12772 (g_array_event(p_event_id).array_value_num('header_index'));
12773 IF l_acc_rev_flag IS NULL THEN
12774 l_acc_rev_flag := 'N';
12775 END IF;
12776 EXCEPTION
12777 WHEN OTHERS THEN
12778 l_acc_rev_flag := 'N';
12779 END;
12780 --
12781 IF (l_acc_rev_flag = 'Y') THEN
12782
12783 -- 4645092 ------------------------------------------------------------------------------
12784 -- To allow MPA report to determine if it should generate report process
12785 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
12786 ------------------------------------------------------------------------------------------
12787
12788 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
12789 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
12790
12791 --
12792 -- Update the line information that should be overwritten
12793 --
12794 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
12795 p_header_num => 1);
12796 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
12797
12798 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
12799
12800 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
12801 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
12802 END IF;
12803
12804 --
12805 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
12806 --
12807 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
12808 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
12809 ELSE
12810 ---------------------------------------------------------------------------------------------------
12811 -- 4262811a Switch Sign
12812 ---------------------------------------------------------------------------------------------------
12813 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
12814 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12815 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12816 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
12817 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12818 -- 5132302
12819 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
12820 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
12821
12822 END IF;
12823
12824 -- 4955764
12825 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
12826 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
12827
12828
12829 XLA_AE_LINES_PKG.ValidateCurrentLine;
12830 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
12831
12832 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
12833 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
12837
12834 ,p_balance_type_code => l_balance_type_code);
12835
12836 END IF;
12838 -----------------------------------------------------------------------------------------
12839 -- 4262811 Multiperiod Accounting
12840 -----------------------------------------------------------------------------------------
12841 -- No MPA option is assigned.
12842
12843
12844 END IF;
12845 END IF;
12846 --
12847
12848 --
12849 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
12850 trace
12851 (p_msg => 'END of AcctLineType_37'
12852 ,p_level => C_LEVEL_PROCEDURE
12853 ,p_module => l_log_module);
12854 END IF;
12855 --
12856 EXCEPTION
12857 WHEN xla_exceptions_pkg.application_exception THEN
12858 RAISE;
12859 WHEN OTHERS THEN
12860 xla_exceptions_pkg.raise_message
12861 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_37');
12862 END AcctLineType_37;
12863 --
12864
12865 ---------------------------------------
12866 --
12867 -- PRIVATE FUNCTION
12868 -- AcctLineType_38
12869 --
12870 ---------------------------------------
12871 PROCEDURE AcctLineType_38 (
12872 p_application_id IN NUMBER
12873 ,p_event_id IN NUMBER
12874 ,p_calculate_acctd_flag IN VARCHAR2
12875 ,p_calculate_g_l_flag IN VARCHAR2
12876 ,p_actual_flag IN OUT VARCHAR2
12877 ,p_balance_type_code OUT VARCHAR2
12878 ,p_gain_or_loss_ref OUT VARCHAR2
12879
12880 --Allow Account Override Flag
12881 , p_source_4 IN VARCHAR2
12882 --Provider Cost/ Revenue CCID
12883 , p_source_8 IN NUMBER
12884 --Adjustment Provider Cost/ Revenue CCID
12885 , p_source_9 IN NUMBER
12886 --Receiver Cost/ Revenue CCID
12887 , p_source_15 IN NUMBER
12888 --Reversing Line Flag
12889 , p_source_22 IN VARCHAR2
12890 --Actual Upgrade Credit Accounting Class
12891 , p_source_23 IN VARCHAR2
12892 --Entered Currency Code
12893 , p_source_25 IN VARCHAR2
12894 --Exchange Rate Date
12895 , p_source_27 IN DATE
12896 --Exchange Rate
12897 , p_source_28 IN NUMBER
12898 --Exchange Rate Type
12899 , p_source_29 IN VARCHAR2
12900 --Actual Upgrade Debit Accounting Class
12901 , p_source_30 IN VARCHAR2
12902 --Use Actuals Upgrade Attributes Flag
12903 , p_source_31 IN VARCHAR2
12904 --Expenditure Item ID
12905 , p_source_32 IN NUMBER
12906 --Cost Distribution Line Number
12907 , p_source_33 IN NUMBER
12908 --Line Type
12909 , p_source_34 IN VARCHAR2
12910 , p_source_34_meaning IN VARCHAR2
12911 --Reversed Line Number
12912 , p_source_35 IN NUMBER
12913 --Entered Amount
12914 , p_source_41 IN NUMBER
12915 --Accounted Amount
12916 , p_source_43 IN NUMBER
12917 --Transfer Amount Type
12918 , p_source_67 IN VARCHAR2
12919 , p_source_67_meaning IN VARCHAR2
12920 )
12921 IS
12922
12923 l_component_type VARCHAR2(80);
12924 l_component_code VARCHAR2(30);
12925 l_component_type_code VARCHAR2(1);
12926 l_component_appl_id INTEGER;
12927 l_amb_context_code VARCHAR2(30);
12928 l_entity_code VARCHAR2(30);
12929 l_event_class_code VARCHAR2(30);
12930 l_ae_header_id NUMBER;
12931 l_event_type_code VARCHAR2(30);
12932 l_line_definition_code VARCHAR2(30);
12933 l_line_definition_owner_code VARCHAR2(1);
12934 --
12935 -- adr variables
12936 l_segment VARCHAR2(30);
12937 l_ccid NUMBER;
12938 l_adr_transaction_coa_id NUMBER;
12939 l_adr_accounting_coa_id NUMBER;
12940 l_adr_flexfield_segment_code VARCHAR2(30);
12941 l_adr_flex_value_set_id NUMBER;
12942 l_adr_value_type_code VARCHAR2(30);
12943 l_adr_value_combination_id NUMBER;
12944 l_adr_value_segment_code VARCHAR2(30);
12945
12946 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
12947 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
12948 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
12949 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
12950
12951 -- 4262811 Variables ------------------------------------------------------------------------------------------
12952 l_entered_amt_idx NUMBER;
12953 l_accted_amt_idx NUMBER;
12954 l_acc_rev_flag VARCHAR2(1);
12955 l_accrual_line_num NUMBER;
12956 l_tmp_amt NUMBER;
12957 l_acc_rev_natural_side_code VARCHAR2(1);
12958
12959 l_num_entries NUMBER;
12960 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
12961 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
12962 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
12963 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
12964 l_recog_line_1 NUMBER;
12965 l_recog_line_2 NUMBER;
12966
12967 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
12968 l_bflow_applied_to_amt NUMBER; -- 5132302
12969 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
12970
12971 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
12972
12973 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
12974 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
12975
12976 ---------------------------------------------------------------------------------------------------------------
12980 -- bulk performance
12977
12978
12979 --
12981 --
12982 l_balance_type_code VARCHAR2(1);
12983 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
12984 l_log_module VARCHAR2(240);
12985
12986 --
12987 -- Upgrade strategy
12988 --
12989 l_actual_upg_option VARCHAR2(1);
12990 l_enc_upg_option VARCHAR2(1);
12991
12992 --
12993 BEGIN
12994 --
12995 IF g_log_enabled THEN
12996 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_38';
12997 END IF;
12998 --
12999 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13000
13001 trace
13002 (p_msg => 'BEGIN of AcctLineType_38'
13003 ,p_level => C_LEVEL_PROCEDURE
13004 ,p_module => l_log_module);
13005
13006 END IF;
13007 --
13008 l_component_type := 'AMB_JLT';
13009 l_component_code := 'PA_PROVIDER_COST_ADJ';
13010 l_component_type_code := 'S';
13011 l_component_appl_id := 275;
13012 l_amb_context_code := 'DEFAULT';
13013 l_entity_code := 'EXPENDITURES';
13014 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
13015 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
13016 l_line_definition_owner_code := 'S';
13017 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
13018 --
13019 l_balance_type_code := 'A';
13020 l_segment := NULL;
13021 l_ccid := NULL;
13022 l_adr_transaction_coa_id := NULL;
13023 l_adr_accounting_coa_id := NULL;
13024 l_adr_flexfield_segment_code := NULL;
13025 l_adr_flex_value_set_id := NULL;
13026 l_adr_value_type_code := NULL;
13027 l_adr_value_combination_id := NULL;
13028 l_adr_value_segment_code := NULL;
13029
13030 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13031 l_bflow_class_code := ''; -- 4219869 Business Flow
13032 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13033 l_budgetary_control_flag := 'N';
13034
13035 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13036 l_bflow_applied_to_amt := NULL; -- 5132302
13037 l_entered_amt_idx := NULL; -- 4262811
13038 l_accted_amt_idx := NULL; -- 4262811
13039 l_acc_rev_flag := NULL; -- 4262811
13040 l_accrual_line_num := NULL; -- 4262811
13041 l_tmp_amt := NULL; -- 4262811
13042 --
13043
13044 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13045 l_balance_type_code <> 'B' THEN
13046 IF NVL(p_source_67,'
13047 ') = 'COST_TRANSFER' OR
13048 NVL(p_source_67,'
13049 ') = 'COST_REVENUE' OR
13050 p_source_67 IS NULL
13051 THEN
13052
13053 --
13054 XLA_AE_LINES_PKG.SetNewLine;
13055
13056 p_balance_type_code := l_balance_type_code;
13057 -- set the flag so later we will know whether the gain loss line needs to be created
13058
13059 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13060 p_actual_flag :='A';
13061 END IF;
13062
13063 --
13064 -- bulk performance
13065 --
13066 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13067 p_header_num => 0); -- 4262811
13068 --
13069 -- set accounting line options
13070 --
13071 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13072 p_natural_side_code => 'C'
13073 , p_gain_or_loss_flag => 'N'
13074 , p_gl_transfer_mode_code => 'S'
13075 , p_acct_entry_type_code => 'A'
13076 , p_switch_side_flag => 'Y'
13077 , p_merge_duplicate_code => 'N'
13078 );
13079 --
13080 l_acc_rev_natural_side_code := 'D'; -- 4262811
13081 --
13082 --
13083 -- set accounting line type info
13084 --
13085 xla_ae_lines_pkg.SetAcctLineType
13086 (p_component_type => l_component_type
13087 ,p_event_type_code => l_event_type_code
13088 ,p_line_definition_owner_code => l_line_definition_owner_code
13089 ,p_line_definition_code => l_line_definition_code
13090 ,p_accounting_line_code => l_component_code
13091 ,p_accounting_line_type_code => l_component_type_code
13092 ,p_accounting_line_appl_id => l_component_appl_id
13093 ,p_amb_context_code => l_amb_context_code
13094 ,p_entity_code => l_entity_code
13095 ,p_event_class_code => l_event_class_code);
13096 --
13097 -- set accounting class
13098 --
13099 xla_ae_lines_pkg.SetAcctClass(
13100 p_accounting_class_code => 'PROVIDER_COST'
13101 , p_ae_header_id => l_ae_header_id
13102 );
13103
13104 --
13105 -- set rounding class
13106 --
13107 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13108 'PROVIDER_COST';
13109
13110 --
13111 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13112 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13113 --
13114 -- bulk performance
13115 --
13116 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13117
13118 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13119 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13120
13121 -- 4955764
13122 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13126
13123 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13124
13125 -- 4458381 Public Sector Enh
13127 --
13128 -- set accounting attributes for the line type
13129 --
13130 l_entered_amt_idx := 22;
13131 l_accted_amt_idx := 27;
13132 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13133 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13134 l_rec_acct_attrs.array_char_value(1) := p_source_22;
13135 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
13136 l_rec_acct_attrs.array_char_value(2) := p_source_23;
13137 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
13138 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
13139 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
13140 l_rec_acct_attrs.array_num_value(4) := p_source_41;
13141 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
13142 l_rec_acct_attrs.array_char_value(5) := p_source_25;
13143 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
13144 l_rec_acct_attrs.array_num_value(6) := p_source_43;
13145 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
13146 l_rec_acct_attrs.array_date_value(7) := p_source_27;
13147 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
13148 l_rec_acct_attrs.array_num_value(8) := p_source_28;
13149 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
13150 l_rec_acct_attrs.array_char_value(9) := p_source_29;
13151 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
13152 l_rec_acct_attrs.array_char_value(10) := p_source_30;
13153 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
13154 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
13155 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
13156 l_rec_acct_attrs.array_num_value(12) := p_source_41;
13157 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
13158 l_rec_acct_attrs.array_char_value(13) := p_source_25;
13159 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
13160 l_rec_acct_attrs.array_num_value(14) := p_source_43;
13161 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
13162 l_rec_acct_attrs.array_date_value(15) := p_source_27;
13163 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
13164 l_rec_acct_attrs.array_num_value(16) := p_source_28;
13165 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
13166 l_rec_acct_attrs.array_char_value(17) := p_source_29;
13167 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
13168 l_rec_acct_attrs.array_char_value(18) := p_source_31;
13169 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
13170 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
13171 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
13172 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
13173 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
13174 l_rec_acct_attrs.array_char_value(21) := p_source_34;
13175 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
13176 l_rec_acct_attrs.array_num_value(22) := p_source_41;
13177 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
13178 l_rec_acct_attrs.array_char_value(23) := p_source_25;
13179 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
13180 l_rec_acct_attrs.array_date_value(24) := p_source_27;
13181 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
13182 l_rec_acct_attrs.array_num_value(25) := p_source_28;
13183 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
13184 l_rec_acct_attrs.array_char_value(26) := p_source_29;
13185 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
13186 l_rec_acct_attrs.array_num_value(27) := p_source_43;
13187 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
13188 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
13189 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
13190 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
13191 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
13192 l_rec_acct_attrs.array_char_value(30) := p_source_34;
13193
13194 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13195 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13196
13197 ---------------------------------------------------------------------------------------------------------------
13198 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13199 ---------------------------------------------------------------------------------------------------------------
13200 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13201
13202 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13203 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13204
13205 IF xla_accounting_cache_pkg.GetValueChar
13206 (p_source_code => 'LEDGER_CATEGORY_CODE'
13207 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13208 AND l_bflow_method_code = 'PRIOR_ENTRY'
13209 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13210 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13211 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13212 )
13213 THEN
13214 xla_ae_lines_pkg.BflowUpgEntry
13215 (p_business_method_code => l_bflow_method_code
13216 ,p_business_class_code => l_bflow_class_code
13220 -- No business flow processing for business flow method of NONE.
13217 ,p_balance_type => l_balance_type_code);
13218 ELSE
13219 NULL;
13221 END IF;
13222
13223 --
13224 -- call analytical criteria
13225 --
13226
13227 --
13228 -- call description
13229 --
13230 -- No description or it is inherited.
13231 --
13232 -- call ADRs
13233 -- Bug 4922099
13234 --
13235 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13236 (NVL(l_actual_upg_option, 'N') = 'O') OR
13237 (NVL(l_enc_upg_option, 'N') = 'O')
13238 )
13239 THEN
13240 NULL;
13241 --
13242 --
13243
13244 l_ccid := AcctDerRule_8(
13245 p_application_id => p_application_id
13246 , p_ae_header_id => l_ae_header_id
13247 , p_source_4 => p_source_4
13248 , p_source_9 => p_source_9
13249 , x_transaction_coa_id => l_adr_transaction_coa_id
13250 , x_accounting_coa_id => l_adr_accounting_coa_id
13251 , x_value_type_code => l_adr_value_type_code
13252 , p_side => 'NA'
13253 );
13254
13255 xla_ae_lines_pkg.set_ccid(
13256 p_code_combination_id => l_ccid
13257 , p_value_type_code => l_adr_value_type_code
13258 , p_transaction_coa_id => l_adr_transaction_coa_id
13259 , p_accounting_coa_id => l_adr_accounting_coa_id
13260 , p_adr_code => 'PA_PROV_COST_REV_ADJ_ACCT_RULE'
13261 , p_adr_type_code => 'S'
13262 , p_component_type => l_component_type
13263 , p_component_code => l_component_code
13264 , p_component_type_code => l_component_type_code
13265 , p_component_appl_id => l_component_appl_id
13266 , p_amb_context_code => l_amb_context_code
13267 , p_side => 'NA'
13268 );
13269
13270
13271 --
13272 --
13273 END IF;
13274 --
13275 -- Bug 4922099
13276 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13277 (NVL(l_enc_upg_option, 'N') = 'O')
13278 ) AND
13279 (l_bflow_method_code = 'PRIOR_ENTRY')
13280 )
13281 THEN
13282 IF
13283 --
13284 1 = 2
13285 --
13286 THEN
13287 xla_accounting_err_pkg.build_message
13288 (p_appli_s_name => 'XLA'
13289 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13290 ,p_token_1 => 'LINE_NUMBER'
13291 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13292 ,p_token_2 => 'LINE_TYPE_NAME'
13293 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13294 l_component_type
13295 ,l_component_code
13296 ,l_component_type_code
13297 ,l_component_appl_id
13298 ,l_amb_context_code
13299 ,l_entity_code
13300 ,l_event_class_code
13301 )
13302 ,p_token_3 => 'OWNER'
13303 ,p_value_3 => xla_lookups_pkg.get_meaning(
13304 p_lookup_type => 'XLA_OWNER_TYPE'
13305 ,p_lookup_code => l_component_type_code
13306 )
13307 ,p_token_4 => 'PRODUCT_NAME'
13308 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13309 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13310 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13311 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13312 ,p_ae_header_id => NULL
13313 );
13314
13315 IF (C_LEVEL_ERROR>= g_log_level) THEN
13316 trace
13317 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13318 ,p_level => C_LEVEL_ERROR
13319 ,p_module => l_log_module);
13320 END IF;
13321 END IF;
13322 END IF;
13323 --
13324 --
13325 ------------------------------------------------------------------------------------------------
13326 -- 4219869 Business Flow
13327 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13328 -- Prior Entry. Currently, the following code is always generated.
13329 ------------------------------------------------------------------------------------------------
13330 XLA_AE_LINES_PKG.ValidateCurrentLine;
13331
13332 ------------------------------------------------------------------------------------
13333 -- 4219869 Business Flow
13334 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13338 ----------------------------------------------------------------------------------
13335 ------------------------------------------------------------------------------------
13336 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13337
13339 -- 4219869 Business Flow
13340 -- Update journal entry status -- Need to generate this within IF <condition>
13341 ----------------------------------------------------------------------------------
13342 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13343 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13344 ,p_balance_type_code => l_balance_type_code
13345 );
13346
13347 -------------------------------------------------------------------------------------------
13348 -- 4262811 - Generate the Accrual Reversal lines
13349 -------------------------------------------------------------------------------------------
13350 BEGIN
13351 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13352 (g_array_event(p_event_id).array_value_num('header_index'));
13353 IF l_acc_rev_flag IS NULL THEN
13354 l_acc_rev_flag := 'N';
13355 END IF;
13356 EXCEPTION
13357 WHEN OTHERS THEN
13358 l_acc_rev_flag := 'N';
13359 END;
13360 --
13361 IF (l_acc_rev_flag = 'Y') THEN
13362
13363 -- 4645092 ------------------------------------------------------------------------------
13364 -- To allow MPA report to determine if it should generate report process
13365 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13366 ------------------------------------------------------------------------------------------
13367
13368 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13369 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13370
13371 --
13372 -- Update the line information that should be overwritten
13373 --
13374 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13375 p_header_num => 1);
13376 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13377
13378 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13379
13380 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13381 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13382 END IF;
13383
13384 --
13385 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13386 --
13387 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13388 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13389 ELSE
13390 ---------------------------------------------------------------------------------------------------
13391 -- 4262811a Switch Sign
13392 ---------------------------------------------------------------------------------------------------
13393 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13394 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13395 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13396 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13397 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13398 -- 5132302
13399 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13400 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13401
13402 END IF;
13403
13404 -- 4955764
13405 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13406 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13407
13408
13409 XLA_AE_LINES_PKG.ValidateCurrentLine;
13410 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13411
13412 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13413 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13414 ,p_balance_type_code => l_balance_type_code);
13415
13416 END IF;
13417
13418 -----------------------------------------------------------------------------------------
13419 -- 4262811 Multiperiod Accounting
13420 -----------------------------------------------------------------------------------------
13421 -- No MPA option is assigned.
13422
13423
13424 END IF;
13425 END IF;
13426 --
13427
13428 --
13429 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13430 trace
13431 (p_msg => 'END of AcctLineType_38'
13432 ,p_level => C_LEVEL_PROCEDURE
13433 ,p_module => l_log_module);
13434 END IF;
13435 --
13436 EXCEPTION
13437 WHEN xla_exceptions_pkg.application_exception THEN
13438 RAISE;
13439 WHEN OTHERS THEN
13440 xla_exceptions_pkg.raise_message
13441 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_38');
13442 END AcctLineType_38;
13443 --
13444
13445 ---------------------------------------
13446 --
13447 -- PRIVATE FUNCTION
13448 -- AcctLineType_39
13449 --
13450 ---------------------------------------
13451 PROCEDURE AcctLineType_39 (
13452 p_application_id IN NUMBER
13453 ,p_event_id IN NUMBER
13454 ,p_calculate_acctd_flag IN VARCHAR2
13455 ,p_calculate_g_l_flag IN VARCHAR2
13456 ,p_actual_flag IN OUT VARCHAR2
13460 --Allow Account Override Flag
13457 ,p_balance_type_code OUT VARCHAR2
13458 ,p_gain_or_loss_ref OUT VARCHAR2
13459
13461 , p_source_4 IN VARCHAR2
13462 --Provider Cost/ Revenue CCID
13463 , p_source_8 IN NUMBER
13464 --Adjustment Provider Cost/ Revenue CCID
13465 , p_source_9 IN NUMBER
13466 --Receiver Cost/ Revenue CCID
13467 , p_source_15 IN NUMBER
13468 --Reversing Line Flag
13469 , p_source_22 IN VARCHAR2
13470 --Actual Upgrade Credit Accounting Class
13471 , p_source_23 IN VARCHAR2
13472 --Entered Currency Code
13473 , p_source_25 IN VARCHAR2
13474 --Exchange Rate Date
13475 , p_source_27 IN DATE
13476 --Exchange Rate
13477 , p_source_28 IN NUMBER
13478 --Exchange Rate Type
13479 , p_source_29 IN VARCHAR2
13480 --Actual Upgrade Debit Accounting Class
13481 , p_source_30 IN VARCHAR2
13482 --Use Actuals Upgrade Attributes Flag
13483 , p_source_31 IN VARCHAR2
13484 --Expenditure Item ID
13485 , p_source_32 IN NUMBER
13486 --Cost Distribution Line Number
13487 , p_source_33 IN NUMBER
13488 --Line Type
13489 , p_source_34 IN VARCHAR2
13490 , p_source_34_meaning IN VARCHAR2
13491 --Reversed Line Number
13492 , p_source_35 IN NUMBER
13493 --Entered Amount
13494 , p_source_41 IN NUMBER
13495 --Accounted Amount
13496 , p_source_43 IN NUMBER
13497 --Transfer Amount Type
13498 , p_source_67 IN VARCHAR2
13499 , p_source_67_meaning IN VARCHAR2
13500 )
13501 IS
13502
13503 l_component_type VARCHAR2(80);
13504 l_component_code VARCHAR2(30);
13505 l_component_type_code VARCHAR2(1);
13506 l_component_appl_id INTEGER;
13507 l_amb_context_code VARCHAR2(30);
13508 l_entity_code VARCHAR2(30);
13509 l_event_class_code VARCHAR2(30);
13510 l_ae_header_id NUMBER;
13511 l_event_type_code VARCHAR2(30);
13512 l_line_definition_code VARCHAR2(30);
13513 l_line_definition_owner_code VARCHAR2(1);
13514 --
13515 -- adr variables
13516 l_segment VARCHAR2(30);
13517 l_ccid NUMBER;
13518 l_adr_transaction_coa_id NUMBER;
13519 l_adr_accounting_coa_id NUMBER;
13520 l_adr_flexfield_segment_code VARCHAR2(30);
13521 l_adr_flex_value_set_id NUMBER;
13522 l_adr_value_type_code VARCHAR2(30);
13523 l_adr_value_combination_id NUMBER;
13524 l_adr_value_segment_code VARCHAR2(30);
13525
13526 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
13527 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
13528 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
13529 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
13530
13531 -- 4262811 Variables ------------------------------------------------------------------------------------------
13532 l_entered_amt_idx NUMBER;
13533 l_accted_amt_idx NUMBER;
13534 l_acc_rev_flag VARCHAR2(1);
13535 l_accrual_line_num NUMBER;
13536 l_tmp_amt NUMBER;
13537 l_acc_rev_natural_side_code VARCHAR2(1);
13538
13539 l_num_entries NUMBER;
13540 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
13541 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
13542 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
13543 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
13544 l_recog_line_1 NUMBER;
13545 l_recog_line_2 NUMBER;
13546
13547 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
13548 l_bflow_applied_to_amt NUMBER; -- 5132302
13549 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
13550
13551 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
13552
13553 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
13554 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
13555
13556 ---------------------------------------------------------------------------------------------------------------
13557
13558
13559 --
13560 -- bulk performance
13561 --
13562 l_balance_type_code VARCHAR2(1);
13563 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
13564 l_log_module VARCHAR2(240);
13565
13566 --
13567 -- Upgrade strategy
13568 --
13569 l_actual_upg_option VARCHAR2(1);
13570 l_enc_upg_option VARCHAR2(1);
13571
13572 --
13573 BEGIN
13574 --
13575 IF g_log_enabled THEN
13576 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_39';
13577 END IF;
13578 --
13579 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
13580
13581 trace
13582 (p_msg => 'BEGIN of AcctLineType_39'
13583 ,p_level => C_LEVEL_PROCEDURE
13584 ,p_module => l_log_module);
13585
13586 END IF;
13587 --
13588 l_component_type := 'AMB_JLT';
13589 l_component_code := 'PA_PROVIDER_REVENUE';
13590 l_component_type_code := 'S';
13591 l_component_appl_id := 275;
13592 l_amb_context_code := 'DEFAULT';
13593 l_entity_code := 'EXPENDITURES';
13594 l_event_class_code := 'BORROWED_AND_LENT';
13595 l_event_type_code := 'BORROWED_AND_LENT_ALL';
13596 l_line_definition_owner_code := 'S';
13597 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
13598 --
13599 l_balance_type_code := 'A';
13603 l_adr_accounting_coa_id := NULL;
13600 l_segment := NULL;
13601 l_ccid := NULL;
13602 l_adr_transaction_coa_id := NULL;
13604 l_adr_flexfield_segment_code := NULL;
13605 l_adr_flex_value_set_id := NULL;
13606 l_adr_value_type_code := NULL;
13607 l_adr_value_combination_id := NULL;
13608 l_adr_value_segment_code := NULL;
13609
13610 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
13611 l_bflow_class_code := ''; -- 4219869 Business Flow
13612 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
13613 l_budgetary_control_flag := 'N';
13614
13615 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13616 l_bflow_applied_to_amt := NULL; -- 5132302
13617 l_entered_amt_idx := NULL; -- 4262811
13618 l_accted_amt_idx := NULL; -- 4262811
13619 l_acc_rev_flag := NULL; -- 4262811
13620 l_accrual_line_num := NULL; -- 4262811
13621 l_tmp_amt := NULL; -- 4262811
13622 --
13623
13624 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
13625 l_balance_type_code <> 'B' THEN
13626 IF NVL(p_source_67,'
13627 ') = 'REVENUE_TRANSFER'
13628 THEN
13629
13630 --
13631 XLA_AE_LINES_PKG.SetNewLine;
13632
13633 p_balance_type_code := l_balance_type_code;
13634 -- set the flag so later we will know whether the gain loss line needs to be created
13635
13636 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
13637 p_actual_flag :='A';
13638 END IF;
13639
13640 --
13641 -- bulk performance
13642 --
13643 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
13644 p_header_num => 0); -- 4262811
13645 --
13646 -- set accounting line options
13647 --
13648 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
13649 p_natural_side_code => 'C'
13650 , p_gain_or_loss_flag => 'N'
13651 , p_gl_transfer_mode_code => 'S'
13652 , p_acct_entry_type_code => 'A'
13653 , p_switch_side_flag => 'Y'
13654 , p_merge_duplicate_code => 'N'
13655 );
13656 --
13657 l_acc_rev_natural_side_code := 'D'; -- 4262811
13658 --
13659 --
13660 -- set accounting line type info
13661 --
13662 xla_ae_lines_pkg.SetAcctLineType
13663 (p_component_type => l_component_type
13664 ,p_event_type_code => l_event_type_code
13665 ,p_line_definition_owner_code => l_line_definition_owner_code
13666 ,p_line_definition_code => l_line_definition_code
13667 ,p_accounting_line_code => l_component_code
13668 ,p_accounting_line_type_code => l_component_type_code
13669 ,p_accounting_line_appl_id => l_component_appl_id
13670 ,p_amb_context_code => l_amb_context_code
13671 ,p_entity_code => l_entity_code
13672 ,p_event_class_code => l_event_class_code);
13673 --
13674 -- set accounting class
13675 --
13676 xla_ae_lines_pkg.SetAcctClass(
13677 p_accounting_class_code => 'PROVIDER_REVENUE'
13678 , p_ae_header_id => l_ae_header_id
13679 );
13680
13681 --
13682 -- set rounding class
13683 --
13684 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
13685 'PROVIDER_REVENUE';
13686
13687 --
13688 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
13689 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
13690 --
13691 -- bulk performance
13692 --
13693 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
13694
13695 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
13696 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
13697
13698 -- 4955764
13699 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13700 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
13701
13702 -- 4458381 Public Sector Enh
13703
13704 --
13705 -- set accounting attributes for the line type
13706 --
13707 l_entered_amt_idx := 22;
13708 l_accted_amt_idx := 27;
13709 l_bflow_applied_to_amt_idx := NULL; -- 5132302
13710 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
13711 l_rec_acct_attrs.array_char_value(1) := p_source_22;
13712 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
13713 l_rec_acct_attrs.array_char_value(2) := p_source_23;
13714 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
13715 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
13716 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
13717 l_rec_acct_attrs.array_num_value(4) := p_source_41;
13718 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
13719 l_rec_acct_attrs.array_char_value(5) := p_source_25;
13720 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
13721 l_rec_acct_attrs.array_num_value(6) := p_source_43;
13722 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
13723 l_rec_acct_attrs.array_date_value(7) := p_source_27;
13724 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
13725 l_rec_acct_attrs.array_num_value(8) := p_source_28;
13726 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
13730 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
13727 l_rec_acct_attrs.array_char_value(9) := p_source_29;
13728 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
13729 l_rec_acct_attrs.array_char_value(10) := p_source_30;
13731 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
13732 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
13733 l_rec_acct_attrs.array_num_value(12) := p_source_41;
13734 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
13735 l_rec_acct_attrs.array_char_value(13) := p_source_25;
13736 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
13737 l_rec_acct_attrs.array_num_value(14) := p_source_43;
13738 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
13739 l_rec_acct_attrs.array_date_value(15) := p_source_27;
13740 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
13741 l_rec_acct_attrs.array_num_value(16) := p_source_28;
13742 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
13743 l_rec_acct_attrs.array_char_value(17) := p_source_29;
13744 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
13745 l_rec_acct_attrs.array_char_value(18) := p_source_31;
13746 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
13747 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
13748 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
13749 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
13750 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
13751 l_rec_acct_attrs.array_char_value(21) := p_source_34;
13752 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
13753 l_rec_acct_attrs.array_num_value(22) := p_source_41;
13754 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
13755 l_rec_acct_attrs.array_char_value(23) := p_source_25;
13756 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
13757 l_rec_acct_attrs.array_date_value(24) := p_source_27;
13758 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
13759 l_rec_acct_attrs.array_num_value(25) := p_source_28;
13760 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
13761 l_rec_acct_attrs.array_char_value(26) := p_source_29;
13762 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
13763 l_rec_acct_attrs.array_num_value(27) := p_source_43;
13764 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
13765 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
13766 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
13767 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
13768 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
13769 l_rec_acct_attrs.array_char_value(30) := p_source_34;
13770
13771 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
13772 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
13773
13774 ---------------------------------------------------------------------------------------------------------------
13775 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
13776 ---------------------------------------------------------------------------------------------------------------
13777 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
13778
13779 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13780 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
13781
13782 IF xla_accounting_cache_pkg.GetValueChar
13783 (p_source_code => 'LEDGER_CATEGORY_CODE'
13784 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
13785 AND l_bflow_method_code = 'PRIOR_ENTRY'
13786 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
13787 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
13788 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
13789 )
13790 THEN
13791 xla_ae_lines_pkg.BflowUpgEntry
13792 (p_business_method_code => l_bflow_method_code
13793 ,p_business_class_code => l_bflow_class_code
13794 ,p_balance_type => l_balance_type_code);
13795 ELSE
13796 NULL;
13797 -- No business flow processing for business flow method of NONE.
13798 END IF;
13799
13800 --
13801 -- call analytical criteria
13802 --
13803
13804 --
13805 -- call description
13806 --
13807 -- No description or it is inherited.
13808 --
13809 -- call ADRs
13810 -- Bug 4922099
13811 --
13812 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
13813 (NVL(l_actual_upg_option, 'N') = 'O') OR
13814 (NVL(l_enc_upg_option, 'N') = 'O')
13815 )
13816 THEN
13817 NULL;
13818 --
13819 --
13820
13821 l_ccid := AcctDerRule_7(
13822 p_application_id => p_application_id
13823 , p_ae_header_id => l_ae_header_id
13824 , p_source_4 => p_source_4
13825 , p_source_8 => p_source_8
13826 , p_source_9 => p_source_9
13827 , x_transaction_coa_id => l_adr_transaction_coa_id
13828 , x_accounting_coa_id => l_adr_accounting_coa_id
13829 , x_value_type_code => l_adr_value_type_code
13830 , p_side => 'NA'
13831 );
13832
13833 xla_ae_lines_pkg.set_ccid(
13834 p_code_combination_id => l_ccid
13835 , p_value_type_code => l_adr_value_type_code
13836 , p_transaction_coa_id => l_adr_transaction_coa_id
13840 , p_component_type => l_component_type
13837 , p_accounting_coa_id => l_adr_accounting_coa_id
13838 , p_adr_code => 'PA_PROV_COST_REV_ACCT_RULE'
13839 , p_adr_type_code => 'S'
13841 , p_component_code => l_component_code
13842 , p_component_type_code => l_component_type_code
13843 , p_component_appl_id => l_component_appl_id
13844 , p_amb_context_code => l_amb_context_code
13845 , p_side => 'NA'
13846 );
13847
13848
13849 --
13850 --
13851 END IF;
13852 --
13853 -- Bug 4922099
13854 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
13855 (NVL(l_enc_upg_option, 'N') = 'O')
13856 ) AND
13857 (l_bflow_method_code = 'PRIOR_ENTRY')
13858 )
13859 THEN
13860 IF
13861 --
13862 1 = 2
13863 --
13864 THEN
13865 xla_accounting_err_pkg.build_message
13866 (p_appli_s_name => 'XLA'
13867 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13868 ,p_token_1 => 'LINE_NUMBER'
13869 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
13870 ,p_token_2 => 'LINE_TYPE_NAME'
13871 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
13872 l_component_type
13873 ,l_component_code
13874 ,l_component_type_code
13875 ,l_component_appl_id
13876 ,l_amb_context_code
13877 ,l_entity_code
13878 ,l_event_class_code
13879 )
13880 ,p_token_3 => 'OWNER'
13881 ,p_value_3 => xla_lookups_pkg.get_meaning(
13882 p_lookup_type => 'XLA_OWNER_TYPE'
13883 ,p_lookup_code => l_component_type_code
13884 )
13885 ,p_token_4 => 'PRODUCT_NAME'
13886 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
13887 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
13888 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
13889 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
13890 ,p_ae_header_id => NULL
13891 );
13892
13893 IF (C_LEVEL_ERROR>= g_log_level) THEN
13894 trace
13895 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
13896 ,p_level => C_LEVEL_ERROR
13897 ,p_module => l_log_module);
13898 END IF;
13899 END IF;
13900 END IF;
13901 --
13902 --
13903 ------------------------------------------------------------------------------------------------
13904 -- 4219869 Business Flow
13905 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
13906 -- Prior Entry. Currently, the following code is always generated.
13907 ------------------------------------------------------------------------------------------------
13908 XLA_AE_LINES_PKG.ValidateCurrentLine;
13909
13910 ------------------------------------------------------------------------------------
13911 -- 4219869 Business Flow
13912 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
13913 ------------------------------------------------------------------------------------
13914 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13915
13916 ----------------------------------------------------------------------------------
13917 -- 4219869 Business Flow
13918 -- Update journal entry status -- Need to generate this within IF <condition>
13919 ----------------------------------------------------------------------------------
13920 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13921 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13922 ,p_balance_type_code => l_balance_type_code
13923 );
13924
13925 -------------------------------------------------------------------------------------------
13926 -- 4262811 - Generate the Accrual Reversal lines
13927 -------------------------------------------------------------------------------------------
13928 BEGIN
13929 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
13930 (g_array_event(p_event_id).array_value_num('header_index'));
13931 IF l_acc_rev_flag IS NULL THEN
13932 l_acc_rev_flag := 'N';
13933 END IF;
13934 EXCEPTION
13935 WHEN OTHERS THEN
13936 l_acc_rev_flag := 'N';
13937 END;
13938 --
13939 IF (l_acc_rev_flag = 'Y') THEN
13940
13941 -- 4645092 ------------------------------------------------------------------------------
13945
13942 -- To allow MPA report to determine if it should generate report process
13943 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13944 ------------------------------------------------------------------------------------------
13946 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
13947 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
13948
13949 --
13950 -- Update the line information that should be overwritten
13951 --
13952 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
13953 p_header_num => 1);
13954 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
13955
13956 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
13957
13958 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
13959 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
13960 END IF;
13961
13962 --
13963 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
13964 --
13965 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
13966 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
13967 ELSE
13968 ---------------------------------------------------------------------------------------------------
13969 -- 4262811a Switch Sign
13970 ---------------------------------------------------------------------------------------------------
13971 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
13972 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13973 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13974 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
13975 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13976 -- 5132302
13977 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
13978 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
13979
13980 END IF;
13981
13982 -- 4955764
13983 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
13984 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
13985
13986
13987 XLA_AE_LINES_PKG.ValidateCurrentLine;
13988 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13989
13990 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
13991 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
13992 ,p_balance_type_code => l_balance_type_code);
13993
13994 END IF;
13995
13996 -----------------------------------------------------------------------------------------
13997 -- 4262811 Multiperiod Accounting
13998 -----------------------------------------------------------------------------------------
13999 -- No MPA option is assigned.
14000
14001
14002 END IF;
14003 END IF;
14004 --
14005
14006 --
14007 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14008 trace
14009 (p_msg => 'END of AcctLineType_39'
14010 ,p_level => C_LEVEL_PROCEDURE
14011 ,p_module => l_log_module);
14012 END IF;
14013 --
14014 EXCEPTION
14015 WHEN xla_exceptions_pkg.application_exception THEN
14016 RAISE;
14017 WHEN OTHERS THEN
14018 xla_exceptions_pkg.raise_message
14019 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_39');
14020 END AcctLineType_39;
14021 --
14022
14023 ---------------------------------------
14024 --
14025 -- PRIVATE FUNCTION
14026 -- AcctLineType_40
14027 --
14028 ---------------------------------------
14029 PROCEDURE AcctLineType_40 (
14030 p_application_id IN NUMBER
14031 ,p_event_id IN NUMBER
14032 ,p_calculate_acctd_flag IN VARCHAR2
14033 ,p_calculate_g_l_flag IN VARCHAR2
14034 ,p_actual_flag IN OUT VARCHAR2
14035 ,p_balance_type_code OUT VARCHAR2
14036 ,p_gain_or_loss_ref OUT VARCHAR2
14037
14038 --Allow Account Override Flag
14039 , p_source_4 IN VARCHAR2
14040 --Provider Cost/ Revenue CCID
14041 , p_source_8 IN NUMBER
14042 --Adjustment Provider Cost/ Revenue CCID
14043 , p_source_9 IN NUMBER
14044 --Receiver Cost/ Revenue CCID
14045 , p_source_15 IN NUMBER
14046 --Reversing Line Flag
14047 , p_source_22 IN VARCHAR2
14048 --Actual Upgrade Credit Accounting Class
14049 , p_source_23 IN VARCHAR2
14050 --Entered Currency Code
14051 , p_source_25 IN VARCHAR2
14052 --Exchange Rate Date
14053 , p_source_27 IN DATE
14054 --Exchange Rate
14055 , p_source_28 IN NUMBER
14056 --Exchange Rate Type
14057 , p_source_29 IN VARCHAR2
14058 --Actual Upgrade Debit Accounting Class
14059 , p_source_30 IN VARCHAR2
14060 --Use Actuals Upgrade Attributes Flag
14061 , p_source_31 IN VARCHAR2
14062 --Expenditure Item ID
14063 , p_source_32 IN NUMBER
14064 --Cost Distribution Line Number
14065 , p_source_33 IN NUMBER
14066 --Line Type
14067 , p_source_34 IN VARCHAR2
14068 , p_source_34_meaning IN VARCHAR2
14069 --Reversed Line Number
14070 , p_source_35 IN NUMBER
14071 --Entered Amount
14072 , p_source_41 IN NUMBER
14073 --Accounted Amount
14077 , p_source_67_meaning IN VARCHAR2
14074 , p_source_43 IN NUMBER
14075 --Transfer Amount Type
14076 , p_source_67 IN VARCHAR2
14078 )
14079 IS
14080
14081 l_component_type VARCHAR2(80);
14082 l_component_code VARCHAR2(30);
14083 l_component_type_code VARCHAR2(1);
14084 l_component_appl_id INTEGER;
14085 l_amb_context_code VARCHAR2(30);
14086 l_entity_code VARCHAR2(30);
14087 l_event_class_code VARCHAR2(30);
14088 l_ae_header_id NUMBER;
14089 l_event_type_code VARCHAR2(30);
14090 l_line_definition_code VARCHAR2(30);
14091 l_line_definition_owner_code VARCHAR2(1);
14092 --
14093 -- adr variables
14094 l_segment VARCHAR2(30);
14095 l_ccid NUMBER;
14096 l_adr_transaction_coa_id NUMBER;
14097 l_adr_accounting_coa_id NUMBER;
14098 l_adr_flexfield_segment_code VARCHAR2(30);
14099 l_adr_flex_value_set_id NUMBER;
14100 l_adr_value_type_code VARCHAR2(30);
14101 l_adr_value_combination_id NUMBER;
14102 l_adr_value_segment_code VARCHAR2(30);
14103
14104 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14105 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14106 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14107 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14108
14109 -- 4262811 Variables ------------------------------------------------------------------------------------------
14110 l_entered_amt_idx NUMBER;
14111 l_accted_amt_idx NUMBER;
14112 l_acc_rev_flag VARCHAR2(1);
14113 l_accrual_line_num NUMBER;
14114 l_tmp_amt NUMBER;
14115 l_acc_rev_natural_side_code VARCHAR2(1);
14116
14117 l_num_entries NUMBER;
14118 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14119 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14120 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14121 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14122 l_recog_line_1 NUMBER;
14123 l_recog_line_2 NUMBER;
14124
14125 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14126 l_bflow_applied_to_amt NUMBER; -- 5132302
14127 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14128
14129 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14130
14131 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14132 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14133
14134 ---------------------------------------------------------------------------------------------------------------
14135
14136
14137 --
14138 -- bulk performance
14139 --
14140 l_balance_type_code VARCHAR2(1);
14141 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14142 l_log_module VARCHAR2(240);
14143
14144 --
14145 -- Upgrade strategy
14146 --
14147 l_actual_upg_option VARCHAR2(1);
14148 l_enc_upg_option VARCHAR2(1);
14149
14150 --
14151 BEGIN
14152 --
14153 IF g_log_enabled THEN
14154 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_40';
14155 END IF;
14156 --
14157 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14158
14159 trace
14160 (p_msg => 'BEGIN of AcctLineType_40'
14161 ,p_level => C_LEVEL_PROCEDURE
14162 ,p_module => l_log_module);
14163
14164 END IF;
14165 --
14166 l_component_type := 'AMB_JLT';
14167 l_component_code := 'PA_PROVIDER_REVENUE_ADJ';
14168 l_component_type_code := 'S';
14169 l_component_appl_id := 275;
14170 l_amb_context_code := 'DEFAULT';
14171 l_entity_code := 'EXPENDITURES';
14172 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
14173 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
14174 l_line_definition_owner_code := 'S';
14175 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
14176 --
14177 l_balance_type_code := 'A';
14178 l_segment := NULL;
14179 l_ccid := NULL;
14180 l_adr_transaction_coa_id := NULL;
14181 l_adr_accounting_coa_id := NULL;
14182 l_adr_flexfield_segment_code := NULL;
14183 l_adr_flex_value_set_id := NULL;
14184 l_adr_value_type_code := NULL;
14185 l_adr_value_combination_id := NULL;
14186 l_adr_value_segment_code := NULL;
14187
14188 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14189 l_bflow_class_code := ''; -- 4219869 Business Flow
14190 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14191 l_budgetary_control_flag := 'N';
14192
14193 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14194 l_bflow_applied_to_amt := NULL; -- 5132302
14195 l_entered_amt_idx := NULL; -- 4262811
14196 l_accted_amt_idx := NULL; -- 4262811
14197 l_acc_rev_flag := NULL; -- 4262811
14198 l_accrual_line_num := NULL; -- 4262811
14199 l_tmp_amt := NULL; -- 4262811
14200 --
14201
14202 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14203 l_balance_type_code <> 'B' THEN
14204 IF NVL(p_source_67,'
14205 ') = 'REVENUE_TRANSFER'
14206 THEN
14207
14208 --
14209 XLA_AE_LINES_PKG.SetNewLine;
14210
14211 p_balance_type_code := l_balance_type_code;
14215 p_actual_flag :='A';
14212 -- set the flag so later we will know whether the gain loss line needs to be created
14213
14214 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14216 END IF;
14217
14218 --
14219 -- bulk performance
14220 --
14221 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14222 p_header_num => 0); -- 4262811
14223 --
14224 -- set accounting line options
14225 --
14226 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14227 p_natural_side_code => 'C'
14228 , p_gain_or_loss_flag => 'N'
14229 , p_gl_transfer_mode_code => 'S'
14230 , p_acct_entry_type_code => 'A'
14231 , p_switch_side_flag => 'Y'
14232 , p_merge_duplicate_code => 'N'
14233 );
14234 --
14235 l_acc_rev_natural_side_code := 'D'; -- 4262811
14236 --
14237 --
14238 -- set accounting line type info
14239 --
14240 xla_ae_lines_pkg.SetAcctLineType
14241 (p_component_type => l_component_type
14242 ,p_event_type_code => l_event_type_code
14243 ,p_line_definition_owner_code => l_line_definition_owner_code
14244 ,p_line_definition_code => l_line_definition_code
14245 ,p_accounting_line_code => l_component_code
14246 ,p_accounting_line_type_code => l_component_type_code
14247 ,p_accounting_line_appl_id => l_component_appl_id
14248 ,p_amb_context_code => l_amb_context_code
14249 ,p_entity_code => l_entity_code
14250 ,p_event_class_code => l_event_class_code);
14251 --
14252 -- set accounting class
14253 --
14254 xla_ae_lines_pkg.SetAcctClass(
14255 p_accounting_class_code => 'PROVIDER_REVENUE'
14256 , p_ae_header_id => l_ae_header_id
14257 );
14258
14259 --
14260 -- set rounding class
14261 --
14262 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14263 'PROVIDER_REVENUE';
14264
14265 --
14266 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14267 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14268 --
14269 -- bulk performance
14270 --
14271 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14272
14273 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14274 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14275
14276 -- 4955764
14277 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14278 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14279
14280 -- 4458381 Public Sector Enh
14281
14282 --
14283 -- set accounting attributes for the line type
14284 --
14285 l_entered_amt_idx := 22;
14286 l_accted_amt_idx := 27;
14287 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14288 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14289 l_rec_acct_attrs.array_char_value(1) := p_source_22;
14290 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
14291 l_rec_acct_attrs.array_char_value(2) := p_source_23;
14292 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
14293 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
14294 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
14295 l_rec_acct_attrs.array_num_value(4) := p_source_41;
14296 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
14297 l_rec_acct_attrs.array_char_value(5) := p_source_25;
14298 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
14299 l_rec_acct_attrs.array_num_value(6) := p_source_43;
14300 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
14301 l_rec_acct_attrs.array_date_value(7) := p_source_27;
14302 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
14303 l_rec_acct_attrs.array_num_value(8) := p_source_28;
14304 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
14305 l_rec_acct_attrs.array_char_value(9) := p_source_29;
14306 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
14307 l_rec_acct_attrs.array_char_value(10) := p_source_30;
14308 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
14309 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
14310 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
14311 l_rec_acct_attrs.array_num_value(12) := p_source_41;
14312 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
14313 l_rec_acct_attrs.array_char_value(13) := p_source_25;
14314 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
14315 l_rec_acct_attrs.array_num_value(14) := p_source_43;
14316 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
14317 l_rec_acct_attrs.array_date_value(15) := p_source_27;
14318 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
14319 l_rec_acct_attrs.array_num_value(16) := p_source_28;
14320 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
14321 l_rec_acct_attrs.array_char_value(17) := p_source_29;
14322 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
14323 l_rec_acct_attrs.array_char_value(18) := p_source_31;
14324 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
14325 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
14326 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
14330 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
14327 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
14328 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
14329 l_rec_acct_attrs.array_char_value(21) := p_source_34;
14331 l_rec_acct_attrs.array_num_value(22) := p_source_41;
14332 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
14333 l_rec_acct_attrs.array_char_value(23) := p_source_25;
14334 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
14335 l_rec_acct_attrs.array_date_value(24) := p_source_27;
14336 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
14337 l_rec_acct_attrs.array_num_value(25) := p_source_28;
14338 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
14339 l_rec_acct_attrs.array_char_value(26) := p_source_29;
14340 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
14341 l_rec_acct_attrs.array_num_value(27) := p_source_43;
14342 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
14343 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
14344 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
14345 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
14346 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
14347 l_rec_acct_attrs.array_char_value(30) := p_source_34;
14348
14349 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14350 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14351
14352 ---------------------------------------------------------------------------------------------------------------
14353 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14354 ---------------------------------------------------------------------------------------------------------------
14355 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14356
14357 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14358 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14359
14360 IF xla_accounting_cache_pkg.GetValueChar
14361 (p_source_code => 'LEDGER_CATEGORY_CODE'
14362 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14363 AND l_bflow_method_code = 'PRIOR_ENTRY'
14364 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14365 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14366 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14367 )
14368 THEN
14369 xla_ae_lines_pkg.BflowUpgEntry
14370 (p_business_method_code => l_bflow_method_code
14371 ,p_business_class_code => l_bflow_class_code
14372 ,p_balance_type => l_balance_type_code);
14373 ELSE
14374 NULL;
14375 -- No business flow processing for business flow method of NONE.
14376 END IF;
14377
14378 --
14379 -- call analytical criteria
14380 --
14381
14382 --
14383 -- call description
14384 --
14385 -- No description or it is inherited.
14386 --
14387 -- call ADRs
14388 -- Bug 4922099
14389 --
14390 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14391 (NVL(l_actual_upg_option, 'N') = 'O') OR
14392 (NVL(l_enc_upg_option, 'N') = 'O')
14393 )
14394 THEN
14395 NULL;
14396 --
14397 --
14398
14399 l_ccid := AcctDerRule_8(
14400 p_application_id => p_application_id
14401 , p_ae_header_id => l_ae_header_id
14402 , p_source_4 => p_source_4
14403 , p_source_9 => p_source_9
14404 , x_transaction_coa_id => l_adr_transaction_coa_id
14405 , x_accounting_coa_id => l_adr_accounting_coa_id
14406 , x_value_type_code => l_adr_value_type_code
14407 , p_side => 'NA'
14408 );
14409
14410 xla_ae_lines_pkg.set_ccid(
14411 p_code_combination_id => l_ccid
14412 , p_value_type_code => l_adr_value_type_code
14413 , p_transaction_coa_id => l_adr_transaction_coa_id
14414 , p_accounting_coa_id => l_adr_accounting_coa_id
14415 , p_adr_code => 'PA_PROV_COST_REV_ADJ_ACCT_RULE'
14416 , p_adr_type_code => 'S'
14417 , p_component_type => l_component_type
14418 , p_component_code => l_component_code
14419 , p_component_type_code => l_component_type_code
14420 , p_component_appl_id => l_component_appl_id
14421 , p_amb_context_code => l_amb_context_code
14422 , p_side => 'NA'
14423 );
14424
14425
14426 --
14427 --
14428 END IF;
14429 --
14430 -- Bug 4922099
14431 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
14432 (NVL(l_enc_upg_option, 'N') = 'O')
14433 ) AND
14434 (l_bflow_method_code = 'PRIOR_ENTRY')
14435 )
14436 THEN
14437 IF
14438 --
14439 1 = 2
14440 --
14441 THEN
14442 xla_accounting_err_pkg.build_message
14443 (p_appli_s_name => 'XLA'
14444 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14445 ,p_token_1 => 'LINE_NUMBER'
14446 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
14447 ,p_token_2 => 'LINE_TYPE_NAME'
14451 ,l_component_type_code
14448 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14449 l_component_type
14450 ,l_component_code
14452 ,l_component_appl_id
14453 ,l_amb_context_code
14454 ,l_entity_code
14455 ,l_event_class_code
14456 )
14457 ,p_token_3 => 'OWNER'
14458 ,p_value_3 => xla_lookups_pkg.get_meaning(
14459 p_lookup_type => 'XLA_OWNER_TYPE'
14460 ,p_lookup_code => l_component_type_code
14461 )
14462 ,p_token_4 => 'PRODUCT_NAME'
14463 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
14464 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
14465 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
14466 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
14467 ,p_ae_header_id => NULL
14468 );
14469
14470 IF (C_LEVEL_ERROR>= g_log_level) THEN
14471 trace
14472 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
14473 ,p_level => C_LEVEL_ERROR
14474 ,p_module => l_log_module);
14475 END IF;
14476 END IF;
14477 END IF;
14478 --
14479 --
14480 ------------------------------------------------------------------------------------------------
14481 -- 4219869 Business Flow
14482 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
14483 -- Prior Entry. Currently, the following code is always generated.
14484 ------------------------------------------------------------------------------------------------
14485 XLA_AE_LINES_PKG.ValidateCurrentLine;
14486
14487 ------------------------------------------------------------------------------------
14488 -- 4219869 Business Flow
14489 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
14490 ------------------------------------------------------------------------------------
14491 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14492
14493 ----------------------------------------------------------------------------------
14494 -- 4219869 Business Flow
14495 -- Update journal entry status -- Need to generate this within IF <condition>
14496 ----------------------------------------------------------------------------------
14497 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14498 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
14499 ,p_balance_type_code => l_balance_type_code
14500 );
14501
14502 -------------------------------------------------------------------------------------------
14503 -- 4262811 - Generate the Accrual Reversal lines
14504 -------------------------------------------------------------------------------------------
14505 BEGIN
14506 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
14507 (g_array_event(p_event_id).array_value_num('header_index'));
14508 IF l_acc_rev_flag IS NULL THEN
14509 l_acc_rev_flag := 'N';
14510 END IF;
14511 EXCEPTION
14512 WHEN OTHERS THEN
14513 l_acc_rev_flag := 'N';
14514 END;
14515 --
14516 IF (l_acc_rev_flag = 'Y') THEN
14517
14518 -- 4645092 ------------------------------------------------------------------------------
14519 -- To allow MPA report to determine if it should generate report process
14520 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
14521 ------------------------------------------------------------------------------------------
14522
14523 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
14524 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
14525
14526 --
14527 -- Update the line information that should be overwritten
14528 --
14529 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
14530 p_header_num => 1);
14531 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
14532
14533 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
14534
14535 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
14536 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
14537 END IF;
14538
14539 --
14540 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
14541 --
14542 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
14543 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
14544 ELSE
14545 ---------------------------------------------------------------------------------------------------
14549 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14546 -- 4262811a Switch Sign
14547 ---------------------------------------------------------------------------------------------------
14548 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
14550 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14551 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
14552 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14553 -- 5132302
14554 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
14555 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
14556
14557 END IF;
14558
14559 -- 4955764
14560 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14561 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
14562
14563
14564 XLA_AE_LINES_PKG.ValidateCurrentLine;
14565 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
14566
14567 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
14568 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
14569 ,p_balance_type_code => l_balance_type_code);
14570
14571 END IF;
14572
14573 -----------------------------------------------------------------------------------------
14574 -- 4262811 Multiperiod Accounting
14575 -----------------------------------------------------------------------------------------
14576 -- No MPA option is assigned.
14577
14578
14579 END IF;
14580 END IF;
14581 --
14582
14583 --
14584 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14585 trace
14586 (p_msg => 'END of AcctLineType_40'
14587 ,p_level => C_LEVEL_PROCEDURE
14588 ,p_module => l_log_module);
14589 END IF;
14590 --
14591 EXCEPTION
14592 WHEN xla_exceptions_pkg.application_exception THEN
14593 RAISE;
14594 WHEN OTHERS THEN
14595 xla_exceptions_pkg.raise_message
14596 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_40');
14597 END AcctLineType_40;
14598 --
14599
14600 ---------------------------------------
14601 --
14602 -- PRIVATE FUNCTION
14603 -- AcctLineType_41
14604 --
14605 ---------------------------------------
14606 PROCEDURE AcctLineType_41 (
14607 p_application_id IN NUMBER
14608 ,p_event_id IN NUMBER
14609 ,p_calculate_acctd_flag IN VARCHAR2
14610 ,p_calculate_g_l_flag IN VARCHAR2
14611 ,p_actual_flag IN OUT VARCHAR2
14612 ,p_balance_type_code OUT VARCHAR2
14613 ,p_gain_or_loss_ref OUT VARCHAR2
14614
14615 --Cost CCID
14616 , p_source_3 IN NUMBER
14617 --Allow Account Override Flag
14618 , p_source_4 IN VARCHAR2
14619 --Adjustment Cost CCID
14620 , p_source_5 IN NUMBER
14621 --Cost Clearing CCID
14622 , p_source_6 IN NUMBER
14623 --Reversing Line Flag
14624 , p_source_22 IN VARCHAR2
14625 --Actual Upgrade Credit Accounting Class
14626 , p_source_23 IN VARCHAR2
14627 --Entered Raw Cost
14628 , p_source_24 IN NUMBER
14629 --Entered Currency Code
14630 , p_source_25 IN VARCHAR2
14631 --Accounted Raw Cost
14632 , p_source_26 IN NUMBER
14633 --Exchange Rate Date
14634 , p_source_27 IN DATE
14635 --Exchange Rate
14636 , p_source_28 IN NUMBER
14637 --Exchange Rate Type
14638 , p_source_29 IN VARCHAR2
14639 --Actual Upgrade Debit Accounting Class
14640 , p_source_30 IN VARCHAR2
14641 --Use Actuals Upgrade Attributes Flag
14642 , p_source_31 IN VARCHAR2
14643 --Expenditure Item ID
14644 , p_source_32 IN NUMBER
14645 --Cost Distribution Line Number
14646 , p_source_33 IN NUMBER
14647 --Line Type
14648 , p_source_34 IN VARCHAR2
14649 , p_source_34_meaning IN VARCHAR2
14650 --Reversed Line Number
14651 , p_source_35 IN NUMBER
14652 )
14653 IS
14654
14655 l_component_type VARCHAR2(80);
14656 l_component_code VARCHAR2(30);
14657 l_component_type_code VARCHAR2(1);
14658 l_component_appl_id INTEGER;
14659 l_amb_context_code VARCHAR2(30);
14660 l_entity_code VARCHAR2(30);
14661 l_event_class_code VARCHAR2(30);
14662 l_ae_header_id NUMBER;
14663 l_event_type_code VARCHAR2(30);
14664 l_line_definition_code VARCHAR2(30);
14665 l_line_definition_owner_code VARCHAR2(1);
14666 --
14667 -- adr variables
14668 l_segment VARCHAR2(30);
14669 l_ccid NUMBER;
14670 l_adr_transaction_coa_id NUMBER;
14671 l_adr_accounting_coa_id NUMBER;
14672 l_adr_flexfield_segment_code VARCHAR2(30);
14673 l_adr_flex_value_set_id NUMBER;
14674 l_adr_value_type_code VARCHAR2(30);
14675 l_adr_value_combination_id NUMBER;
14676 l_adr_value_segment_code VARCHAR2(30);
14677
14678 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
14679 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
14680 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
14681 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
14682
14683 -- 4262811 Variables ------------------------------------------------------------------------------------------
14684 l_entered_amt_idx NUMBER;
14688 l_tmp_amt NUMBER;
14685 l_accted_amt_idx NUMBER;
14686 l_acc_rev_flag VARCHAR2(1);
14687 l_accrual_line_num NUMBER;
14689 l_acc_rev_natural_side_code VARCHAR2(1);
14690
14691 l_num_entries NUMBER;
14692 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
14693 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
14694 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
14695 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
14696 l_recog_line_1 NUMBER;
14697 l_recog_line_2 NUMBER;
14698
14699 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
14700 l_bflow_applied_to_amt NUMBER; -- 5132302
14701 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
14702
14703 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
14704
14705 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
14706 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14707
14708 ---------------------------------------------------------------------------------------------------------------
14709
14710
14711 --
14712 -- bulk performance
14713 --
14714 l_balance_type_code VARCHAR2(1);
14715 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
14716 l_log_module VARCHAR2(240);
14717
14718 --
14719 -- Upgrade strategy
14720 --
14721 l_actual_upg_option VARCHAR2(1);
14722 l_enc_upg_option VARCHAR2(1);
14723
14724 --
14725 BEGIN
14726 --
14727 IF g_log_enabled THEN
14728 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_41';
14729 END IF;
14730 --
14731 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
14732
14733 trace
14734 (p_msg => 'BEGIN of AcctLineType_41'
14735 ,p_level => C_LEVEL_PROCEDURE
14736 ,p_module => l_log_module);
14737
14738 END IF;
14739 --
14740 l_component_type := 'AMB_JLT';
14741 l_component_code := 'PA_RAW_COST';
14742 l_component_type_code := 'S';
14743 l_component_appl_id := 275;
14744 l_amb_context_code := 'DEFAULT';
14745 l_entity_code := 'EXPENDITURES';
14746 l_event_class_code := 'WIP_COST';
14747 l_event_type_code := 'WIP_COST_ALL';
14748 l_line_definition_owner_code := 'S';
14749 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
14750 --
14751 l_balance_type_code := 'A';
14752 l_segment := NULL;
14753 l_ccid := NULL;
14754 l_adr_transaction_coa_id := NULL;
14755 l_adr_accounting_coa_id := NULL;
14756 l_adr_flexfield_segment_code := NULL;
14757 l_adr_flex_value_set_id := NULL;
14758 l_adr_value_type_code := NULL;
14759 l_adr_value_combination_id := NULL;
14760 l_adr_value_segment_code := NULL;
14761
14762 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
14763 l_bflow_class_code := ''; -- 4219869 Business Flow
14764 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
14765 l_budgetary_control_flag := 'N';
14766
14767 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14768 l_bflow_applied_to_amt := NULL; -- 5132302
14769 l_entered_amt_idx := NULL; -- 4262811
14770 l_accted_amt_idx := NULL; -- 4262811
14771 l_acc_rev_flag := NULL; -- 4262811
14772 l_accrual_line_num := NULL; -- 4262811
14773 l_tmp_amt := NULL; -- 4262811
14774 --
14775
14776 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
14777 l_balance_type_code <> 'B' THEN
14778
14779 --
14780 XLA_AE_LINES_PKG.SetNewLine;
14781
14782 p_balance_type_code := l_balance_type_code;
14783 -- set the flag so later we will know whether the gain loss line needs to be created
14784
14785 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
14786 p_actual_flag :='A';
14787 END IF;
14788
14789 --
14790 -- bulk performance
14791 --
14792 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
14793 p_header_num => 0); -- 4262811
14794 --
14795 -- set accounting line options
14796 --
14797 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
14798 p_natural_side_code => 'D'
14799 , p_gain_or_loss_flag => 'N'
14800 , p_gl_transfer_mode_code => 'S'
14801 , p_acct_entry_type_code => 'A'
14802 , p_switch_side_flag => 'Y'
14803 , p_merge_duplicate_code => 'N'
14804 );
14805 --
14806 l_acc_rev_natural_side_code := 'C'; -- 4262811
14807 --
14808 --
14809 -- set accounting line type info
14810 --
14811 xla_ae_lines_pkg.SetAcctLineType
14812 (p_component_type => l_component_type
14813 ,p_event_type_code => l_event_type_code
14814 ,p_line_definition_owner_code => l_line_definition_owner_code
14815 ,p_line_definition_code => l_line_definition_code
14816 ,p_accounting_line_code => l_component_code
14817 ,p_accounting_line_type_code => l_component_type_code
14818 ,p_accounting_line_appl_id => l_component_appl_id
14819 ,p_amb_context_code => l_amb_context_code
14820 ,p_entity_code => l_entity_code
14821 ,p_event_class_code => l_event_class_code);
14822 --
14823 -- set accounting class
14827 , p_ae_header_id => l_ae_header_id
14824 --
14825 xla_ae_lines_pkg.SetAcctClass(
14826 p_accounting_class_code => 'COST'
14828 );
14829
14830 --
14831 -- set rounding class
14832 --
14833 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
14834 'COST';
14835
14836 --
14837 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
14838 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
14839 --
14840 -- bulk performance
14841 --
14842 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
14843
14844 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
14845 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
14846
14847 -- 4955764
14848 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
14849 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
14850
14851 -- 4458381 Public Sector Enh
14852
14853 --
14854 -- set accounting attributes for the line type
14855 --
14856 l_entered_amt_idx := 22;
14857 l_accted_amt_idx := 27;
14858 l_bflow_applied_to_amt_idx := NULL; -- 5132302
14859 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
14860 l_rec_acct_attrs.array_char_value(1) := p_source_22;
14861 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
14862 l_rec_acct_attrs.array_char_value(2) := p_source_23;
14863 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
14864 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
14865 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
14866 l_rec_acct_attrs.array_num_value(4) := p_source_24;
14867 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
14868 l_rec_acct_attrs.array_char_value(5) := p_source_25;
14869 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
14870 l_rec_acct_attrs.array_num_value(6) := p_source_26;
14871 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
14872 l_rec_acct_attrs.array_date_value(7) := p_source_27;
14873 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
14874 l_rec_acct_attrs.array_num_value(8) := p_source_28;
14875 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
14876 l_rec_acct_attrs.array_char_value(9) := p_source_29;
14877 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
14878 l_rec_acct_attrs.array_char_value(10) := p_source_30;
14879 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
14880 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
14881 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
14882 l_rec_acct_attrs.array_num_value(12) := p_source_24;
14883 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
14884 l_rec_acct_attrs.array_char_value(13) := p_source_25;
14885 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
14886 l_rec_acct_attrs.array_num_value(14) := p_source_26;
14887 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
14888 l_rec_acct_attrs.array_date_value(15) := p_source_27;
14889 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
14890 l_rec_acct_attrs.array_num_value(16) := p_source_28;
14891 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
14892 l_rec_acct_attrs.array_char_value(17) := p_source_29;
14893 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
14894 l_rec_acct_attrs.array_char_value(18) := p_source_31;
14895 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
14896 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
14897 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
14898 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
14899 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
14900 l_rec_acct_attrs.array_char_value(21) := p_source_34;
14901 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
14902 l_rec_acct_attrs.array_num_value(22) := p_source_24;
14903 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
14904 l_rec_acct_attrs.array_char_value(23) := p_source_25;
14905 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
14906 l_rec_acct_attrs.array_date_value(24) := p_source_27;
14907 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
14908 l_rec_acct_attrs.array_num_value(25) := p_source_28;
14909 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
14910 l_rec_acct_attrs.array_char_value(26) := p_source_29;
14911 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
14912 l_rec_acct_attrs.array_num_value(27) := p_source_26;
14913 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
14914 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
14915 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
14916 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
14917 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
14918 l_rec_acct_attrs.array_char_value(30) := p_source_34;
14919
14920 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
14921 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
14922
14923 ---------------------------------------------------------------------------------------------------------------
14924 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
14928 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14925 ---------------------------------------------------------------------------------------------------------------
14926 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
14927
14929 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
14930
14931 IF xla_accounting_cache_pkg.GetValueChar
14932 (p_source_code => 'LEDGER_CATEGORY_CODE'
14933 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
14934 AND l_bflow_method_code = 'PRIOR_ENTRY'
14935 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
14936 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
14937 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
14938 )
14939 THEN
14940 xla_ae_lines_pkg.BflowUpgEntry
14941 (p_business_method_code => l_bflow_method_code
14942 ,p_business_class_code => l_bflow_class_code
14943 ,p_balance_type => l_balance_type_code);
14944 ELSE
14945 NULL;
14946 -- No business flow processing for business flow method of NONE.
14947 END IF;
14948
14949 --
14950 -- call analytical criteria
14951 --
14952
14953 --
14954 -- call description
14955 --
14956 -- No description or it is inherited.
14957 --
14958 -- call ADRs
14959 -- Bug 4922099
14960 --
14961 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
14962 (NVL(l_actual_upg_option, 'N') = 'O') OR
14963 (NVL(l_enc_upg_option, 'N') = 'O')
14964 )
14965 THEN
14966 NULL;
14967 --
14968 --
14969
14970 l_ccid := AcctDerRule_3(
14971 p_application_id => p_application_id
14972 , p_ae_header_id => l_ae_header_id
14973 , p_source_3 => p_source_3
14974 , p_source_4 => p_source_4
14975 , p_source_5 => p_source_5
14976 , x_transaction_coa_id => l_adr_transaction_coa_id
14977 , x_accounting_coa_id => l_adr_accounting_coa_id
14978 , x_value_type_code => l_adr_value_type_code
14979 , p_side => 'NA'
14980 );
14981
14982 xla_ae_lines_pkg.set_ccid(
14983 p_code_combination_id => l_ccid
14984 , p_value_type_code => l_adr_value_type_code
14985 , p_transaction_coa_id => l_adr_transaction_coa_id
14986 , p_accounting_coa_id => l_adr_accounting_coa_id
14987 , p_adr_code => 'PA_COST_ACCT_RULE'
14988 , p_adr_type_code => 'S'
14989 , p_component_type => l_component_type
14990 , p_component_code => l_component_code
14991 , p_component_type_code => l_component_type_code
14992 , p_component_appl_id => l_component_appl_id
14993 , p_amb_context_code => l_amb_context_code
14994 , p_side => 'NA'
14995 );
14996
14997
14998 --
14999 --
15000 END IF;
15001 --
15002 -- Bug 4922099
15003 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15004 (NVL(l_enc_upg_option, 'N') = 'O')
15005 ) AND
15006 (l_bflow_method_code = 'PRIOR_ENTRY')
15007 )
15008 THEN
15009 IF
15010 --
15011 1 = 2
15012 --
15013 THEN
15014 xla_accounting_err_pkg.build_message
15015 (p_appli_s_name => 'XLA'
15016 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15017 ,p_token_1 => 'LINE_NUMBER'
15018 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15019 ,p_token_2 => 'LINE_TYPE_NAME'
15020 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15021 l_component_type
15022 ,l_component_code
15023 ,l_component_type_code
15024 ,l_component_appl_id
15025 ,l_amb_context_code
15026 ,l_entity_code
15027 ,l_event_class_code
15028 )
15029 ,p_token_3 => 'OWNER'
15030 ,p_value_3 => xla_lookups_pkg.get_meaning(
15031 p_lookup_type => 'XLA_OWNER_TYPE'
15032 ,p_lookup_code => l_component_type_code
15033 )
15034 ,p_token_4 => 'PRODUCT_NAME'
15035 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15036 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15037 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15038 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15039 ,p_ae_header_id => NULL
15043 trace
15040 );
15041
15042 IF (C_LEVEL_ERROR>= g_log_level) THEN
15044 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15045 ,p_level => C_LEVEL_ERROR
15046 ,p_module => l_log_module);
15047 END IF;
15048 END IF;
15049 END IF;
15050 --
15051 --
15052 ------------------------------------------------------------------------------------------------
15053 -- 4219869 Business Flow
15054 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15055 -- Prior Entry. Currently, the following code is always generated.
15056 ------------------------------------------------------------------------------------------------
15057 XLA_AE_LINES_PKG.ValidateCurrentLine;
15058
15059 ------------------------------------------------------------------------------------
15060 -- 4219869 Business Flow
15061 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15062 ------------------------------------------------------------------------------------
15063 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15064
15065 ----------------------------------------------------------------------------------
15066 -- 4219869 Business Flow
15067 -- Update journal entry status -- Need to generate this within IF <condition>
15068 ----------------------------------------------------------------------------------
15069 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15070 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15071 ,p_balance_type_code => l_balance_type_code
15072 );
15073
15074 -------------------------------------------------------------------------------------------
15075 -- 4262811 - Generate the Accrual Reversal lines
15076 -------------------------------------------------------------------------------------------
15077 BEGIN
15078 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15079 (g_array_event(p_event_id).array_value_num('header_index'));
15080 IF l_acc_rev_flag IS NULL THEN
15081 l_acc_rev_flag := 'N';
15082 END IF;
15083 EXCEPTION
15084 WHEN OTHERS THEN
15085 l_acc_rev_flag := 'N';
15086 END;
15087 --
15088 IF (l_acc_rev_flag = 'Y') THEN
15089
15090 -- 4645092 ------------------------------------------------------------------------------
15091 -- To allow MPA report to determine if it should generate report process
15092 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15093 ------------------------------------------------------------------------------------------
15094
15095 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15096 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15097
15098 --
15099 -- Update the line information that should be overwritten
15100 --
15101 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15102 p_header_num => 1);
15103 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15104
15105 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15106
15107 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15108 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15109 END IF;
15110
15111 --
15112 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15113 --
15114 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15115 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15116 ELSE
15117 ---------------------------------------------------------------------------------------------------
15118 -- 4262811a Switch Sign
15119 ---------------------------------------------------------------------------------------------------
15120 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15121 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15122 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15123 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15124 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15125 -- 5132302
15126 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15127 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15128
15129 END IF;
15130
15131 -- 4955764
15132 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15133 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15134
15135
15136 XLA_AE_LINES_PKG.ValidateCurrentLine;
15137 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15138
15139 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15140 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15141 ,p_balance_type_code => l_balance_type_code);
15142
15143 END IF;
15144
15145 -----------------------------------------------------------------------------------------
15146 -- 4262811 Multiperiod Accounting
15147 -----------------------------------------------------------------------------------------
15148 -- No MPA option is assigned.
15149
15150
15151 END IF;
15155 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15152 --
15153
15154 --
15156 trace
15157 (p_msg => 'END of AcctLineType_41'
15158 ,p_level => C_LEVEL_PROCEDURE
15159 ,p_module => l_log_module);
15160 END IF;
15161 --
15162 EXCEPTION
15163 WHEN xla_exceptions_pkg.application_exception THEN
15164 RAISE;
15165 WHEN OTHERS THEN
15166 xla_exceptions_pkg.raise_message
15167 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_41');
15168 END AcctLineType_41;
15169 --
15170
15171 ---------------------------------------
15172 --
15173 -- PRIVATE FUNCTION
15174 -- AcctLineType_42
15175 --
15176 ---------------------------------------
15177 PROCEDURE AcctLineType_42 (
15178 p_application_id IN NUMBER
15179 ,p_event_id IN NUMBER
15180 ,p_calculate_acctd_flag IN VARCHAR2
15181 ,p_calculate_g_l_flag IN VARCHAR2
15182 ,p_actual_flag IN OUT VARCHAR2
15183 ,p_balance_type_code OUT VARCHAR2
15184 ,p_gain_or_loss_ref OUT VARCHAR2
15185
15186 --Cost CCID
15187 , p_source_3 IN NUMBER
15188 --Allow Account Override Flag
15189 , p_source_4 IN VARCHAR2
15190 --Adjustment Cost CCID
15191 , p_source_5 IN NUMBER
15192 --Cost Clearing CCID
15193 , p_source_6 IN NUMBER
15194 --Reversing Line Flag
15195 , p_source_22 IN VARCHAR2
15196 --Actual Upgrade Credit Accounting Class
15197 , p_source_23 IN VARCHAR2
15198 --Entered Raw Cost
15199 , p_source_24 IN NUMBER
15200 --Entered Currency Code
15201 , p_source_25 IN VARCHAR2
15202 --Accounted Raw Cost
15203 , p_source_26 IN NUMBER
15204 --Exchange Rate Date
15205 , p_source_27 IN DATE
15206 --Exchange Rate
15207 , p_source_28 IN NUMBER
15208 --Exchange Rate Type
15209 , p_source_29 IN VARCHAR2
15210 --Actual Upgrade Debit Accounting Class
15211 , p_source_30 IN VARCHAR2
15212 --Use Actuals Upgrade Attributes Flag
15213 , p_source_31 IN VARCHAR2
15214 --Expenditure Item ID
15215 , p_source_32 IN NUMBER
15216 --Cost Distribution Line Number
15217 , p_source_33 IN NUMBER
15218 --Line Type
15219 , p_source_34 IN VARCHAR2
15220 , p_source_34_meaning IN VARCHAR2
15221 --Reversed Line Number
15222 , p_source_35 IN NUMBER
15223 )
15224 IS
15225
15226 l_component_type VARCHAR2(80);
15227 l_component_code VARCHAR2(30);
15228 l_component_type_code VARCHAR2(1);
15229 l_component_appl_id INTEGER;
15230 l_amb_context_code VARCHAR2(30);
15231 l_entity_code VARCHAR2(30);
15232 l_event_class_code VARCHAR2(30);
15233 l_ae_header_id NUMBER;
15234 l_event_type_code VARCHAR2(30);
15235 l_line_definition_code VARCHAR2(30);
15236 l_line_definition_owner_code VARCHAR2(1);
15237 --
15238 -- adr variables
15239 l_segment VARCHAR2(30);
15240 l_ccid NUMBER;
15241 l_adr_transaction_coa_id NUMBER;
15242 l_adr_accounting_coa_id NUMBER;
15243 l_adr_flexfield_segment_code VARCHAR2(30);
15244 l_adr_flex_value_set_id NUMBER;
15245 l_adr_value_type_code VARCHAR2(30);
15246 l_adr_value_combination_id NUMBER;
15247 l_adr_value_segment_code VARCHAR2(30);
15248
15249 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15250 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15251 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15252 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15253
15254 -- 4262811 Variables ------------------------------------------------------------------------------------------
15255 l_entered_amt_idx NUMBER;
15256 l_accted_amt_idx NUMBER;
15257 l_acc_rev_flag VARCHAR2(1);
15258 l_accrual_line_num NUMBER;
15259 l_tmp_amt NUMBER;
15260 l_acc_rev_natural_side_code VARCHAR2(1);
15261
15262 l_num_entries NUMBER;
15263 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15264 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15265 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15266 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15267 l_recog_line_1 NUMBER;
15268 l_recog_line_2 NUMBER;
15269
15270 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15271 l_bflow_applied_to_amt NUMBER; -- 5132302
15272 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15273
15274 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15275
15276 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15277 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15278
15279 ---------------------------------------------------------------------------------------------------------------
15280
15281
15282 --
15283 -- bulk performance
15284 --
15285 l_balance_type_code VARCHAR2(1);
15286 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15287 l_log_module VARCHAR2(240);
15288
15289 --
15290 -- Upgrade strategy
15291 --
15292 l_actual_upg_option VARCHAR2(1);
15293 l_enc_upg_option VARCHAR2(1);
15294
15295 --
15296 BEGIN
15297 --
15298 IF g_log_enabled THEN
15299 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_42';
15300 END IF;
15304 trace
15301 --
15302 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15303
15305 (p_msg => 'BEGIN of AcctLineType_42'
15306 ,p_level => C_LEVEL_PROCEDURE
15307 ,p_module => l_log_module);
15308
15309 END IF;
15310 --
15311 l_component_type := 'AMB_JLT';
15312 l_component_code := 'PA_RAW_COST';
15313 l_component_type_code := 'S';
15314 l_component_appl_id := 275;
15315 l_amb_context_code := 'DEFAULT';
15316 l_entity_code := 'EXPENDITURES';
15317 l_event_class_code := 'USG_COST';
15318 l_event_type_code := 'USG_COST_ALL';
15319 l_line_definition_owner_code := 'S';
15320 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
15321 --
15322 l_balance_type_code := 'A';
15323 l_segment := NULL;
15324 l_ccid := NULL;
15325 l_adr_transaction_coa_id := NULL;
15326 l_adr_accounting_coa_id := NULL;
15327 l_adr_flexfield_segment_code := NULL;
15328 l_adr_flex_value_set_id := NULL;
15329 l_adr_value_type_code := NULL;
15330 l_adr_value_combination_id := NULL;
15331 l_adr_value_segment_code := NULL;
15332
15333 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
15334 l_bflow_class_code := ''; -- 4219869 Business Flow
15335 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15336 l_budgetary_control_flag := 'N';
15337
15338 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15339 l_bflow_applied_to_amt := NULL; -- 5132302
15340 l_entered_amt_idx := NULL; -- 4262811
15341 l_accted_amt_idx := NULL; -- 4262811
15342 l_acc_rev_flag := NULL; -- 4262811
15343 l_accrual_line_num := NULL; -- 4262811
15344 l_tmp_amt := NULL; -- 4262811
15345 --
15346
15347 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15348 l_balance_type_code <> 'B' THEN
15349
15350 --
15351 XLA_AE_LINES_PKG.SetNewLine;
15352
15353 p_balance_type_code := l_balance_type_code;
15354 -- set the flag so later we will know whether the gain loss line needs to be created
15355
15356 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15357 p_actual_flag :='A';
15358 END IF;
15359
15360 --
15361 -- bulk performance
15362 --
15363 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15364 p_header_num => 0); -- 4262811
15365 --
15366 -- set accounting line options
15367 --
15368 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15369 p_natural_side_code => 'D'
15370 , p_gain_or_loss_flag => 'N'
15371 , p_gl_transfer_mode_code => 'S'
15372 , p_acct_entry_type_code => 'A'
15373 , p_switch_side_flag => 'Y'
15374 , p_merge_duplicate_code => 'N'
15375 );
15376 --
15377 l_acc_rev_natural_side_code := 'C'; -- 4262811
15378 --
15379 --
15380 -- set accounting line type info
15381 --
15382 xla_ae_lines_pkg.SetAcctLineType
15383 (p_component_type => l_component_type
15384 ,p_event_type_code => l_event_type_code
15385 ,p_line_definition_owner_code => l_line_definition_owner_code
15386 ,p_line_definition_code => l_line_definition_code
15387 ,p_accounting_line_code => l_component_code
15388 ,p_accounting_line_type_code => l_component_type_code
15389 ,p_accounting_line_appl_id => l_component_appl_id
15390 ,p_amb_context_code => l_amb_context_code
15391 ,p_entity_code => l_entity_code
15392 ,p_event_class_code => l_event_class_code);
15393 --
15394 -- set accounting class
15395 --
15396 xla_ae_lines_pkg.SetAcctClass(
15397 p_accounting_class_code => 'COST'
15398 , p_ae_header_id => l_ae_header_id
15399 );
15400
15401 --
15402 -- set rounding class
15403 --
15404 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15405 'COST';
15406
15407 --
15408 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15409 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15410 --
15411 -- bulk performance
15412 --
15413 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15414
15415 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15416 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15417
15418 -- 4955764
15419 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15420 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15421
15422 -- 4458381 Public Sector Enh
15423
15424 --
15425 -- set accounting attributes for the line type
15426 --
15427 l_entered_amt_idx := 22;
15428 l_accted_amt_idx := 27;
15429 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15430 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
15431 l_rec_acct_attrs.array_char_value(1) := p_source_22;
15432 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
15433 l_rec_acct_attrs.array_char_value(2) := p_source_23;
15434 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
15435 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
15439 l_rec_acct_attrs.array_char_value(5) := p_source_25;
15436 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
15437 l_rec_acct_attrs.array_num_value(4) := p_source_24;
15438 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
15440 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
15441 l_rec_acct_attrs.array_num_value(6) := p_source_26;
15442 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
15443 l_rec_acct_attrs.array_date_value(7) := p_source_27;
15444 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
15445 l_rec_acct_attrs.array_num_value(8) := p_source_28;
15446 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
15447 l_rec_acct_attrs.array_char_value(9) := p_source_29;
15448 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
15449 l_rec_acct_attrs.array_char_value(10) := p_source_30;
15450 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
15451 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
15452 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
15453 l_rec_acct_attrs.array_num_value(12) := p_source_24;
15454 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
15455 l_rec_acct_attrs.array_char_value(13) := p_source_25;
15456 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
15457 l_rec_acct_attrs.array_num_value(14) := p_source_26;
15458 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
15459 l_rec_acct_attrs.array_date_value(15) := p_source_27;
15460 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
15461 l_rec_acct_attrs.array_num_value(16) := p_source_28;
15462 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
15463 l_rec_acct_attrs.array_char_value(17) := p_source_29;
15464 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
15465 l_rec_acct_attrs.array_char_value(18) := p_source_31;
15466 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
15467 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
15468 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
15469 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
15470 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
15471 l_rec_acct_attrs.array_char_value(21) := p_source_34;
15472 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
15473 l_rec_acct_attrs.array_num_value(22) := p_source_24;
15474 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
15475 l_rec_acct_attrs.array_char_value(23) := p_source_25;
15476 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
15477 l_rec_acct_attrs.array_date_value(24) := p_source_27;
15478 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
15479 l_rec_acct_attrs.array_num_value(25) := p_source_28;
15480 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
15481 l_rec_acct_attrs.array_char_value(26) := p_source_29;
15482 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
15483 l_rec_acct_attrs.array_num_value(27) := p_source_26;
15484 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
15485 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
15486 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
15487 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
15488 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
15489 l_rec_acct_attrs.array_char_value(30) := p_source_34;
15490
15491 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
15492 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
15493
15494 ---------------------------------------------------------------------------------------------------------------
15495 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
15496 ---------------------------------------------------------------------------------------------------------------
15497 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
15498
15499 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15500 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
15501
15502 IF xla_accounting_cache_pkg.GetValueChar
15503 (p_source_code => 'LEDGER_CATEGORY_CODE'
15504 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
15505 AND l_bflow_method_code = 'PRIOR_ENTRY'
15506 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
15507 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
15508 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
15509 )
15510 THEN
15511 xla_ae_lines_pkg.BflowUpgEntry
15512 (p_business_method_code => l_bflow_method_code
15513 ,p_business_class_code => l_bflow_class_code
15514 ,p_balance_type => l_balance_type_code);
15515 ELSE
15516 NULL;
15517 -- No business flow processing for business flow method of NONE.
15518 END IF;
15519
15520 --
15521 -- call analytical criteria
15522 --
15523
15524 --
15525 -- call description
15526 --
15527 -- No description or it is inherited.
15528 --
15529 -- call ADRs
15530 -- Bug 4922099
15531 --
15532 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
15533 (NVL(l_actual_upg_option, 'N') = 'O') OR
15534 (NVL(l_enc_upg_option, 'N') = 'O')
15535 )
15536 THEN
15537 NULL;
15538 --
15539 --
15540
15541 l_ccid := AcctDerRule_3(
15545 , p_source_4 => p_source_4
15542 p_application_id => p_application_id
15543 , p_ae_header_id => l_ae_header_id
15544 , p_source_3 => p_source_3
15546 , p_source_5 => p_source_5
15547 , x_transaction_coa_id => l_adr_transaction_coa_id
15548 , x_accounting_coa_id => l_adr_accounting_coa_id
15549 , x_value_type_code => l_adr_value_type_code
15550 , p_side => 'NA'
15551 );
15552
15553 xla_ae_lines_pkg.set_ccid(
15554 p_code_combination_id => l_ccid
15555 , p_value_type_code => l_adr_value_type_code
15556 , p_transaction_coa_id => l_adr_transaction_coa_id
15557 , p_accounting_coa_id => l_adr_accounting_coa_id
15558 , p_adr_code => 'PA_COST_ACCT_RULE'
15559 , p_adr_type_code => 'S'
15560 , p_component_type => l_component_type
15561 , p_component_code => l_component_code
15562 , p_component_type_code => l_component_type_code
15563 , p_component_appl_id => l_component_appl_id
15564 , p_amb_context_code => l_amb_context_code
15565 , p_side => 'NA'
15566 );
15567
15568
15569 --
15570 --
15571 END IF;
15572 --
15573 -- Bug 4922099
15574 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
15575 (NVL(l_enc_upg_option, 'N') = 'O')
15576 ) AND
15577 (l_bflow_method_code = 'PRIOR_ENTRY')
15578 )
15579 THEN
15580 IF
15581 --
15582 1 = 2
15583 --
15584 THEN
15585 xla_accounting_err_pkg.build_message
15586 (p_appli_s_name => 'XLA'
15587 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15588 ,p_token_1 => 'LINE_NUMBER'
15589 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
15590 ,p_token_2 => 'LINE_TYPE_NAME'
15591 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
15592 l_component_type
15593 ,l_component_code
15594 ,l_component_type_code
15595 ,l_component_appl_id
15596 ,l_amb_context_code
15597 ,l_entity_code
15598 ,l_event_class_code
15599 )
15600 ,p_token_3 => 'OWNER'
15601 ,p_value_3 => xla_lookups_pkg.get_meaning(
15602 p_lookup_type => 'XLA_OWNER_TYPE'
15603 ,p_lookup_code => l_component_type_code
15604 )
15605 ,p_token_4 => 'PRODUCT_NAME'
15606 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15607 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
15608 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
15609 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
15610 ,p_ae_header_id => NULL
15611 );
15612
15613 IF (C_LEVEL_ERROR>= g_log_level) THEN
15614 trace
15615 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
15616 ,p_level => C_LEVEL_ERROR
15617 ,p_module => l_log_module);
15618 END IF;
15619 END IF;
15620 END IF;
15621 --
15622 --
15623 ------------------------------------------------------------------------------------------------
15624 -- 4219869 Business Flow
15625 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
15626 -- Prior Entry. Currently, the following code is always generated.
15627 ------------------------------------------------------------------------------------------------
15628 XLA_AE_LINES_PKG.ValidateCurrentLine;
15629
15630 ------------------------------------------------------------------------------------
15631 -- 4219869 Business Flow
15632 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
15633 ------------------------------------------------------------------------------------
15634 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15635
15636 ----------------------------------------------------------------------------------
15637 -- 4219869 Business Flow
15638 -- Update journal entry status -- Need to generate this within IF <condition>
15639 ----------------------------------------------------------------------------------
15640 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15641 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
15642 ,p_balance_type_code => l_balance_type_code
15643 );
15644
15645 -------------------------------------------------------------------------------------------
15646 -- 4262811 - Generate the Accrual Reversal lines
15650 (g_array_event(p_event_id).array_value_num('header_index'));
15647 -------------------------------------------------------------------------------------------
15648 BEGIN
15649 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15651 IF l_acc_rev_flag IS NULL THEN
15652 l_acc_rev_flag := 'N';
15653 END IF;
15654 EXCEPTION
15655 WHEN OTHERS THEN
15656 l_acc_rev_flag := 'N';
15657 END;
15658 --
15659 IF (l_acc_rev_flag = 'Y') THEN
15660
15661 -- 4645092 ------------------------------------------------------------------------------
15662 -- To allow MPA report to determine if it should generate report process
15663 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
15664 ------------------------------------------------------------------------------------------
15665
15666 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
15667 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
15668
15669 --
15670 -- Update the line information that should be overwritten
15671 --
15672 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
15673 p_header_num => 1);
15674 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
15675
15676 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
15677
15678 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
15679 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
15680 END IF;
15681
15682 --
15683 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
15684 --
15685 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
15686 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
15687 ELSE
15688 ---------------------------------------------------------------------------------------------------
15689 -- 4262811a Switch Sign
15690 ---------------------------------------------------------------------------------------------------
15691 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
15692 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15693 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15694 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
15695 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15696 -- 5132302
15697 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
15698 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
15699
15700 END IF;
15701
15702 -- 4955764
15703 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15704 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
15705
15706
15707 XLA_AE_LINES_PKG.ValidateCurrentLine;
15708 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
15709
15710 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
15711 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
15712 ,p_balance_type_code => l_balance_type_code);
15713
15714 END IF;
15715
15716 -----------------------------------------------------------------------------------------
15717 -- 4262811 Multiperiod Accounting
15718 -----------------------------------------------------------------------------------------
15719 -- No MPA option is assigned.
15720
15721
15722 END IF;
15723 --
15724
15725 --
15726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15727 trace
15728 (p_msg => 'END of AcctLineType_42'
15729 ,p_level => C_LEVEL_PROCEDURE
15730 ,p_module => l_log_module);
15731 END IF;
15732 --
15733 EXCEPTION
15734 WHEN xla_exceptions_pkg.application_exception THEN
15735 RAISE;
15736 WHEN OTHERS THEN
15737 xla_exceptions_pkg.raise_message
15738 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_42');
15739 END AcctLineType_42;
15740 --
15741
15742 ---------------------------------------
15743 --
15744 -- PRIVATE FUNCTION
15745 -- AcctLineType_43
15746 --
15747 ---------------------------------------
15748 PROCEDURE AcctLineType_43 (
15749 p_application_id IN NUMBER
15750 ,p_event_id IN NUMBER
15751 ,p_calculate_acctd_flag IN VARCHAR2
15752 ,p_calculate_g_l_flag IN VARCHAR2
15753 ,p_actual_flag IN OUT VARCHAR2
15754 ,p_balance_type_code OUT VARCHAR2
15755 ,p_gain_or_loss_ref OUT VARCHAR2
15756
15757 --Cost CCID
15758 , p_source_3 IN NUMBER
15759 --Allow Account Override Flag
15760 , p_source_4 IN VARCHAR2
15761 --Adjustment Cost CCID
15762 , p_source_5 IN NUMBER
15763 --Cost Clearing CCID
15764 , p_source_6 IN NUMBER
15765 --Reversing Line Flag
15766 , p_source_22 IN VARCHAR2
15767 --Actual Upgrade Credit Accounting Class
15768 , p_source_23 IN VARCHAR2
15769 --Entered Raw Cost
15770 , p_source_24 IN NUMBER
15771 --Entered Currency Code
15772 , p_source_25 IN VARCHAR2
15773 --Accounted Raw Cost
15774 , p_source_26 IN NUMBER
15775 --Exchange Rate Date
15776 , p_source_27 IN DATE
15780 , p_source_29 IN VARCHAR2
15777 --Exchange Rate
15778 , p_source_28 IN NUMBER
15779 --Exchange Rate Type
15781 --Actual Upgrade Debit Accounting Class
15782 , p_source_30 IN VARCHAR2
15783 --Use Actuals Upgrade Attributes Flag
15784 , p_source_31 IN VARCHAR2
15785 --Expenditure Item ID
15786 , p_source_32 IN NUMBER
15787 --Cost Distribution Line Number
15788 , p_source_33 IN NUMBER
15789 --Line Type
15790 , p_source_34 IN VARCHAR2
15791 , p_source_34_meaning IN VARCHAR2
15792 --Reversed Line Number
15793 , p_source_35 IN NUMBER
15794 )
15795 IS
15796
15797 l_component_type VARCHAR2(80);
15798 l_component_code VARCHAR2(30);
15799 l_component_type_code VARCHAR2(1);
15800 l_component_appl_id INTEGER;
15801 l_amb_context_code VARCHAR2(30);
15802 l_entity_code VARCHAR2(30);
15803 l_event_class_code VARCHAR2(30);
15804 l_ae_header_id NUMBER;
15805 l_event_type_code VARCHAR2(30);
15806 l_line_definition_code VARCHAR2(30);
15807 l_line_definition_owner_code VARCHAR2(1);
15808 --
15809 -- adr variables
15810 l_segment VARCHAR2(30);
15811 l_ccid NUMBER;
15812 l_adr_transaction_coa_id NUMBER;
15813 l_adr_accounting_coa_id NUMBER;
15814 l_adr_flexfield_segment_code VARCHAR2(30);
15815 l_adr_flex_value_set_id NUMBER;
15816 l_adr_value_type_code VARCHAR2(30);
15817 l_adr_value_combination_id NUMBER;
15818 l_adr_value_segment_code VARCHAR2(30);
15819
15820 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
15821 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
15822 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
15823 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
15824
15825 -- 4262811 Variables ------------------------------------------------------------------------------------------
15826 l_entered_amt_idx NUMBER;
15827 l_accted_amt_idx NUMBER;
15828 l_acc_rev_flag VARCHAR2(1);
15829 l_accrual_line_num NUMBER;
15830 l_tmp_amt NUMBER;
15831 l_acc_rev_natural_side_code VARCHAR2(1);
15832
15833 l_num_entries NUMBER;
15834 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
15835 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
15836 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
15837 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
15838 l_recog_line_1 NUMBER;
15839 l_recog_line_2 NUMBER;
15840
15841 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15842 l_bflow_applied_to_amt NUMBER; -- 5132302
15843 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
15844
15845 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
15846
15847 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
15848 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
15849
15850 ---------------------------------------------------------------------------------------------------------------
15851
15852
15853 --
15854 -- bulk performance
15855 --
15856 l_balance_type_code VARCHAR2(1);
15857 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
15858 l_log_module VARCHAR2(240);
15859
15860 --
15861 -- Upgrade strategy
15862 --
15863 l_actual_upg_option VARCHAR2(1);
15864 l_enc_upg_option VARCHAR2(1);
15865
15866 --
15867 BEGIN
15868 --
15869 IF g_log_enabled THEN
15870 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_43';
15871 END IF;
15872 --
15873 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15874
15875 trace
15876 (p_msg => 'BEGIN of AcctLineType_43'
15877 ,p_level => C_LEVEL_PROCEDURE
15878 ,p_module => l_log_module);
15879
15880 END IF;
15881 --
15882 l_component_type := 'AMB_JLT';
15883 l_component_code := 'PA_RAW_COST';
15884 l_component_type_code := 'S';
15885 l_component_appl_id := 275;
15886 l_amb_context_code := 'DEFAULT';
15887 l_entity_code := 'EXPENDITURES';
15888 l_event_class_code := 'INVENTORY_COST';
15889 l_event_type_code := 'INVENTORY_COST_ALL';
15890 l_line_definition_owner_code := 'S';
15891 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
15892 --
15893 l_balance_type_code := 'A';
15894 l_segment := NULL;
15895 l_ccid := NULL;
15896 l_adr_transaction_coa_id := NULL;
15897 l_adr_accounting_coa_id := NULL;
15898 l_adr_flexfield_segment_code := NULL;
15899 l_adr_flex_value_set_id := NULL;
15900 l_adr_value_type_code := NULL;
15901 l_adr_value_combination_id := NULL;
15902 l_adr_value_segment_code := NULL;
15903
15904 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
15905 l_bflow_class_code := ''; -- 4219869 Business Flow
15906 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
15907 l_budgetary_control_flag := 'N';
15908
15909 l_bflow_applied_to_amt_idx := NULL; -- 5132302
15910 l_bflow_applied_to_amt := NULL; -- 5132302
15911 l_entered_amt_idx := NULL; -- 4262811
15912 l_accted_amt_idx := NULL; -- 4262811
15913 l_acc_rev_flag := NULL; -- 4262811
15914 l_accrual_line_num := NULL; -- 4262811
15918 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
15915 l_tmp_amt := NULL; -- 4262811
15916 --
15917
15919 l_balance_type_code <> 'B' THEN
15920
15921 --
15922 XLA_AE_LINES_PKG.SetNewLine;
15923
15924 p_balance_type_code := l_balance_type_code;
15925 -- set the flag so later we will know whether the gain loss line needs to be created
15926
15927 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
15928 p_actual_flag :='A';
15929 END IF;
15930
15931 --
15932 -- bulk performance
15933 --
15934 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
15935 p_header_num => 0); -- 4262811
15936 --
15937 -- set accounting line options
15938 --
15939 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
15940 p_natural_side_code => 'D'
15941 , p_gain_or_loss_flag => 'N'
15942 , p_gl_transfer_mode_code => 'S'
15943 , p_acct_entry_type_code => 'A'
15944 , p_switch_side_flag => 'Y'
15945 , p_merge_duplicate_code => 'N'
15946 );
15947 --
15948 l_acc_rev_natural_side_code := 'C'; -- 4262811
15949 --
15950 --
15951 -- set accounting line type info
15952 --
15953 xla_ae_lines_pkg.SetAcctLineType
15954 (p_component_type => l_component_type
15955 ,p_event_type_code => l_event_type_code
15956 ,p_line_definition_owner_code => l_line_definition_owner_code
15957 ,p_line_definition_code => l_line_definition_code
15958 ,p_accounting_line_code => l_component_code
15959 ,p_accounting_line_type_code => l_component_type_code
15960 ,p_accounting_line_appl_id => l_component_appl_id
15961 ,p_amb_context_code => l_amb_context_code
15962 ,p_entity_code => l_entity_code
15963 ,p_event_class_code => l_event_class_code);
15964 --
15965 -- set accounting class
15966 --
15967 xla_ae_lines_pkg.SetAcctClass(
15968 p_accounting_class_code => 'COST'
15969 , p_ae_header_id => l_ae_header_id
15970 );
15971
15972 --
15973 -- set rounding class
15974 --
15975 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
15976 'COST';
15977
15978 --
15979 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
15980 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
15981 --
15982 -- bulk performance
15983 --
15984 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
15985
15986 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
15987 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
15988
15989 -- 4955764
15990 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
15991 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
15992
15993 -- 4458381 Public Sector Enh
15994
15995 --
15996 -- set accounting attributes for the line type
15997 --
15998 l_entered_amt_idx := 22;
15999 l_accted_amt_idx := 27;
16000 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16001 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16002 l_rec_acct_attrs.array_char_value(1) := p_source_22;
16003 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
16004 l_rec_acct_attrs.array_char_value(2) := p_source_23;
16005 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
16006 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
16007 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
16008 l_rec_acct_attrs.array_num_value(4) := p_source_24;
16009 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
16010 l_rec_acct_attrs.array_char_value(5) := p_source_25;
16011 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
16012 l_rec_acct_attrs.array_num_value(6) := p_source_26;
16013 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
16014 l_rec_acct_attrs.array_date_value(7) := p_source_27;
16015 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
16016 l_rec_acct_attrs.array_num_value(8) := p_source_28;
16017 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
16018 l_rec_acct_attrs.array_char_value(9) := p_source_29;
16019 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
16020 l_rec_acct_attrs.array_char_value(10) := p_source_30;
16021 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
16022 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
16023 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
16024 l_rec_acct_attrs.array_num_value(12) := p_source_24;
16025 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
16026 l_rec_acct_attrs.array_char_value(13) := p_source_25;
16027 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
16028 l_rec_acct_attrs.array_num_value(14) := p_source_26;
16029 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
16030 l_rec_acct_attrs.array_date_value(15) := p_source_27;
16031 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
16032 l_rec_acct_attrs.array_num_value(16) := p_source_28;
16033 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
16034 l_rec_acct_attrs.array_char_value(17) := p_source_29;
16038 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
16035 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
16036 l_rec_acct_attrs.array_char_value(18) := p_source_31;
16037 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
16039 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
16040 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
16041 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
16042 l_rec_acct_attrs.array_char_value(21) := p_source_34;
16043 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
16044 l_rec_acct_attrs.array_num_value(22) := p_source_24;
16045 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
16046 l_rec_acct_attrs.array_char_value(23) := p_source_25;
16047 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
16048 l_rec_acct_attrs.array_date_value(24) := p_source_27;
16049 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
16050 l_rec_acct_attrs.array_num_value(25) := p_source_28;
16051 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
16052 l_rec_acct_attrs.array_char_value(26) := p_source_29;
16053 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
16054 l_rec_acct_attrs.array_num_value(27) := p_source_26;
16055 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
16056 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
16057 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
16058 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
16059 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
16060 l_rec_acct_attrs.array_char_value(30) := p_source_34;
16061
16062 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16063 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16064
16065 ---------------------------------------------------------------------------------------------------------------
16066 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16067 ---------------------------------------------------------------------------------------------------------------
16068 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16069
16070 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16071 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16072
16073 IF xla_accounting_cache_pkg.GetValueChar
16074 (p_source_code => 'LEDGER_CATEGORY_CODE'
16075 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16076 AND l_bflow_method_code = 'PRIOR_ENTRY'
16077 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16078 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16079 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16080 )
16081 THEN
16082 xla_ae_lines_pkg.BflowUpgEntry
16083 (p_business_method_code => l_bflow_method_code
16084 ,p_business_class_code => l_bflow_class_code
16085 ,p_balance_type => l_balance_type_code);
16086 ELSE
16087 NULL;
16088 -- No business flow processing for business flow method of NONE.
16089 END IF;
16090
16091 --
16092 -- call analytical criteria
16093 --
16094
16095 --
16096 -- call description
16097 --
16098 -- No description or it is inherited.
16099 --
16100 -- call ADRs
16101 -- Bug 4922099
16102 --
16103 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16104 (NVL(l_actual_upg_option, 'N') = 'O') OR
16105 (NVL(l_enc_upg_option, 'N') = 'O')
16106 )
16107 THEN
16108 NULL;
16109 --
16110 --
16111
16112 l_ccid := AcctDerRule_3(
16113 p_application_id => p_application_id
16114 , p_ae_header_id => l_ae_header_id
16115 , p_source_3 => p_source_3
16116 , p_source_4 => p_source_4
16117 , p_source_5 => p_source_5
16118 , x_transaction_coa_id => l_adr_transaction_coa_id
16119 , x_accounting_coa_id => l_adr_accounting_coa_id
16120 , x_value_type_code => l_adr_value_type_code
16121 , p_side => 'NA'
16122 );
16123
16124 xla_ae_lines_pkg.set_ccid(
16125 p_code_combination_id => l_ccid
16126 , p_value_type_code => l_adr_value_type_code
16127 , p_transaction_coa_id => l_adr_transaction_coa_id
16128 , p_accounting_coa_id => l_adr_accounting_coa_id
16129 , p_adr_code => 'PA_COST_ACCT_RULE'
16130 , p_adr_type_code => 'S'
16131 , p_component_type => l_component_type
16132 , p_component_code => l_component_code
16133 , p_component_type_code => l_component_type_code
16134 , p_component_appl_id => l_component_appl_id
16135 , p_amb_context_code => l_amb_context_code
16136 , p_side => 'NA'
16137 );
16138
16139
16140 --
16141 --
16142 END IF;
16143 --
16144 -- Bug 4922099
16145 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16146 (NVL(l_enc_upg_option, 'N') = 'O')
16147 ) AND
16148 (l_bflow_method_code = 'PRIOR_ENTRY')
16149 )
16150 THEN
16151 IF
16152 --
16153 1 = 2
16154 --
16155 THEN
16156 xla_accounting_err_pkg.build_message
16157 (p_appli_s_name => 'XLA'
16161 ,p_token_2 => 'LINE_TYPE_NAME'
16158 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16159 ,p_token_1 => 'LINE_NUMBER'
16160 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16162 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16163 l_component_type
16164 ,l_component_code
16165 ,l_component_type_code
16166 ,l_component_appl_id
16167 ,l_amb_context_code
16168 ,l_entity_code
16169 ,l_event_class_code
16170 )
16171 ,p_token_3 => 'OWNER'
16172 ,p_value_3 => xla_lookups_pkg.get_meaning(
16173 p_lookup_type => 'XLA_OWNER_TYPE'
16174 ,p_lookup_code => l_component_type_code
16175 )
16176 ,p_token_4 => 'PRODUCT_NAME'
16177 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16178 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16179 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16180 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16181 ,p_ae_header_id => NULL
16182 );
16183
16184 IF (C_LEVEL_ERROR>= g_log_level) THEN
16185 trace
16186 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16187 ,p_level => C_LEVEL_ERROR
16188 ,p_module => l_log_module);
16189 END IF;
16190 END IF;
16191 END IF;
16192 --
16193 --
16194 ------------------------------------------------------------------------------------------------
16195 -- 4219869 Business Flow
16196 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16197 -- Prior Entry. Currently, the following code is always generated.
16198 ------------------------------------------------------------------------------------------------
16199 XLA_AE_LINES_PKG.ValidateCurrentLine;
16200
16201 ------------------------------------------------------------------------------------
16202 -- 4219869 Business Flow
16203 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16204 ------------------------------------------------------------------------------------
16205 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16206
16207 ----------------------------------------------------------------------------------
16208 -- 4219869 Business Flow
16209 -- Update journal entry status -- Need to generate this within IF <condition>
16210 ----------------------------------------------------------------------------------
16211 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16212 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16213 ,p_balance_type_code => l_balance_type_code
16214 );
16215
16216 -------------------------------------------------------------------------------------------
16217 -- 4262811 - Generate the Accrual Reversal lines
16218 -------------------------------------------------------------------------------------------
16219 BEGIN
16220 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16221 (g_array_event(p_event_id).array_value_num('header_index'));
16222 IF l_acc_rev_flag IS NULL THEN
16223 l_acc_rev_flag := 'N';
16224 END IF;
16225 EXCEPTION
16226 WHEN OTHERS THEN
16227 l_acc_rev_flag := 'N';
16228 END;
16229 --
16230 IF (l_acc_rev_flag = 'Y') THEN
16231
16232 -- 4645092 ------------------------------------------------------------------------------
16233 -- To allow MPA report to determine if it should generate report process
16234 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16235 ------------------------------------------------------------------------------------------
16236
16237 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16238 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16239
16240 --
16241 -- Update the line information that should be overwritten
16242 --
16243 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16244 p_header_num => 1);
16245 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16246
16247 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16248
16249 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16250 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16251 END IF;
16252
16253 --
16254 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16258 ELSE
16255 --
16256 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16257 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16259 ---------------------------------------------------------------------------------------------------
16260 -- 4262811a Switch Sign
16261 ---------------------------------------------------------------------------------------------------
16262 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16263 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16264 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16265 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16266 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16267 -- 5132302
16268 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16269 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16270
16271 END IF;
16272
16273 -- 4955764
16274 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16275 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16276
16277
16278 XLA_AE_LINES_PKG.ValidateCurrentLine;
16279 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16280
16281 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16282 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16283 ,p_balance_type_code => l_balance_type_code);
16284
16285 END IF;
16286
16287 -----------------------------------------------------------------------------------------
16288 -- 4262811 Multiperiod Accounting
16289 -----------------------------------------------------------------------------------------
16290 -- No MPA option is assigned.
16291
16292
16293 END IF;
16294 --
16295
16296 --
16297 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16298 trace
16299 (p_msg => 'END of AcctLineType_43'
16300 ,p_level => C_LEVEL_PROCEDURE
16301 ,p_module => l_log_module);
16302 END IF;
16303 --
16304 EXCEPTION
16305 WHEN xla_exceptions_pkg.application_exception THEN
16306 RAISE;
16307 WHEN OTHERS THEN
16308 xla_exceptions_pkg.raise_message
16309 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_43');
16310 END AcctLineType_43;
16311 --
16312
16313 ---------------------------------------
16314 --
16315 -- PRIVATE FUNCTION
16316 -- AcctLineType_44
16317 --
16318 ---------------------------------------
16319 PROCEDURE AcctLineType_44 (
16320 p_application_id IN NUMBER
16321 ,p_event_id IN NUMBER
16322 ,p_calculate_acctd_flag IN VARCHAR2
16323 ,p_calculate_g_l_flag IN VARCHAR2
16324 ,p_actual_flag IN OUT VARCHAR2
16325 ,p_balance_type_code OUT VARCHAR2
16326 ,p_gain_or_loss_ref OUT VARCHAR2
16327
16328 --Cost CCID
16329 , p_source_3 IN NUMBER
16330 --Allow Account Override Flag
16331 , p_source_4 IN VARCHAR2
16332 --Adjustment Cost CCID
16333 , p_source_5 IN NUMBER
16334 --Cost Clearing CCID
16335 , p_source_6 IN NUMBER
16336 --Exchange Rate Variance Flag
16337 , p_source_21 IN VARCHAR2
16338 --Reversing Line Flag
16339 , p_source_22 IN VARCHAR2
16340 --Actual Upgrade Credit Accounting Class
16341 , p_source_23 IN VARCHAR2
16342 --Entered Raw Cost
16343 , p_source_24 IN NUMBER
16344 --Entered Currency Code
16345 , p_source_25 IN VARCHAR2
16346 --Accounted Raw Cost
16347 , p_source_26 IN NUMBER
16348 --Exchange Rate Date
16349 , p_source_27 IN DATE
16350 --Exchange Rate
16351 , p_source_28 IN NUMBER
16352 --Exchange Rate Type
16353 , p_source_29 IN VARCHAR2
16354 --Actual Upgrade Debit Accounting Class
16355 , p_source_30 IN VARCHAR2
16356 --Use Actuals Upgrade Attributes Flag
16357 , p_source_31 IN VARCHAR2
16358 --Expenditure Item ID
16359 , p_source_32 IN NUMBER
16360 --Cost Distribution Line Number
16361 , p_source_33 IN NUMBER
16362 --Line Type
16363 , p_source_34 IN VARCHAR2
16364 , p_source_34_meaning IN VARCHAR2
16365 --Reversed Line Number
16366 , p_source_35 IN NUMBER
16367 )
16368 IS
16369
16370 l_component_type VARCHAR2(80);
16371 l_component_code VARCHAR2(30);
16372 l_component_type_code VARCHAR2(1);
16373 l_component_appl_id INTEGER;
16374 l_amb_context_code VARCHAR2(30);
16375 l_entity_code VARCHAR2(30);
16376 l_event_class_code VARCHAR2(30);
16377 l_ae_header_id NUMBER;
16378 l_event_type_code VARCHAR2(30);
16379 l_line_definition_code VARCHAR2(30);
16380 l_line_definition_owner_code VARCHAR2(1);
16381 --
16382 -- adr variables
16383 l_segment VARCHAR2(30);
16384 l_ccid NUMBER;
16385 l_adr_transaction_coa_id NUMBER;
16386 l_adr_accounting_coa_id NUMBER;
16387 l_adr_flexfield_segment_code VARCHAR2(30);
16388 l_adr_flex_value_set_id NUMBER;
16389 l_adr_value_type_code VARCHAR2(30);
16390 l_adr_value_combination_id NUMBER;
16391 l_adr_value_segment_code VARCHAR2(30);
16392
16396 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16393 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16394 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16395 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16397
16398 -- 4262811 Variables ------------------------------------------------------------------------------------------
16399 l_entered_amt_idx NUMBER;
16400 l_accted_amt_idx NUMBER;
16401 l_acc_rev_flag VARCHAR2(1);
16402 l_accrual_line_num NUMBER;
16403 l_tmp_amt NUMBER;
16404 l_acc_rev_natural_side_code VARCHAR2(1);
16405
16406 l_num_entries NUMBER;
16407 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16408 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16409 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16410 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16411 l_recog_line_1 NUMBER;
16412 l_recog_line_2 NUMBER;
16413
16414 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16415 l_bflow_applied_to_amt NUMBER; -- 5132302
16416 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16417
16418 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16419
16420 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16421 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16422
16423 ---------------------------------------------------------------------------------------------------------------
16424
16425
16426 --
16427 -- bulk performance
16428 --
16429 l_balance_type_code VARCHAR2(1);
16430 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
16431 l_log_module VARCHAR2(240);
16432
16433 --
16434 -- Upgrade strategy
16435 --
16436 l_actual_upg_option VARCHAR2(1);
16437 l_enc_upg_option VARCHAR2(1);
16438
16439 --
16440 BEGIN
16441 --
16442 IF g_log_enabled THEN
16443 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_44';
16444 END IF;
16445 --
16446 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16447
16448 trace
16449 (p_msg => 'BEGIN of AcctLineType_44'
16450 ,p_level => C_LEVEL_PROCEDURE
16451 ,p_module => l_log_module);
16452
16453 END IF;
16454 --
16455 l_component_type := 'AMB_JLT';
16456 l_component_code := 'PA_RAW_COST';
16457 l_component_type_code := 'S';
16458 l_component_appl_id := 275;
16459 l_amb_context_code := 'DEFAULT';
16460 l_entity_code := 'EXPENDITURES';
16461 l_event_class_code := 'SUPPLIER_COST';
16462 l_event_type_code := 'SUPPLIER_COST_ALL';
16463 l_line_definition_owner_code := 'S';
16464 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
16465 --
16466 l_balance_type_code := 'A';
16467 l_segment := NULL;
16468 l_ccid := NULL;
16469 l_adr_transaction_coa_id := NULL;
16470 l_adr_accounting_coa_id := NULL;
16471 l_adr_flexfield_segment_code := NULL;
16472 l_adr_flex_value_set_id := NULL;
16473 l_adr_value_type_code := NULL;
16474 l_adr_value_combination_id := NULL;
16475 l_adr_value_segment_code := NULL;
16476
16477 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
16478 l_bflow_class_code := ''; -- 4219869 Business Flow
16479 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
16480 l_budgetary_control_flag := 'N';
16481
16482 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16483 l_bflow_applied_to_amt := NULL; -- 5132302
16484 l_entered_amt_idx := NULL; -- 4262811
16485 l_accted_amt_idx := NULL; -- 4262811
16486 l_acc_rev_flag := NULL; -- 4262811
16487 l_accrual_line_num := NULL; -- 4262811
16488 l_tmp_amt := NULL; -- 4262811
16489 --
16490
16491 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
16492 l_balance_type_code <> 'B' THEN
16493 IF NVL(p_source_21,'
16494 ') = 'N'
16495 THEN
16496
16497 --
16498 XLA_AE_LINES_PKG.SetNewLine;
16499
16500 p_balance_type_code := l_balance_type_code;
16501 -- set the flag so later we will know whether the gain loss line needs to be created
16502
16503 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
16504 p_actual_flag :='A';
16505 END IF;
16506
16507 --
16508 -- bulk performance
16509 --
16510 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
16511 p_header_num => 0); -- 4262811
16512 --
16513 -- set accounting line options
16514 --
16515 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
16516 p_natural_side_code => 'D'
16517 , p_gain_or_loss_flag => 'N'
16518 , p_gl_transfer_mode_code => 'S'
16519 , p_acct_entry_type_code => 'A'
16520 , p_switch_side_flag => 'Y'
16521 , p_merge_duplicate_code => 'N'
16522 );
16523 --
16524 l_acc_rev_natural_side_code := 'C'; -- 4262811
16525 --
16526 --
16527 -- set accounting line type info
16528 --
16529 xla_ae_lines_pkg.SetAcctLineType
16530 (p_component_type => l_component_type
16531 ,p_event_type_code => l_event_type_code
16535 ,p_accounting_line_type_code => l_component_type_code
16532 ,p_line_definition_owner_code => l_line_definition_owner_code
16533 ,p_line_definition_code => l_line_definition_code
16534 ,p_accounting_line_code => l_component_code
16536 ,p_accounting_line_appl_id => l_component_appl_id
16537 ,p_amb_context_code => l_amb_context_code
16538 ,p_entity_code => l_entity_code
16539 ,p_event_class_code => l_event_class_code);
16540 --
16541 -- set accounting class
16542 --
16543 xla_ae_lines_pkg.SetAcctClass(
16544 p_accounting_class_code => 'COST'
16545 , p_ae_header_id => l_ae_header_id
16546 );
16547
16548 --
16549 -- set rounding class
16550 --
16551 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
16552 'COST';
16553
16554 --
16555 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
16556 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
16557 --
16558 -- bulk performance
16559 --
16560 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
16561
16562 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
16563 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
16564
16565 -- 4955764
16566 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16567 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
16568
16569 -- 4458381 Public Sector Enh
16570
16571 --
16572 -- set accounting attributes for the line type
16573 --
16574 l_entered_amt_idx := 22;
16575 l_accted_amt_idx := 27;
16576 l_bflow_applied_to_amt_idx := NULL; -- 5132302
16577 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
16578 l_rec_acct_attrs.array_char_value(1) := p_source_22;
16579 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
16580 l_rec_acct_attrs.array_char_value(2) := p_source_23;
16581 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
16582 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
16583 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
16584 l_rec_acct_attrs.array_num_value(4) := p_source_24;
16585 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
16586 l_rec_acct_attrs.array_char_value(5) := p_source_25;
16587 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
16588 l_rec_acct_attrs.array_num_value(6) := p_source_26;
16589 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
16590 l_rec_acct_attrs.array_date_value(7) := p_source_27;
16591 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
16592 l_rec_acct_attrs.array_num_value(8) := p_source_28;
16593 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
16594 l_rec_acct_attrs.array_char_value(9) := p_source_29;
16595 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
16596 l_rec_acct_attrs.array_char_value(10) := p_source_30;
16597 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
16598 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
16599 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
16600 l_rec_acct_attrs.array_num_value(12) := p_source_24;
16601 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
16602 l_rec_acct_attrs.array_char_value(13) := p_source_25;
16603 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
16604 l_rec_acct_attrs.array_num_value(14) := p_source_26;
16605 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
16606 l_rec_acct_attrs.array_date_value(15) := p_source_27;
16607 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
16608 l_rec_acct_attrs.array_num_value(16) := p_source_28;
16609 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
16610 l_rec_acct_attrs.array_char_value(17) := p_source_29;
16611 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
16612 l_rec_acct_attrs.array_char_value(18) := p_source_31;
16613 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
16614 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
16615 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
16616 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
16617 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
16618 l_rec_acct_attrs.array_char_value(21) := p_source_34;
16619 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
16620 l_rec_acct_attrs.array_num_value(22) := p_source_24;
16621 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
16622 l_rec_acct_attrs.array_char_value(23) := p_source_25;
16623 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
16624 l_rec_acct_attrs.array_date_value(24) := p_source_27;
16625 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
16626 l_rec_acct_attrs.array_num_value(25) := p_source_28;
16627 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
16628 l_rec_acct_attrs.array_char_value(26) := p_source_29;
16629 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
16630 l_rec_acct_attrs.array_num_value(27) := p_source_26;
16631 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
16632 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
16633 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
16634 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
16638 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
16635 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
16636 l_rec_acct_attrs.array_char_value(30) := p_source_34;
16637
16639 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
16640
16641 ---------------------------------------------------------------------------------------------------------------
16642 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
16643 ---------------------------------------------------------------------------------------------------------------
16644 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
16645
16646 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16647 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
16648
16649 IF xla_accounting_cache_pkg.GetValueChar
16650 (p_source_code => 'LEDGER_CATEGORY_CODE'
16651 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
16652 AND l_bflow_method_code = 'PRIOR_ENTRY'
16653 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
16654 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
16655 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
16656 )
16657 THEN
16658 xla_ae_lines_pkg.BflowUpgEntry
16659 (p_business_method_code => l_bflow_method_code
16660 ,p_business_class_code => l_bflow_class_code
16661 ,p_balance_type => l_balance_type_code);
16662 ELSE
16663 NULL;
16664 -- No business flow processing for business flow method of NONE.
16665 END IF;
16666
16667 --
16668 -- call analytical criteria
16669 --
16670
16671 --
16672 -- call description
16673 --
16674 -- No description or it is inherited.
16675 --
16676 -- call ADRs
16677 -- Bug 4922099
16678 --
16679 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
16680 (NVL(l_actual_upg_option, 'N') = 'O') OR
16681 (NVL(l_enc_upg_option, 'N') = 'O')
16682 )
16683 THEN
16684 NULL;
16685 --
16686 --
16687
16688 l_ccid := AcctDerRule_3(
16689 p_application_id => p_application_id
16690 , p_ae_header_id => l_ae_header_id
16691 , p_source_3 => p_source_3
16692 , p_source_4 => p_source_4
16693 , p_source_5 => p_source_5
16694 , x_transaction_coa_id => l_adr_transaction_coa_id
16695 , x_accounting_coa_id => l_adr_accounting_coa_id
16696 , x_value_type_code => l_adr_value_type_code
16697 , p_side => 'NA'
16698 );
16699
16700 xla_ae_lines_pkg.set_ccid(
16701 p_code_combination_id => l_ccid
16702 , p_value_type_code => l_adr_value_type_code
16703 , p_transaction_coa_id => l_adr_transaction_coa_id
16704 , p_accounting_coa_id => l_adr_accounting_coa_id
16705 , p_adr_code => 'PA_COST_ACCT_RULE'
16706 , p_adr_type_code => 'S'
16707 , p_component_type => l_component_type
16708 , p_component_code => l_component_code
16709 , p_component_type_code => l_component_type_code
16710 , p_component_appl_id => l_component_appl_id
16711 , p_amb_context_code => l_amb_context_code
16712 , p_side => 'NA'
16713 );
16714
16715
16716 --
16717 --
16718 END IF;
16719 --
16720 -- Bug 4922099
16721 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
16722 (NVL(l_enc_upg_option, 'N') = 'O')
16723 ) AND
16724 (l_bflow_method_code = 'PRIOR_ENTRY')
16725 )
16726 THEN
16727 IF
16728 --
16729 1 = 2
16730 --
16731 THEN
16732 xla_accounting_err_pkg.build_message
16733 (p_appli_s_name => 'XLA'
16734 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16735 ,p_token_1 => 'LINE_NUMBER'
16736 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
16737 ,p_token_2 => 'LINE_TYPE_NAME'
16738 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
16739 l_component_type
16740 ,l_component_code
16741 ,l_component_type_code
16742 ,l_component_appl_id
16743 ,l_amb_context_code
16744 ,l_entity_code
16745 ,l_event_class_code
16746 )
16747 ,p_token_3 => 'OWNER'
16748 ,p_value_3 => xla_lookups_pkg.get_meaning(
16749 p_lookup_type => 'XLA_OWNER_TYPE'
16750 ,p_lookup_code => l_component_type_code
16751 )
16755 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
16752 ,p_token_4 => 'PRODUCT_NAME'
16753 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
16754 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
16756 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
16757 ,p_ae_header_id => NULL
16758 );
16759
16760 IF (C_LEVEL_ERROR>= g_log_level) THEN
16761 trace
16762 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
16763 ,p_level => C_LEVEL_ERROR
16764 ,p_module => l_log_module);
16765 END IF;
16766 END IF;
16767 END IF;
16768 --
16769 --
16770 ------------------------------------------------------------------------------------------------
16771 -- 4219869 Business Flow
16772 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
16773 -- Prior Entry. Currently, the following code is always generated.
16774 ------------------------------------------------------------------------------------------------
16775 XLA_AE_LINES_PKG.ValidateCurrentLine;
16776
16777 ------------------------------------------------------------------------------------
16778 -- 4219869 Business Flow
16779 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
16780 ------------------------------------------------------------------------------------
16781 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16782
16783 ----------------------------------------------------------------------------------
16784 -- 4219869 Business Flow
16785 -- Update journal entry status -- Need to generate this within IF <condition>
16786 ----------------------------------------------------------------------------------
16787 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16788 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
16789 ,p_balance_type_code => l_balance_type_code
16790 );
16791
16792 -------------------------------------------------------------------------------------------
16793 -- 4262811 - Generate the Accrual Reversal lines
16794 -------------------------------------------------------------------------------------------
16795 BEGIN
16796 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
16797 (g_array_event(p_event_id).array_value_num('header_index'));
16798 IF l_acc_rev_flag IS NULL THEN
16799 l_acc_rev_flag := 'N';
16800 END IF;
16801 EXCEPTION
16802 WHEN OTHERS THEN
16803 l_acc_rev_flag := 'N';
16804 END;
16805 --
16806 IF (l_acc_rev_flag = 'Y') THEN
16807
16808 -- 4645092 ------------------------------------------------------------------------------
16809 -- To allow MPA report to determine if it should generate report process
16810 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
16811 ------------------------------------------------------------------------------------------
16812
16813 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
16814 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
16815
16816 --
16817 -- Update the line information that should be overwritten
16818 --
16819 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
16820 p_header_num => 1);
16821 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
16822
16823 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
16824
16825 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
16826 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
16827 END IF;
16828
16829 --
16830 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
16831 --
16832 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
16833 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
16834 ELSE
16835 ---------------------------------------------------------------------------------------------------
16836 -- 4262811a Switch Sign
16837 ---------------------------------------------------------------------------------------------------
16838 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
16839 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16840 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16841 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
16842 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16843 -- 5132302
16844 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
16845 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
16846
16847 END IF;
16848
16849 -- 4955764
16850 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
16851 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
16852
16853
16854 XLA_AE_LINES_PKG.ValidateCurrentLine;
16855 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
16859 ,p_balance_type_code => l_balance_type_code);
16856
16857 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
16858 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
16860
16861 END IF;
16862
16863 -----------------------------------------------------------------------------------------
16864 -- 4262811 Multiperiod Accounting
16865 -----------------------------------------------------------------------------------------
16866 -- No MPA option is assigned.
16867
16868
16869 END IF;
16870 END IF;
16871 --
16872
16873 --
16874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
16875 trace
16876 (p_msg => 'END of AcctLineType_44'
16877 ,p_level => C_LEVEL_PROCEDURE
16878 ,p_module => l_log_module);
16879 END IF;
16880 --
16881 EXCEPTION
16882 WHEN xla_exceptions_pkg.application_exception THEN
16883 RAISE;
16884 WHEN OTHERS THEN
16885 xla_exceptions_pkg.raise_message
16886 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_44');
16887 END AcctLineType_44;
16888 --
16889
16890 ---------------------------------------
16891 --
16892 -- PRIVATE FUNCTION
16893 -- AcctLineType_45
16894 --
16895 ---------------------------------------
16896 PROCEDURE AcctLineType_45 (
16897 p_application_id IN NUMBER
16898 ,p_event_id IN NUMBER
16899 ,p_calculate_acctd_flag IN VARCHAR2
16900 ,p_calculate_g_l_flag IN VARCHAR2
16901 ,p_actual_flag IN OUT VARCHAR2
16902 ,p_balance_type_code OUT VARCHAR2
16903 ,p_gain_or_loss_ref OUT VARCHAR2
16904
16905 --Cost CCID
16906 , p_source_3 IN NUMBER
16907 --Allow Account Override Flag
16908 , p_source_4 IN VARCHAR2
16909 --Adjustment Cost CCID
16910 , p_source_5 IN NUMBER
16911 --Cost Clearing CCID
16912 , p_source_6 IN NUMBER
16913 --Reversing Line Flag
16914 , p_source_22 IN VARCHAR2
16915 --Actual Upgrade Credit Accounting Class
16916 , p_source_23 IN VARCHAR2
16917 --Entered Raw Cost
16918 , p_source_24 IN NUMBER
16919 --Entered Currency Code
16920 , p_source_25 IN VARCHAR2
16921 --Accounted Raw Cost
16922 , p_source_26 IN NUMBER
16923 --Exchange Rate Date
16924 , p_source_27 IN DATE
16925 --Exchange Rate
16926 , p_source_28 IN NUMBER
16927 --Exchange Rate Type
16928 , p_source_29 IN VARCHAR2
16929 --Actual Upgrade Debit Accounting Class
16930 , p_source_30 IN VARCHAR2
16931 --Use Actuals Upgrade Attributes Flag
16932 , p_source_31 IN VARCHAR2
16933 --Expenditure Item ID
16934 , p_source_32 IN NUMBER
16935 --Cost Distribution Line Number
16936 , p_source_33 IN NUMBER
16937 --Line Type
16938 , p_source_34 IN VARCHAR2
16939 , p_source_34_meaning IN VARCHAR2
16940 --Reversed Line Number
16941 , p_source_35 IN NUMBER
16942 )
16943 IS
16944
16945 l_component_type VARCHAR2(80);
16946 l_component_code VARCHAR2(30);
16947 l_component_type_code VARCHAR2(1);
16948 l_component_appl_id INTEGER;
16949 l_amb_context_code VARCHAR2(30);
16950 l_entity_code VARCHAR2(30);
16951 l_event_class_code VARCHAR2(30);
16952 l_ae_header_id NUMBER;
16953 l_event_type_code VARCHAR2(30);
16954 l_line_definition_code VARCHAR2(30);
16955 l_line_definition_owner_code VARCHAR2(1);
16956 --
16957 -- adr variables
16958 l_segment VARCHAR2(30);
16959 l_ccid NUMBER;
16960 l_adr_transaction_coa_id NUMBER;
16961 l_adr_accounting_coa_id NUMBER;
16962 l_adr_flexfield_segment_code VARCHAR2(30);
16963 l_adr_flex_value_set_id NUMBER;
16964 l_adr_value_type_code VARCHAR2(30);
16965 l_adr_value_combination_id NUMBER;
16966 l_adr_value_segment_code VARCHAR2(30);
16967
16968 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16969 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
16970 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
16971 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16972
16973 -- 4262811 Variables ------------------------------------------------------------------------------------------
16974 l_entered_amt_idx NUMBER;
16975 l_accted_amt_idx NUMBER;
16976 l_acc_rev_flag VARCHAR2(1);
16977 l_accrual_line_num NUMBER;
16978 l_tmp_amt NUMBER;
16979 l_acc_rev_natural_side_code VARCHAR2(1);
16980
16981 l_num_entries NUMBER;
16982 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
16983 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
16984 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
16985 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
16986 l_recog_line_1 NUMBER;
16987 l_recog_line_2 NUMBER;
16988
16989 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
16990 l_bflow_applied_to_amt NUMBER; -- 5132302
16991 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
16992
16993 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
16994
16995 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
16996 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
16997
17001 --
16998 ---------------------------------------------------------------------------------------------------------------
16999
17000
17002 -- bulk performance
17003 --
17004 l_balance_type_code VARCHAR2(1);
17005 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17006 l_log_module VARCHAR2(240);
17007
17008 --
17009 -- Upgrade strategy
17010 --
17011 l_actual_upg_option VARCHAR2(1);
17012 l_enc_upg_option VARCHAR2(1);
17013
17014 --
17015 BEGIN
17016 --
17017 IF g_log_enabled THEN
17018 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_45';
17019 END IF;
17020 --
17021 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17022
17023 trace
17024 (p_msg => 'BEGIN of AcctLineType_45'
17025 ,p_level => C_LEVEL_PROCEDURE
17026 ,p_module => l_log_module);
17027
17028 END IF;
17029 --
17030 l_component_type := 'AMB_JLT';
17031 l_component_code := 'PA_RAW_COST';
17032 l_component_type_code := 'S';
17033 l_component_appl_id := 275;
17034 l_amb_context_code := 'DEFAULT';
17035 l_entity_code := 'EXPENDITURES';
17036 l_event_class_code := 'LABOR_COST';
17037 l_event_type_code := 'LABOR_COST_ALL';
17038 l_line_definition_owner_code := 'S';
17039 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
17040 --
17041 l_balance_type_code := 'A';
17042 l_segment := NULL;
17043 l_ccid := NULL;
17044 l_adr_transaction_coa_id := NULL;
17045 l_adr_accounting_coa_id := NULL;
17046 l_adr_flexfield_segment_code := NULL;
17047 l_adr_flex_value_set_id := NULL;
17048 l_adr_value_type_code := NULL;
17049 l_adr_value_combination_id := NULL;
17050 l_adr_value_segment_code := NULL;
17051
17052 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17053 l_bflow_class_code := ''; -- 4219869 Business Flow
17054 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17055 l_budgetary_control_flag := 'N';
17056
17057 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17058 l_bflow_applied_to_amt := NULL; -- 5132302
17059 l_entered_amt_idx := NULL; -- 4262811
17060 l_accted_amt_idx := NULL; -- 4262811
17061 l_acc_rev_flag := NULL; -- 4262811
17062 l_accrual_line_num := NULL; -- 4262811
17063 l_tmp_amt := NULL; -- 4262811
17064 --
17065
17066 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17067 l_balance_type_code <> 'B' THEN
17068
17069 --
17070 XLA_AE_LINES_PKG.SetNewLine;
17071
17072 p_balance_type_code := l_balance_type_code;
17073 -- set the flag so later we will know whether the gain loss line needs to be created
17074
17075 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17076 p_actual_flag :='A';
17077 END IF;
17078
17079 --
17080 -- bulk performance
17081 --
17082 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17083 p_header_num => 0); -- 4262811
17084 --
17085 -- set accounting line options
17086 --
17087 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17088 p_natural_side_code => 'D'
17089 , p_gain_or_loss_flag => 'N'
17090 , p_gl_transfer_mode_code => 'S'
17091 , p_acct_entry_type_code => 'A'
17092 , p_switch_side_flag => 'Y'
17093 , p_merge_duplicate_code => 'N'
17094 );
17095 --
17096 l_acc_rev_natural_side_code := 'C'; -- 4262811
17097 --
17098 --
17099 -- set accounting line type info
17100 --
17101 xla_ae_lines_pkg.SetAcctLineType
17102 (p_component_type => l_component_type
17103 ,p_event_type_code => l_event_type_code
17104 ,p_line_definition_owner_code => l_line_definition_owner_code
17105 ,p_line_definition_code => l_line_definition_code
17106 ,p_accounting_line_code => l_component_code
17107 ,p_accounting_line_type_code => l_component_type_code
17108 ,p_accounting_line_appl_id => l_component_appl_id
17109 ,p_amb_context_code => l_amb_context_code
17110 ,p_entity_code => l_entity_code
17111 ,p_event_class_code => l_event_class_code);
17112 --
17113 -- set accounting class
17114 --
17115 xla_ae_lines_pkg.SetAcctClass(
17116 p_accounting_class_code => 'COST'
17117 , p_ae_header_id => l_ae_header_id
17118 );
17119
17120 --
17121 -- set rounding class
17122 --
17123 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17124 'COST';
17125
17126 --
17127 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17128 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17129 --
17130 -- bulk performance
17131 --
17132 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17133
17134 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17135 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17136
17137 -- 4955764
17138 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17139 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17140
17144 -- set accounting attributes for the line type
17141 -- 4458381 Public Sector Enh
17142
17143 --
17145 --
17146 l_entered_amt_idx := 22;
17147 l_accted_amt_idx := 27;
17148 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17149 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17150 l_rec_acct_attrs.array_char_value(1) := p_source_22;
17151 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
17152 l_rec_acct_attrs.array_char_value(2) := p_source_23;
17153 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
17154 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
17155 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
17156 l_rec_acct_attrs.array_num_value(4) := p_source_24;
17157 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
17158 l_rec_acct_attrs.array_char_value(5) := p_source_25;
17159 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
17160 l_rec_acct_attrs.array_num_value(6) := p_source_26;
17161 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
17162 l_rec_acct_attrs.array_date_value(7) := p_source_27;
17163 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
17164 l_rec_acct_attrs.array_num_value(8) := p_source_28;
17165 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
17166 l_rec_acct_attrs.array_char_value(9) := p_source_29;
17167 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
17168 l_rec_acct_attrs.array_char_value(10) := p_source_30;
17169 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
17170 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
17171 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
17172 l_rec_acct_attrs.array_num_value(12) := p_source_24;
17173 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
17174 l_rec_acct_attrs.array_char_value(13) := p_source_25;
17175 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
17176 l_rec_acct_attrs.array_num_value(14) := p_source_26;
17177 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
17178 l_rec_acct_attrs.array_date_value(15) := p_source_27;
17179 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
17180 l_rec_acct_attrs.array_num_value(16) := p_source_28;
17181 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
17182 l_rec_acct_attrs.array_char_value(17) := p_source_29;
17183 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
17184 l_rec_acct_attrs.array_char_value(18) := p_source_31;
17185 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
17186 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
17187 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
17188 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
17189 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
17190 l_rec_acct_attrs.array_char_value(21) := p_source_34;
17191 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
17192 l_rec_acct_attrs.array_num_value(22) := p_source_24;
17193 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
17194 l_rec_acct_attrs.array_char_value(23) := p_source_25;
17195 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
17196 l_rec_acct_attrs.array_date_value(24) := p_source_27;
17197 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
17198 l_rec_acct_attrs.array_num_value(25) := p_source_28;
17199 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
17200 l_rec_acct_attrs.array_char_value(26) := p_source_29;
17201 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
17202 l_rec_acct_attrs.array_num_value(27) := p_source_26;
17203 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
17204 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
17205 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
17206 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
17207 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
17208 l_rec_acct_attrs.array_char_value(30) := p_source_34;
17209
17210 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17211 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17212
17213 ---------------------------------------------------------------------------------------------------------------
17214 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17215 ---------------------------------------------------------------------------------------------------------------
17216 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17217
17218 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17219 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17220
17221 IF xla_accounting_cache_pkg.GetValueChar
17222 (p_source_code => 'LEDGER_CATEGORY_CODE'
17223 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17224 AND l_bflow_method_code = 'PRIOR_ENTRY'
17225 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17226 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17227 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17228 )
17229 THEN
17230 xla_ae_lines_pkg.BflowUpgEntry
17231 (p_business_method_code => l_bflow_method_code
17232 ,p_business_class_code => l_bflow_class_code
17233 ,p_balance_type => l_balance_type_code);
17234 ELSE
17235 NULL;
17239 --
17236 -- No business flow processing for business flow method of NONE.
17237 END IF;
17238
17240 -- call analytical criteria
17241 --
17242
17243 --
17244 -- call description
17245 --
17246 -- No description or it is inherited.
17247 --
17248 -- call ADRs
17249 -- Bug 4922099
17250 --
17251 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17252 (NVL(l_actual_upg_option, 'N') = 'O') OR
17253 (NVL(l_enc_upg_option, 'N') = 'O')
17254 )
17255 THEN
17256 NULL;
17257 --
17258 --
17259
17260 l_ccid := AcctDerRule_3(
17261 p_application_id => p_application_id
17262 , p_ae_header_id => l_ae_header_id
17263 , p_source_3 => p_source_3
17264 , p_source_4 => p_source_4
17265 , p_source_5 => p_source_5
17266 , x_transaction_coa_id => l_adr_transaction_coa_id
17267 , x_accounting_coa_id => l_adr_accounting_coa_id
17268 , x_value_type_code => l_adr_value_type_code
17269 , p_side => 'NA'
17270 );
17271
17272 xla_ae_lines_pkg.set_ccid(
17273 p_code_combination_id => l_ccid
17274 , p_value_type_code => l_adr_value_type_code
17275 , p_transaction_coa_id => l_adr_transaction_coa_id
17276 , p_accounting_coa_id => l_adr_accounting_coa_id
17277 , p_adr_code => 'PA_COST_ACCT_RULE'
17278 , p_adr_type_code => 'S'
17279 , p_component_type => l_component_type
17280 , p_component_code => l_component_code
17281 , p_component_type_code => l_component_type_code
17282 , p_component_appl_id => l_component_appl_id
17283 , p_amb_context_code => l_amb_context_code
17284 , p_side => 'NA'
17285 );
17286
17287
17288 --
17289 --
17290 END IF;
17291 --
17292 -- Bug 4922099
17293 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17294 (NVL(l_enc_upg_option, 'N') = 'O')
17295 ) AND
17296 (l_bflow_method_code = 'PRIOR_ENTRY')
17297 )
17298 THEN
17299 IF
17300 --
17301 1 = 2
17302 --
17303 THEN
17304 xla_accounting_err_pkg.build_message
17305 (p_appli_s_name => 'XLA'
17306 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17307 ,p_token_1 => 'LINE_NUMBER'
17308 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17309 ,p_token_2 => 'LINE_TYPE_NAME'
17310 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17311 l_component_type
17312 ,l_component_code
17313 ,l_component_type_code
17314 ,l_component_appl_id
17315 ,l_amb_context_code
17316 ,l_entity_code
17317 ,l_event_class_code
17318 )
17319 ,p_token_3 => 'OWNER'
17320 ,p_value_3 => xla_lookups_pkg.get_meaning(
17321 p_lookup_type => 'XLA_OWNER_TYPE'
17322 ,p_lookup_code => l_component_type_code
17323 )
17324 ,p_token_4 => 'PRODUCT_NAME'
17325 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17326 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17327 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17328 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17329 ,p_ae_header_id => NULL
17330 );
17331
17332 IF (C_LEVEL_ERROR>= g_log_level) THEN
17333 trace
17334 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17335 ,p_level => C_LEVEL_ERROR
17336 ,p_module => l_log_module);
17337 END IF;
17338 END IF;
17339 END IF;
17340 --
17341 --
17342 ------------------------------------------------------------------------------------------------
17343 -- 4219869 Business Flow
17344 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17345 -- Prior Entry. Currently, the following code is always generated.
17346 ------------------------------------------------------------------------------------------------
17347 XLA_AE_LINES_PKG.ValidateCurrentLine;
17348
17349 ------------------------------------------------------------------------------------
17350 -- 4219869 Business Flow
17351 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17352 ------------------------------------------------------------------------------------
17353 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17357 -- Update journal entry status -- Need to generate this within IF <condition>
17354
17355 ----------------------------------------------------------------------------------
17356 -- 4219869 Business Flow
17358 ----------------------------------------------------------------------------------
17359 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17360 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17361 ,p_balance_type_code => l_balance_type_code
17362 );
17363
17364 -------------------------------------------------------------------------------------------
17365 -- 4262811 - Generate the Accrual Reversal lines
17366 -------------------------------------------------------------------------------------------
17367 BEGIN
17368 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17369 (g_array_event(p_event_id).array_value_num('header_index'));
17370 IF l_acc_rev_flag IS NULL THEN
17371 l_acc_rev_flag := 'N';
17372 END IF;
17373 EXCEPTION
17374 WHEN OTHERS THEN
17375 l_acc_rev_flag := 'N';
17376 END;
17377 --
17378 IF (l_acc_rev_flag = 'Y') THEN
17379
17380 -- 4645092 ------------------------------------------------------------------------------
17381 -- To allow MPA report to determine if it should generate report process
17382 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17383 ------------------------------------------------------------------------------------------
17384
17385 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17386 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17387
17388 --
17389 -- Update the line information that should be overwritten
17390 --
17391 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17392 p_header_num => 1);
17393 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17394
17395 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17396
17397 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17398 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17399 END IF;
17400
17401 --
17402 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17403 --
17404 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17405 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17406 ELSE
17407 ---------------------------------------------------------------------------------------------------
17408 -- 4262811a Switch Sign
17409 ---------------------------------------------------------------------------------------------------
17410 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17411 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17412 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17413 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17414 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17415 -- 5132302
17416 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17417 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17418
17419 END IF;
17420
17421 -- 4955764
17422 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17423 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17424
17425
17426 XLA_AE_LINES_PKG.ValidateCurrentLine;
17427 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17428
17429 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17430 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
17431 ,p_balance_type_code => l_balance_type_code);
17432
17433 END IF;
17434
17435 -----------------------------------------------------------------------------------------
17436 -- 4262811 Multiperiod Accounting
17437 -----------------------------------------------------------------------------------------
17438 -- No MPA option is assigned.
17439
17440
17441 END IF;
17442 --
17443
17444 --
17445 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17446 trace
17447 (p_msg => 'END of AcctLineType_45'
17448 ,p_level => C_LEVEL_PROCEDURE
17449 ,p_module => l_log_module);
17450 END IF;
17451 --
17452 EXCEPTION
17453 WHEN xla_exceptions_pkg.application_exception THEN
17454 RAISE;
17455 WHEN OTHERS THEN
17456 xla_exceptions_pkg.raise_message
17457 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_45');
17458 END AcctLineType_45;
17459 --
17460
17461 ---------------------------------------
17462 --
17463 -- PRIVATE FUNCTION
17464 -- AcctLineType_46
17465 --
17466 ---------------------------------------
17467 PROCEDURE AcctLineType_46 (
17468 p_application_id IN NUMBER
17469 ,p_event_id IN NUMBER
17470 ,p_calculate_acctd_flag IN VARCHAR2
17471 ,p_calculate_g_l_flag IN VARCHAR2
17472 ,p_actual_flag IN OUT VARCHAR2
17473 ,p_balance_type_code OUT VARCHAR2
17474 ,p_gain_or_loss_ref OUT VARCHAR2
17475
17476 --Cost CCID
17477 , p_source_3 IN NUMBER
17481 , p_source_5 IN NUMBER
17478 --Allow Account Override Flag
17479 , p_source_4 IN VARCHAR2
17480 --Adjustment Cost CCID
17482 --Cost Clearing CCID
17483 , p_source_6 IN NUMBER
17484 --Reversing Line Flag
17485 , p_source_22 IN VARCHAR2
17486 --Actual Upgrade Credit Accounting Class
17487 , p_source_23 IN VARCHAR2
17488 --Entered Raw Cost
17489 , p_source_24 IN NUMBER
17490 --Entered Currency Code
17491 , p_source_25 IN VARCHAR2
17492 --Accounted Raw Cost
17493 , p_source_26 IN NUMBER
17494 --Exchange Rate Date
17495 , p_source_27 IN DATE
17496 --Exchange Rate
17497 , p_source_28 IN NUMBER
17498 --Exchange Rate Type
17499 , p_source_29 IN VARCHAR2
17500 --Actual Upgrade Debit Accounting Class
17501 , p_source_30 IN VARCHAR2
17502 --Use Actuals Upgrade Attributes Flag
17503 , p_source_31 IN VARCHAR2
17504 --Expenditure Item ID
17505 , p_source_32 IN NUMBER
17506 --Cost Distribution Line Number
17507 , p_source_33 IN NUMBER
17508 --Line Type
17509 , p_source_34 IN VARCHAR2
17510 , p_source_34_meaning IN VARCHAR2
17511 --Reversed Line Number
17512 , p_source_35 IN NUMBER
17513 --Project Number
17514 , p_source_68 IN VARCHAR2
17515 )
17516 IS
17517
17518 l_component_type VARCHAR2(80);
17519 l_component_code VARCHAR2(30);
17520 l_component_type_code VARCHAR2(1);
17521 l_component_appl_id INTEGER;
17522 l_amb_context_code VARCHAR2(30);
17523 l_entity_code VARCHAR2(30);
17524 l_event_class_code VARCHAR2(30);
17525 l_ae_header_id NUMBER;
17526 l_event_type_code VARCHAR2(30);
17527 l_line_definition_code VARCHAR2(30);
17528 l_line_definition_owner_code VARCHAR2(1);
17529 --
17530 -- adr variables
17531 l_segment VARCHAR2(30);
17532 l_ccid NUMBER;
17533 l_adr_transaction_coa_id NUMBER;
17534 l_adr_accounting_coa_id NUMBER;
17535 l_adr_flexfield_segment_code VARCHAR2(30);
17536 l_adr_flex_value_set_id NUMBER;
17537 l_adr_value_type_code VARCHAR2(30);
17538 l_adr_value_combination_id NUMBER;
17539 l_adr_value_segment_code VARCHAR2(30);
17540
17541 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17542 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17543 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17544 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17545
17546 -- 4262811 Variables ------------------------------------------------------------------------------------------
17547 l_entered_amt_idx NUMBER;
17548 l_accted_amt_idx NUMBER;
17549 l_acc_rev_flag VARCHAR2(1);
17550 l_accrual_line_num NUMBER;
17551 l_tmp_amt NUMBER;
17552 l_acc_rev_natural_side_code VARCHAR2(1);
17553
17554 l_num_entries NUMBER;
17555 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17556 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17557 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17558 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17559 l_recog_line_1 NUMBER;
17560 l_recog_line_2 NUMBER;
17561
17562 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17563 l_bflow_applied_to_amt NUMBER; -- 5132302
17564 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17565
17566 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17567
17568 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17569 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17570
17571 ---------------------------------------------------------------------------------------------------------------
17572
17573
17574 --
17575 -- bulk performance
17576 --
17577 l_balance_type_code VARCHAR2(1);
17578 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17579 l_log_module VARCHAR2(240);
17580
17581 --
17582 -- Upgrade strategy
17583 --
17584 l_actual_upg_option VARCHAR2(1);
17585 l_enc_upg_option VARCHAR2(1);
17586
17587 --
17588 BEGIN
17589 --
17590 IF g_log_enabled THEN
17591 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
17592 END IF;
17593 --
17594 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17595
17596 trace
17597 (p_msg => 'BEGIN of AcctLineType_46'
17598 ,p_level => C_LEVEL_PROCEDURE
17599 ,p_module => l_log_module);
17600
17601 END IF;
17602 --
17603 l_component_type := 'AMB_JLT';
17604 l_component_code := 'PA_RAW_COST';
17605 l_component_type_code := 'S';
17606 l_component_appl_id := 275;
17607 l_amb_context_code := 'DEFAULT';
17608 l_entity_code := 'EXPENDITURES';
17609 l_event_class_code := 'MISC_COST';
17610 l_event_type_code := 'MISC_COST_ALL';
17611 l_line_definition_owner_code := 'S';
17612 l_line_definition_code := 'JA_CN_PA_ACCRUAL_MIS_COST';
17613 --
17614 l_balance_type_code := 'A';
17615 l_segment := NULL;
17616 l_ccid := NULL;
17617 l_adr_transaction_coa_id := NULL;
17618 l_adr_accounting_coa_id := NULL;
17619 l_adr_flexfield_segment_code := NULL;
17620 l_adr_flex_value_set_id := NULL;
17624
17621 l_adr_value_type_code := NULL;
17622 l_adr_value_combination_id := NULL;
17623 l_adr_value_segment_code := NULL;
17625 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17626 l_bflow_class_code := ''; -- 4219869 Business Flow
17627 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17628 l_budgetary_control_flag := 'N';
17629
17630 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17631 l_bflow_applied_to_amt := NULL; -- 5132302
17632 l_entered_amt_idx := NULL; -- 4262811
17633 l_accted_amt_idx := NULL; -- 4262811
17634 l_acc_rev_flag := NULL; -- 4262811
17635 l_accrual_line_num := NULL; -- 4262811
17636 l_tmp_amt := NULL; -- 4262811
17637 --
17638
17639 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17640 l_balance_type_code <> 'B' THEN
17641
17642 --
17643 XLA_AE_LINES_PKG.SetNewLine;
17644
17645 p_balance_type_code := l_balance_type_code;
17646 -- set the flag so later we will know whether the gain loss line needs to be created
17647
17648 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17649 p_actual_flag :='A';
17650 END IF;
17651
17652 --
17653 -- bulk performance
17654 --
17655 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17656 p_header_num => 0); -- 4262811
17657 --
17658 -- set accounting line options
17659 --
17660 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17661 p_natural_side_code => 'D'
17662 , p_gain_or_loss_flag => 'N'
17663 , p_gl_transfer_mode_code => 'S'
17664 , p_acct_entry_type_code => 'A'
17665 , p_switch_side_flag => 'Y'
17666 , p_merge_duplicate_code => 'N'
17667 );
17668 --
17669 l_acc_rev_natural_side_code := 'C'; -- 4262811
17670 --
17671 --
17672 -- set accounting line type info
17673 --
17674 xla_ae_lines_pkg.SetAcctLineType
17675 (p_component_type => l_component_type
17676 ,p_event_type_code => l_event_type_code
17677 ,p_line_definition_owner_code => l_line_definition_owner_code
17678 ,p_line_definition_code => l_line_definition_code
17679 ,p_accounting_line_code => l_component_code
17680 ,p_accounting_line_type_code => l_component_type_code
17681 ,p_accounting_line_appl_id => l_component_appl_id
17682 ,p_amb_context_code => l_amb_context_code
17683 ,p_entity_code => l_entity_code
17684 ,p_event_class_code => l_event_class_code);
17685 --
17686 -- set accounting class
17687 --
17688 xla_ae_lines_pkg.SetAcctClass(
17689 p_accounting_class_code => 'COST'
17690 , p_ae_header_id => l_ae_header_id
17691 );
17692
17693 --
17694 -- set rounding class
17695 --
17696 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17697 'COST';
17698
17699 --
17700 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17701 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17702 --
17703 -- bulk performance
17704 --
17705 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17706
17707 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17708 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17709
17710 -- 4955764
17711 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17712 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17713
17714 -- 4458381 Public Sector Enh
17715
17716 --
17717 -- set accounting attributes for the line type
17718 --
17719 l_entered_amt_idx := 22;
17720 l_accted_amt_idx := 27;
17721 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17722 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17723 l_rec_acct_attrs.array_char_value(1) := p_source_22;
17724 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
17725 l_rec_acct_attrs.array_char_value(2) := p_source_23;
17726 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
17727 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
17728 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
17729 l_rec_acct_attrs.array_num_value(4) := p_source_24;
17730 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
17731 l_rec_acct_attrs.array_char_value(5) := p_source_25;
17732 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
17733 l_rec_acct_attrs.array_num_value(6) := p_source_26;
17734 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
17735 l_rec_acct_attrs.array_date_value(7) := p_source_27;
17736 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
17737 l_rec_acct_attrs.array_num_value(8) := p_source_28;
17738 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
17739 l_rec_acct_attrs.array_char_value(9) := p_source_29;
17740 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
17741 l_rec_acct_attrs.array_char_value(10) := p_source_30;
17742 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
17743 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
17744 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
17748 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
17745 l_rec_acct_attrs.array_num_value(12) := p_source_24;
17746 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
17747 l_rec_acct_attrs.array_char_value(13) := p_source_25;
17749 l_rec_acct_attrs.array_num_value(14) := p_source_26;
17750 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
17751 l_rec_acct_attrs.array_date_value(15) := p_source_27;
17752 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
17753 l_rec_acct_attrs.array_num_value(16) := p_source_28;
17754 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
17755 l_rec_acct_attrs.array_char_value(17) := p_source_29;
17756 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
17757 l_rec_acct_attrs.array_char_value(18) := p_source_31;
17758 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
17759 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
17760 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
17761 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
17762 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
17763 l_rec_acct_attrs.array_char_value(21) := p_source_34;
17764 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
17765 l_rec_acct_attrs.array_num_value(22) := p_source_24;
17766 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
17767 l_rec_acct_attrs.array_char_value(23) := p_source_25;
17768 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
17769 l_rec_acct_attrs.array_date_value(24) := p_source_27;
17770 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
17771 l_rec_acct_attrs.array_num_value(25) := p_source_28;
17772 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
17773 l_rec_acct_attrs.array_char_value(26) := p_source_29;
17774 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
17775 l_rec_acct_attrs.array_num_value(27) := p_source_26;
17776 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
17777 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
17778 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
17779 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
17780 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
17781 l_rec_acct_attrs.array_char_value(30) := p_source_34;
17782
17783 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17784 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17785
17786 ---------------------------------------------------------------------------------------------------------------
17787 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17788 ---------------------------------------------------------------------------------------------------------------
17789 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17790
17791 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17792 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17793
17794 IF xla_accounting_cache_pkg.GetValueChar
17795 (p_source_code => 'LEDGER_CATEGORY_CODE'
17796 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17797 AND l_bflow_method_code = 'PRIOR_ENTRY'
17798 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17799 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17800 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17801 )
17802 THEN
17803 xla_ae_lines_pkg.BflowUpgEntry
17804 (p_business_method_code => l_bflow_method_code
17805 ,p_business_class_code => l_bflow_class_code
17806 ,p_balance_type => l_balance_type_code);
17807 ELSE
17808 NULL;
17809 -- No business flow processing for business flow method of NONE.
17810 END IF;
17811
17812 --
17813 -- call analytical criteria
17814 --
17815
17816
17817 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
17818 xla_ae_lines_pkg.SetAnalyticalCriteria(
17819 p_analytical_criterion_name => 'Project Number'
17820 , p_analytical_criterion_owner => 'S'
17821 , p_analytical_criterion_code => 'PROJECT_NUMBER'
17822 , p_amb_context_code => 'DEFAULT'
17823 , p_balancing_flag => 'N'
17824
17825 , p_analytical_detail_char_1 => TO_CHAR(p_source_68)
17826 , p_analytical_detail_num_1 => NULL
17827 , p_analytical_detail_date_1 => NULL
17828
17829 , p_ae_header_id => l_ae_header_id
17830 )
17831 ;
17832 --
17833
17834 --
17835 -- call description
17836 --
17837 -- No description or it is inherited.
17838 --
17839 -- call ADRs
17840 -- Bug 4922099
17841 --
17842 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17843 (NVL(l_actual_upg_option, 'N') = 'O') OR
17844 (NVL(l_enc_upg_option, 'N') = 'O')
17845 )
17846 THEN
17847 NULL;
17848 --
17849 --
17850
17851 l_ccid := AcctDerRule_3(
17852 p_application_id => p_application_id
17853 , p_ae_header_id => l_ae_header_id
17854 , p_source_3 => p_source_3
17855 , p_source_4 => p_source_4
17856 , p_source_5 => p_source_5
17857 , x_transaction_coa_id => l_adr_transaction_coa_id
17858 , x_accounting_coa_id => l_adr_accounting_coa_id
17859 , x_value_type_code => l_adr_value_type_code
17860 , p_side => 'NA'
17864 p_code_combination_id => l_ccid
17861 );
17862
17863 xla_ae_lines_pkg.set_ccid(
17865 , p_value_type_code => l_adr_value_type_code
17866 , p_transaction_coa_id => l_adr_transaction_coa_id
17867 , p_accounting_coa_id => l_adr_accounting_coa_id
17868 , p_adr_code => 'PA_COST_ACCT_RULE'
17869 , p_adr_type_code => 'S'
17870 , p_component_type => l_component_type
17871 , p_component_code => l_component_code
17872 , p_component_type_code => l_component_type_code
17873 , p_component_appl_id => l_component_appl_id
17874 , p_amb_context_code => l_amb_context_code
17875 , p_side => 'NA'
17876 );
17877
17878
17879 --
17880 --
17881 END IF;
17882 --
17883 -- Bug 4922099
17884 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17885 (NVL(l_enc_upg_option, 'N') = 'O')
17886 ) AND
17887 (l_bflow_method_code = 'PRIOR_ENTRY')
17888 )
17889 THEN
17890 IF
17891 --
17892 1 = 2
17893 --
17894 THEN
17895 xla_accounting_err_pkg.build_message
17896 (p_appli_s_name => 'XLA'
17897 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17898 ,p_token_1 => 'LINE_NUMBER'
17899 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17900 ,p_token_2 => 'LINE_TYPE_NAME'
17901 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17902 l_component_type
17903 ,l_component_code
17904 ,l_component_type_code
17905 ,l_component_appl_id
17906 ,l_amb_context_code
17907 ,l_entity_code
17908 ,l_event_class_code
17909 )
17910 ,p_token_3 => 'OWNER'
17911 ,p_value_3 => xla_lookups_pkg.get_meaning(
17912 p_lookup_type => 'XLA_OWNER_TYPE'
17913 ,p_lookup_code => l_component_type_code
17914 )
17915 ,p_token_4 => 'PRODUCT_NAME'
17916 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17917 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17918 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17919 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17920 ,p_ae_header_id => NULL
17921 );
17922
17923 IF (C_LEVEL_ERROR>= g_log_level) THEN
17924 trace
17925 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17926 ,p_level => C_LEVEL_ERROR
17927 ,p_module => l_log_module);
17928 END IF;
17929 END IF;
17930 END IF;
17931 --
17932 --
17933 ------------------------------------------------------------------------------------------------
17934 -- 4219869 Business Flow
17935 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17936 -- Prior Entry. Currently, the following code is always generated.
17937 ------------------------------------------------------------------------------------------------
17938 XLA_AE_LINES_PKG.ValidateCurrentLine;
17939
17940 ------------------------------------------------------------------------------------
17941 -- 4219869 Business Flow
17942 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17943 ------------------------------------------------------------------------------------
17944 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17945
17946 ----------------------------------------------------------------------------------
17947 -- 4219869 Business Flow
17948 -- Update journal entry status -- Need to generate this within IF <condition>
17949 ----------------------------------------------------------------------------------
17950 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17951 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17952 ,p_balance_type_code => l_balance_type_code
17953 );
17954
17955 -------------------------------------------------------------------------------------------
17956 -- 4262811 - Generate the Accrual Reversal lines
17957 -------------------------------------------------------------------------------------------
17958 BEGIN
17959 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17960 (g_array_event(p_event_id).array_value_num('header_index'));
17961 IF l_acc_rev_flag IS NULL THEN
17962 l_acc_rev_flag := 'N';
17963 END IF;
17964 EXCEPTION
17965 WHEN OTHERS THEN
17966 l_acc_rev_flag := 'N';
17970
17967 END;
17968 --
17969 IF (l_acc_rev_flag = 'Y') THEN
17971 -- 4645092 ------------------------------------------------------------------------------
17972 -- To allow MPA report to determine if it should generate report process
17973 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17974 ------------------------------------------------------------------------------------------
17975
17976 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17977 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17978
17979 --
17980 -- Update the line information that should be overwritten
17981 --
17982 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17983 p_header_num => 1);
17984 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17985
17986 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17987
17988 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17989 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17990 END IF;
17991
17992 --
17993 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17994 --
17995 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17996 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17997 ELSE
17998 ---------------------------------------------------------------------------------------------------
17999 -- 4262811a Switch Sign
18000 ---------------------------------------------------------------------------------------------------
18001 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18002 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18003 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18004 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18005 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18006 -- 5132302
18007 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18008 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18009
18010 END IF;
18011
18012 -- 4955764
18013 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18014 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18015
18016
18017 XLA_AE_LINES_PKG.ValidateCurrentLine;
18018 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18019
18020 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18021 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18022 ,p_balance_type_code => l_balance_type_code);
18023
18024 END IF;
18025
18026 -----------------------------------------------------------------------------------------
18027 -- 4262811 Multiperiod Accounting
18028 -----------------------------------------------------------------------------------------
18029 -- No MPA option is assigned.
18030
18031
18032 END IF;
18033 --
18034
18035 --
18036 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18037 trace
18038 (p_msg => 'END of AcctLineType_46'
18039 ,p_level => C_LEVEL_PROCEDURE
18040 ,p_module => l_log_module);
18041 END IF;
18042 --
18043 EXCEPTION
18044 WHEN xla_exceptions_pkg.application_exception THEN
18045 RAISE;
18046 WHEN OTHERS THEN
18047 xla_exceptions_pkg.raise_message
18048 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_46');
18049 END AcctLineType_46;
18050 --
18051
18052 ---------------------------------------
18053 --
18054 -- PRIVATE FUNCTION
18055 -- AcctLineType_47
18056 --
18057 ---------------------------------------
18058 PROCEDURE AcctLineType_47 (
18059 p_application_id IN NUMBER
18060 ,p_event_id IN NUMBER
18061 ,p_calculate_acctd_flag IN VARCHAR2
18062 ,p_calculate_g_l_flag IN VARCHAR2
18063 ,p_actual_flag IN OUT VARCHAR2
18064 ,p_balance_type_code OUT VARCHAR2
18065 ,p_gain_or_loss_ref OUT VARCHAR2
18066
18067 --Cost CCID
18068 , p_source_3 IN NUMBER
18069 --Allow Account Override Flag
18070 , p_source_4 IN VARCHAR2
18071 --Adjustment Cost CCID
18072 , p_source_5 IN NUMBER
18073 --Cost Clearing CCID
18074 , p_source_6 IN NUMBER
18075 --Exchange Rate Variance Flag
18076 , p_source_21 IN VARCHAR2
18077 --Reversing Line Flag
18078 , p_source_22 IN VARCHAR2
18079 --Actual Upgrade Credit Accounting Class
18080 , p_source_23 IN VARCHAR2
18081 --Entered Raw Cost
18082 , p_source_24 IN NUMBER
18083 --Entered Currency Code
18084 , p_source_25 IN VARCHAR2
18085 --Accounted Raw Cost
18086 , p_source_26 IN NUMBER
18087 --Exchange Rate Date
18088 , p_source_27 IN DATE
18089 --Exchange Rate
18090 , p_source_28 IN NUMBER
18091 --Exchange Rate Type
18092 , p_source_29 IN VARCHAR2
18093 --Actual Upgrade Debit Accounting Class
18094 , p_source_30 IN VARCHAR2
18095 --Use Actuals Upgrade Attributes Flag
18096 , p_source_31 IN VARCHAR2
18097 --Expenditure Item ID
18098 , p_source_32 IN NUMBER
18102 , p_source_34 IN VARCHAR2
18099 --Cost Distribution Line Number
18100 , p_source_33 IN NUMBER
18101 --Line Type
18103 , p_source_34_meaning IN VARCHAR2
18104 --Reversed Line Number
18105 , p_source_35 IN NUMBER
18106 )
18107 IS
18108
18109 l_component_type VARCHAR2(80);
18110 l_component_code VARCHAR2(30);
18111 l_component_type_code VARCHAR2(1);
18112 l_component_appl_id INTEGER;
18113 l_amb_context_code VARCHAR2(30);
18114 l_entity_code VARCHAR2(30);
18115 l_event_class_code VARCHAR2(30);
18116 l_ae_header_id NUMBER;
18117 l_event_type_code VARCHAR2(30);
18118 l_line_definition_code VARCHAR2(30);
18119 l_line_definition_owner_code VARCHAR2(1);
18120 --
18121 -- adr variables
18122 l_segment VARCHAR2(30);
18123 l_ccid NUMBER;
18124 l_adr_transaction_coa_id NUMBER;
18125 l_adr_accounting_coa_id NUMBER;
18126 l_adr_flexfield_segment_code VARCHAR2(30);
18127 l_adr_flex_value_set_id NUMBER;
18128 l_adr_value_type_code VARCHAR2(30);
18129 l_adr_value_combination_id NUMBER;
18130 l_adr_value_segment_code VARCHAR2(30);
18131
18132 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18133 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18134 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18135 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18136
18137 -- 4262811 Variables ------------------------------------------------------------------------------------------
18138 l_entered_amt_idx NUMBER;
18139 l_accted_amt_idx NUMBER;
18140 l_acc_rev_flag VARCHAR2(1);
18141 l_accrual_line_num NUMBER;
18142 l_tmp_amt NUMBER;
18143 l_acc_rev_natural_side_code VARCHAR2(1);
18144
18145 l_num_entries NUMBER;
18146 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18147 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18148 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18149 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18150 l_recog_line_1 NUMBER;
18151 l_recog_line_2 NUMBER;
18152
18153 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18154 l_bflow_applied_to_amt NUMBER; -- 5132302
18155 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18156
18157 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18158
18159 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18160 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18161
18162 ---------------------------------------------------------------------------------------------------------------
18163
18164
18165 --
18166 -- bulk performance
18167 --
18168 l_balance_type_code VARCHAR2(1);
18169 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18170 l_log_module VARCHAR2(240);
18171
18172 --
18173 -- Upgrade strategy
18174 --
18175 l_actual_upg_option VARCHAR2(1);
18176 l_enc_upg_option VARCHAR2(1);
18177
18178 --
18179 BEGIN
18180 --
18181 IF g_log_enabled THEN
18182 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
18183 END IF;
18184 --
18185 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18186
18187 trace
18188 (p_msg => 'BEGIN of AcctLineType_47'
18189 ,p_level => C_LEVEL_PROCEDURE
18190 ,p_module => l_log_module);
18191
18192 END IF;
18193 --
18194 l_component_type := 'AMB_JLT';
18195 l_component_code := 'PA_RAW_COST_ADJ';
18196 l_component_type_code := 'S';
18197 l_component_appl_id := 275;
18198 l_amb_context_code := 'DEFAULT';
18199 l_entity_code := 'EXPENDITURES';
18200 l_event_class_code := 'SUPPLIER_COST_ADJ';
18201 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
18202 l_line_definition_owner_code := 'S';
18203 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
18204 --
18205 l_balance_type_code := 'A';
18206 l_segment := NULL;
18207 l_ccid := NULL;
18208 l_adr_transaction_coa_id := NULL;
18209 l_adr_accounting_coa_id := NULL;
18210 l_adr_flexfield_segment_code := NULL;
18211 l_adr_flex_value_set_id := NULL;
18212 l_adr_value_type_code := NULL;
18213 l_adr_value_combination_id := NULL;
18214 l_adr_value_segment_code := NULL;
18215
18216 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18217 l_bflow_class_code := ''; -- 4219869 Business Flow
18218 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18219 l_budgetary_control_flag := 'N';
18220
18221 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18222 l_bflow_applied_to_amt := NULL; -- 5132302
18223 l_entered_amt_idx := NULL; -- 4262811
18224 l_accted_amt_idx := NULL; -- 4262811
18225 l_acc_rev_flag := NULL; -- 4262811
18226 l_accrual_line_num := NULL; -- 4262811
18227 l_tmp_amt := NULL; -- 4262811
18228 --
18229
18230 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18231 l_balance_type_code <> 'B' THEN
18232 IF NVL(p_source_21,'
18233 ') = 'N'
18234 THEN
18235
18236 --
18237 XLA_AE_LINES_PKG.SetNewLine;
18238
18242 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18239 p_balance_type_code := l_balance_type_code;
18240 -- set the flag so later we will know whether the gain loss line needs to be created
18241
18243 p_actual_flag :='A';
18244 END IF;
18245
18246 --
18247 -- bulk performance
18248 --
18249 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18250 p_header_num => 0); -- 4262811
18251 --
18252 -- set accounting line options
18253 --
18254 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18255 p_natural_side_code => 'D'
18256 , p_gain_or_loss_flag => 'N'
18257 , p_gl_transfer_mode_code => 'S'
18258 , p_acct_entry_type_code => 'A'
18259 , p_switch_side_flag => 'Y'
18260 , p_merge_duplicate_code => 'N'
18261 );
18262 --
18263 l_acc_rev_natural_side_code := 'C'; -- 4262811
18264 --
18265 --
18266 -- set accounting line type info
18267 --
18268 xla_ae_lines_pkg.SetAcctLineType
18269 (p_component_type => l_component_type
18270 ,p_event_type_code => l_event_type_code
18271 ,p_line_definition_owner_code => l_line_definition_owner_code
18272 ,p_line_definition_code => l_line_definition_code
18273 ,p_accounting_line_code => l_component_code
18274 ,p_accounting_line_type_code => l_component_type_code
18275 ,p_accounting_line_appl_id => l_component_appl_id
18276 ,p_amb_context_code => l_amb_context_code
18277 ,p_entity_code => l_entity_code
18278 ,p_event_class_code => l_event_class_code);
18279 --
18280 -- set accounting class
18281 --
18282 xla_ae_lines_pkg.SetAcctClass(
18283 p_accounting_class_code => 'COST'
18284 , p_ae_header_id => l_ae_header_id
18285 );
18286
18287 --
18288 -- set rounding class
18289 --
18290 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18291 'COST';
18292
18293 --
18294 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18295 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18296 --
18297 -- bulk performance
18298 --
18299 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18300
18301 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18302 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18303
18304 -- 4955764
18305 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18306 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18307
18308 -- 4458381 Public Sector Enh
18309
18310 --
18311 -- set accounting attributes for the line type
18312 --
18313 l_entered_amt_idx := 22;
18314 l_accted_amt_idx := 27;
18315 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18316 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18317 l_rec_acct_attrs.array_char_value(1) := p_source_22;
18318 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
18319 l_rec_acct_attrs.array_char_value(2) := p_source_23;
18320 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
18321 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
18322 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
18323 l_rec_acct_attrs.array_num_value(4) := p_source_24;
18324 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
18325 l_rec_acct_attrs.array_char_value(5) := p_source_25;
18326 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
18327 l_rec_acct_attrs.array_num_value(6) := p_source_26;
18328 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
18329 l_rec_acct_attrs.array_date_value(7) := p_source_27;
18330 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
18331 l_rec_acct_attrs.array_num_value(8) := p_source_28;
18332 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
18333 l_rec_acct_attrs.array_char_value(9) := p_source_29;
18334 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
18335 l_rec_acct_attrs.array_char_value(10) := p_source_30;
18336 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
18337 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
18338 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
18339 l_rec_acct_attrs.array_num_value(12) := p_source_24;
18340 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
18341 l_rec_acct_attrs.array_char_value(13) := p_source_25;
18342 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
18343 l_rec_acct_attrs.array_num_value(14) := p_source_26;
18344 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
18345 l_rec_acct_attrs.array_date_value(15) := p_source_27;
18346 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
18347 l_rec_acct_attrs.array_num_value(16) := p_source_28;
18348 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
18349 l_rec_acct_attrs.array_char_value(17) := p_source_29;
18350 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
18351 l_rec_acct_attrs.array_char_value(18) := p_source_31;
18352 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
18353 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
18357 l_rec_acct_attrs.array_char_value(21) := p_source_34;
18354 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
18355 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
18356 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
18358 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
18359 l_rec_acct_attrs.array_num_value(22) := p_source_24;
18360 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
18361 l_rec_acct_attrs.array_char_value(23) := p_source_25;
18362 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
18363 l_rec_acct_attrs.array_date_value(24) := p_source_27;
18364 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
18365 l_rec_acct_attrs.array_num_value(25) := p_source_28;
18366 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
18367 l_rec_acct_attrs.array_char_value(26) := p_source_29;
18368 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
18369 l_rec_acct_attrs.array_num_value(27) := p_source_26;
18370 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
18371 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
18372 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
18373 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
18374 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
18375 l_rec_acct_attrs.array_char_value(30) := p_source_34;
18376
18377 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18378 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18379
18380 ---------------------------------------------------------------------------------------------------------------
18381 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18382 ---------------------------------------------------------------------------------------------------------------
18383 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18384
18385 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18386 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18387
18388 IF xla_accounting_cache_pkg.GetValueChar
18389 (p_source_code => 'LEDGER_CATEGORY_CODE'
18390 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18391 AND l_bflow_method_code = 'PRIOR_ENTRY'
18392 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18393 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18394 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18395 )
18396 THEN
18397 xla_ae_lines_pkg.BflowUpgEntry
18398 (p_business_method_code => l_bflow_method_code
18399 ,p_business_class_code => l_bflow_class_code
18400 ,p_balance_type => l_balance_type_code);
18401 ELSE
18402 NULL;
18403 -- No business flow processing for business flow method of NONE.
18404 END IF;
18405
18406 --
18407 -- call analytical criteria
18408 --
18409
18410 --
18411 -- call description
18412 --
18413 -- No description or it is inherited.
18414 --
18415 -- call ADRs
18416 -- Bug 4922099
18417 --
18418 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18419 (NVL(l_actual_upg_option, 'N') = 'O') OR
18420 (NVL(l_enc_upg_option, 'N') = 'O')
18421 )
18422 THEN
18423 NULL;
18424 --
18425 --
18426
18427 l_ccid := AcctDerRule_4(
18428 p_application_id => p_application_id
18429 , p_ae_header_id => l_ae_header_id
18430 , p_source_4 => p_source_4
18431 , p_source_5 => p_source_5
18432 , x_transaction_coa_id => l_adr_transaction_coa_id
18433 , x_accounting_coa_id => l_adr_accounting_coa_id
18434 , x_value_type_code => l_adr_value_type_code
18435 , p_side => 'NA'
18436 );
18437
18438 xla_ae_lines_pkg.set_ccid(
18439 p_code_combination_id => l_ccid
18440 , p_value_type_code => l_adr_value_type_code
18441 , p_transaction_coa_id => l_adr_transaction_coa_id
18442 , p_accounting_coa_id => l_adr_accounting_coa_id
18443 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
18444 , p_adr_type_code => 'S'
18445 , p_component_type => l_component_type
18446 , p_component_code => l_component_code
18447 , p_component_type_code => l_component_type_code
18448 , p_component_appl_id => l_component_appl_id
18449 , p_amb_context_code => l_amb_context_code
18450 , p_side => 'NA'
18451 );
18452
18453
18454 --
18455 --
18456 END IF;
18457 --
18458 -- Bug 4922099
18459 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18460 (NVL(l_enc_upg_option, 'N') = 'O')
18461 ) AND
18462 (l_bflow_method_code = 'PRIOR_ENTRY')
18463 )
18464 THEN
18465 IF
18466 --
18467 1 = 2
18468 --
18469 THEN
18470 xla_accounting_err_pkg.build_message
18471 (p_appli_s_name => 'XLA'
18472 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18473 ,p_token_1 => 'LINE_NUMBER'
18474 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18475 ,p_token_2 => 'LINE_TYPE_NAME'
18479 ,l_component_type_code
18476 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18477 l_component_type
18478 ,l_component_code
18480 ,l_component_appl_id
18481 ,l_amb_context_code
18482 ,l_entity_code
18483 ,l_event_class_code
18484 )
18485 ,p_token_3 => 'OWNER'
18486 ,p_value_3 => xla_lookups_pkg.get_meaning(
18487 p_lookup_type => 'XLA_OWNER_TYPE'
18488 ,p_lookup_code => l_component_type_code
18489 )
18490 ,p_token_4 => 'PRODUCT_NAME'
18491 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18492 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18493 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18494 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18495 ,p_ae_header_id => NULL
18496 );
18497
18498 IF (C_LEVEL_ERROR>= g_log_level) THEN
18499 trace
18500 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18501 ,p_level => C_LEVEL_ERROR
18502 ,p_module => l_log_module);
18503 END IF;
18504 END IF;
18505 END IF;
18506 --
18507 --
18508 ------------------------------------------------------------------------------------------------
18509 -- 4219869 Business Flow
18510 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18511 -- Prior Entry. Currently, the following code is always generated.
18512 ------------------------------------------------------------------------------------------------
18513 XLA_AE_LINES_PKG.ValidateCurrentLine;
18514
18515 ------------------------------------------------------------------------------------
18516 -- 4219869 Business Flow
18517 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18518 ------------------------------------------------------------------------------------
18519 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18520
18521 ----------------------------------------------------------------------------------
18522 -- 4219869 Business Flow
18523 -- Update journal entry status -- Need to generate this within IF <condition>
18524 ----------------------------------------------------------------------------------
18525 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18526 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18527 ,p_balance_type_code => l_balance_type_code
18528 );
18529
18530 -------------------------------------------------------------------------------------------
18531 -- 4262811 - Generate the Accrual Reversal lines
18532 -------------------------------------------------------------------------------------------
18533 BEGIN
18534 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18535 (g_array_event(p_event_id).array_value_num('header_index'));
18536 IF l_acc_rev_flag IS NULL THEN
18537 l_acc_rev_flag := 'N';
18538 END IF;
18539 EXCEPTION
18540 WHEN OTHERS THEN
18541 l_acc_rev_flag := 'N';
18542 END;
18543 --
18544 IF (l_acc_rev_flag = 'Y') THEN
18545
18546 -- 4645092 ------------------------------------------------------------------------------
18547 -- To allow MPA report to determine if it should generate report process
18548 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18549 ------------------------------------------------------------------------------------------
18550
18551 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18552 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18553
18554 --
18555 -- Update the line information that should be overwritten
18556 --
18557 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18558 p_header_num => 1);
18559 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18560
18561 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18562
18563 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18564 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18565 END IF;
18566
18567 --
18568 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18569 --
18570 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18571 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18572 ELSE
18573 ---------------------------------------------------------------------------------------------------
18577 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18574 -- 4262811a Switch Sign
18575 ---------------------------------------------------------------------------------------------------
18576 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18578 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18579 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18580 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18581 -- 5132302
18582 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18583 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18584
18585 END IF;
18586
18587 -- 4955764
18588 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18589 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18590
18591
18592 XLA_AE_LINES_PKG.ValidateCurrentLine;
18593 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18594
18595 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18596 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18597 ,p_balance_type_code => l_balance_type_code);
18598
18599 END IF;
18600
18601 -----------------------------------------------------------------------------------------
18602 -- 4262811 Multiperiod Accounting
18603 -----------------------------------------------------------------------------------------
18604 -- No MPA option is assigned.
18605
18606
18607 END IF;
18608 END IF;
18609 --
18610
18611 --
18612 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18613 trace
18614 (p_msg => 'END of AcctLineType_47'
18615 ,p_level => C_LEVEL_PROCEDURE
18616 ,p_module => l_log_module);
18617 END IF;
18618 --
18619 EXCEPTION
18620 WHEN xla_exceptions_pkg.application_exception THEN
18621 RAISE;
18622 WHEN OTHERS THEN
18623 xla_exceptions_pkg.raise_message
18624 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_47');
18625 END AcctLineType_47;
18626 --
18627
18628 ---------------------------------------
18629 --
18630 -- PRIVATE FUNCTION
18631 -- AcctLineType_48
18632 --
18633 ---------------------------------------
18634 PROCEDURE AcctLineType_48 (
18635 p_application_id IN NUMBER
18636 ,p_event_id IN NUMBER
18637 ,p_calculate_acctd_flag IN VARCHAR2
18638 ,p_calculate_g_l_flag IN VARCHAR2
18639 ,p_actual_flag IN OUT VARCHAR2
18640 ,p_balance_type_code OUT VARCHAR2
18641 ,p_gain_or_loss_ref OUT VARCHAR2
18642
18643 --Cost CCID
18644 , p_source_3 IN NUMBER
18645 --Allow Account Override Flag
18646 , p_source_4 IN VARCHAR2
18647 --Adjustment Cost CCID
18648 , p_source_5 IN NUMBER
18649 --Cost Clearing CCID
18650 , p_source_6 IN NUMBER
18651 --Reversing Line Flag
18652 , p_source_22 IN VARCHAR2
18653 --Actual Upgrade Credit Accounting Class
18654 , p_source_23 IN VARCHAR2
18655 --Entered Raw Cost
18656 , p_source_24 IN NUMBER
18657 --Entered Currency Code
18658 , p_source_25 IN VARCHAR2
18659 --Accounted Raw Cost
18660 , p_source_26 IN NUMBER
18661 --Exchange Rate Date
18662 , p_source_27 IN DATE
18663 --Exchange Rate
18664 , p_source_28 IN NUMBER
18665 --Exchange Rate Type
18666 , p_source_29 IN VARCHAR2
18667 --Actual Upgrade Debit Accounting Class
18668 , p_source_30 IN VARCHAR2
18669 --Use Actuals Upgrade Attributes Flag
18670 , p_source_31 IN VARCHAR2
18671 --Expenditure Item ID
18672 , p_source_32 IN NUMBER
18673 --Cost Distribution Line Number
18674 , p_source_33 IN NUMBER
18675 --Line Type
18676 , p_source_34 IN VARCHAR2
18677 , p_source_34_meaning IN VARCHAR2
18678 --Reversed Line Number
18679 , p_source_35 IN NUMBER
18680 --Project Number
18681 , p_source_68 IN VARCHAR2
18682 )
18683 IS
18684
18685 l_component_type VARCHAR2(80);
18686 l_component_code VARCHAR2(30);
18687 l_component_type_code VARCHAR2(1);
18688 l_component_appl_id INTEGER;
18689 l_amb_context_code VARCHAR2(30);
18690 l_entity_code VARCHAR2(30);
18691 l_event_class_code VARCHAR2(30);
18692 l_ae_header_id NUMBER;
18693 l_event_type_code VARCHAR2(30);
18694 l_line_definition_code VARCHAR2(30);
18695 l_line_definition_owner_code VARCHAR2(1);
18696 --
18697 -- adr variables
18698 l_segment VARCHAR2(30);
18699 l_ccid NUMBER;
18700 l_adr_transaction_coa_id NUMBER;
18701 l_adr_accounting_coa_id NUMBER;
18702 l_adr_flexfield_segment_code VARCHAR2(30);
18703 l_adr_flex_value_set_id NUMBER;
18704 l_adr_value_type_code VARCHAR2(30);
18705 l_adr_value_combination_id NUMBER;
18706 l_adr_value_segment_code VARCHAR2(30);
18707
18708 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18709 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18710 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18711 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18712
18713 -- 4262811 Variables ------------------------------------------------------------------------------------------
18717 l_accrual_line_num NUMBER;
18714 l_entered_amt_idx NUMBER;
18715 l_accted_amt_idx NUMBER;
18716 l_acc_rev_flag VARCHAR2(1);
18718 l_tmp_amt NUMBER;
18719 l_acc_rev_natural_side_code VARCHAR2(1);
18720
18721 l_num_entries NUMBER;
18722 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18723 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18724 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18725 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18726 l_recog_line_1 NUMBER;
18727 l_recog_line_2 NUMBER;
18728
18729 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18730 l_bflow_applied_to_amt NUMBER; -- 5132302
18731 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18732
18733 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18734
18735 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18736 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18737
18738 ---------------------------------------------------------------------------------------------------------------
18739
18740
18741 --
18742 -- bulk performance
18743 --
18744 l_balance_type_code VARCHAR2(1);
18745 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18746 l_log_module VARCHAR2(240);
18747
18748 --
18749 -- Upgrade strategy
18750 --
18751 l_actual_upg_option VARCHAR2(1);
18752 l_enc_upg_option VARCHAR2(1);
18753
18754 --
18755 BEGIN
18756 --
18757 IF g_log_enabled THEN
18758 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
18759 END IF;
18760 --
18761 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18762
18763 trace
18764 (p_msg => 'BEGIN of AcctLineType_48'
18765 ,p_level => C_LEVEL_PROCEDURE
18766 ,p_module => l_log_module);
18767
18768 END IF;
18769 --
18770 l_component_type := 'AMB_JLT';
18771 l_component_code := 'PA_RAW_COST_ADJ';
18772 l_component_type_code := 'S';
18773 l_component_appl_id := 275;
18774 l_amb_context_code := 'DEFAULT';
18775 l_entity_code := 'EXPENDITURES';
18776 l_event_class_code := 'MISC_COST_ADJ';
18777 l_event_type_code := 'MISC_COST_ADJ_ALL';
18778 l_line_definition_owner_code := 'S';
18779 l_line_definition_code := 'JA_CN_PA_ACCRUAL_MIS_COSTADJ';
18780 --
18781 l_balance_type_code := 'A';
18782 l_segment := NULL;
18783 l_ccid := NULL;
18784 l_adr_transaction_coa_id := NULL;
18785 l_adr_accounting_coa_id := NULL;
18786 l_adr_flexfield_segment_code := NULL;
18787 l_adr_flex_value_set_id := NULL;
18788 l_adr_value_type_code := NULL;
18789 l_adr_value_combination_id := NULL;
18790 l_adr_value_segment_code := NULL;
18791
18792 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18793 l_bflow_class_code := ''; -- 4219869 Business Flow
18794 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18795 l_budgetary_control_flag := 'N';
18796
18797 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18798 l_bflow_applied_to_amt := NULL; -- 5132302
18799 l_entered_amt_idx := NULL; -- 4262811
18800 l_accted_amt_idx := NULL; -- 4262811
18801 l_acc_rev_flag := NULL; -- 4262811
18802 l_accrual_line_num := NULL; -- 4262811
18803 l_tmp_amt := NULL; -- 4262811
18804 --
18805
18806 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18807 l_balance_type_code <> 'B' THEN
18808
18809 --
18810 XLA_AE_LINES_PKG.SetNewLine;
18811
18812 p_balance_type_code := l_balance_type_code;
18813 -- set the flag so later we will know whether the gain loss line needs to be created
18814
18815 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18816 p_actual_flag :='A';
18817 END IF;
18818
18819 --
18820 -- bulk performance
18821 --
18822 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18823 p_header_num => 0); -- 4262811
18824 --
18825 -- set accounting line options
18826 --
18827 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18828 p_natural_side_code => 'D'
18829 , p_gain_or_loss_flag => 'N'
18830 , p_gl_transfer_mode_code => 'S'
18831 , p_acct_entry_type_code => 'A'
18832 , p_switch_side_flag => 'Y'
18833 , p_merge_duplicate_code => 'N'
18834 );
18835 --
18836 l_acc_rev_natural_side_code := 'C'; -- 4262811
18837 --
18838 --
18839 -- set accounting line type info
18840 --
18841 xla_ae_lines_pkg.SetAcctLineType
18842 (p_component_type => l_component_type
18843 ,p_event_type_code => l_event_type_code
18844 ,p_line_definition_owner_code => l_line_definition_owner_code
18845 ,p_line_definition_code => l_line_definition_code
18846 ,p_accounting_line_code => l_component_code
18847 ,p_accounting_line_type_code => l_component_type_code
18848 ,p_accounting_line_appl_id => l_component_appl_id
18849 ,p_amb_context_code => l_amb_context_code
18850 ,p_entity_code => l_entity_code
18851 ,p_event_class_code => l_event_class_code);
18855 xla_ae_lines_pkg.SetAcctClass(
18852 --
18853 -- set accounting class
18854 --
18856 p_accounting_class_code => 'COST'
18857 , p_ae_header_id => l_ae_header_id
18858 );
18859
18860 --
18861 -- set rounding class
18862 --
18863 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18864 'COST';
18865
18866 --
18867 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18868 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18869 --
18870 -- bulk performance
18871 --
18872 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18873
18874 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18875 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18876
18877 -- 4955764
18878 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18879 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18880
18881 -- 4458381 Public Sector Enh
18882
18883 --
18884 -- set accounting attributes for the line type
18885 --
18886 l_entered_amt_idx := 22;
18887 l_accted_amt_idx := 27;
18888 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18889 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18890 l_rec_acct_attrs.array_char_value(1) := p_source_22;
18891 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
18892 l_rec_acct_attrs.array_char_value(2) := p_source_23;
18893 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
18894 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
18895 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
18896 l_rec_acct_attrs.array_num_value(4) := p_source_24;
18897 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
18898 l_rec_acct_attrs.array_char_value(5) := p_source_25;
18899 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
18900 l_rec_acct_attrs.array_num_value(6) := p_source_26;
18901 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
18902 l_rec_acct_attrs.array_date_value(7) := p_source_27;
18903 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
18904 l_rec_acct_attrs.array_num_value(8) := p_source_28;
18905 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
18906 l_rec_acct_attrs.array_char_value(9) := p_source_29;
18907 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
18908 l_rec_acct_attrs.array_char_value(10) := p_source_30;
18909 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
18910 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
18911 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
18912 l_rec_acct_attrs.array_num_value(12) := p_source_24;
18913 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
18914 l_rec_acct_attrs.array_char_value(13) := p_source_25;
18915 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
18916 l_rec_acct_attrs.array_num_value(14) := p_source_26;
18917 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
18918 l_rec_acct_attrs.array_date_value(15) := p_source_27;
18919 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
18920 l_rec_acct_attrs.array_num_value(16) := p_source_28;
18921 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
18922 l_rec_acct_attrs.array_char_value(17) := p_source_29;
18923 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
18924 l_rec_acct_attrs.array_char_value(18) := p_source_31;
18925 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
18926 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
18927 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
18928 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
18929 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
18930 l_rec_acct_attrs.array_char_value(21) := p_source_34;
18931 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
18932 l_rec_acct_attrs.array_num_value(22) := p_source_24;
18933 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
18934 l_rec_acct_attrs.array_char_value(23) := p_source_25;
18935 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
18936 l_rec_acct_attrs.array_date_value(24) := p_source_27;
18937 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
18938 l_rec_acct_attrs.array_num_value(25) := p_source_28;
18939 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
18940 l_rec_acct_attrs.array_char_value(26) := p_source_29;
18941 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
18942 l_rec_acct_attrs.array_num_value(27) := p_source_26;
18943 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
18944 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
18945 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
18946 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
18947 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
18948 l_rec_acct_attrs.array_char_value(30) := p_source_34;
18949
18950 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18951 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18952
18953 ---------------------------------------------------------------------------------------------------------------
18954 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18958 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18955 ---------------------------------------------------------------------------------------------------------------
18956 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18957
18959 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18960
18961 IF xla_accounting_cache_pkg.GetValueChar
18962 (p_source_code => 'LEDGER_CATEGORY_CODE'
18963 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18964 AND l_bflow_method_code = 'PRIOR_ENTRY'
18965 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18966 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18967 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18968 )
18969 THEN
18970 xla_ae_lines_pkg.BflowUpgEntry
18971 (p_business_method_code => l_bflow_method_code
18972 ,p_business_class_code => l_bflow_class_code
18973 ,p_balance_type => l_balance_type_code);
18974 ELSE
18975 NULL;
18976 -- No business flow processing for business flow method of NONE.
18977 END IF;
18978
18979 --
18980 -- call analytical criteria
18981 --
18982
18983
18984 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
18985 xla_ae_lines_pkg.SetAnalyticalCriteria(
18986 p_analytical_criterion_name => 'Project Number'
18987 , p_analytical_criterion_owner => 'S'
18988 , p_analytical_criterion_code => 'PROJECT_NUMBER'
18989 , p_amb_context_code => 'DEFAULT'
18990 , p_balancing_flag => 'N'
18991
18992 , p_analytical_detail_char_1 => TO_CHAR(p_source_68)
18993 , p_analytical_detail_num_1 => NULL
18994 , p_analytical_detail_date_1 => NULL
18995
18996 , p_ae_header_id => l_ae_header_id
18997 )
18998 ;
18999 --
19000
19001 --
19002 -- call description
19003 --
19004 -- No description or it is inherited.
19005 --
19006 -- call ADRs
19007 -- Bug 4922099
19008 --
19009 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19010 (NVL(l_actual_upg_option, 'N') = 'O') OR
19011 (NVL(l_enc_upg_option, 'N') = 'O')
19012 )
19013 THEN
19014 NULL;
19015 --
19016 --
19017
19018 l_ccid := AcctDerRule_4(
19019 p_application_id => p_application_id
19020 , p_ae_header_id => l_ae_header_id
19021 , p_source_4 => p_source_4
19022 , p_source_5 => p_source_5
19023 , x_transaction_coa_id => l_adr_transaction_coa_id
19024 , x_accounting_coa_id => l_adr_accounting_coa_id
19025 , x_value_type_code => l_adr_value_type_code
19026 , p_side => 'NA'
19027 );
19028
19029 xla_ae_lines_pkg.set_ccid(
19030 p_code_combination_id => l_ccid
19031 , p_value_type_code => l_adr_value_type_code
19032 , p_transaction_coa_id => l_adr_transaction_coa_id
19033 , p_accounting_coa_id => l_adr_accounting_coa_id
19034 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
19035 , p_adr_type_code => 'S'
19036 , p_component_type => l_component_type
19037 , p_component_code => l_component_code
19038 , p_component_type_code => l_component_type_code
19039 , p_component_appl_id => l_component_appl_id
19040 , p_amb_context_code => l_amb_context_code
19041 , p_side => 'NA'
19042 );
19043
19044
19045 --
19046 --
19047 END IF;
19048 --
19049 -- Bug 4922099
19050 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19051 (NVL(l_enc_upg_option, 'N') = 'O')
19052 ) AND
19053 (l_bflow_method_code = 'PRIOR_ENTRY')
19054 )
19055 THEN
19056 IF
19057 --
19058 1 = 2
19059 --
19060 THEN
19061 xla_accounting_err_pkg.build_message
19062 (p_appli_s_name => 'XLA'
19063 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19064 ,p_token_1 => 'LINE_NUMBER'
19065 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19066 ,p_token_2 => 'LINE_TYPE_NAME'
19067 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19068 l_component_type
19069 ,l_component_code
19070 ,l_component_type_code
19071 ,l_component_appl_id
19072 ,l_amb_context_code
19073 ,l_entity_code
19074 ,l_event_class_code
19075 )
19076 ,p_token_3 => 'OWNER'
19077 ,p_value_3 => xla_lookups_pkg.get_meaning(
19078 p_lookup_type => 'XLA_OWNER_TYPE'
19079 ,p_lookup_code => l_component_type_code
19083 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19080 )
19081 ,p_token_4 => 'PRODUCT_NAME'
19082 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19084 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19085 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19086 ,p_ae_header_id => NULL
19087 );
19088
19089 IF (C_LEVEL_ERROR>= g_log_level) THEN
19090 trace
19091 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19092 ,p_level => C_LEVEL_ERROR
19093 ,p_module => l_log_module);
19094 END IF;
19095 END IF;
19096 END IF;
19097 --
19098 --
19099 ------------------------------------------------------------------------------------------------
19100 -- 4219869 Business Flow
19101 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19102 -- Prior Entry. Currently, the following code is always generated.
19103 ------------------------------------------------------------------------------------------------
19104 XLA_AE_LINES_PKG.ValidateCurrentLine;
19105
19106 ------------------------------------------------------------------------------------
19107 -- 4219869 Business Flow
19108 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19109 ------------------------------------------------------------------------------------
19110 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19111
19112 ----------------------------------------------------------------------------------
19113 -- 4219869 Business Flow
19114 -- Update journal entry status -- Need to generate this within IF <condition>
19115 ----------------------------------------------------------------------------------
19116 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19117 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19118 ,p_balance_type_code => l_balance_type_code
19119 );
19120
19121 -------------------------------------------------------------------------------------------
19122 -- 4262811 - Generate the Accrual Reversal lines
19123 -------------------------------------------------------------------------------------------
19124 BEGIN
19125 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19126 (g_array_event(p_event_id).array_value_num('header_index'));
19127 IF l_acc_rev_flag IS NULL THEN
19128 l_acc_rev_flag := 'N';
19129 END IF;
19130 EXCEPTION
19131 WHEN OTHERS THEN
19132 l_acc_rev_flag := 'N';
19133 END;
19134 --
19135 IF (l_acc_rev_flag = 'Y') THEN
19136
19137 -- 4645092 ------------------------------------------------------------------------------
19138 -- To allow MPA report to determine if it should generate report process
19139 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19140 ------------------------------------------------------------------------------------------
19141
19142 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19143 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19144
19145 --
19146 -- Update the line information that should be overwritten
19147 --
19148 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19149 p_header_num => 1);
19150 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19151
19152 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19153
19154 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19155 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19156 END IF;
19157
19158 --
19159 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19160 --
19161 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19162 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19163 ELSE
19164 ---------------------------------------------------------------------------------------------------
19165 -- 4262811a Switch Sign
19166 ---------------------------------------------------------------------------------------------------
19167 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19168 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19169 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19170 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19171 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19172 -- 5132302
19173 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19174 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19175
19176 END IF;
19177
19178 -- 4955764
19179 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19180 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19181
19182
19186 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19183 XLA_AE_LINES_PKG.ValidateCurrentLine;
19184 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19185
19187 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19188 ,p_balance_type_code => l_balance_type_code);
19189
19190 END IF;
19191
19192 -----------------------------------------------------------------------------------------
19193 -- 4262811 Multiperiod Accounting
19194 -----------------------------------------------------------------------------------------
19195 -- No MPA option is assigned.
19196
19197
19198 END IF;
19199 --
19200
19201 --
19202 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19203 trace
19204 (p_msg => 'END of AcctLineType_48'
19205 ,p_level => C_LEVEL_PROCEDURE
19206 ,p_module => l_log_module);
19207 END IF;
19208 --
19209 EXCEPTION
19210 WHEN xla_exceptions_pkg.application_exception THEN
19211 RAISE;
19212 WHEN OTHERS THEN
19213 xla_exceptions_pkg.raise_message
19214 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_48');
19215 END AcctLineType_48;
19216 --
19217
19218 ---------------------------------------
19219 --
19220 -- PRIVATE FUNCTION
19221 -- AcctLineType_49
19222 --
19223 ---------------------------------------
19224 PROCEDURE AcctLineType_49 (
19225 p_application_id IN NUMBER
19226 ,p_event_id IN NUMBER
19227 ,p_calculate_acctd_flag IN VARCHAR2
19228 ,p_calculate_g_l_flag IN VARCHAR2
19229 ,p_actual_flag IN OUT VARCHAR2
19230 ,p_balance_type_code OUT VARCHAR2
19231 ,p_gain_or_loss_ref OUT VARCHAR2
19232
19233 --Cost CCID
19234 , p_source_3 IN NUMBER
19235 --Allow Account Override Flag
19236 , p_source_4 IN VARCHAR2
19237 --Adjustment Cost CCID
19238 , p_source_5 IN NUMBER
19239 --Cost Clearing CCID
19240 , p_source_6 IN NUMBER
19241 --Reversing Line Flag
19242 , p_source_22 IN VARCHAR2
19243 --Actual Upgrade Credit Accounting Class
19244 , p_source_23 IN VARCHAR2
19245 --Entered Raw Cost
19246 , p_source_24 IN NUMBER
19247 --Entered Currency Code
19248 , p_source_25 IN VARCHAR2
19249 --Accounted Raw Cost
19250 , p_source_26 IN NUMBER
19251 --Exchange Rate Date
19252 , p_source_27 IN DATE
19253 --Exchange Rate
19254 , p_source_28 IN NUMBER
19255 --Exchange Rate Type
19256 , p_source_29 IN VARCHAR2
19257 --Actual Upgrade Debit Accounting Class
19258 , p_source_30 IN VARCHAR2
19259 --Use Actuals Upgrade Attributes Flag
19260 , p_source_31 IN VARCHAR2
19261 --Expenditure Item ID
19262 , p_source_32 IN NUMBER
19263 --Cost Distribution Line Number
19264 , p_source_33 IN NUMBER
19265 --Line Type
19266 , p_source_34 IN VARCHAR2
19267 , p_source_34_meaning IN VARCHAR2
19268 --Reversed Line Number
19269 , p_source_35 IN NUMBER
19270 )
19271 IS
19272
19273 l_component_type VARCHAR2(80);
19274 l_component_code VARCHAR2(30);
19275 l_component_type_code VARCHAR2(1);
19276 l_component_appl_id INTEGER;
19277 l_amb_context_code VARCHAR2(30);
19278 l_entity_code VARCHAR2(30);
19279 l_event_class_code VARCHAR2(30);
19280 l_ae_header_id NUMBER;
19281 l_event_type_code VARCHAR2(30);
19282 l_line_definition_code VARCHAR2(30);
19283 l_line_definition_owner_code VARCHAR2(1);
19284 --
19285 -- adr variables
19286 l_segment VARCHAR2(30);
19287 l_ccid NUMBER;
19288 l_adr_transaction_coa_id NUMBER;
19289 l_adr_accounting_coa_id NUMBER;
19290 l_adr_flexfield_segment_code VARCHAR2(30);
19291 l_adr_flex_value_set_id NUMBER;
19292 l_adr_value_type_code VARCHAR2(30);
19293 l_adr_value_combination_id NUMBER;
19294 l_adr_value_segment_code VARCHAR2(30);
19295
19296 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19297 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19298 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19299 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19300
19301 -- 4262811 Variables ------------------------------------------------------------------------------------------
19302 l_entered_amt_idx NUMBER;
19303 l_accted_amt_idx NUMBER;
19304 l_acc_rev_flag VARCHAR2(1);
19305 l_accrual_line_num NUMBER;
19306 l_tmp_amt NUMBER;
19307 l_acc_rev_natural_side_code VARCHAR2(1);
19308
19309 l_num_entries NUMBER;
19310 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19311 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19312 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19313 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19314 l_recog_line_1 NUMBER;
19315 l_recog_line_2 NUMBER;
19316
19317 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19318 l_bflow_applied_to_amt NUMBER; -- 5132302
19319 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19320
19321 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19322
19323 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19324 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19325
19329 --
19326 ---------------------------------------------------------------------------------------------------------------
19327
19328
19330 -- bulk performance
19331 --
19332 l_balance_type_code VARCHAR2(1);
19333 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19334 l_log_module VARCHAR2(240);
19335
19336 --
19337 -- Upgrade strategy
19338 --
19339 l_actual_upg_option VARCHAR2(1);
19340 l_enc_upg_option VARCHAR2(1);
19341
19342 --
19343 BEGIN
19344 --
19345 IF g_log_enabled THEN
19346 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
19347 END IF;
19348 --
19349 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19350
19351 trace
19352 (p_msg => 'BEGIN of AcctLineType_49'
19353 ,p_level => C_LEVEL_PROCEDURE
19354 ,p_module => l_log_module);
19355
19356 END IF;
19357 --
19358 l_component_type := 'AMB_JLT';
19359 l_component_code := 'PA_RAW_COST_ADJ';
19360 l_component_type_code := 'S';
19361 l_component_appl_id := 275;
19362 l_amb_context_code := 'DEFAULT';
19363 l_entity_code := 'EXPENDITURES';
19364 l_event_class_code := 'USG_COST_ADJ';
19365 l_event_type_code := 'USG_COST_ADJ_ALL';
19366 l_line_definition_owner_code := 'S';
19367 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
19368 --
19369 l_balance_type_code := 'A';
19370 l_segment := NULL;
19371 l_ccid := NULL;
19372 l_adr_transaction_coa_id := NULL;
19373 l_adr_accounting_coa_id := NULL;
19374 l_adr_flexfield_segment_code := NULL;
19375 l_adr_flex_value_set_id := NULL;
19376 l_adr_value_type_code := NULL;
19377 l_adr_value_combination_id := NULL;
19378 l_adr_value_segment_code := NULL;
19379
19380 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19381 l_bflow_class_code := ''; -- 4219869 Business Flow
19382 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19383 l_budgetary_control_flag := 'N';
19384
19385 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19386 l_bflow_applied_to_amt := NULL; -- 5132302
19387 l_entered_amt_idx := NULL; -- 4262811
19388 l_accted_amt_idx := NULL; -- 4262811
19389 l_acc_rev_flag := NULL; -- 4262811
19390 l_accrual_line_num := NULL; -- 4262811
19391 l_tmp_amt := NULL; -- 4262811
19392 --
19393
19394 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19395 l_balance_type_code <> 'B' THEN
19396
19397 --
19398 XLA_AE_LINES_PKG.SetNewLine;
19399
19400 p_balance_type_code := l_balance_type_code;
19401 -- set the flag so later we will know whether the gain loss line needs to be created
19402
19403 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19404 p_actual_flag :='A';
19405 END IF;
19406
19407 --
19408 -- bulk performance
19409 --
19410 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19411 p_header_num => 0); -- 4262811
19412 --
19413 -- set accounting line options
19414 --
19415 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19416 p_natural_side_code => 'D'
19417 , p_gain_or_loss_flag => 'N'
19418 , p_gl_transfer_mode_code => 'S'
19419 , p_acct_entry_type_code => 'A'
19420 , p_switch_side_flag => 'Y'
19421 , p_merge_duplicate_code => 'N'
19422 );
19423 --
19424 l_acc_rev_natural_side_code := 'C'; -- 4262811
19425 --
19426 --
19427 -- set accounting line type info
19428 --
19429 xla_ae_lines_pkg.SetAcctLineType
19430 (p_component_type => l_component_type
19431 ,p_event_type_code => l_event_type_code
19432 ,p_line_definition_owner_code => l_line_definition_owner_code
19433 ,p_line_definition_code => l_line_definition_code
19434 ,p_accounting_line_code => l_component_code
19435 ,p_accounting_line_type_code => l_component_type_code
19436 ,p_accounting_line_appl_id => l_component_appl_id
19437 ,p_amb_context_code => l_amb_context_code
19438 ,p_entity_code => l_entity_code
19439 ,p_event_class_code => l_event_class_code);
19440 --
19441 -- set accounting class
19442 --
19443 xla_ae_lines_pkg.SetAcctClass(
19444 p_accounting_class_code => 'COST'
19445 , p_ae_header_id => l_ae_header_id
19446 );
19447
19448 --
19449 -- set rounding class
19450 --
19451 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19452 'COST';
19453
19454 --
19455 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19456 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19457 --
19458 -- bulk performance
19459 --
19460 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19461
19462 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19463 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19464
19465 -- 4955764
19466 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19467 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19471 --
19468
19469 -- 4458381 Public Sector Enh
19470
19472 -- set accounting attributes for the line type
19473 --
19474 l_entered_amt_idx := 22;
19475 l_accted_amt_idx := 27;
19476 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19477 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19478 l_rec_acct_attrs.array_char_value(1) := p_source_22;
19479 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
19480 l_rec_acct_attrs.array_char_value(2) := p_source_23;
19481 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
19482 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
19483 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
19484 l_rec_acct_attrs.array_num_value(4) := p_source_24;
19485 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
19486 l_rec_acct_attrs.array_char_value(5) := p_source_25;
19487 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
19488 l_rec_acct_attrs.array_num_value(6) := p_source_26;
19489 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
19490 l_rec_acct_attrs.array_date_value(7) := p_source_27;
19491 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
19492 l_rec_acct_attrs.array_num_value(8) := p_source_28;
19493 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
19494 l_rec_acct_attrs.array_char_value(9) := p_source_29;
19495 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
19496 l_rec_acct_attrs.array_char_value(10) := p_source_30;
19497 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
19498 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
19499 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
19500 l_rec_acct_attrs.array_num_value(12) := p_source_24;
19501 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
19502 l_rec_acct_attrs.array_char_value(13) := p_source_25;
19503 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
19504 l_rec_acct_attrs.array_num_value(14) := p_source_26;
19505 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
19506 l_rec_acct_attrs.array_date_value(15) := p_source_27;
19507 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
19508 l_rec_acct_attrs.array_num_value(16) := p_source_28;
19509 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
19510 l_rec_acct_attrs.array_char_value(17) := p_source_29;
19511 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
19512 l_rec_acct_attrs.array_char_value(18) := p_source_31;
19513 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
19514 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
19515 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
19516 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
19517 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
19518 l_rec_acct_attrs.array_char_value(21) := p_source_34;
19519 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
19520 l_rec_acct_attrs.array_num_value(22) := p_source_24;
19521 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
19522 l_rec_acct_attrs.array_char_value(23) := p_source_25;
19523 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
19524 l_rec_acct_attrs.array_date_value(24) := p_source_27;
19525 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
19526 l_rec_acct_attrs.array_num_value(25) := p_source_28;
19527 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
19528 l_rec_acct_attrs.array_char_value(26) := p_source_29;
19529 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
19530 l_rec_acct_attrs.array_num_value(27) := p_source_26;
19531 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
19532 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
19533 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
19534 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
19535 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
19536 l_rec_acct_attrs.array_char_value(30) := p_source_34;
19537
19538 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19539 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19540
19541 ---------------------------------------------------------------------------------------------------------------
19542 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19543 ---------------------------------------------------------------------------------------------------------------
19544 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19545
19546 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19547 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19548
19549 IF xla_accounting_cache_pkg.GetValueChar
19550 (p_source_code => 'LEDGER_CATEGORY_CODE'
19551 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19552 AND l_bflow_method_code = 'PRIOR_ENTRY'
19553 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19554 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19555 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19556 )
19557 THEN
19558 xla_ae_lines_pkg.BflowUpgEntry
19559 (p_business_method_code => l_bflow_method_code
19560 ,p_business_class_code => l_bflow_class_code
19561 ,p_balance_type => l_balance_type_code);
19562 ELSE
19563 NULL;
19567 --
19564 -- No business flow processing for business flow method of NONE.
19565 END IF;
19566
19568 -- call analytical criteria
19569 --
19570
19571 --
19572 -- call description
19573 --
19574 -- No description or it is inherited.
19575 --
19576 -- call ADRs
19577 -- Bug 4922099
19578 --
19579 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19580 (NVL(l_actual_upg_option, 'N') = 'O') OR
19581 (NVL(l_enc_upg_option, 'N') = 'O')
19582 )
19583 THEN
19584 NULL;
19585 --
19586 --
19587
19588 l_ccid := AcctDerRule_4(
19589 p_application_id => p_application_id
19590 , p_ae_header_id => l_ae_header_id
19591 , p_source_4 => p_source_4
19592 , p_source_5 => p_source_5
19593 , x_transaction_coa_id => l_adr_transaction_coa_id
19594 , x_accounting_coa_id => l_adr_accounting_coa_id
19595 , x_value_type_code => l_adr_value_type_code
19596 , p_side => 'NA'
19597 );
19598
19599 xla_ae_lines_pkg.set_ccid(
19600 p_code_combination_id => l_ccid
19601 , p_value_type_code => l_adr_value_type_code
19602 , p_transaction_coa_id => l_adr_transaction_coa_id
19603 , p_accounting_coa_id => l_adr_accounting_coa_id
19604 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
19605 , p_adr_type_code => 'S'
19606 , p_component_type => l_component_type
19607 , p_component_code => l_component_code
19608 , p_component_type_code => l_component_type_code
19609 , p_component_appl_id => l_component_appl_id
19610 , p_amb_context_code => l_amb_context_code
19611 , p_side => 'NA'
19612 );
19613
19614
19615 --
19616 --
19617 END IF;
19618 --
19619 -- Bug 4922099
19620 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19621 (NVL(l_enc_upg_option, 'N') = 'O')
19622 ) AND
19623 (l_bflow_method_code = 'PRIOR_ENTRY')
19624 )
19625 THEN
19626 IF
19627 --
19628 1 = 2
19629 --
19630 THEN
19631 xla_accounting_err_pkg.build_message
19632 (p_appli_s_name => 'XLA'
19633 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19634 ,p_token_1 => 'LINE_NUMBER'
19635 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19636 ,p_token_2 => 'LINE_TYPE_NAME'
19637 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19638 l_component_type
19639 ,l_component_code
19640 ,l_component_type_code
19641 ,l_component_appl_id
19642 ,l_amb_context_code
19643 ,l_entity_code
19644 ,l_event_class_code
19645 )
19646 ,p_token_3 => 'OWNER'
19647 ,p_value_3 => xla_lookups_pkg.get_meaning(
19648 p_lookup_type => 'XLA_OWNER_TYPE'
19649 ,p_lookup_code => l_component_type_code
19650 )
19651 ,p_token_4 => 'PRODUCT_NAME'
19652 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19653 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19654 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19655 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19656 ,p_ae_header_id => NULL
19657 );
19658
19659 IF (C_LEVEL_ERROR>= g_log_level) THEN
19660 trace
19661 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19662 ,p_level => C_LEVEL_ERROR
19663 ,p_module => l_log_module);
19664 END IF;
19665 END IF;
19666 END IF;
19667 --
19668 --
19669 ------------------------------------------------------------------------------------------------
19670 -- 4219869 Business Flow
19671 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19672 -- Prior Entry. Currently, the following code is always generated.
19673 ------------------------------------------------------------------------------------------------
19674 XLA_AE_LINES_PKG.ValidateCurrentLine;
19675
19676 ------------------------------------------------------------------------------------
19677 -- 4219869 Business Flow
19678 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19679 ------------------------------------------------------------------------------------
19680 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19681
19685 ----------------------------------------------------------------------------------
19682 ----------------------------------------------------------------------------------
19683 -- 4219869 Business Flow
19684 -- Update journal entry status -- Need to generate this within IF <condition>
19686 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19687 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19688 ,p_balance_type_code => l_balance_type_code
19689 );
19690
19691 -------------------------------------------------------------------------------------------
19692 -- 4262811 - Generate the Accrual Reversal lines
19693 -------------------------------------------------------------------------------------------
19694 BEGIN
19695 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19696 (g_array_event(p_event_id).array_value_num('header_index'));
19697 IF l_acc_rev_flag IS NULL THEN
19698 l_acc_rev_flag := 'N';
19699 END IF;
19700 EXCEPTION
19701 WHEN OTHERS THEN
19702 l_acc_rev_flag := 'N';
19703 END;
19704 --
19705 IF (l_acc_rev_flag = 'Y') THEN
19706
19707 -- 4645092 ------------------------------------------------------------------------------
19708 -- To allow MPA report to determine if it should generate report process
19709 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19710 ------------------------------------------------------------------------------------------
19711
19712 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19713 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19714
19715 --
19716 -- Update the line information that should be overwritten
19717 --
19718 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19719 p_header_num => 1);
19720 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19721
19722 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19723
19724 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19725 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19726 END IF;
19727
19728 --
19729 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19730 --
19731 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19732 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19733 ELSE
19734 ---------------------------------------------------------------------------------------------------
19735 -- 4262811a Switch Sign
19736 ---------------------------------------------------------------------------------------------------
19737 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19738 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19739 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19740 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19741 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19742 -- 5132302
19743 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19744 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19745
19746 END IF;
19747
19748 -- 4955764
19749 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19750 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19751
19752
19753 XLA_AE_LINES_PKG.ValidateCurrentLine;
19754 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19755
19756 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19757 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19758 ,p_balance_type_code => l_balance_type_code);
19759
19760 END IF;
19761
19762 -----------------------------------------------------------------------------------------
19763 -- 4262811 Multiperiod Accounting
19764 -----------------------------------------------------------------------------------------
19765 -- No MPA option is assigned.
19766
19767
19768 END IF;
19769 --
19770
19771 --
19772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19773 trace
19774 (p_msg => 'END of AcctLineType_49'
19775 ,p_level => C_LEVEL_PROCEDURE
19776 ,p_module => l_log_module);
19777 END IF;
19778 --
19779 EXCEPTION
19780 WHEN xla_exceptions_pkg.application_exception THEN
19781 RAISE;
19782 WHEN OTHERS THEN
19783 xla_exceptions_pkg.raise_message
19784 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_49');
19785 END AcctLineType_49;
19786 --
19787
19788 ---------------------------------------
19789 --
19790 -- PRIVATE FUNCTION
19791 -- AcctLineType_50
19792 --
19793 ---------------------------------------
19794 PROCEDURE AcctLineType_50 (
19795 p_application_id IN NUMBER
19796 ,p_event_id IN NUMBER
19797 ,p_calculate_acctd_flag IN VARCHAR2
19798 ,p_calculate_g_l_flag IN VARCHAR2
19799 ,p_actual_flag IN OUT VARCHAR2
19800 ,p_balance_type_code OUT VARCHAR2
19801 ,p_gain_or_loss_ref OUT VARCHAR2
19802
19803 --Cost CCID
19804 , p_source_3 IN NUMBER
19808 , p_source_5 IN NUMBER
19805 --Allow Account Override Flag
19806 , p_source_4 IN VARCHAR2
19807 --Adjustment Cost CCID
19809 --Cost Clearing CCID
19810 , p_source_6 IN NUMBER
19811 --Reversing Line Flag
19812 , p_source_22 IN VARCHAR2
19813 --Actual Upgrade Credit Accounting Class
19814 , p_source_23 IN VARCHAR2
19815 --Entered Raw Cost
19816 , p_source_24 IN NUMBER
19817 --Entered Currency Code
19818 , p_source_25 IN VARCHAR2
19819 --Accounted Raw Cost
19820 , p_source_26 IN NUMBER
19821 --Exchange Rate Date
19822 , p_source_27 IN DATE
19823 --Exchange Rate
19824 , p_source_28 IN NUMBER
19825 --Exchange Rate Type
19826 , p_source_29 IN VARCHAR2
19827 --Actual Upgrade Debit Accounting Class
19828 , p_source_30 IN VARCHAR2
19829 --Use Actuals Upgrade Attributes Flag
19830 , p_source_31 IN VARCHAR2
19831 --Expenditure Item ID
19832 , p_source_32 IN NUMBER
19833 --Cost Distribution Line Number
19834 , p_source_33 IN NUMBER
19835 --Line Type
19836 , p_source_34 IN VARCHAR2
19837 , p_source_34_meaning IN VARCHAR2
19838 --Reversed Line Number
19839 , p_source_35 IN NUMBER
19840 )
19841 IS
19842
19843 l_component_type VARCHAR2(80);
19844 l_component_code VARCHAR2(30);
19845 l_component_type_code VARCHAR2(1);
19846 l_component_appl_id INTEGER;
19847 l_amb_context_code VARCHAR2(30);
19848 l_entity_code VARCHAR2(30);
19849 l_event_class_code VARCHAR2(30);
19850 l_ae_header_id NUMBER;
19851 l_event_type_code VARCHAR2(30);
19852 l_line_definition_code VARCHAR2(30);
19853 l_line_definition_owner_code VARCHAR2(1);
19854 --
19855 -- adr variables
19856 l_segment VARCHAR2(30);
19857 l_ccid NUMBER;
19858 l_adr_transaction_coa_id NUMBER;
19859 l_adr_accounting_coa_id NUMBER;
19860 l_adr_flexfield_segment_code VARCHAR2(30);
19861 l_adr_flex_value_set_id NUMBER;
19862 l_adr_value_type_code VARCHAR2(30);
19863 l_adr_value_combination_id NUMBER;
19864 l_adr_value_segment_code VARCHAR2(30);
19865
19866 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19867 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19868 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19869 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19870
19871 -- 4262811 Variables ------------------------------------------------------------------------------------------
19872 l_entered_amt_idx NUMBER;
19873 l_accted_amt_idx NUMBER;
19874 l_acc_rev_flag VARCHAR2(1);
19875 l_accrual_line_num NUMBER;
19876 l_tmp_amt NUMBER;
19877 l_acc_rev_natural_side_code VARCHAR2(1);
19878
19879 l_num_entries NUMBER;
19880 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19881 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19882 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19883 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19884 l_recog_line_1 NUMBER;
19885 l_recog_line_2 NUMBER;
19886
19887 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19888 l_bflow_applied_to_amt NUMBER; -- 5132302
19889 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19890
19891 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19892
19893 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19894 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19895
19896 ---------------------------------------------------------------------------------------------------------------
19897
19898
19899 --
19900 -- bulk performance
19901 --
19902 l_balance_type_code VARCHAR2(1);
19903 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19904 l_log_module VARCHAR2(240);
19905
19906 --
19907 -- Upgrade strategy
19908 --
19909 l_actual_upg_option VARCHAR2(1);
19910 l_enc_upg_option VARCHAR2(1);
19911
19912 --
19913 BEGIN
19914 --
19915 IF g_log_enabled THEN
19916 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
19917 END IF;
19918 --
19919 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19920
19921 trace
19922 (p_msg => 'BEGIN of AcctLineType_50'
19923 ,p_level => C_LEVEL_PROCEDURE
19924 ,p_module => l_log_module);
19925
19926 END IF;
19927 --
19928 l_component_type := 'AMB_JLT';
19929 l_component_code := 'PA_RAW_COST_ADJ';
19930 l_component_type_code := 'S';
19931 l_component_appl_id := 275;
19932 l_amb_context_code := 'DEFAULT';
19933 l_entity_code := 'EXPENDITURES';
19934 l_event_class_code := 'INVENTORY_COST_ADJ';
19935 l_event_type_code := 'INVENTORY_COST_ADJ_ALL';
19936 l_line_definition_owner_code := 'S';
19937 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
19938 --
19939 l_balance_type_code := 'A';
19940 l_segment := NULL;
19941 l_ccid := NULL;
19942 l_adr_transaction_coa_id := NULL;
19943 l_adr_accounting_coa_id := NULL;
19944 l_adr_flexfield_segment_code := NULL;
19945 l_adr_flex_value_set_id := NULL;
19946 l_adr_value_type_code := NULL;
19950 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19947 l_adr_value_combination_id := NULL;
19948 l_adr_value_segment_code := NULL;
19949
19951 l_bflow_class_code := ''; -- 4219869 Business Flow
19952 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19953 l_budgetary_control_flag := 'N';
19954
19955 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19956 l_bflow_applied_to_amt := NULL; -- 5132302
19957 l_entered_amt_idx := NULL; -- 4262811
19958 l_accted_amt_idx := NULL; -- 4262811
19959 l_acc_rev_flag := NULL; -- 4262811
19960 l_accrual_line_num := NULL; -- 4262811
19961 l_tmp_amt := NULL; -- 4262811
19962 --
19963
19964 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19965 l_balance_type_code <> 'B' THEN
19966
19967 --
19968 XLA_AE_LINES_PKG.SetNewLine;
19969
19970 p_balance_type_code := l_balance_type_code;
19971 -- set the flag so later we will know whether the gain loss line needs to be created
19972
19973 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19974 p_actual_flag :='A';
19975 END IF;
19976
19977 --
19978 -- bulk performance
19979 --
19980 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19981 p_header_num => 0); -- 4262811
19982 --
19983 -- set accounting line options
19984 --
19985 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19986 p_natural_side_code => 'D'
19987 , p_gain_or_loss_flag => 'N'
19988 , p_gl_transfer_mode_code => 'S'
19989 , p_acct_entry_type_code => 'A'
19990 , p_switch_side_flag => 'Y'
19991 , p_merge_duplicate_code => 'N'
19992 );
19993 --
19994 l_acc_rev_natural_side_code := 'C'; -- 4262811
19995 --
19996 --
19997 -- set accounting line type info
19998 --
19999 xla_ae_lines_pkg.SetAcctLineType
20000 (p_component_type => l_component_type
20001 ,p_event_type_code => l_event_type_code
20002 ,p_line_definition_owner_code => l_line_definition_owner_code
20003 ,p_line_definition_code => l_line_definition_code
20004 ,p_accounting_line_code => l_component_code
20005 ,p_accounting_line_type_code => l_component_type_code
20006 ,p_accounting_line_appl_id => l_component_appl_id
20007 ,p_amb_context_code => l_amb_context_code
20008 ,p_entity_code => l_entity_code
20009 ,p_event_class_code => l_event_class_code);
20010 --
20011 -- set accounting class
20012 --
20013 xla_ae_lines_pkg.SetAcctClass(
20014 p_accounting_class_code => 'COST'
20015 , p_ae_header_id => l_ae_header_id
20016 );
20017
20018 --
20019 -- set rounding class
20020 --
20021 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20022 'COST';
20023
20024 --
20025 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20026 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20027 --
20028 -- bulk performance
20029 --
20030 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20031
20032 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20033 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20034
20035 -- 4955764
20036 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20037 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20038
20039 -- 4458381 Public Sector Enh
20040
20041 --
20042 -- set accounting attributes for the line type
20043 --
20044 l_entered_amt_idx := 22;
20045 l_accted_amt_idx := 27;
20046 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20047 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20048 l_rec_acct_attrs.array_char_value(1) := p_source_22;
20049 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
20050 l_rec_acct_attrs.array_char_value(2) := p_source_23;
20051 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
20052 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
20053 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
20054 l_rec_acct_attrs.array_num_value(4) := p_source_24;
20055 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
20056 l_rec_acct_attrs.array_char_value(5) := p_source_25;
20057 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
20058 l_rec_acct_attrs.array_num_value(6) := p_source_26;
20059 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
20060 l_rec_acct_attrs.array_date_value(7) := p_source_27;
20061 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
20062 l_rec_acct_attrs.array_num_value(8) := p_source_28;
20063 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
20064 l_rec_acct_attrs.array_char_value(9) := p_source_29;
20065 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
20066 l_rec_acct_attrs.array_char_value(10) := p_source_30;
20067 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
20068 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
20069 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
20073 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
20070 l_rec_acct_attrs.array_num_value(12) := p_source_24;
20071 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
20072 l_rec_acct_attrs.array_char_value(13) := p_source_25;
20074 l_rec_acct_attrs.array_num_value(14) := p_source_26;
20075 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
20076 l_rec_acct_attrs.array_date_value(15) := p_source_27;
20077 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
20078 l_rec_acct_attrs.array_num_value(16) := p_source_28;
20079 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
20080 l_rec_acct_attrs.array_char_value(17) := p_source_29;
20081 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
20082 l_rec_acct_attrs.array_char_value(18) := p_source_31;
20083 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
20084 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
20085 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
20086 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
20087 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
20088 l_rec_acct_attrs.array_char_value(21) := p_source_34;
20089 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
20090 l_rec_acct_attrs.array_num_value(22) := p_source_24;
20091 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
20092 l_rec_acct_attrs.array_char_value(23) := p_source_25;
20093 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
20094 l_rec_acct_attrs.array_date_value(24) := p_source_27;
20095 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
20096 l_rec_acct_attrs.array_num_value(25) := p_source_28;
20097 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
20098 l_rec_acct_attrs.array_char_value(26) := p_source_29;
20099 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
20100 l_rec_acct_attrs.array_num_value(27) := p_source_26;
20101 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
20102 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
20103 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
20104 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
20105 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
20106 l_rec_acct_attrs.array_char_value(30) := p_source_34;
20107
20108 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20109 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20110
20111 ---------------------------------------------------------------------------------------------------------------
20112 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20113 ---------------------------------------------------------------------------------------------------------------
20114 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20115
20116 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20117 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20118
20119 IF xla_accounting_cache_pkg.GetValueChar
20120 (p_source_code => 'LEDGER_CATEGORY_CODE'
20121 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20122 AND l_bflow_method_code = 'PRIOR_ENTRY'
20123 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20124 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20125 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20126 )
20127 THEN
20128 xla_ae_lines_pkg.BflowUpgEntry
20129 (p_business_method_code => l_bflow_method_code
20130 ,p_business_class_code => l_bflow_class_code
20131 ,p_balance_type => l_balance_type_code);
20132 ELSE
20133 NULL;
20134 -- No business flow processing for business flow method of NONE.
20135 END IF;
20136
20137 --
20138 -- call analytical criteria
20139 --
20140
20141 --
20142 -- call description
20143 --
20144 -- No description or it is inherited.
20145 --
20146 -- call ADRs
20147 -- Bug 4922099
20148 --
20149 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20150 (NVL(l_actual_upg_option, 'N') = 'O') OR
20151 (NVL(l_enc_upg_option, 'N') = 'O')
20152 )
20153 THEN
20154 NULL;
20155 --
20156 --
20157
20158 l_ccid := AcctDerRule_4(
20159 p_application_id => p_application_id
20160 , p_ae_header_id => l_ae_header_id
20161 , p_source_4 => p_source_4
20162 , p_source_5 => p_source_5
20163 , x_transaction_coa_id => l_adr_transaction_coa_id
20164 , x_accounting_coa_id => l_adr_accounting_coa_id
20165 , x_value_type_code => l_adr_value_type_code
20166 , p_side => 'NA'
20167 );
20168
20169 xla_ae_lines_pkg.set_ccid(
20170 p_code_combination_id => l_ccid
20171 , p_value_type_code => l_adr_value_type_code
20172 , p_transaction_coa_id => l_adr_transaction_coa_id
20173 , p_accounting_coa_id => l_adr_accounting_coa_id
20174 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
20175 , p_adr_type_code => 'S'
20176 , p_component_type => l_component_type
20177 , p_component_code => l_component_code
20178 , p_component_type_code => l_component_type_code
20179 , p_component_appl_id => l_component_appl_id
20180 , p_amb_context_code => l_amb_context_code
20184
20181 , p_side => 'NA'
20182 );
20183
20185 --
20186 --
20187 END IF;
20188 --
20189 -- Bug 4922099
20190 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20191 (NVL(l_enc_upg_option, 'N') = 'O')
20192 ) AND
20193 (l_bflow_method_code = 'PRIOR_ENTRY')
20194 )
20195 THEN
20196 IF
20197 --
20198 1 = 2
20199 --
20200 THEN
20201 xla_accounting_err_pkg.build_message
20202 (p_appli_s_name => 'XLA'
20203 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20204 ,p_token_1 => 'LINE_NUMBER'
20205 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20206 ,p_token_2 => 'LINE_TYPE_NAME'
20207 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20208 l_component_type
20209 ,l_component_code
20210 ,l_component_type_code
20211 ,l_component_appl_id
20212 ,l_amb_context_code
20213 ,l_entity_code
20214 ,l_event_class_code
20215 )
20216 ,p_token_3 => 'OWNER'
20217 ,p_value_3 => xla_lookups_pkg.get_meaning(
20218 p_lookup_type => 'XLA_OWNER_TYPE'
20219 ,p_lookup_code => l_component_type_code
20220 )
20221 ,p_token_4 => 'PRODUCT_NAME'
20222 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20223 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20224 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20225 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20226 ,p_ae_header_id => NULL
20227 );
20228
20229 IF (C_LEVEL_ERROR>= g_log_level) THEN
20230 trace
20231 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20232 ,p_level => C_LEVEL_ERROR
20233 ,p_module => l_log_module);
20234 END IF;
20235 END IF;
20236 END IF;
20237 --
20238 --
20239 ------------------------------------------------------------------------------------------------
20240 -- 4219869 Business Flow
20241 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20242 -- Prior Entry. Currently, the following code is always generated.
20243 ------------------------------------------------------------------------------------------------
20244 XLA_AE_LINES_PKG.ValidateCurrentLine;
20245
20246 ------------------------------------------------------------------------------------
20247 -- 4219869 Business Flow
20248 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20249 ------------------------------------------------------------------------------------
20250 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20251
20252 ----------------------------------------------------------------------------------
20253 -- 4219869 Business Flow
20254 -- Update journal entry status -- Need to generate this within IF <condition>
20255 ----------------------------------------------------------------------------------
20256 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20257 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20258 ,p_balance_type_code => l_balance_type_code
20259 );
20260
20261 -------------------------------------------------------------------------------------------
20262 -- 4262811 - Generate the Accrual Reversal lines
20263 -------------------------------------------------------------------------------------------
20264 BEGIN
20265 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20266 (g_array_event(p_event_id).array_value_num('header_index'));
20267 IF l_acc_rev_flag IS NULL THEN
20268 l_acc_rev_flag := 'N';
20269 END IF;
20270 EXCEPTION
20271 WHEN OTHERS THEN
20272 l_acc_rev_flag := 'N';
20273 END;
20274 --
20275 IF (l_acc_rev_flag = 'Y') THEN
20276
20277 -- 4645092 ------------------------------------------------------------------------------
20278 -- To allow MPA report to determine if it should generate report process
20279 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20280 ------------------------------------------------------------------------------------------
20281
20282 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20283 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20284
20285 --
20286 -- Update the line information that should be overwritten
20287 --
20291
20288 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20289 p_header_num => 1);
20290 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20292 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20293
20294 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20295 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20296 END IF;
20297
20298 --
20299 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20300 --
20301 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20302 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20303 ELSE
20304 ---------------------------------------------------------------------------------------------------
20305 -- 4262811a Switch Sign
20306 ---------------------------------------------------------------------------------------------------
20307 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20308 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20309 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20310 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20311 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20312 -- 5132302
20313 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20314 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20315
20316 END IF;
20317
20318 -- 4955764
20319 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20320 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20321
20322
20323 XLA_AE_LINES_PKG.ValidateCurrentLine;
20324 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20325
20326 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20327 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20328 ,p_balance_type_code => l_balance_type_code);
20329
20330 END IF;
20331
20332 -----------------------------------------------------------------------------------------
20333 -- 4262811 Multiperiod Accounting
20334 -----------------------------------------------------------------------------------------
20335 -- No MPA option is assigned.
20336
20337
20338 END IF;
20339 --
20340
20341 --
20342 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20343 trace
20344 (p_msg => 'END of AcctLineType_50'
20345 ,p_level => C_LEVEL_PROCEDURE
20346 ,p_module => l_log_module);
20347 END IF;
20348 --
20349 EXCEPTION
20350 WHEN xla_exceptions_pkg.application_exception THEN
20351 RAISE;
20352 WHEN OTHERS THEN
20353 xla_exceptions_pkg.raise_message
20354 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_50');
20355 END AcctLineType_50;
20356 --
20357
20358 ---------------------------------------
20359 --
20360 -- PRIVATE FUNCTION
20361 -- AcctLineType_51
20362 --
20363 ---------------------------------------
20364 PROCEDURE AcctLineType_51 (
20365 p_application_id IN NUMBER
20366 ,p_event_id IN NUMBER
20367 ,p_calculate_acctd_flag IN VARCHAR2
20368 ,p_calculate_g_l_flag IN VARCHAR2
20369 ,p_actual_flag IN OUT VARCHAR2
20370 ,p_balance_type_code OUT VARCHAR2
20371 ,p_gain_or_loss_ref OUT VARCHAR2
20372
20373 --Cost CCID
20374 , p_source_3 IN NUMBER
20375 --Allow Account Override Flag
20376 , p_source_4 IN VARCHAR2
20377 --Adjustment Cost CCID
20378 , p_source_5 IN NUMBER
20379 --Cost Clearing CCID
20380 , p_source_6 IN NUMBER
20381 --Reversing Line Flag
20382 , p_source_22 IN VARCHAR2
20383 --Actual Upgrade Credit Accounting Class
20384 , p_source_23 IN VARCHAR2
20385 --Entered Raw Cost
20386 , p_source_24 IN NUMBER
20387 --Entered Currency Code
20388 , p_source_25 IN VARCHAR2
20389 --Accounted Raw Cost
20390 , p_source_26 IN NUMBER
20391 --Exchange Rate Date
20392 , p_source_27 IN DATE
20393 --Exchange Rate
20394 , p_source_28 IN NUMBER
20395 --Exchange Rate Type
20396 , p_source_29 IN VARCHAR2
20397 --Actual Upgrade Debit Accounting Class
20398 , p_source_30 IN VARCHAR2
20399 --Use Actuals Upgrade Attributes Flag
20400 , p_source_31 IN VARCHAR2
20401 --Expenditure Item ID
20402 , p_source_32 IN NUMBER
20403 --Cost Distribution Line Number
20404 , p_source_33 IN NUMBER
20405 --Line Type
20406 , p_source_34 IN VARCHAR2
20407 , p_source_34_meaning IN VARCHAR2
20408 --Reversed Line Number
20409 , p_source_35 IN NUMBER
20410 )
20411 IS
20412
20413 l_component_type VARCHAR2(80);
20414 l_component_code VARCHAR2(30);
20415 l_component_type_code VARCHAR2(1);
20416 l_component_appl_id INTEGER;
20417 l_amb_context_code VARCHAR2(30);
20418 l_entity_code VARCHAR2(30);
20419 l_event_class_code VARCHAR2(30);
20420 l_ae_header_id NUMBER;
20421 l_event_type_code VARCHAR2(30);
20425 -- adr variables
20422 l_line_definition_code VARCHAR2(30);
20423 l_line_definition_owner_code VARCHAR2(1);
20424 --
20426 l_segment VARCHAR2(30);
20427 l_ccid NUMBER;
20428 l_adr_transaction_coa_id NUMBER;
20429 l_adr_accounting_coa_id NUMBER;
20430 l_adr_flexfield_segment_code VARCHAR2(30);
20431 l_adr_flex_value_set_id NUMBER;
20432 l_adr_value_type_code VARCHAR2(30);
20433 l_adr_value_combination_id NUMBER;
20434 l_adr_value_segment_code VARCHAR2(30);
20435
20436 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20437 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20438 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20439 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20440
20441 -- 4262811 Variables ------------------------------------------------------------------------------------------
20442 l_entered_amt_idx NUMBER;
20443 l_accted_amt_idx NUMBER;
20444 l_acc_rev_flag VARCHAR2(1);
20445 l_accrual_line_num NUMBER;
20446 l_tmp_amt NUMBER;
20447 l_acc_rev_natural_side_code VARCHAR2(1);
20448
20449 l_num_entries NUMBER;
20450 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20451 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20452 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20453 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20454 l_recog_line_1 NUMBER;
20455 l_recog_line_2 NUMBER;
20456
20457 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20458 l_bflow_applied_to_amt NUMBER; -- 5132302
20459 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20460
20461 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20462
20463 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20464 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20465
20466 ---------------------------------------------------------------------------------------------------------------
20467
20468
20469 --
20470 -- bulk performance
20471 --
20472 l_balance_type_code VARCHAR2(1);
20473 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20474 l_log_module VARCHAR2(240);
20475
20476 --
20477 -- Upgrade strategy
20478 --
20479 l_actual_upg_option VARCHAR2(1);
20480 l_enc_upg_option VARCHAR2(1);
20481
20482 --
20483 BEGIN
20484 --
20485 IF g_log_enabled THEN
20486 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
20487 END IF;
20488 --
20489 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20490
20491 trace
20492 (p_msg => 'BEGIN of AcctLineType_51'
20493 ,p_level => C_LEVEL_PROCEDURE
20494 ,p_module => l_log_module);
20495
20496 END IF;
20497 --
20498 l_component_type := 'AMB_JLT';
20499 l_component_code := 'PA_RAW_COST_ADJ';
20500 l_component_type_code := 'S';
20501 l_component_appl_id := 275;
20502 l_amb_context_code := 'DEFAULT';
20503 l_entity_code := 'EXPENDITURES';
20504 l_event_class_code := 'LABOR_COST_ADJ';
20505 l_event_type_code := 'LABOR_COST_ADJ_ALL';
20506 l_line_definition_owner_code := 'S';
20507 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
20508 --
20509 l_balance_type_code := 'A';
20510 l_segment := NULL;
20511 l_ccid := NULL;
20512 l_adr_transaction_coa_id := NULL;
20513 l_adr_accounting_coa_id := NULL;
20514 l_adr_flexfield_segment_code := NULL;
20515 l_adr_flex_value_set_id := NULL;
20516 l_adr_value_type_code := NULL;
20517 l_adr_value_combination_id := NULL;
20518 l_adr_value_segment_code := NULL;
20519
20520 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
20521 l_bflow_class_code := ''; -- 4219869 Business Flow
20522 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20523 l_budgetary_control_flag := 'N';
20524
20525 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20526 l_bflow_applied_to_amt := NULL; -- 5132302
20527 l_entered_amt_idx := NULL; -- 4262811
20528 l_accted_amt_idx := NULL; -- 4262811
20529 l_acc_rev_flag := NULL; -- 4262811
20530 l_accrual_line_num := NULL; -- 4262811
20531 l_tmp_amt := NULL; -- 4262811
20532 --
20533
20534 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20535 l_balance_type_code <> 'B' THEN
20536
20537 --
20538 XLA_AE_LINES_PKG.SetNewLine;
20539
20540 p_balance_type_code := l_balance_type_code;
20541 -- set the flag so later we will know whether the gain loss line needs to be created
20542
20543 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20544 p_actual_flag :='A';
20545 END IF;
20546
20547 --
20548 -- bulk performance
20549 --
20550 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20551 p_header_num => 0); -- 4262811
20552 --
20553 -- set accounting line options
20554 --
20555 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20556 p_natural_side_code => 'D'
20557 , p_gain_or_loss_flag => 'N'
20558 , p_gl_transfer_mode_code => 'S'
20562 );
20559 , p_acct_entry_type_code => 'A'
20560 , p_switch_side_flag => 'Y'
20561 , p_merge_duplicate_code => 'N'
20563 --
20564 l_acc_rev_natural_side_code := 'C'; -- 4262811
20565 --
20566 --
20567 -- set accounting line type info
20568 --
20569 xla_ae_lines_pkg.SetAcctLineType
20570 (p_component_type => l_component_type
20571 ,p_event_type_code => l_event_type_code
20572 ,p_line_definition_owner_code => l_line_definition_owner_code
20573 ,p_line_definition_code => l_line_definition_code
20574 ,p_accounting_line_code => l_component_code
20575 ,p_accounting_line_type_code => l_component_type_code
20576 ,p_accounting_line_appl_id => l_component_appl_id
20577 ,p_amb_context_code => l_amb_context_code
20578 ,p_entity_code => l_entity_code
20579 ,p_event_class_code => l_event_class_code);
20580 --
20581 -- set accounting class
20582 --
20583 xla_ae_lines_pkg.SetAcctClass(
20584 p_accounting_class_code => 'COST'
20585 , p_ae_header_id => l_ae_header_id
20586 );
20587
20588 --
20589 -- set rounding class
20590 --
20591 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20592 'COST';
20593
20594 --
20595 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20596 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20597 --
20598 -- bulk performance
20599 --
20600 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20601
20602 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20603 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20604
20605 -- 4955764
20606 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20607 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20608
20609 -- 4458381 Public Sector Enh
20610
20611 --
20612 -- set accounting attributes for the line type
20613 --
20614 l_entered_amt_idx := 22;
20615 l_accted_amt_idx := 27;
20616 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20617 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20618 l_rec_acct_attrs.array_char_value(1) := p_source_22;
20619 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
20620 l_rec_acct_attrs.array_char_value(2) := p_source_23;
20621 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
20622 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
20623 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
20624 l_rec_acct_attrs.array_num_value(4) := p_source_24;
20625 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
20626 l_rec_acct_attrs.array_char_value(5) := p_source_25;
20627 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
20628 l_rec_acct_attrs.array_num_value(6) := p_source_26;
20629 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
20630 l_rec_acct_attrs.array_date_value(7) := p_source_27;
20631 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
20632 l_rec_acct_attrs.array_num_value(8) := p_source_28;
20633 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
20634 l_rec_acct_attrs.array_char_value(9) := p_source_29;
20635 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
20636 l_rec_acct_attrs.array_char_value(10) := p_source_30;
20637 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
20638 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
20639 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
20640 l_rec_acct_attrs.array_num_value(12) := p_source_24;
20641 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
20642 l_rec_acct_attrs.array_char_value(13) := p_source_25;
20643 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
20644 l_rec_acct_attrs.array_num_value(14) := p_source_26;
20645 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
20646 l_rec_acct_attrs.array_date_value(15) := p_source_27;
20647 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
20648 l_rec_acct_attrs.array_num_value(16) := p_source_28;
20649 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
20650 l_rec_acct_attrs.array_char_value(17) := p_source_29;
20651 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
20652 l_rec_acct_attrs.array_char_value(18) := p_source_31;
20653 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
20654 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
20655 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
20656 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
20657 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
20658 l_rec_acct_attrs.array_char_value(21) := p_source_34;
20659 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
20660 l_rec_acct_attrs.array_num_value(22) := p_source_24;
20661 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
20662 l_rec_acct_attrs.array_char_value(23) := p_source_25;
20663 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
20664 l_rec_acct_attrs.array_date_value(24) := p_source_27;
20665 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
20666 l_rec_acct_attrs.array_num_value(25) := p_source_28;
20667 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
20671 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
20668 l_rec_acct_attrs.array_char_value(26) := p_source_29;
20669 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
20670 l_rec_acct_attrs.array_num_value(27) := p_source_26;
20672 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
20673 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
20674 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
20675 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
20676 l_rec_acct_attrs.array_char_value(30) := p_source_34;
20677
20678 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20679 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20680
20681 ---------------------------------------------------------------------------------------------------------------
20682 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20683 ---------------------------------------------------------------------------------------------------------------
20684 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20685
20686 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20687 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20688
20689 IF xla_accounting_cache_pkg.GetValueChar
20690 (p_source_code => 'LEDGER_CATEGORY_CODE'
20691 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20692 AND l_bflow_method_code = 'PRIOR_ENTRY'
20693 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20694 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20695 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20696 )
20697 THEN
20698 xla_ae_lines_pkg.BflowUpgEntry
20699 (p_business_method_code => l_bflow_method_code
20700 ,p_business_class_code => l_bflow_class_code
20701 ,p_balance_type => l_balance_type_code);
20702 ELSE
20703 NULL;
20704 -- No business flow processing for business flow method of NONE.
20705 END IF;
20706
20707 --
20708 -- call analytical criteria
20709 --
20710
20711 --
20712 -- call description
20713 --
20714 -- No description or it is inherited.
20715 --
20716 -- call ADRs
20717 -- Bug 4922099
20718 --
20719 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20720 (NVL(l_actual_upg_option, 'N') = 'O') OR
20721 (NVL(l_enc_upg_option, 'N') = 'O')
20722 )
20723 THEN
20724 NULL;
20725 --
20726 --
20727
20728 l_ccid := AcctDerRule_4(
20729 p_application_id => p_application_id
20730 , p_ae_header_id => l_ae_header_id
20731 , p_source_4 => p_source_4
20732 , p_source_5 => p_source_5
20733 , x_transaction_coa_id => l_adr_transaction_coa_id
20734 , x_accounting_coa_id => l_adr_accounting_coa_id
20735 , x_value_type_code => l_adr_value_type_code
20736 , p_side => 'NA'
20737 );
20738
20739 xla_ae_lines_pkg.set_ccid(
20740 p_code_combination_id => l_ccid
20741 , p_value_type_code => l_adr_value_type_code
20742 , p_transaction_coa_id => l_adr_transaction_coa_id
20743 , p_accounting_coa_id => l_adr_accounting_coa_id
20744 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
20745 , p_adr_type_code => 'S'
20746 , p_component_type => l_component_type
20747 , p_component_code => l_component_code
20748 , p_component_type_code => l_component_type_code
20749 , p_component_appl_id => l_component_appl_id
20750 , p_amb_context_code => l_amb_context_code
20751 , p_side => 'NA'
20752 );
20753
20754
20755 --
20756 --
20757 END IF;
20758 --
20759 -- Bug 4922099
20760 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20761 (NVL(l_enc_upg_option, 'N') = 'O')
20762 ) AND
20763 (l_bflow_method_code = 'PRIOR_ENTRY')
20764 )
20765 THEN
20766 IF
20767 --
20768 1 = 2
20769 --
20770 THEN
20771 xla_accounting_err_pkg.build_message
20772 (p_appli_s_name => 'XLA'
20773 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20774 ,p_token_1 => 'LINE_NUMBER'
20775 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20776 ,p_token_2 => 'LINE_TYPE_NAME'
20777 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20778 l_component_type
20779 ,l_component_code
20780 ,l_component_type_code
20781 ,l_component_appl_id
20782 ,l_amb_context_code
20783 ,l_entity_code
20784 ,l_event_class_code
20785 )
20786 ,p_token_3 => 'OWNER'
20790 )
20787 ,p_value_3 => xla_lookups_pkg.get_meaning(
20788 p_lookup_type => 'XLA_OWNER_TYPE'
20789 ,p_lookup_code => l_component_type_code
20791 ,p_token_4 => 'PRODUCT_NAME'
20792 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20793 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20794 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20795 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20796 ,p_ae_header_id => NULL
20797 );
20798
20799 IF (C_LEVEL_ERROR>= g_log_level) THEN
20800 trace
20801 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20802 ,p_level => C_LEVEL_ERROR
20803 ,p_module => l_log_module);
20804 END IF;
20805 END IF;
20806 END IF;
20807 --
20808 --
20809 ------------------------------------------------------------------------------------------------
20810 -- 4219869 Business Flow
20811 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20812 -- Prior Entry. Currently, the following code is always generated.
20813 ------------------------------------------------------------------------------------------------
20814 XLA_AE_LINES_PKG.ValidateCurrentLine;
20815
20816 ------------------------------------------------------------------------------------
20817 -- 4219869 Business Flow
20818 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20819 ------------------------------------------------------------------------------------
20820 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20821
20822 ----------------------------------------------------------------------------------
20823 -- 4219869 Business Flow
20824 -- Update journal entry status -- Need to generate this within IF <condition>
20825 ----------------------------------------------------------------------------------
20826 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20827 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20828 ,p_balance_type_code => l_balance_type_code
20829 );
20830
20831 -------------------------------------------------------------------------------------------
20832 -- 4262811 - Generate the Accrual Reversal lines
20833 -------------------------------------------------------------------------------------------
20834 BEGIN
20835 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20836 (g_array_event(p_event_id).array_value_num('header_index'));
20837 IF l_acc_rev_flag IS NULL THEN
20838 l_acc_rev_flag := 'N';
20839 END IF;
20840 EXCEPTION
20841 WHEN OTHERS THEN
20842 l_acc_rev_flag := 'N';
20843 END;
20844 --
20845 IF (l_acc_rev_flag = 'Y') THEN
20846
20847 -- 4645092 ------------------------------------------------------------------------------
20848 -- To allow MPA report to determine if it should generate report process
20849 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20850 ------------------------------------------------------------------------------------------
20851
20852 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20853 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20854
20855 --
20856 -- Update the line information that should be overwritten
20857 --
20858 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20859 p_header_num => 1);
20860 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20861
20862 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20863
20864 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20865 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20866 END IF;
20867
20868 --
20869 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20870 --
20871 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20872 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20873 ELSE
20874 ---------------------------------------------------------------------------------------------------
20875 -- 4262811a Switch Sign
20876 ---------------------------------------------------------------------------------------------------
20877 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20878 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20879 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20880 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20881 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20882 -- 5132302
20883 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20884 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20885
20889 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20886 END IF;
20887
20888 -- 4955764
20890 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20891
20892
20893 XLA_AE_LINES_PKG.ValidateCurrentLine;
20894 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20895
20896 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20897 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20898 ,p_balance_type_code => l_balance_type_code);
20899
20900 END IF;
20901
20902 -----------------------------------------------------------------------------------------
20903 -- 4262811 Multiperiod Accounting
20904 -----------------------------------------------------------------------------------------
20905 -- No MPA option is assigned.
20906
20907
20908 END IF;
20909 --
20910
20911 --
20912 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20913 trace
20914 (p_msg => 'END of AcctLineType_51'
20915 ,p_level => C_LEVEL_PROCEDURE
20916 ,p_module => l_log_module);
20917 END IF;
20918 --
20919 EXCEPTION
20920 WHEN xla_exceptions_pkg.application_exception THEN
20921 RAISE;
20922 WHEN OTHERS THEN
20923 xla_exceptions_pkg.raise_message
20924 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_51');
20925 END AcctLineType_51;
20926 --
20927
20928 ---------------------------------------
20929 --
20930 -- PRIVATE FUNCTION
20931 -- AcctLineType_52
20932 --
20933 ---------------------------------------
20934 PROCEDURE AcctLineType_52 (
20935 p_application_id IN NUMBER
20936 ,p_event_id IN NUMBER
20937 ,p_calculate_acctd_flag IN VARCHAR2
20938 ,p_calculate_g_l_flag IN VARCHAR2
20939 ,p_actual_flag IN OUT VARCHAR2
20940 ,p_balance_type_code OUT VARCHAR2
20941 ,p_gain_or_loss_ref OUT VARCHAR2
20942
20943 --Cost CCID
20944 , p_source_3 IN NUMBER
20945 --Allow Account Override Flag
20946 , p_source_4 IN VARCHAR2
20947 --Adjustment Cost CCID
20948 , p_source_5 IN NUMBER
20949 --Cost Clearing CCID
20950 , p_source_6 IN NUMBER
20951 --Reversing Line Flag
20952 , p_source_22 IN VARCHAR2
20953 --Actual Upgrade Credit Accounting Class
20954 , p_source_23 IN VARCHAR2
20955 --Entered Raw Cost
20956 , p_source_24 IN NUMBER
20957 --Entered Currency Code
20958 , p_source_25 IN VARCHAR2
20959 --Accounted Raw Cost
20960 , p_source_26 IN NUMBER
20961 --Exchange Rate Date
20962 , p_source_27 IN DATE
20963 --Exchange Rate
20964 , p_source_28 IN NUMBER
20965 --Exchange Rate Type
20966 , p_source_29 IN VARCHAR2
20967 --Actual Upgrade Debit Accounting Class
20968 , p_source_30 IN VARCHAR2
20969 --Use Actuals Upgrade Attributes Flag
20970 , p_source_31 IN VARCHAR2
20971 --Expenditure Item ID
20972 , p_source_32 IN NUMBER
20973 --Cost Distribution Line Number
20974 , p_source_33 IN NUMBER
20975 --Line Type
20976 , p_source_34 IN VARCHAR2
20977 , p_source_34_meaning IN VARCHAR2
20978 --Reversed Line Number
20979 , p_source_35 IN NUMBER
20980 )
20981 IS
20982
20983 l_component_type VARCHAR2(80);
20984 l_component_code VARCHAR2(30);
20985 l_component_type_code VARCHAR2(1);
20986 l_component_appl_id INTEGER;
20987 l_amb_context_code VARCHAR2(30);
20988 l_entity_code VARCHAR2(30);
20989 l_event_class_code VARCHAR2(30);
20990 l_ae_header_id NUMBER;
20991 l_event_type_code VARCHAR2(30);
20992 l_line_definition_code VARCHAR2(30);
20993 l_line_definition_owner_code VARCHAR2(1);
20994 --
20995 -- adr variables
20996 l_segment VARCHAR2(30);
20997 l_ccid NUMBER;
20998 l_adr_transaction_coa_id NUMBER;
20999 l_adr_accounting_coa_id NUMBER;
21000 l_adr_flexfield_segment_code VARCHAR2(30);
21001 l_adr_flex_value_set_id NUMBER;
21002 l_adr_value_type_code VARCHAR2(30);
21003 l_adr_value_combination_id NUMBER;
21004 l_adr_value_segment_code VARCHAR2(30);
21005
21006 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21007 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21008 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21009 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21010
21011 -- 4262811 Variables ------------------------------------------------------------------------------------------
21012 l_entered_amt_idx NUMBER;
21013 l_accted_amt_idx NUMBER;
21014 l_acc_rev_flag VARCHAR2(1);
21015 l_accrual_line_num NUMBER;
21016 l_tmp_amt NUMBER;
21017 l_acc_rev_natural_side_code VARCHAR2(1);
21018
21019 l_num_entries NUMBER;
21020 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21021 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21022 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21023 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21024 l_recog_line_1 NUMBER;
21025 l_recog_line_2 NUMBER;
21026
21027 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21028 l_bflow_applied_to_amt NUMBER; -- 5132302
21029 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21030
21034 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21031 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21032
21033 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21035
21036 ---------------------------------------------------------------------------------------------------------------
21037
21038
21039 --
21040 -- bulk performance
21041 --
21042 l_balance_type_code VARCHAR2(1);
21043 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21044 l_log_module VARCHAR2(240);
21045
21046 --
21047 -- Upgrade strategy
21048 --
21049 l_actual_upg_option VARCHAR2(1);
21050 l_enc_upg_option VARCHAR2(1);
21051
21052 --
21053 BEGIN
21054 --
21055 IF g_log_enabled THEN
21056 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
21057 END IF;
21058 --
21059 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21060
21061 trace
21062 (p_msg => 'BEGIN of AcctLineType_52'
21063 ,p_level => C_LEVEL_PROCEDURE
21064 ,p_module => l_log_module);
21065
21066 END IF;
21067 --
21068 l_component_type := 'AMB_JLT';
21069 l_component_code := 'PA_RAW_COST_ADJ';
21070 l_component_type_code := 'S';
21071 l_component_appl_id := 275;
21072 l_amb_context_code := 'DEFAULT';
21073 l_entity_code := 'EXPENDITURES';
21074 l_event_class_code := 'WIP_COST_ADJ';
21075 l_event_type_code := 'WIP_COST_ADJ_ALL';
21076 l_line_definition_owner_code := 'S';
21077 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
21078 --
21079 l_balance_type_code := 'A';
21080 l_segment := NULL;
21081 l_ccid := NULL;
21082 l_adr_transaction_coa_id := NULL;
21083 l_adr_accounting_coa_id := NULL;
21084 l_adr_flexfield_segment_code := NULL;
21085 l_adr_flex_value_set_id := NULL;
21086 l_adr_value_type_code := NULL;
21087 l_adr_value_combination_id := NULL;
21088 l_adr_value_segment_code := NULL;
21089
21090 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21091 l_bflow_class_code := ''; -- 4219869 Business Flow
21092 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21093 l_budgetary_control_flag := 'N';
21094
21095 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21096 l_bflow_applied_to_amt := NULL; -- 5132302
21097 l_entered_amt_idx := NULL; -- 4262811
21098 l_accted_amt_idx := NULL; -- 4262811
21099 l_acc_rev_flag := NULL; -- 4262811
21100 l_accrual_line_num := NULL; -- 4262811
21101 l_tmp_amt := NULL; -- 4262811
21102 --
21103
21104 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21105 l_balance_type_code <> 'B' THEN
21106
21107 --
21108 XLA_AE_LINES_PKG.SetNewLine;
21109
21110 p_balance_type_code := l_balance_type_code;
21111 -- set the flag so later we will know whether the gain loss line needs to be created
21112
21113 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21114 p_actual_flag :='A';
21115 END IF;
21116
21117 --
21118 -- bulk performance
21119 --
21120 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21121 p_header_num => 0); -- 4262811
21122 --
21123 -- set accounting line options
21124 --
21125 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21126 p_natural_side_code => 'D'
21127 , p_gain_or_loss_flag => 'N'
21128 , p_gl_transfer_mode_code => 'S'
21129 , p_acct_entry_type_code => 'A'
21130 , p_switch_side_flag => 'Y'
21131 , p_merge_duplicate_code => 'N'
21132 );
21133 --
21134 l_acc_rev_natural_side_code := 'C'; -- 4262811
21135 --
21136 --
21137 -- set accounting line type info
21138 --
21139 xla_ae_lines_pkg.SetAcctLineType
21140 (p_component_type => l_component_type
21141 ,p_event_type_code => l_event_type_code
21142 ,p_line_definition_owner_code => l_line_definition_owner_code
21143 ,p_line_definition_code => l_line_definition_code
21144 ,p_accounting_line_code => l_component_code
21145 ,p_accounting_line_type_code => l_component_type_code
21146 ,p_accounting_line_appl_id => l_component_appl_id
21147 ,p_amb_context_code => l_amb_context_code
21148 ,p_entity_code => l_entity_code
21149 ,p_event_class_code => l_event_class_code);
21150 --
21151 -- set accounting class
21152 --
21153 xla_ae_lines_pkg.SetAcctClass(
21154 p_accounting_class_code => 'COST'
21155 , p_ae_header_id => l_ae_header_id
21156 );
21157
21158 --
21159 -- set rounding class
21160 --
21161 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21162 'COST';
21163
21164 --
21165 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21166 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21167 --
21168 -- bulk performance
21169 --
21170 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21171
21172 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21176 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21173 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21174
21175 -- 4955764
21177 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21178
21179 -- 4458381 Public Sector Enh
21180
21181 --
21182 -- set accounting attributes for the line type
21183 --
21184 l_entered_amt_idx := 22;
21185 l_accted_amt_idx := 27;
21186 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21187 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21188 l_rec_acct_attrs.array_char_value(1) := p_source_22;
21189 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
21190 l_rec_acct_attrs.array_char_value(2) := p_source_23;
21191 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
21192 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
21193 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
21194 l_rec_acct_attrs.array_num_value(4) := p_source_24;
21195 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
21196 l_rec_acct_attrs.array_char_value(5) := p_source_25;
21197 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
21198 l_rec_acct_attrs.array_num_value(6) := p_source_26;
21199 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
21200 l_rec_acct_attrs.array_date_value(7) := p_source_27;
21201 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
21202 l_rec_acct_attrs.array_num_value(8) := p_source_28;
21203 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
21204 l_rec_acct_attrs.array_char_value(9) := p_source_29;
21205 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
21206 l_rec_acct_attrs.array_char_value(10) := p_source_30;
21207 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
21208 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
21209 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
21210 l_rec_acct_attrs.array_num_value(12) := p_source_24;
21211 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
21212 l_rec_acct_attrs.array_char_value(13) := p_source_25;
21213 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
21214 l_rec_acct_attrs.array_num_value(14) := p_source_26;
21215 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
21216 l_rec_acct_attrs.array_date_value(15) := p_source_27;
21217 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
21218 l_rec_acct_attrs.array_num_value(16) := p_source_28;
21219 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
21220 l_rec_acct_attrs.array_char_value(17) := p_source_29;
21221 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
21222 l_rec_acct_attrs.array_char_value(18) := p_source_31;
21223 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
21224 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
21225 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
21226 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
21227 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
21228 l_rec_acct_attrs.array_char_value(21) := p_source_34;
21229 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
21230 l_rec_acct_attrs.array_num_value(22) := p_source_24;
21231 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
21232 l_rec_acct_attrs.array_char_value(23) := p_source_25;
21233 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
21234 l_rec_acct_attrs.array_date_value(24) := p_source_27;
21235 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
21236 l_rec_acct_attrs.array_num_value(25) := p_source_28;
21237 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
21238 l_rec_acct_attrs.array_char_value(26) := p_source_29;
21239 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
21240 l_rec_acct_attrs.array_num_value(27) := p_source_26;
21241 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
21242 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
21243 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
21244 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
21245 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
21246 l_rec_acct_attrs.array_char_value(30) := p_source_34;
21247
21248 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21249 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21250
21251 ---------------------------------------------------------------------------------------------------------------
21252 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21253 ---------------------------------------------------------------------------------------------------------------
21254 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21255
21256 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21257 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21258
21259 IF xla_accounting_cache_pkg.GetValueChar
21260 (p_source_code => 'LEDGER_CATEGORY_CODE'
21261 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21262 AND l_bflow_method_code = 'PRIOR_ENTRY'
21263 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21264 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21265 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21266 )
21267 THEN
21271 ,p_balance_type => l_balance_type_code);
21268 xla_ae_lines_pkg.BflowUpgEntry
21269 (p_business_method_code => l_bflow_method_code
21270 ,p_business_class_code => l_bflow_class_code
21272 ELSE
21273 NULL;
21274 -- No business flow processing for business flow method of NONE.
21275 END IF;
21276
21277 --
21278 -- call analytical criteria
21279 --
21280
21281 --
21282 -- call description
21283 --
21284 -- No description or it is inherited.
21285 --
21286 -- call ADRs
21287 -- Bug 4922099
21288 --
21289 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21290 (NVL(l_actual_upg_option, 'N') = 'O') OR
21291 (NVL(l_enc_upg_option, 'N') = 'O')
21292 )
21293 THEN
21294 NULL;
21295 --
21296 --
21297
21298 l_ccid := AcctDerRule_4(
21299 p_application_id => p_application_id
21300 , p_ae_header_id => l_ae_header_id
21301 , p_source_4 => p_source_4
21302 , p_source_5 => p_source_5
21303 , x_transaction_coa_id => l_adr_transaction_coa_id
21304 , x_accounting_coa_id => l_adr_accounting_coa_id
21305 , x_value_type_code => l_adr_value_type_code
21306 , p_side => 'NA'
21307 );
21308
21309 xla_ae_lines_pkg.set_ccid(
21310 p_code_combination_id => l_ccid
21311 , p_value_type_code => l_adr_value_type_code
21312 , p_transaction_coa_id => l_adr_transaction_coa_id
21313 , p_accounting_coa_id => l_adr_accounting_coa_id
21314 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
21315 , p_adr_type_code => 'S'
21316 , p_component_type => l_component_type
21317 , p_component_code => l_component_code
21318 , p_component_type_code => l_component_type_code
21319 , p_component_appl_id => l_component_appl_id
21320 , p_amb_context_code => l_amb_context_code
21321 , p_side => 'NA'
21322 );
21323
21324
21325 --
21326 --
21327 END IF;
21328 --
21329 -- Bug 4922099
21330 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21331 (NVL(l_enc_upg_option, 'N') = 'O')
21332 ) AND
21333 (l_bflow_method_code = 'PRIOR_ENTRY')
21334 )
21335 THEN
21336 IF
21337 --
21338 1 = 2
21339 --
21340 THEN
21341 xla_accounting_err_pkg.build_message
21342 (p_appli_s_name => 'XLA'
21343 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21344 ,p_token_1 => 'LINE_NUMBER'
21345 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21346 ,p_token_2 => 'LINE_TYPE_NAME'
21347 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21348 l_component_type
21349 ,l_component_code
21350 ,l_component_type_code
21351 ,l_component_appl_id
21352 ,l_amb_context_code
21353 ,l_entity_code
21354 ,l_event_class_code
21355 )
21356 ,p_token_3 => 'OWNER'
21357 ,p_value_3 => xla_lookups_pkg.get_meaning(
21358 p_lookup_type => 'XLA_OWNER_TYPE'
21359 ,p_lookup_code => l_component_type_code
21360 )
21361 ,p_token_4 => 'PRODUCT_NAME'
21362 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21363 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21364 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21365 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21366 ,p_ae_header_id => NULL
21367 );
21368
21369 IF (C_LEVEL_ERROR>= g_log_level) THEN
21370 trace
21371 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21372 ,p_level => C_LEVEL_ERROR
21373 ,p_module => l_log_module);
21374 END IF;
21375 END IF;
21376 END IF;
21377 --
21378 --
21379 ------------------------------------------------------------------------------------------------
21380 -- 4219869 Business Flow
21381 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21382 -- Prior Entry. Currently, the following code is always generated.
21383 ------------------------------------------------------------------------------------------------
21384 XLA_AE_LINES_PKG.ValidateCurrentLine;
21385
21386 ------------------------------------------------------------------------------------
21390 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21387 -- 4219869 Business Flow
21388 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21389 ------------------------------------------------------------------------------------
21391
21392 ----------------------------------------------------------------------------------
21393 -- 4219869 Business Flow
21394 -- Update journal entry status -- Need to generate this within IF <condition>
21395 ----------------------------------------------------------------------------------
21396 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21397 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21398 ,p_balance_type_code => l_balance_type_code
21399 );
21400
21401 -------------------------------------------------------------------------------------------
21402 -- 4262811 - Generate the Accrual Reversal lines
21403 -------------------------------------------------------------------------------------------
21404 BEGIN
21405 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21406 (g_array_event(p_event_id).array_value_num('header_index'));
21407 IF l_acc_rev_flag IS NULL THEN
21408 l_acc_rev_flag := 'N';
21409 END IF;
21410 EXCEPTION
21411 WHEN OTHERS THEN
21412 l_acc_rev_flag := 'N';
21413 END;
21414 --
21415 IF (l_acc_rev_flag = 'Y') THEN
21416
21417 -- 4645092 ------------------------------------------------------------------------------
21418 -- To allow MPA report to determine if it should generate report process
21419 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21420 ------------------------------------------------------------------------------------------
21421
21422 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21423 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21424
21425 --
21426 -- Update the line information that should be overwritten
21427 --
21428 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21429 p_header_num => 1);
21430 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21431
21432 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21433
21434 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21435 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21436 END IF;
21437
21438 --
21439 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21440 --
21441 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21442 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21443 ELSE
21444 ---------------------------------------------------------------------------------------------------
21445 -- 4262811a Switch Sign
21446 ---------------------------------------------------------------------------------------------------
21447 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21448 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21449 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21450 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21451 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21452 -- 5132302
21453 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21454 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21455
21456 END IF;
21457
21458 -- 4955764
21459 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21460 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21461
21462
21463 XLA_AE_LINES_PKG.ValidateCurrentLine;
21464 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21465
21466 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21467 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21468 ,p_balance_type_code => l_balance_type_code);
21469
21470 END IF;
21471
21472 -----------------------------------------------------------------------------------------
21473 -- 4262811 Multiperiod Accounting
21474 -----------------------------------------------------------------------------------------
21475 -- No MPA option is assigned.
21476
21477
21478 END IF;
21479 --
21480
21481 --
21482 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21483 trace
21484 (p_msg => 'END of AcctLineType_52'
21485 ,p_level => C_LEVEL_PROCEDURE
21486 ,p_module => l_log_module);
21487 END IF;
21488 --
21489 EXCEPTION
21490 WHEN xla_exceptions_pkg.application_exception THEN
21491 RAISE;
21492 WHEN OTHERS THEN
21493 xla_exceptions_pkg.raise_message
21494 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_52');
21495 END AcctLineType_52;
21496 --
21497
21498 ---------------------------------------
21499 --
21500 -- PRIVATE FUNCTION
21501 -- AcctLineType_53
21502 --
21503 ---------------------------------------
21504 PROCEDURE AcctLineType_53 (
21505 p_application_id IN NUMBER
21506 ,p_event_id IN NUMBER
21507 ,p_calculate_acctd_flag IN VARCHAR2
21511 ,p_gain_or_loss_ref OUT VARCHAR2
21508 ,p_calculate_g_l_flag IN VARCHAR2
21509 ,p_actual_flag IN OUT VARCHAR2
21510 ,p_balance_type_code OUT VARCHAR2
21512
21513 --Cost CCID
21514 , p_source_3 IN NUMBER
21515 --Allow Account Override Flag
21516 , p_source_4 IN VARCHAR2
21517 --Cost Clearing CCID
21518 , p_source_6 IN NUMBER
21519 --Adjustment Cost Clearing CCID
21520 , p_source_7 IN NUMBER
21521 --Reversing Line Flag
21522 , p_source_22 IN VARCHAR2
21523 --Actual Upgrade Credit Accounting Class
21524 , p_source_23 IN VARCHAR2
21525 --Entered Raw Cost
21526 , p_source_24 IN NUMBER
21527 --Entered Currency Code
21528 , p_source_25 IN VARCHAR2
21529 --Accounted Raw Cost
21530 , p_source_26 IN NUMBER
21531 --Exchange Rate Date
21532 , p_source_27 IN DATE
21533 --Exchange Rate
21534 , p_source_28 IN NUMBER
21535 --Exchange Rate Type
21536 , p_source_29 IN VARCHAR2
21537 --Actual Upgrade Debit Accounting Class
21538 , p_source_30 IN VARCHAR2
21539 --Use Actuals Upgrade Attributes Flag
21540 , p_source_31 IN VARCHAR2
21541 --Expenditure Item ID
21542 , p_source_32 IN NUMBER
21543 --Cost Distribution Line Number
21544 , p_source_33 IN NUMBER
21545 --Line Type
21546 , p_source_34 IN VARCHAR2
21547 , p_source_34_meaning IN VARCHAR2
21548 --Reversed Line Number
21549 , p_source_35 IN NUMBER
21550 )
21551 IS
21552
21553 l_component_type VARCHAR2(80);
21554 l_component_code VARCHAR2(30);
21555 l_component_type_code VARCHAR2(1);
21556 l_component_appl_id INTEGER;
21557 l_amb_context_code VARCHAR2(30);
21558 l_entity_code VARCHAR2(30);
21559 l_event_class_code VARCHAR2(30);
21560 l_ae_header_id NUMBER;
21561 l_event_type_code VARCHAR2(30);
21562 l_line_definition_code VARCHAR2(30);
21563 l_line_definition_owner_code VARCHAR2(1);
21564 --
21565 -- adr variables
21566 l_segment VARCHAR2(30);
21567 l_ccid NUMBER;
21568 l_adr_transaction_coa_id NUMBER;
21569 l_adr_accounting_coa_id NUMBER;
21570 l_adr_flexfield_segment_code VARCHAR2(30);
21571 l_adr_flex_value_set_id NUMBER;
21572 l_adr_value_type_code VARCHAR2(30);
21573 l_adr_value_combination_id NUMBER;
21574 l_adr_value_segment_code VARCHAR2(30);
21575
21576 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21577 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21578 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21579 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21580
21581 -- 4262811 Variables ------------------------------------------------------------------------------------------
21582 l_entered_amt_idx NUMBER;
21583 l_accted_amt_idx NUMBER;
21584 l_acc_rev_flag VARCHAR2(1);
21585 l_accrual_line_num NUMBER;
21586 l_tmp_amt NUMBER;
21587 l_acc_rev_natural_side_code VARCHAR2(1);
21588
21589 l_num_entries NUMBER;
21590 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21591 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21592 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21593 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21594 l_recog_line_1 NUMBER;
21595 l_recog_line_2 NUMBER;
21596
21597 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21598 l_bflow_applied_to_amt NUMBER; -- 5132302
21599 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21600
21601 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21602
21603 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21604 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21605
21606 ---------------------------------------------------------------------------------------------------------------
21607
21608
21609 --
21610 -- bulk performance
21611 --
21612 l_balance_type_code VARCHAR2(1);
21613 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21614 l_log_module VARCHAR2(240);
21615
21616 --
21617 -- Upgrade strategy
21618 --
21619 l_actual_upg_option VARCHAR2(1);
21620 l_enc_upg_option VARCHAR2(1);
21621
21622 --
21623 BEGIN
21624 --
21625 IF g_log_enabled THEN
21626 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
21627 END IF;
21628 --
21629 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21630
21631 trace
21632 (p_msg => 'BEGIN of AcctLineType_53'
21633 ,p_level => C_LEVEL_PROCEDURE
21634 ,p_module => l_log_module);
21635
21636 END IF;
21637 --
21638 l_component_type := 'AMB_JLT';
21639 l_component_code := 'PA_RAW_COST_CLEARING';
21640 l_component_type_code := 'S';
21641 l_component_appl_id := 275;
21642 l_amb_context_code := 'DEFAULT';
21643 l_entity_code := 'EXPENDITURES';
21644 l_event_class_code := 'WIP_COST';
21645 l_event_type_code := 'WIP_COST_ALL';
21646 l_line_definition_owner_code := 'S';
21647 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
21648 --
21649 l_balance_type_code := 'A';
21650 l_segment := NULL;
21654 l_adr_flexfield_segment_code := NULL;
21651 l_ccid := NULL;
21652 l_adr_transaction_coa_id := NULL;
21653 l_adr_accounting_coa_id := NULL;
21655 l_adr_flex_value_set_id := NULL;
21656 l_adr_value_type_code := NULL;
21657 l_adr_value_combination_id := NULL;
21658 l_adr_value_segment_code := NULL;
21659
21660 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21661 l_bflow_class_code := ''; -- 4219869 Business Flow
21662 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21663 l_budgetary_control_flag := 'N';
21664
21665 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21666 l_bflow_applied_to_amt := NULL; -- 5132302
21667 l_entered_amt_idx := NULL; -- 4262811
21668 l_accted_amt_idx := NULL; -- 4262811
21669 l_acc_rev_flag := NULL; -- 4262811
21670 l_accrual_line_num := NULL; -- 4262811
21671 l_tmp_amt := NULL; -- 4262811
21672 --
21673
21674 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21675 l_balance_type_code <> 'B' THEN
21676
21677 --
21678 XLA_AE_LINES_PKG.SetNewLine;
21679
21680 p_balance_type_code := l_balance_type_code;
21681 -- set the flag so later we will know whether the gain loss line needs to be created
21682
21683 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21684 p_actual_flag :='A';
21685 END IF;
21686
21687 --
21688 -- bulk performance
21689 --
21690 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21691 p_header_num => 0); -- 4262811
21692 --
21693 -- set accounting line options
21694 --
21695 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21696 p_natural_side_code => 'C'
21697 , p_gain_or_loss_flag => 'N'
21698 , p_gl_transfer_mode_code => 'S'
21699 , p_acct_entry_type_code => 'A'
21700 , p_switch_side_flag => 'Y'
21701 , p_merge_duplicate_code => 'N'
21702 );
21703 --
21704 l_acc_rev_natural_side_code := 'D'; -- 4262811
21705 --
21706 --
21707 -- set accounting line type info
21708 --
21709 xla_ae_lines_pkg.SetAcctLineType
21710 (p_component_type => l_component_type
21711 ,p_event_type_code => l_event_type_code
21712 ,p_line_definition_owner_code => l_line_definition_owner_code
21713 ,p_line_definition_code => l_line_definition_code
21714 ,p_accounting_line_code => l_component_code
21715 ,p_accounting_line_type_code => l_component_type_code
21716 ,p_accounting_line_appl_id => l_component_appl_id
21717 ,p_amb_context_code => l_amb_context_code
21718 ,p_entity_code => l_entity_code
21719 ,p_event_class_code => l_event_class_code);
21720 --
21721 -- set accounting class
21722 --
21723 xla_ae_lines_pkg.SetAcctClass(
21724 p_accounting_class_code => 'COST_CLEARING'
21725 , p_ae_header_id => l_ae_header_id
21726 );
21727
21728 --
21729 -- set rounding class
21730 --
21731 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21732 'COST_CLEARING';
21733
21734 --
21735 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21736 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21737 --
21738 -- bulk performance
21739 --
21740 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21741
21742 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21743 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21744
21745 -- 4955764
21746 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21747 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21748
21749 -- 4458381 Public Sector Enh
21750
21751 --
21752 -- set accounting attributes for the line type
21753 --
21754 l_entered_amt_idx := 22;
21755 l_accted_amt_idx := 27;
21756 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21757 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21758 l_rec_acct_attrs.array_char_value(1) := p_source_22;
21759 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
21760 l_rec_acct_attrs.array_char_value(2) := p_source_23;
21761 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
21762 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
21763 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
21764 l_rec_acct_attrs.array_num_value(4) := p_source_24;
21765 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
21766 l_rec_acct_attrs.array_char_value(5) := p_source_25;
21767 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
21768 l_rec_acct_attrs.array_num_value(6) := p_source_26;
21769 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
21770 l_rec_acct_attrs.array_date_value(7) := p_source_27;
21771 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
21772 l_rec_acct_attrs.array_num_value(8) := p_source_28;
21773 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
21774 l_rec_acct_attrs.array_char_value(9) := p_source_29;
21775 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
21779 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
21776 l_rec_acct_attrs.array_char_value(10) := p_source_30;
21777 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
21778 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
21780 l_rec_acct_attrs.array_num_value(12) := p_source_24;
21781 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
21782 l_rec_acct_attrs.array_char_value(13) := p_source_25;
21783 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
21784 l_rec_acct_attrs.array_num_value(14) := p_source_26;
21785 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
21786 l_rec_acct_attrs.array_date_value(15) := p_source_27;
21787 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
21788 l_rec_acct_attrs.array_num_value(16) := p_source_28;
21789 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
21790 l_rec_acct_attrs.array_char_value(17) := p_source_29;
21791 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
21792 l_rec_acct_attrs.array_char_value(18) := p_source_31;
21793 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
21794 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
21795 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
21796 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
21797 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
21798 l_rec_acct_attrs.array_char_value(21) := p_source_34;
21799 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
21800 l_rec_acct_attrs.array_num_value(22) := p_source_24;
21801 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
21802 l_rec_acct_attrs.array_char_value(23) := p_source_25;
21803 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
21804 l_rec_acct_attrs.array_date_value(24) := p_source_27;
21805 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
21806 l_rec_acct_attrs.array_num_value(25) := p_source_28;
21807 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
21808 l_rec_acct_attrs.array_char_value(26) := p_source_29;
21809 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
21810 l_rec_acct_attrs.array_num_value(27) := p_source_26;
21811 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
21812 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
21813 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
21814 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
21815 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
21816 l_rec_acct_attrs.array_char_value(30) := p_source_34;
21817
21818 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21819 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21820
21821 ---------------------------------------------------------------------------------------------------------------
21822 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21823 ---------------------------------------------------------------------------------------------------------------
21824 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21825
21826 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21827 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21828
21829 IF xla_accounting_cache_pkg.GetValueChar
21830 (p_source_code => 'LEDGER_CATEGORY_CODE'
21831 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21832 AND l_bflow_method_code = 'PRIOR_ENTRY'
21833 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21834 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21835 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21836 )
21837 THEN
21838 xla_ae_lines_pkg.BflowUpgEntry
21839 (p_business_method_code => l_bflow_method_code
21840 ,p_business_class_code => l_bflow_class_code
21841 ,p_balance_type => l_balance_type_code);
21842 ELSE
21843 NULL;
21844 -- No business flow processing for business flow method of NONE.
21845 END IF;
21846
21847 --
21848 -- call analytical criteria
21849 --
21850
21851 --
21852 -- call description
21853 --
21854 -- No description or it is inherited.
21855 --
21856 -- call ADRs
21857 -- Bug 4922099
21858 --
21859 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21860 (NVL(l_actual_upg_option, 'N') = 'O') OR
21861 (NVL(l_enc_upg_option, 'N') = 'O')
21862 )
21863 THEN
21864 NULL;
21865 --
21866 --
21867
21868 l_ccid := AcctDerRule_5(
21869 p_application_id => p_application_id
21870 , p_ae_header_id => l_ae_header_id
21871 , p_source_4 => p_source_4
21872 , p_source_6 => p_source_6
21873 , p_source_7 => p_source_7
21874 , x_transaction_coa_id => l_adr_transaction_coa_id
21875 , x_accounting_coa_id => l_adr_accounting_coa_id
21876 , x_value_type_code => l_adr_value_type_code
21877 , p_side => 'NA'
21878 );
21879
21880 xla_ae_lines_pkg.set_ccid(
21881 p_code_combination_id => l_ccid
21882 , p_value_type_code => l_adr_value_type_code
21883 , p_transaction_coa_id => l_adr_transaction_coa_id
21884 , p_accounting_coa_id => l_adr_accounting_coa_id
21885 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
21889 , p_component_type_code => l_component_type_code
21886 , p_adr_type_code => 'S'
21887 , p_component_type => l_component_type
21888 , p_component_code => l_component_code
21890 , p_component_appl_id => l_component_appl_id
21891 , p_amb_context_code => l_amb_context_code
21892 , p_side => 'NA'
21893 );
21894
21895
21896 --
21897 --
21898 END IF;
21899 --
21900 -- Bug 4922099
21901 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21902 (NVL(l_enc_upg_option, 'N') = 'O')
21903 ) AND
21904 (l_bflow_method_code = 'PRIOR_ENTRY')
21905 )
21906 THEN
21907 IF
21908 --
21909 1 = 2
21910 --
21911 THEN
21912 xla_accounting_err_pkg.build_message
21913 (p_appli_s_name => 'XLA'
21914 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21915 ,p_token_1 => 'LINE_NUMBER'
21916 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21917 ,p_token_2 => 'LINE_TYPE_NAME'
21918 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21919 l_component_type
21920 ,l_component_code
21921 ,l_component_type_code
21922 ,l_component_appl_id
21923 ,l_amb_context_code
21924 ,l_entity_code
21925 ,l_event_class_code
21926 )
21927 ,p_token_3 => 'OWNER'
21928 ,p_value_3 => xla_lookups_pkg.get_meaning(
21929 p_lookup_type => 'XLA_OWNER_TYPE'
21930 ,p_lookup_code => l_component_type_code
21931 )
21932 ,p_token_4 => 'PRODUCT_NAME'
21933 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21934 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21935 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21936 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21937 ,p_ae_header_id => NULL
21938 );
21939
21940 IF (C_LEVEL_ERROR>= g_log_level) THEN
21941 trace
21942 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21943 ,p_level => C_LEVEL_ERROR
21944 ,p_module => l_log_module);
21945 END IF;
21946 END IF;
21947 END IF;
21948 --
21949 --
21950 ------------------------------------------------------------------------------------------------
21951 -- 4219869 Business Flow
21952 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21953 -- Prior Entry. Currently, the following code is always generated.
21954 ------------------------------------------------------------------------------------------------
21955 XLA_AE_LINES_PKG.ValidateCurrentLine;
21956
21957 ------------------------------------------------------------------------------------
21958 -- 4219869 Business Flow
21959 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21960 ------------------------------------------------------------------------------------
21961 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21962
21963 ----------------------------------------------------------------------------------
21964 -- 4219869 Business Flow
21965 -- Update journal entry status -- Need to generate this within IF <condition>
21966 ----------------------------------------------------------------------------------
21967 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21968 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21969 ,p_balance_type_code => l_balance_type_code
21970 );
21971
21972 -------------------------------------------------------------------------------------------
21973 -- 4262811 - Generate the Accrual Reversal lines
21974 -------------------------------------------------------------------------------------------
21975 BEGIN
21976 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21977 (g_array_event(p_event_id).array_value_num('header_index'));
21978 IF l_acc_rev_flag IS NULL THEN
21979 l_acc_rev_flag := 'N';
21980 END IF;
21981 EXCEPTION
21982 WHEN OTHERS THEN
21983 l_acc_rev_flag := 'N';
21984 END;
21985 --
21986 IF (l_acc_rev_flag = 'Y') THEN
21987
21988 -- 4645092 ------------------------------------------------------------------------------
21989 -- To allow MPA report to determine if it should generate report process
21990 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21994 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21991 ------------------------------------------------------------------------------------------
21992
21993 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21995
21996 --
21997 -- Update the line information that should be overwritten
21998 --
21999 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22000 p_header_num => 1);
22001 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22002
22003 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22004
22005 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22006 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22007 END IF;
22008
22009 --
22010 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22011 --
22012 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22013 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22014 ELSE
22015 ---------------------------------------------------------------------------------------------------
22016 -- 4262811a Switch Sign
22017 ---------------------------------------------------------------------------------------------------
22018 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22019 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22020 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22021 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22022 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22023 -- 5132302
22024 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22025 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22026
22027 END IF;
22028
22029 -- 4955764
22030 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22031 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22032
22033
22034 XLA_AE_LINES_PKG.ValidateCurrentLine;
22035 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22036
22037 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22038 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22039 ,p_balance_type_code => l_balance_type_code);
22040
22041 END IF;
22042
22043 -----------------------------------------------------------------------------------------
22044 -- 4262811 Multiperiod Accounting
22045 -----------------------------------------------------------------------------------------
22046 -- No MPA option is assigned.
22047
22048
22049 END IF;
22050 --
22051
22052 --
22053 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22054 trace
22055 (p_msg => 'END of AcctLineType_53'
22056 ,p_level => C_LEVEL_PROCEDURE
22057 ,p_module => l_log_module);
22058 END IF;
22059 --
22060 EXCEPTION
22061 WHEN xla_exceptions_pkg.application_exception THEN
22062 RAISE;
22063 WHEN OTHERS THEN
22064 xla_exceptions_pkg.raise_message
22065 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_53');
22066 END AcctLineType_53;
22067 --
22068
22069 ---------------------------------------
22070 --
22071 -- PRIVATE FUNCTION
22072 -- AcctLineType_54
22073 --
22074 ---------------------------------------
22075 PROCEDURE AcctLineType_54 (
22076 p_application_id IN NUMBER
22077 ,p_event_id IN NUMBER
22078 ,p_calculate_acctd_flag IN VARCHAR2
22079 ,p_calculate_g_l_flag IN VARCHAR2
22080 ,p_actual_flag IN OUT VARCHAR2
22081 ,p_balance_type_code OUT VARCHAR2
22082 ,p_gain_or_loss_ref OUT VARCHAR2
22083
22084 --Cost CCID
22085 , p_source_3 IN NUMBER
22086 --Allow Account Override Flag
22087 , p_source_4 IN VARCHAR2
22088 --Cost Clearing CCID
22089 , p_source_6 IN NUMBER
22090 --Adjustment Cost Clearing CCID
22091 , p_source_7 IN NUMBER
22092 --Reversing Line Flag
22093 , p_source_22 IN VARCHAR2
22094 --Actual Upgrade Credit Accounting Class
22095 , p_source_23 IN VARCHAR2
22096 --Entered Raw Cost
22097 , p_source_24 IN NUMBER
22098 --Entered Currency Code
22099 , p_source_25 IN VARCHAR2
22100 --Accounted Raw Cost
22101 , p_source_26 IN NUMBER
22102 --Exchange Rate Date
22103 , p_source_27 IN DATE
22104 --Exchange Rate
22105 , p_source_28 IN NUMBER
22106 --Exchange Rate Type
22107 , p_source_29 IN VARCHAR2
22108 --Actual Upgrade Debit Accounting Class
22109 , p_source_30 IN VARCHAR2
22110 --Use Actuals Upgrade Attributes Flag
22111 , p_source_31 IN VARCHAR2
22112 --Expenditure Item ID
22113 , p_source_32 IN NUMBER
22114 --Cost Distribution Line Number
22115 , p_source_33 IN NUMBER
22116 --Line Type
22117 , p_source_34 IN VARCHAR2
22118 , p_source_34_meaning IN VARCHAR2
22119 --Reversed Line Number
22120 , p_source_35 IN NUMBER
22121 )
22122 IS
22123
22124 l_component_type VARCHAR2(80);
22125 l_component_code VARCHAR2(30);
22129 l_entity_code VARCHAR2(30);
22126 l_component_type_code VARCHAR2(1);
22127 l_component_appl_id INTEGER;
22128 l_amb_context_code VARCHAR2(30);
22130 l_event_class_code VARCHAR2(30);
22131 l_ae_header_id NUMBER;
22132 l_event_type_code VARCHAR2(30);
22133 l_line_definition_code VARCHAR2(30);
22134 l_line_definition_owner_code VARCHAR2(1);
22135 --
22136 -- adr variables
22137 l_segment VARCHAR2(30);
22138 l_ccid NUMBER;
22139 l_adr_transaction_coa_id NUMBER;
22140 l_adr_accounting_coa_id NUMBER;
22141 l_adr_flexfield_segment_code VARCHAR2(30);
22142 l_adr_flex_value_set_id NUMBER;
22143 l_adr_value_type_code VARCHAR2(30);
22144 l_adr_value_combination_id NUMBER;
22145 l_adr_value_segment_code VARCHAR2(30);
22146
22147 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22148 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22149 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22150 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22151
22152 -- 4262811 Variables ------------------------------------------------------------------------------------------
22153 l_entered_amt_idx NUMBER;
22154 l_accted_amt_idx NUMBER;
22155 l_acc_rev_flag VARCHAR2(1);
22156 l_accrual_line_num NUMBER;
22157 l_tmp_amt NUMBER;
22158 l_acc_rev_natural_side_code VARCHAR2(1);
22159
22160 l_num_entries NUMBER;
22161 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22162 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22163 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22164 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22165 l_recog_line_1 NUMBER;
22166 l_recog_line_2 NUMBER;
22167
22168 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22169 l_bflow_applied_to_amt NUMBER; -- 5132302
22170 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22171
22172 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22173
22174 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22175 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22176
22177 ---------------------------------------------------------------------------------------------------------------
22178
22179
22180 --
22181 -- bulk performance
22182 --
22183 l_balance_type_code VARCHAR2(1);
22184 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22185 l_log_module VARCHAR2(240);
22186
22187 --
22188 -- Upgrade strategy
22189 --
22190 l_actual_upg_option VARCHAR2(1);
22191 l_enc_upg_option VARCHAR2(1);
22192
22193 --
22194 BEGIN
22195 --
22196 IF g_log_enabled THEN
22197 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
22198 END IF;
22199 --
22200 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22201
22202 trace
22203 (p_msg => 'BEGIN of AcctLineType_54'
22204 ,p_level => C_LEVEL_PROCEDURE
22205 ,p_module => l_log_module);
22206
22207 END IF;
22208 --
22209 l_component_type := 'AMB_JLT';
22210 l_component_code := 'PA_RAW_COST_CLEARING';
22211 l_component_type_code := 'S';
22212 l_component_appl_id := 275;
22213 l_amb_context_code := 'DEFAULT';
22214 l_entity_code := 'EXPENDITURES';
22215 l_event_class_code := 'USG_COST';
22216 l_event_type_code := 'USG_COST_ALL';
22217 l_line_definition_owner_code := 'S';
22218 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
22219 --
22220 l_balance_type_code := 'A';
22221 l_segment := NULL;
22222 l_ccid := NULL;
22223 l_adr_transaction_coa_id := NULL;
22224 l_adr_accounting_coa_id := NULL;
22225 l_adr_flexfield_segment_code := NULL;
22226 l_adr_flex_value_set_id := NULL;
22227 l_adr_value_type_code := NULL;
22228 l_adr_value_combination_id := NULL;
22229 l_adr_value_segment_code := NULL;
22230
22231 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
22232 l_bflow_class_code := ''; -- 4219869 Business Flow
22233 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22234 l_budgetary_control_flag := 'N';
22235
22236 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22237 l_bflow_applied_to_amt := NULL; -- 5132302
22238 l_entered_amt_idx := NULL; -- 4262811
22239 l_accted_amt_idx := NULL; -- 4262811
22240 l_acc_rev_flag := NULL; -- 4262811
22241 l_accrual_line_num := NULL; -- 4262811
22242 l_tmp_amt := NULL; -- 4262811
22243 --
22244
22245 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22246 l_balance_type_code <> 'B' THEN
22247
22248 --
22249 XLA_AE_LINES_PKG.SetNewLine;
22250
22251 p_balance_type_code := l_balance_type_code;
22252 -- set the flag so later we will know whether the gain loss line needs to be created
22253
22254 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22255 p_actual_flag :='A';
22256 END IF;
22257
22258 --
22259 -- bulk performance
22260 --
22261 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22265 --
22262 p_header_num => 0); -- 4262811
22263 --
22264 -- set accounting line options
22266 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22267 p_natural_side_code => 'C'
22268 , p_gain_or_loss_flag => 'N'
22269 , p_gl_transfer_mode_code => 'S'
22270 , p_acct_entry_type_code => 'A'
22271 , p_switch_side_flag => 'Y'
22272 , p_merge_duplicate_code => 'N'
22273 );
22274 --
22275 l_acc_rev_natural_side_code := 'D'; -- 4262811
22276 --
22277 --
22278 -- set accounting line type info
22279 --
22280 xla_ae_lines_pkg.SetAcctLineType
22281 (p_component_type => l_component_type
22282 ,p_event_type_code => l_event_type_code
22283 ,p_line_definition_owner_code => l_line_definition_owner_code
22284 ,p_line_definition_code => l_line_definition_code
22285 ,p_accounting_line_code => l_component_code
22286 ,p_accounting_line_type_code => l_component_type_code
22287 ,p_accounting_line_appl_id => l_component_appl_id
22288 ,p_amb_context_code => l_amb_context_code
22289 ,p_entity_code => l_entity_code
22290 ,p_event_class_code => l_event_class_code);
22291 --
22292 -- set accounting class
22293 --
22294 xla_ae_lines_pkg.SetAcctClass(
22295 p_accounting_class_code => 'COST_CLEARING'
22296 , p_ae_header_id => l_ae_header_id
22297 );
22298
22299 --
22300 -- set rounding class
22301 --
22302 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22303 'COST_CLEARING';
22304
22305 --
22306 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22307 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22308 --
22309 -- bulk performance
22310 --
22311 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22312
22313 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22314 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22315
22316 -- 4955764
22317 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22318 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22319
22320 -- 4458381 Public Sector Enh
22321
22322 --
22323 -- set accounting attributes for the line type
22324 --
22325 l_entered_amt_idx := 22;
22326 l_accted_amt_idx := 27;
22327 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22328 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22329 l_rec_acct_attrs.array_char_value(1) := p_source_22;
22330 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
22331 l_rec_acct_attrs.array_char_value(2) := p_source_23;
22332 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
22333 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
22334 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
22335 l_rec_acct_attrs.array_num_value(4) := p_source_24;
22336 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
22337 l_rec_acct_attrs.array_char_value(5) := p_source_25;
22338 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
22339 l_rec_acct_attrs.array_num_value(6) := p_source_26;
22340 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
22341 l_rec_acct_attrs.array_date_value(7) := p_source_27;
22342 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
22343 l_rec_acct_attrs.array_num_value(8) := p_source_28;
22344 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
22345 l_rec_acct_attrs.array_char_value(9) := p_source_29;
22346 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
22347 l_rec_acct_attrs.array_char_value(10) := p_source_30;
22348 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
22349 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
22350 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
22351 l_rec_acct_attrs.array_num_value(12) := p_source_24;
22352 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
22353 l_rec_acct_attrs.array_char_value(13) := p_source_25;
22354 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
22355 l_rec_acct_attrs.array_num_value(14) := p_source_26;
22356 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
22357 l_rec_acct_attrs.array_date_value(15) := p_source_27;
22358 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
22359 l_rec_acct_attrs.array_num_value(16) := p_source_28;
22360 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
22361 l_rec_acct_attrs.array_char_value(17) := p_source_29;
22362 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
22363 l_rec_acct_attrs.array_char_value(18) := p_source_31;
22364 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
22365 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
22366 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
22367 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
22368 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
22369 l_rec_acct_attrs.array_char_value(21) := p_source_34;
22370 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
22371 l_rec_acct_attrs.array_num_value(22) := p_source_24;
22372 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
22376 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
22373 l_rec_acct_attrs.array_char_value(23) := p_source_25;
22374 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
22375 l_rec_acct_attrs.array_date_value(24) := p_source_27;
22377 l_rec_acct_attrs.array_num_value(25) := p_source_28;
22378 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
22379 l_rec_acct_attrs.array_char_value(26) := p_source_29;
22380 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
22381 l_rec_acct_attrs.array_num_value(27) := p_source_26;
22382 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
22383 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
22384 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
22385 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
22386 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
22387 l_rec_acct_attrs.array_char_value(30) := p_source_34;
22388
22389 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22390 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22391
22392 ---------------------------------------------------------------------------------------------------------------
22393 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22394 ---------------------------------------------------------------------------------------------------------------
22395 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22396
22397 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22398 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22399
22400 IF xla_accounting_cache_pkg.GetValueChar
22401 (p_source_code => 'LEDGER_CATEGORY_CODE'
22402 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22403 AND l_bflow_method_code = 'PRIOR_ENTRY'
22404 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22405 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22406 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22407 )
22408 THEN
22409 xla_ae_lines_pkg.BflowUpgEntry
22410 (p_business_method_code => l_bflow_method_code
22411 ,p_business_class_code => l_bflow_class_code
22412 ,p_balance_type => l_balance_type_code);
22413 ELSE
22414 NULL;
22415 -- No business flow processing for business flow method of NONE.
22416 END IF;
22417
22418 --
22419 -- call analytical criteria
22420 --
22421
22422 --
22423 -- call description
22424 --
22425 -- No description or it is inherited.
22426 --
22427 -- call ADRs
22428 -- Bug 4922099
22429 --
22430 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22431 (NVL(l_actual_upg_option, 'N') = 'O') OR
22432 (NVL(l_enc_upg_option, 'N') = 'O')
22433 )
22434 THEN
22435 NULL;
22436 --
22437 --
22438
22439 l_ccid := AcctDerRule_5(
22440 p_application_id => p_application_id
22441 , p_ae_header_id => l_ae_header_id
22442 , p_source_4 => p_source_4
22443 , p_source_6 => p_source_6
22444 , p_source_7 => p_source_7
22445 , x_transaction_coa_id => l_adr_transaction_coa_id
22446 , x_accounting_coa_id => l_adr_accounting_coa_id
22447 , x_value_type_code => l_adr_value_type_code
22448 , p_side => 'NA'
22449 );
22450
22451 xla_ae_lines_pkg.set_ccid(
22452 p_code_combination_id => l_ccid
22453 , p_value_type_code => l_adr_value_type_code
22454 , p_transaction_coa_id => l_adr_transaction_coa_id
22455 , p_accounting_coa_id => l_adr_accounting_coa_id
22456 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
22457 , p_adr_type_code => 'S'
22458 , p_component_type => l_component_type
22459 , p_component_code => l_component_code
22460 , p_component_type_code => l_component_type_code
22461 , p_component_appl_id => l_component_appl_id
22462 , p_amb_context_code => l_amb_context_code
22463 , p_side => 'NA'
22464 );
22465
22466
22467 --
22468 --
22469 END IF;
22470 --
22471 -- Bug 4922099
22472 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22473 (NVL(l_enc_upg_option, 'N') = 'O')
22474 ) AND
22475 (l_bflow_method_code = 'PRIOR_ENTRY')
22476 )
22477 THEN
22478 IF
22479 --
22480 1 = 2
22481 --
22482 THEN
22483 xla_accounting_err_pkg.build_message
22484 (p_appli_s_name => 'XLA'
22485 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22486 ,p_token_1 => 'LINE_NUMBER'
22487 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22488 ,p_token_2 => 'LINE_TYPE_NAME'
22489 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22490 l_component_type
22491 ,l_component_code
22492 ,l_component_type_code
22493 ,l_component_appl_id
22497 )
22494 ,l_amb_context_code
22495 ,l_entity_code
22496 ,l_event_class_code
22498 ,p_token_3 => 'OWNER'
22499 ,p_value_3 => xla_lookups_pkg.get_meaning(
22500 p_lookup_type => 'XLA_OWNER_TYPE'
22501 ,p_lookup_code => l_component_type_code
22502 )
22503 ,p_token_4 => 'PRODUCT_NAME'
22504 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22505 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22506 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22507 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22508 ,p_ae_header_id => NULL
22509 );
22510
22511 IF (C_LEVEL_ERROR>= g_log_level) THEN
22512 trace
22513 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22514 ,p_level => C_LEVEL_ERROR
22515 ,p_module => l_log_module);
22516 END IF;
22517 END IF;
22518 END IF;
22519 --
22520 --
22521 ------------------------------------------------------------------------------------------------
22522 -- 4219869 Business Flow
22523 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22524 -- Prior Entry. Currently, the following code is always generated.
22525 ------------------------------------------------------------------------------------------------
22526 XLA_AE_LINES_PKG.ValidateCurrentLine;
22527
22528 ------------------------------------------------------------------------------------
22529 -- 4219869 Business Flow
22530 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22531 ------------------------------------------------------------------------------------
22532 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22533
22534 ----------------------------------------------------------------------------------
22535 -- 4219869 Business Flow
22536 -- Update journal entry status -- Need to generate this within IF <condition>
22537 ----------------------------------------------------------------------------------
22538 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22539 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22540 ,p_balance_type_code => l_balance_type_code
22541 );
22542
22543 -------------------------------------------------------------------------------------------
22544 -- 4262811 - Generate the Accrual Reversal lines
22545 -------------------------------------------------------------------------------------------
22546 BEGIN
22547 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22548 (g_array_event(p_event_id).array_value_num('header_index'));
22549 IF l_acc_rev_flag IS NULL THEN
22550 l_acc_rev_flag := 'N';
22551 END IF;
22552 EXCEPTION
22553 WHEN OTHERS THEN
22554 l_acc_rev_flag := 'N';
22555 END;
22556 --
22557 IF (l_acc_rev_flag = 'Y') THEN
22558
22559 -- 4645092 ------------------------------------------------------------------------------
22560 -- To allow MPA report to determine if it should generate report process
22561 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22562 ------------------------------------------------------------------------------------------
22563
22564 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22565 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22566
22567 --
22568 -- Update the line information that should be overwritten
22569 --
22570 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22571 p_header_num => 1);
22572 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22573
22574 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22575
22576 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22577 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22578 END IF;
22579
22580 --
22581 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22582 --
22583 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22584 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22585 ELSE
22586 ---------------------------------------------------------------------------------------------------
22587 -- 4262811a Switch Sign
22588 ---------------------------------------------------------------------------------------------------
22589 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22590 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22591 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22595 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22592 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22593 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22594 -- 5132302
22596 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22597
22598 END IF;
22599
22600 -- 4955764
22601 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22602 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22603
22604
22605 XLA_AE_LINES_PKG.ValidateCurrentLine;
22606 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22607
22608 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22609 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22610 ,p_balance_type_code => l_balance_type_code);
22611
22612 END IF;
22613
22614 -----------------------------------------------------------------------------------------
22615 -- 4262811 Multiperiod Accounting
22616 -----------------------------------------------------------------------------------------
22617 -- No MPA option is assigned.
22618
22619
22620 END IF;
22621 --
22622
22623 --
22624 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22625 trace
22626 (p_msg => 'END of AcctLineType_54'
22627 ,p_level => C_LEVEL_PROCEDURE
22628 ,p_module => l_log_module);
22629 END IF;
22630 --
22631 EXCEPTION
22632 WHEN xla_exceptions_pkg.application_exception THEN
22633 RAISE;
22634 WHEN OTHERS THEN
22635 xla_exceptions_pkg.raise_message
22636 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_54');
22637 END AcctLineType_54;
22638 --
22639
22640 ---------------------------------------
22641 --
22642 -- PRIVATE FUNCTION
22643 -- AcctLineType_55
22644 --
22645 ---------------------------------------
22646 PROCEDURE AcctLineType_55 (
22647 p_application_id IN NUMBER
22648 ,p_event_id IN NUMBER
22649 ,p_calculate_acctd_flag IN VARCHAR2
22650 ,p_calculate_g_l_flag IN VARCHAR2
22651 ,p_actual_flag IN OUT VARCHAR2
22652 ,p_balance_type_code OUT VARCHAR2
22653 ,p_gain_or_loss_ref OUT VARCHAR2
22654
22655 --Cost CCID
22656 , p_source_3 IN NUMBER
22657 --Allow Account Override Flag
22658 , p_source_4 IN VARCHAR2
22659 --Cost Clearing CCID
22660 , p_source_6 IN NUMBER
22661 --Adjustment Cost Clearing CCID
22662 , p_source_7 IN NUMBER
22663 --Reversing Line Flag
22664 , p_source_22 IN VARCHAR2
22665 --Actual Upgrade Credit Accounting Class
22666 , p_source_23 IN VARCHAR2
22667 --Entered Raw Cost
22668 , p_source_24 IN NUMBER
22669 --Entered Currency Code
22670 , p_source_25 IN VARCHAR2
22671 --Accounted Raw Cost
22672 , p_source_26 IN NUMBER
22673 --Exchange Rate Date
22674 , p_source_27 IN DATE
22675 --Exchange Rate
22676 , p_source_28 IN NUMBER
22677 --Exchange Rate Type
22678 , p_source_29 IN VARCHAR2
22679 --Actual Upgrade Debit Accounting Class
22680 , p_source_30 IN VARCHAR2
22681 --Use Actuals Upgrade Attributes Flag
22682 , p_source_31 IN VARCHAR2
22683 --Expenditure Item ID
22684 , p_source_32 IN NUMBER
22685 --Cost Distribution Line Number
22686 , p_source_33 IN NUMBER
22687 --Line Type
22688 , p_source_34 IN VARCHAR2
22689 , p_source_34_meaning IN VARCHAR2
22690 --Reversed Line Number
22691 , p_source_35 IN NUMBER
22692 )
22693 IS
22694
22695 l_component_type VARCHAR2(80);
22696 l_component_code VARCHAR2(30);
22697 l_component_type_code VARCHAR2(1);
22698 l_component_appl_id INTEGER;
22699 l_amb_context_code VARCHAR2(30);
22700 l_entity_code VARCHAR2(30);
22701 l_event_class_code VARCHAR2(30);
22702 l_ae_header_id NUMBER;
22703 l_event_type_code VARCHAR2(30);
22704 l_line_definition_code VARCHAR2(30);
22705 l_line_definition_owner_code VARCHAR2(1);
22706 --
22707 -- adr variables
22708 l_segment VARCHAR2(30);
22709 l_ccid NUMBER;
22710 l_adr_transaction_coa_id NUMBER;
22711 l_adr_accounting_coa_id NUMBER;
22712 l_adr_flexfield_segment_code VARCHAR2(30);
22713 l_adr_flex_value_set_id NUMBER;
22714 l_adr_value_type_code VARCHAR2(30);
22715 l_adr_value_combination_id NUMBER;
22716 l_adr_value_segment_code VARCHAR2(30);
22717
22718 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22719 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22720 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22721 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22722
22723 -- 4262811 Variables ------------------------------------------------------------------------------------------
22724 l_entered_amt_idx NUMBER;
22725 l_accted_amt_idx NUMBER;
22726 l_acc_rev_flag VARCHAR2(1);
22727 l_accrual_line_num NUMBER;
22728 l_tmp_amt NUMBER;
22729 l_acc_rev_natural_side_code VARCHAR2(1);
22730
22731 l_num_entries NUMBER;
22732 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22733 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22737 l_recog_line_2 NUMBER;
22734 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22735 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22736 l_recog_line_1 NUMBER;
22738
22739 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22740 l_bflow_applied_to_amt NUMBER; -- 5132302
22741 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22742
22743 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22744
22745 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22746 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22747
22748 ---------------------------------------------------------------------------------------------------------------
22749
22750
22751 --
22752 -- bulk performance
22753 --
22754 l_balance_type_code VARCHAR2(1);
22755 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22756 l_log_module VARCHAR2(240);
22757
22758 --
22759 -- Upgrade strategy
22760 --
22761 l_actual_upg_option VARCHAR2(1);
22762 l_enc_upg_option VARCHAR2(1);
22763
22764 --
22765 BEGIN
22766 --
22767 IF g_log_enabled THEN
22768 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
22769 END IF;
22770 --
22771 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22772
22773 trace
22774 (p_msg => 'BEGIN of AcctLineType_55'
22775 ,p_level => C_LEVEL_PROCEDURE
22776 ,p_module => l_log_module);
22777
22778 END IF;
22779 --
22780 l_component_type := 'AMB_JLT';
22781 l_component_code := 'PA_RAW_COST_CLEARING';
22782 l_component_type_code := 'S';
22783 l_component_appl_id := 275;
22784 l_amb_context_code := 'DEFAULT';
22785 l_entity_code := 'EXPENDITURES';
22786 l_event_class_code := 'LABOR_COST';
22787 l_event_type_code := 'LABOR_COST_ALL';
22788 l_line_definition_owner_code := 'S';
22789 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
22790 --
22791 l_balance_type_code := 'A';
22792 l_segment := NULL;
22793 l_ccid := NULL;
22794 l_adr_transaction_coa_id := NULL;
22795 l_adr_accounting_coa_id := NULL;
22796 l_adr_flexfield_segment_code := NULL;
22797 l_adr_flex_value_set_id := NULL;
22798 l_adr_value_type_code := NULL;
22799 l_adr_value_combination_id := NULL;
22800 l_adr_value_segment_code := NULL;
22801
22802 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
22803 l_bflow_class_code := ''; -- 4219869 Business Flow
22804 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22805 l_budgetary_control_flag := 'N';
22806
22807 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22808 l_bflow_applied_to_amt := NULL; -- 5132302
22809 l_entered_amt_idx := NULL; -- 4262811
22810 l_accted_amt_idx := NULL; -- 4262811
22811 l_acc_rev_flag := NULL; -- 4262811
22812 l_accrual_line_num := NULL; -- 4262811
22813 l_tmp_amt := NULL; -- 4262811
22814 --
22815
22816 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22817 l_balance_type_code <> 'B' THEN
22818
22819 --
22820 XLA_AE_LINES_PKG.SetNewLine;
22821
22822 p_balance_type_code := l_balance_type_code;
22823 -- set the flag so later we will know whether the gain loss line needs to be created
22824
22825 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22826 p_actual_flag :='A';
22827 END IF;
22828
22829 --
22830 -- bulk performance
22831 --
22832 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22833 p_header_num => 0); -- 4262811
22834 --
22835 -- set accounting line options
22836 --
22837 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22838 p_natural_side_code => 'C'
22839 , p_gain_or_loss_flag => 'N'
22840 , p_gl_transfer_mode_code => 'S'
22841 , p_acct_entry_type_code => 'A'
22842 , p_switch_side_flag => 'Y'
22843 , p_merge_duplicate_code => 'N'
22844 );
22845 --
22846 l_acc_rev_natural_side_code := 'D'; -- 4262811
22847 --
22848 --
22849 -- set accounting line type info
22850 --
22851 xla_ae_lines_pkg.SetAcctLineType
22852 (p_component_type => l_component_type
22853 ,p_event_type_code => l_event_type_code
22854 ,p_line_definition_owner_code => l_line_definition_owner_code
22855 ,p_line_definition_code => l_line_definition_code
22856 ,p_accounting_line_code => l_component_code
22857 ,p_accounting_line_type_code => l_component_type_code
22858 ,p_accounting_line_appl_id => l_component_appl_id
22859 ,p_amb_context_code => l_amb_context_code
22860 ,p_entity_code => l_entity_code
22861 ,p_event_class_code => l_event_class_code);
22862 --
22863 -- set accounting class
22864 --
22865 xla_ae_lines_pkg.SetAcctClass(
22866 p_accounting_class_code => 'COST_CLEARING'
22867 , p_ae_header_id => l_ae_header_id
22868 );
22869
22870 --
22871 -- set rounding class
22872 --
22873 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22874 'COST_CLEARING';
22878 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22875
22876 --
22877 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22879 --
22880 -- bulk performance
22881 --
22882 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22883
22884 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22885 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22886
22887 -- 4955764
22888 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22889 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22890
22891 -- 4458381 Public Sector Enh
22892
22893 --
22894 -- set accounting attributes for the line type
22895 --
22896 l_entered_amt_idx := 22;
22897 l_accted_amt_idx := 27;
22898 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22899 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22900 l_rec_acct_attrs.array_char_value(1) := p_source_22;
22901 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
22902 l_rec_acct_attrs.array_char_value(2) := p_source_23;
22903 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
22904 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
22905 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
22906 l_rec_acct_attrs.array_num_value(4) := p_source_24;
22907 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
22908 l_rec_acct_attrs.array_char_value(5) := p_source_25;
22909 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
22910 l_rec_acct_attrs.array_num_value(6) := p_source_26;
22911 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
22912 l_rec_acct_attrs.array_date_value(7) := p_source_27;
22913 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
22914 l_rec_acct_attrs.array_num_value(8) := p_source_28;
22915 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
22916 l_rec_acct_attrs.array_char_value(9) := p_source_29;
22917 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
22918 l_rec_acct_attrs.array_char_value(10) := p_source_30;
22919 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
22920 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
22921 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
22922 l_rec_acct_attrs.array_num_value(12) := p_source_24;
22923 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
22924 l_rec_acct_attrs.array_char_value(13) := p_source_25;
22925 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
22926 l_rec_acct_attrs.array_num_value(14) := p_source_26;
22927 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
22928 l_rec_acct_attrs.array_date_value(15) := p_source_27;
22929 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
22930 l_rec_acct_attrs.array_num_value(16) := p_source_28;
22931 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
22932 l_rec_acct_attrs.array_char_value(17) := p_source_29;
22933 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
22934 l_rec_acct_attrs.array_char_value(18) := p_source_31;
22935 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
22936 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
22937 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
22938 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
22939 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
22940 l_rec_acct_attrs.array_char_value(21) := p_source_34;
22941 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
22942 l_rec_acct_attrs.array_num_value(22) := p_source_24;
22943 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
22944 l_rec_acct_attrs.array_char_value(23) := p_source_25;
22945 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
22946 l_rec_acct_attrs.array_date_value(24) := p_source_27;
22947 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
22948 l_rec_acct_attrs.array_num_value(25) := p_source_28;
22949 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
22950 l_rec_acct_attrs.array_char_value(26) := p_source_29;
22951 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
22952 l_rec_acct_attrs.array_num_value(27) := p_source_26;
22953 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
22954 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
22955 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
22956 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
22957 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
22958 l_rec_acct_attrs.array_char_value(30) := p_source_34;
22959
22960 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22961 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22962
22963 ---------------------------------------------------------------------------------------------------------------
22964 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22965 ---------------------------------------------------------------------------------------------------------------
22966 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22967
22968 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22969 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22970
22974 AND l_bflow_method_code = 'PRIOR_ENTRY'
22971 IF xla_accounting_cache_pkg.GetValueChar
22972 (p_source_code => 'LEDGER_CATEGORY_CODE'
22973 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22975 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22976 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22977 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22978 )
22979 THEN
22980 xla_ae_lines_pkg.BflowUpgEntry
22981 (p_business_method_code => l_bflow_method_code
22982 ,p_business_class_code => l_bflow_class_code
22983 ,p_balance_type => l_balance_type_code);
22984 ELSE
22985 NULL;
22986 -- No business flow processing for business flow method of NONE.
22987 END IF;
22988
22989 --
22990 -- call analytical criteria
22991 --
22992
22993 --
22994 -- call description
22995 --
22996 -- No description or it is inherited.
22997 --
22998 -- call ADRs
22999 -- Bug 4922099
23000 --
23001 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23002 (NVL(l_actual_upg_option, 'N') = 'O') OR
23003 (NVL(l_enc_upg_option, 'N') = 'O')
23004 )
23005 THEN
23006 NULL;
23007 --
23008 --
23009
23010 l_ccid := AcctDerRule_5(
23011 p_application_id => p_application_id
23012 , p_ae_header_id => l_ae_header_id
23013 , p_source_4 => p_source_4
23014 , p_source_6 => p_source_6
23015 , p_source_7 => p_source_7
23016 , x_transaction_coa_id => l_adr_transaction_coa_id
23017 , x_accounting_coa_id => l_adr_accounting_coa_id
23018 , x_value_type_code => l_adr_value_type_code
23019 , p_side => 'NA'
23020 );
23021
23022 xla_ae_lines_pkg.set_ccid(
23023 p_code_combination_id => l_ccid
23024 , p_value_type_code => l_adr_value_type_code
23025 , p_transaction_coa_id => l_adr_transaction_coa_id
23026 , p_accounting_coa_id => l_adr_accounting_coa_id
23027 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
23028 , p_adr_type_code => 'S'
23029 , p_component_type => l_component_type
23030 , p_component_code => l_component_code
23031 , p_component_type_code => l_component_type_code
23032 , p_component_appl_id => l_component_appl_id
23033 , p_amb_context_code => l_amb_context_code
23034 , p_side => 'NA'
23035 );
23036
23037
23038 --
23039 --
23040 END IF;
23041 --
23042 -- Bug 4922099
23043 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23044 (NVL(l_enc_upg_option, 'N') = 'O')
23045 ) AND
23046 (l_bflow_method_code = 'PRIOR_ENTRY')
23047 )
23048 THEN
23049 IF
23050 --
23051 1 = 2
23052 --
23053 THEN
23054 xla_accounting_err_pkg.build_message
23055 (p_appli_s_name => 'XLA'
23056 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23057 ,p_token_1 => 'LINE_NUMBER'
23058 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23059 ,p_token_2 => 'LINE_TYPE_NAME'
23060 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23061 l_component_type
23062 ,l_component_code
23063 ,l_component_type_code
23064 ,l_component_appl_id
23065 ,l_amb_context_code
23066 ,l_entity_code
23067 ,l_event_class_code
23068 )
23069 ,p_token_3 => 'OWNER'
23070 ,p_value_3 => xla_lookups_pkg.get_meaning(
23071 p_lookup_type => 'XLA_OWNER_TYPE'
23072 ,p_lookup_code => l_component_type_code
23073 )
23074 ,p_token_4 => 'PRODUCT_NAME'
23075 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23076 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23077 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23078 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23079 ,p_ae_header_id => NULL
23080 );
23081
23082 IF (C_LEVEL_ERROR>= g_log_level) THEN
23083 trace
23084 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23085 ,p_level => C_LEVEL_ERROR
23086 ,p_module => l_log_module);
23087 END IF;
23088 END IF;
23089 END IF;
23090 --
23091 --
23095 -- Prior Entry. Currently, the following code is always generated.
23092 ------------------------------------------------------------------------------------------------
23093 -- 4219869 Business Flow
23094 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23096 ------------------------------------------------------------------------------------------------
23097 XLA_AE_LINES_PKG.ValidateCurrentLine;
23098
23099 ------------------------------------------------------------------------------------
23100 -- 4219869 Business Flow
23101 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23102 ------------------------------------------------------------------------------------
23103 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23104
23105 ----------------------------------------------------------------------------------
23106 -- 4219869 Business Flow
23107 -- Update journal entry status -- Need to generate this within IF <condition>
23108 ----------------------------------------------------------------------------------
23109 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23110 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23111 ,p_balance_type_code => l_balance_type_code
23112 );
23113
23114 -------------------------------------------------------------------------------------------
23115 -- 4262811 - Generate the Accrual Reversal lines
23116 -------------------------------------------------------------------------------------------
23117 BEGIN
23118 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23119 (g_array_event(p_event_id).array_value_num('header_index'));
23120 IF l_acc_rev_flag IS NULL THEN
23121 l_acc_rev_flag := 'N';
23122 END IF;
23123 EXCEPTION
23124 WHEN OTHERS THEN
23125 l_acc_rev_flag := 'N';
23126 END;
23127 --
23128 IF (l_acc_rev_flag = 'Y') THEN
23129
23130 -- 4645092 ------------------------------------------------------------------------------
23131 -- To allow MPA report to determine if it should generate report process
23132 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23133 ------------------------------------------------------------------------------------------
23134
23135 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23136 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23137
23138 --
23139 -- Update the line information that should be overwritten
23140 --
23141 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23142 p_header_num => 1);
23143 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23144
23145 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23146
23147 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23148 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23149 END IF;
23150
23151 --
23152 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23153 --
23154 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23155 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23156 ELSE
23157 ---------------------------------------------------------------------------------------------------
23158 -- 4262811a Switch Sign
23159 ---------------------------------------------------------------------------------------------------
23160 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23161 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23162 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23163 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23164 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23165 -- 5132302
23166 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23167 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23168
23169 END IF;
23170
23171 -- 4955764
23172 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23173 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23174
23175
23176 XLA_AE_LINES_PKG.ValidateCurrentLine;
23177 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23178
23179 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23180 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23181 ,p_balance_type_code => l_balance_type_code);
23182
23183 END IF;
23184
23185 -----------------------------------------------------------------------------------------
23186 -- 4262811 Multiperiod Accounting
23187 -----------------------------------------------------------------------------------------
23188 -- No MPA option is assigned.
23189
23190
23191 END IF;
23192 --
23193
23194 --
23195 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23196 trace
23197 (p_msg => 'END of AcctLineType_55'
23198 ,p_level => C_LEVEL_PROCEDURE
23199 ,p_module => l_log_module);
23200 END IF;
23201 --
23202 EXCEPTION
23203 WHEN xla_exceptions_pkg.application_exception THEN
23204 RAISE;
23205 WHEN OTHERS THEN
23209 --
23206 xla_exceptions_pkg.raise_message
23207 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_55');
23208 END AcctLineType_55;
23210
23211 ---------------------------------------
23212 --
23213 -- PRIVATE FUNCTION
23214 -- AcctLineType_56
23215 --
23216 ---------------------------------------
23217 PROCEDURE AcctLineType_56 (
23218 p_application_id IN NUMBER
23219 ,p_event_id IN NUMBER
23220 ,p_calculate_acctd_flag IN VARCHAR2
23221 ,p_calculate_g_l_flag IN VARCHAR2
23222 ,p_actual_flag IN OUT VARCHAR2
23223 ,p_balance_type_code OUT VARCHAR2
23224 ,p_gain_or_loss_ref OUT VARCHAR2
23225
23226 --Cost CCID
23227 , p_source_3 IN NUMBER
23228 --Allow Account Override Flag
23229 , p_source_4 IN VARCHAR2
23230 --Cost Clearing CCID
23231 , p_source_6 IN NUMBER
23232 --Adjustment Cost Clearing CCID
23233 , p_source_7 IN NUMBER
23234 --Exchange Rate Variance Flag
23235 , p_source_21 IN VARCHAR2
23236 --Reversing Line Flag
23237 , p_source_22 IN VARCHAR2
23238 --Actual Upgrade Credit Accounting Class
23239 , p_source_23 IN VARCHAR2
23240 --Entered Raw Cost
23241 , p_source_24 IN NUMBER
23242 --Entered Currency Code
23243 , p_source_25 IN VARCHAR2
23244 --Accounted Raw Cost
23245 , p_source_26 IN NUMBER
23246 --Exchange Rate Date
23247 , p_source_27 IN DATE
23248 --Exchange Rate
23249 , p_source_28 IN NUMBER
23250 --Exchange Rate Type
23251 , p_source_29 IN VARCHAR2
23252 --Actual Upgrade Debit Accounting Class
23253 , p_source_30 IN VARCHAR2
23254 --Use Actuals Upgrade Attributes Flag
23255 , p_source_31 IN VARCHAR2
23256 --Expenditure Item ID
23257 , p_source_32 IN NUMBER
23258 --Cost Distribution Line Number
23259 , p_source_33 IN NUMBER
23260 --Line Type
23261 , p_source_34 IN VARCHAR2
23262 , p_source_34_meaning IN VARCHAR2
23263 --Reversed Line Number
23264 , p_source_35 IN NUMBER
23265 )
23266 IS
23267
23268 l_component_type VARCHAR2(80);
23269 l_component_code VARCHAR2(30);
23270 l_component_type_code VARCHAR2(1);
23271 l_component_appl_id INTEGER;
23272 l_amb_context_code VARCHAR2(30);
23273 l_entity_code VARCHAR2(30);
23274 l_event_class_code VARCHAR2(30);
23275 l_ae_header_id NUMBER;
23276 l_event_type_code VARCHAR2(30);
23277 l_line_definition_code VARCHAR2(30);
23278 l_line_definition_owner_code VARCHAR2(1);
23279 --
23280 -- adr variables
23281 l_segment VARCHAR2(30);
23282 l_ccid NUMBER;
23283 l_adr_transaction_coa_id NUMBER;
23284 l_adr_accounting_coa_id NUMBER;
23285 l_adr_flexfield_segment_code VARCHAR2(30);
23286 l_adr_flex_value_set_id NUMBER;
23287 l_adr_value_type_code VARCHAR2(30);
23288 l_adr_value_combination_id NUMBER;
23289 l_adr_value_segment_code VARCHAR2(30);
23290
23291 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23292 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23293 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23294 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23295
23296 -- 4262811 Variables ------------------------------------------------------------------------------------------
23297 l_entered_amt_idx NUMBER;
23298 l_accted_amt_idx NUMBER;
23299 l_acc_rev_flag VARCHAR2(1);
23300 l_accrual_line_num NUMBER;
23301 l_tmp_amt NUMBER;
23302 l_acc_rev_natural_side_code VARCHAR2(1);
23303
23304 l_num_entries NUMBER;
23305 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23306 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23307 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23308 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23309 l_recog_line_1 NUMBER;
23310 l_recog_line_2 NUMBER;
23311
23312 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23313 l_bflow_applied_to_amt NUMBER; -- 5132302
23314 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23315
23316 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23317
23318 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23319 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23320
23321 ---------------------------------------------------------------------------------------------------------------
23322
23323
23324 --
23325 -- bulk performance
23326 --
23327 l_balance_type_code VARCHAR2(1);
23328 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23329 l_log_module VARCHAR2(240);
23330
23331 --
23332 -- Upgrade strategy
23333 --
23334 l_actual_upg_option VARCHAR2(1);
23335 l_enc_upg_option VARCHAR2(1);
23336
23337 --
23338 BEGIN
23339 --
23340 IF g_log_enabled THEN
23341 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
23342 END IF;
23343 --
23344 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23345
23346 trace
23347 (p_msg => 'BEGIN of AcctLineType_56'
23348 ,p_level => C_LEVEL_PROCEDURE
23349 ,p_module => l_log_module);
23350
23351 END IF;
23352 --
23356 l_component_appl_id := 275;
23353 l_component_type := 'AMB_JLT';
23354 l_component_code := 'PA_RAW_COST_CLEARING';
23355 l_component_type_code := 'S';
23357 l_amb_context_code := 'DEFAULT';
23358 l_entity_code := 'EXPENDITURES';
23359 l_event_class_code := 'SUPPLIER_COST';
23360 l_event_type_code := 'SUPPLIER_COST_ALL';
23361 l_line_definition_owner_code := 'S';
23362 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
23363 --
23364 l_balance_type_code := 'A';
23365 l_segment := NULL;
23366 l_ccid := NULL;
23367 l_adr_transaction_coa_id := NULL;
23368 l_adr_accounting_coa_id := NULL;
23369 l_adr_flexfield_segment_code := NULL;
23370 l_adr_flex_value_set_id := NULL;
23371 l_adr_value_type_code := NULL;
23372 l_adr_value_combination_id := NULL;
23373 l_adr_value_segment_code := NULL;
23374
23375 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23376 l_bflow_class_code := ''; -- 4219869 Business Flow
23377 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23378 l_budgetary_control_flag := 'N';
23379
23380 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23381 l_bflow_applied_to_amt := NULL; -- 5132302
23382 l_entered_amt_idx := NULL; -- 4262811
23383 l_accted_amt_idx := NULL; -- 4262811
23384 l_acc_rev_flag := NULL; -- 4262811
23385 l_accrual_line_num := NULL; -- 4262811
23386 l_tmp_amt := NULL; -- 4262811
23387 --
23388
23389 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23390 l_balance_type_code <> 'B' THEN
23391 IF NVL(p_source_21,'
23392 ') = 'N'
23393 THEN
23394
23395 --
23396 XLA_AE_LINES_PKG.SetNewLine;
23397
23398 p_balance_type_code := l_balance_type_code;
23399 -- set the flag so later we will know whether the gain loss line needs to be created
23400
23401 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23402 p_actual_flag :='A';
23403 END IF;
23404
23405 --
23406 -- bulk performance
23407 --
23408 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23409 p_header_num => 0); -- 4262811
23410 --
23411 -- set accounting line options
23412 --
23413 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23414 p_natural_side_code => 'C'
23415 , p_gain_or_loss_flag => 'N'
23416 , p_gl_transfer_mode_code => 'S'
23417 , p_acct_entry_type_code => 'A'
23418 , p_switch_side_flag => 'Y'
23419 , p_merge_duplicate_code => 'N'
23420 );
23421 --
23422 l_acc_rev_natural_side_code := 'D'; -- 4262811
23423 --
23424 --
23425 -- set accounting line type info
23426 --
23427 xla_ae_lines_pkg.SetAcctLineType
23428 (p_component_type => l_component_type
23429 ,p_event_type_code => l_event_type_code
23430 ,p_line_definition_owner_code => l_line_definition_owner_code
23431 ,p_line_definition_code => l_line_definition_code
23432 ,p_accounting_line_code => l_component_code
23433 ,p_accounting_line_type_code => l_component_type_code
23434 ,p_accounting_line_appl_id => l_component_appl_id
23435 ,p_amb_context_code => l_amb_context_code
23436 ,p_entity_code => l_entity_code
23437 ,p_event_class_code => l_event_class_code);
23438 --
23439 -- set accounting class
23440 --
23441 xla_ae_lines_pkg.SetAcctClass(
23442 p_accounting_class_code => 'COST_CLEARING'
23443 , p_ae_header_id => l_ae_header_id
23444 );
23445
23446 --
23447 -- set rounding class
23448 --
23449 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23450 'COST_CLEARING';
23451
23452 --
23453 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23454 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23455 --
23456 -- bulk performance
23457 --
23458 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23459
23460 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23461 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23462
23463 -- 4955764
23464 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23465 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23466
23467 -- 4458381 Public Sector Enh
23468
23469 --
23470 -- set accounting attributes for the line type
23471 --
23472 l_entered_amt_idx := 22;
23473 l_accted_amt_idx := 27;
23474 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23475 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23476 l_rec_acct_attrs.array_char_value(1) := p_source_22;
23477 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
23478 l_rec_acct_attrs.array_char_value(2) := p_source_23;
23479 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
23480 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
23481 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
23482 l_rec_acct_attrs.array_num_value(4) := p_source_24;
23483 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
23487 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
23484 l_rec_acct_attrs.array_char_value(5) := p_source_25;
23485 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
23486 l_rec_acct_attrs.array_num_value(6) := p_source_26;
23488 l_rec_acct_attrs.array_date_value(7) := p_source_27;
23489 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
23490 l_rec_acct_attrs.array_num_value(8) := p_source_28;
23491 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
23492 l_rec_acct_attrs.array_char_value(9) := p_source_29;
23493 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
23494 l_rec_acct_attrs.array_char_value(10) := p_source_30;
23495 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
23496 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
23497 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
23498 l_rec_acct_attrs.array_num_value(12) := p_source_24;
23499 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
23500 l_rec_acct_attrs.array_char_value(13) := p_source_25;
23501 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
23502 l_rec_acct_attrs.array_num_value(14) := p_source_26;
23503 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
23504 l_rec_acct_attrs.array_date_value(15) := p_source_27;
23505 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
23506 l_rec_acct_attrs.array_num_value(16) := p_source_28;
23507 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
23508 l_rec_acct_attrs.array_char_value(17) := p_source_29;
23509 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
23510 l_rec_acct_attrs.array_char_value(18) := p_source_31;
23511 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
23512 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
23513 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
23514 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
23515 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
23516 l_rec_acct_attrs.array_char_value(21) := p_source_34;
23517 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
23518 l_rec_acct_attrs.array_num_value(22) := p_source_24;
23519 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
23520 l_rec_acct_attrs.array_char_value(23) := p_source_25;
23521 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
23522 l_rec_acct_attrs.array_date_value(24) := p_source_27;
23523 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
23524 l_rec_acct_attrs.array_num_value(25) := p_source_28;
23525 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
23526 l_rec_acct_attrs.array_char_value(26) := p_source_29;
23527 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
23528 l_rec_acct_attrs.array_num_value(27) := p_source_26;
23529 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
23530 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
23531 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
23532 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
23533 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
23534 l_rec_acct_attrs.array_char_value(30) := p_source_34;
23535
23536 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23537 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23538
23539 ---------------------------------------------------------------------------------------------------------------
23540 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23541 ---------------------------------------------------------------------------------------------------------------
23542 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23543
23544 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23545 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23546
23547 IF xla_accounting_cache_pkg.GetValueChar
23548 (p_source_code => 'LEDGER_CATEGORY_CODE'
23549 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23550 AND l_bflow_method_code = 'PRIOR_ENTRY'
23551 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23552 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23553 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23554 )
23555 THEN
23556 xla_ae_lines_pkg.BflowUpgEntry
23557 (p_business_method_code => l_bflow_method_code
23558 ,p_business_class_code => l_bflow_class_code
23559 ,p_balance_type => l_balance_type_code);
23560 ELSE
23561 NULL;
23562 -- No business flow processing for business flow method of NONE.
23563 END IF;
23564
23565 --
23566 -- call analytical criteria
23567 --
23568
23569 --
23570 -- call description
23571 --
23572 -- No description or it is inherited.
23573 --
23574 -- call ADRs
23575 -- Bug 4922099
23576 --
23577 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23578 (NVL(l_actual_upg_option, 'N') = 'O') OR
23579 (NVL(l_enc_upg_option, 'N') = 'O')
23580 )
23581 THEN
23582 NULL;
23583 --
23584 --
23585
23586 l_ccid := AcctDerRule_5(
23587 p_application_id => p_application_id
23588 , p_ae_header_id => l_ae_header_id
23589 , p_source_4 => p_source_4
23590 , p_source_6 => p_source_6
23591 , p_source_7 => p_source_7
23595 , p_side => 'NA'
23592 , x_transaction_coa_id => l_adr_transaction_coa_id
23593 , x_accounting_coa_id => l_adr_accounting_coa_id
23594 , x_value_type_code => l_adr_value_type_code
23596 );
23597
23598 xla_ae_lines_pkg.set_ccid(
23599 p_code_combination_id => l_ccid
23600 , p_value_type_code => l_adr_value_type_code
23601 , p_transaction_coa_id => l_adr_transaction_coa_id
23602 , p_accounting_coa_id => l_adr_accounting_coa_id
23603 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
23604 , p_adr_type_code => 'S'
23605 , p_component_type => l_component_type
23606 , p_component_code => l_component_code
23607 , p_component_type_code => l_component_type_code
23608 , p_component_appl_id => l_component_appl_id
23609 , p_amb_context_code => l_amb_context_code
23610 , p_side => 'NA'
23611 );
23612
23613
23614 --
23615 --
23616 END IF;
23617 --
23618 -- Bug 4922099
23619 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23620 (NVL(l_enc_upg_option, 'N') = 'O')
23621 ) AND
23622 (l_bflow_method_code = 'PRIOR_ENTRY')
23623 )
23624 THEN
23625 IF
23626 --
23627 1 = 2
23628 --
23629 THEN
23630 xla_accounting_err_pkg.build_message
23631 (p_appli_s_name => 'XLA'
23632 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23633 ,p_token_1 => 'LINE_NUMBER'
23634 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23635 ,p_token_2 => 'LINE_TYPE_NAME'
23636 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23637 l_component_type
23638 ,l_component_code
23639 ,l_component_type_code
23640 ,l_component_appl_id
23641 ,l_amb_context_code
23642 ,l_entity_code
23643 ,l_event_class_code
23644 )
23645 ,p_token_3 => 'OWNER'
23646 ,p_value_3 => xla_lookups_pkg.get_meaning(
23647 p_lookup_type => 'XLA_OWNER_TYPE'
23648 ,p_lookup_code => l_component_type_code
23649 )
23650 ,p_token_4 => 'PRODUCT_NAME'
23651 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23652 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23653 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23654 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23655 ,p_ae_header_id => NULL
23656 );
23657
23658 IF (C_LEVEL_ERROR>= g_log_level) THEN
23659 trace
23660 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23661 ,p_level => C_LEVEL_ERROR
23662 ,p_module => l_log_module);
23663 END IF;
23664 END IF;
23665 END IF;
23666 --
23667 --
23668 ------------------------------------------------------------------------------------------------
23669 -- 4219869 Business Flow
23670 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23671 -- Prior Entry. Currently, the following code is always generated.
23672 ------------------------------------------------------------------------------------------------
23673 XLA_AE_LINES_PKG.ValidateCurrentLine;
23674
23675 ------------------------------------------------------------------------------------
23676 -- 4219869 Business Flow
23677 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23678 ------------------------------------------------------------------------------------
23679 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23680
23681 ----------------------------------------------------------------------------------
23682 -- 4219869 Business Flow
23683 -- Update journal entry status -- Need to generate this within IF <condition>
23684 ----------------------------------------------------------------------------------
23685 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23686 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23687 ,p_balance_type_code => l_balance_type_code
23688 );
23689
23690 -------------------------------------------------------------------------------------------
23691 -- 4262811 - Generate the Accrual Reversal lines
23692 -------------------------------------------------------------------------------------------
23693 BEGIN
23694 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23698 END IF;
23695 (g_array_event(p_event_id).array_value_num('header_index'));
23696 IF l_acc_rev_flag IS NULL THEN
23697 l_acc_rev_flag := 'N';
23699 EXCEPTION
23700 WHEN OTHERS THEN
23701 l_acc_rev_flag := 'N';
23702 END;
23703 --
23704 IF (l_acc_rev_flag = 'Y') THEN
23705
23706 -- 4645092 ------------------------------------------------------------------------------
23707 -- To allow MPA report to determine if it should generate report process
23708 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23709 ------------------------------------------------------------------------------------------
23710
23711 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23712 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23713
23714 --
23715 -- Update the line information that should be overwritten
23716 --
23717 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23718 p_header_num => 1);
23719 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23720
23721 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23722
23723 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23724 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23725 END IF;
23726
23727 --
23728 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23729 --
23730 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23731 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23732 ELSE
23733 ---------------------------------------------------------------------------------------------------
23734 -- 4262811a Switch Sign
23735 ---------------------------------------------------------------------------------------------------
23736 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23737 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23738 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23739 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23740 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23741 -- 5132302
23742 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23743 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23744
23745 END IF;
23746
23747 -- 4955764
23748 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23749 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23750
23751
23752 XLA_AE_LINES_PKG.ValidateCurrentLine;
23753 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23754
23755 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23756 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23757 ,p_balance_type_code => l_balance_type_code);
23758
23759 END IF;
23760
23761 -----------------------------------------------------------------------------------------
23762 -- 4262811 Multiperiod Accounting
23763 -----------------------------------------------------------------------------------------
23764 -- No MPA option is assigned.
23765
23766
23767 END IF;
23768 END IF;
23769 --
23770
23771 --
23772 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23773 trace
23774 (p_msg => 'END of AcctLineType_56'
23775 ,p_level => C_LEVEL_PROCEDURE
23776 ,p_module => l_log_module);
23777 END IF;
23778 --
23779 EXCEPTION
23780 WHEN xla_exceptions_pkg.application_exception THEN
23781 RAISE;
23782 WHEN OTHERS THEN
23783 xla_exceptions_pkg.raise_message
23784 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_56');
23785 END AcctLineType_56;
23786 --
23787
23788 ---------------------------------------
23789 --
23790 -- PRIVATE FUNCTION
23791 -- AcctLineType_57
23792 --
23793 ---------------------------------------
23794 PROCEDURE AcctLineType_57 (
23795 p_application_id IN NUMBER
23796 ,p_event_id IN NUMBER
23797 ,p_calculate_acctd_flag IN VARCHAR2
23798 ,p_calculate_g_l_flag IN VARCHAR2
23799 ,p_actual_flag IN OUT VARCHAR2
23800 ,p_balance_type_code OUT VARCHAR2
23801 ,p_gain_or_loss_ref OUT VARCHAR2
23802
23803 --Cost CCID
23804 , p_source_3 IN NUMBER
23805 --Allow Account Override Flag
23806 , p_source_4 IN VARCHAR2
23807 --Cost Clearing CCID
23808 , p_source_6 IN NUMBER
23809 --Adjustment Cost Clearing CCID
23810 , p_source_7 IN NUMBER
23811 --Reversing Line Flag
23812 , p_source_22 IN VARCHAR2
23813 --Actual Upgrade Credit Accounting Class
23814 , p_source_23 IN VARCHAR2
23815 --Entered Raw Cost
23816 , p_source_24 IN NUMBER
23817 --Entered Currency Code
23818 , p_source_25 IN VARCHAR2
23819 --Accounted Raw Cost
23820 , p_source_26 IN NUMBER
23821 --Exchange Rate Date
23822 , p_source_27 IN DATE
23823 --Exchange Rate
23824 , p_source_28 IN NUMBER
23825 --Exchange Rate Type
23826 , p_source_29 IN VARCHAR2
23830 , p_source_31 IN VARCHAR2
23827 --Actual Upgrade Debit Accounting Class
23828 , p_source_30 IN VARCHAR2
23829 --Use Actuals Upgrade Attributes Flag
23831 --Expenditure Item ID
23832 , p_source_32 IN NUMBER
23833 --Cost Distribution Line Number
23834 , p_source_33 IN NUMBER
23835 --Line Type
23836 , p_source_34 IN VARCHAR2
23837 , p_source_34_meaning IN VARCHAR2
23838 --Reversed Line Number
23839 , p_source_35 IN NUMBER
23840 )
23841 IS
23842
23843 l_component_type VARCHAR2(80);
23844 l_component_code VARCHAR2(30);
23845 l_component_type_code VARCHAR2(1);
23846 l_component_appl_id INTEGER;
23847 l_amb_context_code VARCHAR2(30);
23848 l_entity_code VARCHAR2(30);
23849 l_event_class_code VARCHAR2(30);
23850 l_ae_header_id NUMBER;
23851 l_event_type_code VARCHAR2(30);
23852 l_line_definition_code VARCHAR2(30);
23853 l_line_definition_owner_code VARCHAR2(1);
23854 --
23855 -- adr variables
23856 l_segment VARCHAR2(30);
23857 l_ccid NUMBER;
23858 l_adr_transaction_coa_id NUMBER;
23859 l_adr_accounting_coa_id NUMBER;
23860 l_adr_flexfield_segment_code VARCHAR2(30);
23861 l_adr_flex_value_set_id NUMBER;
23862 l_adr_value_type_code VARCHAR2(30);
23863 l_adr_value_combination_id NUMBER;
23864 l_adr_value_segment_code VARCHAR2(30);
23865
23866 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23867 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23868 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23869 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23870
23871 -- 4262811 Variables ------------------------------------------------------------------------------------------
23872 l_entered_amt_idx NUMBER;
23873 l_accted_amt_idx NUMBER;
23874 l_acc_rev_flag VARCHAR2(1);
23875 l_accrual_line_num NUMBER;
23876 l_tmp_amt NUMBER;
23877 l_acc_rev_natural_side_code VARCHAR2(1);
23878
23879 l_num_entries NUMBER;
23880 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23881 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23882 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23883 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23884 l_recog_line_1 NUMBER;
23885 l_recog_line_2 NUMBER;
23886
23887 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23888 l_bflow_applied_to_amt NUMBER; -- 5132302
23889 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23890
23891 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23892
23893 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23894 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23895
23896 ---------------------------------------------------------------------------------------------------------------
23897
23898
23899 --
23900 -- bulk performance
23901 --
23902 l_balance_type_code VARCHAR2(1);
23903 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23904 l_log_module VARCHAR2(240);
23905
23906 --
23907 -- Upgrade strategy
23908 --
23909 l_actual_upg_option VARCHAR2(1);
23910 l_enc_upg_option VARCHAR2(1);
23911
23912 --
23913 BEGIN
23914 --
23915 IF g_log_enabled THEN
23916 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
23917 END IF;
23918 --
23919 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23920
23921 trace
23922 (p_msg => 'BEGIN of AcctLineType_57'
23923 ,p_level => C_LEVEL_PROCEDURE
23924 ,p_module => l_log_module);
23925
23926 END IF;
23927 --
23928 l_component_type := 'AMB_JLT';
23929 l_component_code := 'PA_RAW_COST_CLEARING';
23930 l_component_type_code := 'S';
23931 l_component_appl_id := 275;
23932 l_amb_context_code := 'DEFAULT';
23933 l_entity_code := 'EXPENDITURES';
23934 l_event_class_code := 'INVENTORY_COST';
23935 l_event_type_code := 'INVENTORY_COST_ALL';
23936 l_line_definition_owner_code := 'S';
23937 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
23938 --
23939 l_balance_type_code := 'A';
23940 l_segment := NULL;
23941 l_ccid := NULL;
23942 l_adr_transaction_coa_id := NULL;
23943 l_adr_accounting_coa_id := NULL;
23944 l_adr_flexfield_segment_code := NULL;
23945 l_adr_flex_value_set_id := NULL;
23946 l_adr_value_type_code := NULL;
23947 l_adr_value_combination_id := NULL;
23948 l_adr_value_segment_code := NULL;
23949
23950 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23951 l_bflow_class_code := ''; -- 4219869 Business Flow
23952 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23953 l_budgetary_control_flag := 'N';
23954
23955 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23956 l_bflow_applied_to_amt := NULL; -- 5132302
23957 l_entered_amt_idx := NULL; -- 4262811
23958 l_accted_amt_idx := NULL; -- 4262811
23959 l_acc_rev_flag := NULL; -- 4262811
23960 l_accrual_line_num := NULL; -- 4262811
23961 l_tmp_amt := NULL; -- 4262811
23962 --
23963
23967 --
23964 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23965 l_balance_type_code <> 'B' THEN
23966
23968 XLA_AE_LINES_PKG.SetNewLine;
23969
23970 p_balance_type_code := l_balance_type_code;
23971 -- set the flag so later we will know whether the gain loss line needs to be created
23972
23973 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23974 p_actual_flag :='A';
23975 END IF;
23976
23977 --
23978 -- bulk performance
23979 --
23980 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23981 p_header_num => 0); -- 4262811
23982 --
23983 -- set accounting line options
23984 --
23985 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23986 p_natural_side_code => 'C'
23987 , p_gain_or_loss_flag => 'N'
23988 , p_gl_transfer_mode_code => 'S'
23989 , p_acct_entry_type_code => 'A'
23990 , p_switch_side_flag => 'Y'
23991 , p_merge_duplicate_code => 'N'
23992 );
23993 --
23994 l_acc_rev_natural_side_code := 'D'; -- 4262811
23995 --
23996 --
23997 -- set accounting line type info
23998 --
23999 xla_ae_lines_pkg.SetAcctLineType
24000 (p_component_type => l_component_type
24001 ,p_event_type_code => l_event_type_code
24002 ,p_line_definition_owner_code => l_line_definition_owner_code
24003 ,p_line_definition_code => l_line_definition_code
24004 ,p_accounting_line_code => l_component_code
24005 ,p_accounting_line_type_code => l_component_type_code
24006 ,p_accounting_line_appl_id => l_component_appl_id
24007 ,p_amb_context_code => l_amb_context_code
24008 ,p_entity_code => l_entity_code
24009 ,p_event_class_code => l_event_class_code);
24010 --
24011 -- set accounting class
24012 --
24013 xla_ae_lines_pkg.SetAcctClass(
24014 p_accounting_class_code => 'COST_CLEARING'
24015 , p_ae_header_id => l_ae_header_id
24016 );
24017
24018 --
24019 -- set rounding class
24020 --
24021 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24022 'COST_CLEARING';
24023
24024 --
24025 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24026 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24027 --
24028 -- bulk performance
24029 --
24030 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24031
24032 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24033 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24034
24035 -- 4955764
24036 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24037 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24038
24039 -- 4458381 Public Sector Enh
24040
24041 --
24042 -- set accounting attributes for the line type
24043 --
24044 l_entered_amt_idx := 22;
24045 l_accted_amt_idx := 27;
24046 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24047 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24048 l_rec_acct_attrs.array_char_value(1) := p_source_22;
24049 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
24050 l_rec_acct_attrs.array_char_value(2) := p_source_23;
24051 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
24052 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
24053 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
24054 l_rec_acct_attrs.array_num_value(4) := p_source_24;
24055 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
24056 l_rec_acct_attrs.array_char_value(5) := p_source_25;
24057 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
24058 l_rec_acct_attrs.array_num_value(6) := p_source_26;
24059 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
24060 l_rec_acct_attrs.array_date_value(7) := p_source_27;
24061 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
24062 l_rec_acct_attrs.array_num_value(8) := p_source_28;
24063 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
24064 l_rec_acct_attrs.array_char_value(9) := p_source_29;
24065 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
24066 l_rec_acct_attrs.array_char_value(10) := p_source_30;
24067 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
24068 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
24069 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
24070 l_rec_acct_attrs.array_num_value(12) := p_source_24;
24071 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
24072 l_rec_acct_attrs.array_char_value(13) := p_source_25;
24073 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
24074 l_rec_acct_attrs.array_num_value(14) := p_source_26;
24075 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
24076 l_rec_acct_attrs.array_date_value(15) := p_source_27;
24077 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
24078 l_rec_acct_attrs.array_num_value(16) := p_source_28;
24079 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
24080 l_rec_acct_attrs.array_char_value(17) := p_source_29;
24081 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
24085 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
24082 l_rec_acct_attrs.array_char_value(18) := p_source_31;
24083 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
24084 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
24086 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
24087 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
24088 l_rec_acct_attrs.array_char_value(21) := p_source_34;
24089 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
24090 l_rec_acct_attrs.array_num_value(22) := p_source_24;
24091 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
24092 l_rec_acct_attrs.array_char_value(23) := p_source_25;
24093 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
24094 l_rec_acct_attrs.array_date_value(24) := p_source_27;
24095 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
24096 l_rec_acct_attrs.array_num_value(25) := p_source_28;
24097 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
24098 l_rec_acct_attrs.array_char_value(26) := p_source_29;
24099 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
24100 l_rec_acct_attrs.array_num_value(27) := p_source_26;
24101 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
24102 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
24103 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
24104 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
24105 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
24106 l_rec_acct_attrs.array_char_value(30) := p_source_34;
24107
24108 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24109 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24110
24111 ---------------------------------------------------------------------------------------------------------------
24112 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24113 ---------------------------------------------------------------------------------------------------------------
24114 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24115
24116 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24117 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24118
24119 IF xla_accounting_cache_pkg.GetValueChar
24120 (p_source_code => 'LEDGER_CATEGORY_CODE'
24121 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24122 AND l_bflow_method_code = 'PRIOR_ENTRY'
24123 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24124 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24125 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24126 )
24127 THEN
24128 xla_ae_lines_pkg.BflowUpgEntry
24129 (p_business_method_code => l_bflow_method_code
24130 ,p_business_class_code => l_bflow_class_code
24131 ,p_balance_type => l_balance_type_code);
24132 ELSE
24133 NULL;
24134 -- No business flow processing for business flow method of NONE.
24135 END IF;
24136
24137 --
24138 -- call analytical criteria
24139 --
24140
24141 --
24142 -- call description
24143 --
24144 -- No description or it is inherited.
24145 --
24146 -- call ADRs
24147 -- Bug 4922099
24148 --
24149 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24150 (NVL(l_actual_upg_option, 'N') = 'O') OR
24151 (NVL(l_enc_upg_option, 'N') = 'O')
24152 )
24153 THEN
24154 NULL;
24155 --
24156 --
24157
24158 l_ccid := AcctDerRule_5(
24159 p_application_id => p_application_id
24160 , p_ae_header_id => l_ae_header_id
24161 , p_source_4 => p_source_4
24162 , p_source_6 => p_source_6
24163 , p_source_7 => p_source_7
24164 , x_transaction_coa_id => l_adr_transaction_coa_id
24165 , x_accounting_coa_id => l_adr_accounting_coa_id
24166 , x_value_type_code => l_adr_value_type_code
24167 , p_side => 'NA'
24168 );
24169
24170 xla_ae_lines_pkg.set_ccid(
24171 p_code_combination_id => l_ccid
24172 , p_value_type_code => l_adr_value_type_code
24173 , p_transaction_coa_id => l_adr_transaction_coa_id
24174 , p_accounting_coa_id => l_adr_accounting_coa_id
24175 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
24176 , p_adr_type_code => 'S'
24177 , p_component_type => l_component_type
24178 , p_component_code => l_component_code
24179 , p_component_type_code => l_component_type_code
24180 , p_component_appl_id => l_component_appl_id
24181 , p_amb_context_code => l_amb_context_code
24182 , p_side => 'NA'
24183 );
24184
24185
24186 --
24187 --
24188 END IF;
24189 --
24190 -- Bug 4922099
24191 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24192 (NVL(l_enc_upg_option, 'N') = 'O')
24193 ) AND
24194 (l_bflow_method_code = 'PRIOR_ENTRY')
24195 )
24196 THEN
24197 IF
24198 --
24199 1 = 2
24200 --
24201 THEN
24202 xla_accounting_err_pkg.build_message
24203 (p_appli_s_name => 'XLA'
24204 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24208 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24205 ,p_token_1 => 'LINE_NUMBER'
24206 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24207 ,p_token_2 => 'LINE_TYPE_NAME'
24209 l_component_type
24210 ,l_component_code
24211 ,l_component_type_code
24212 ,l_component_appl_id
24213 ,l_amb_context_code
24214 ,l_entity_code
24215 ,l_event_class_code
24216 )
24217 ,p_token_3 => 'OWNER'
24218 ,p_value_3 => xla_lookups_pkg.get_meaning(
24219 p_lookup_type => 'XLA_OWNER_TYPE'
24220 ,p_lookup_code => l_component_type_code
24221 )
24222 ,p_token_4 => 'PRODUCT_NAME'
24223 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24224 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24225 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24226 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24227 ,p_ae_header_id => NULL
24228 );
24229
24230 IF (C_LEVEL_ERROR>= g_log_level) THEN
24231 trace
24232 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24233 ,p_level => C_LEVEL_ERROR
24234 ,p_module => l_log_module);
24235 END IF;
24236 END IF;
24237 END IF;
24238 --
24239 --
24240 ------------------------------------------------------------------------------------------------
24241 -- 4219869 Business Flow
24242 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24243 -- Prior Entry. Currently, the following code is always generated.
24244 ------------------------------------------------------------------------------------------------
24245 XLA_AE_LINES_PKG.ValidateCurrentLine;
24246
24247 ------------------------------------------------------------------------------------
24248 -- 4219869 Business Flow
24249 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24250 ------------------------------------------------------------------------------------
24251 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24252
24253 ----------------------------------------------------------------------------------
24254 -- 4219869 Business Flow
24255 -- Update journal entry status -- Need to generate this within IF <condition>
24256 ----------------------------------------------------------------------------------
24257 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24258 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24259 ,p_balance_type_code => l_balance_type_code
24260 );
24261
24262 -------------------------------------------------------------------------------------------
24263 -- 4262811 - Generate the Accrual Reversal lines
24264 -------------------------------------------------------------------------------------------
24265 BEGIN
24266 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24267 (g_array_event(p_event_id).array_value_num('header_index'));
24268 IF l_acc_rev_flag IS NULL THEN
24269 l_acc_rev_flag := 'N';
24270 END IF;
24271 EXCEPTION
24272 WHEN OTHERS THEN
24273 l_acc_rev_flag := 'N';
24274 END;
24275 --
24276 IF (l_acc_rev_flag = 'Y') THEN
24277
24278 -- 4645092 ------------------------------------------------------------------------------
24279 -- To allow MPA report to determine if it should generate report process
24280 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24281 ------------------------------------------------------------------------------------------
24282
24283 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24284 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24285
24286 --
24287 -- Update the line information that should be overwritten
24288 --
24289 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24290 p_header_num => 1);
24291 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24292
24293 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24294
24295 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24296 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24297 END IF;
24298
24299 --
24300 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24301 --
24305 ---------------------------------------------------------------------------------------------------
24302 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24303 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24304 ELSE
24306 -- 4262811a Switch Sign
24307 ---------------------------------------------------------------------------------------------------
24308 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24309 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24310 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24311 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24312 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24313 -- 5132302
24314 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24315 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24316
24317 END IF;
24318
24319 -- 4955764
24320 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24321 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24322
24323
24324 XLA_AE_LINES_PKG.ValidateCurrentLine;
24325 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24326
24327 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24328 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24329 ,p_balance_type_code => l_balance_type_code);
24330
24331 END IF;
24332
24333 -----------------------------------------------------------------------------------------
24334 -- 4262811 Multiperiod Accounting
24335 -----------------------------------------------------------------------------------------
24336 -- No MPA option is assigned.
24337
24338
24339 END IF;
24340 --
24341
24342 --
24343 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24344 trace
24345 (p_msg => 'END of AcctLineType_57'
24346 ,p_level => C_LEVEL_PROCEDURE
24347 ,p_module => l_log_module);
24348 END IF;
24349 --
24350 EXCEPTION
24351 WHEN xla_exceptions_pkg.application_exception THEN
24352 RAISE;
24353 WHEN OTHERS THEN
24354 xla_exceptions_pkg.raise_message
24355 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_57');
24356 END AcctLineType_57;
24357 --
24358
24359 ---------------------------------------
24360 --
24361 -- PRIVATE FUNCTION
24362 -- AcctLineType_58
24363 --
24364 ---------------------------------------
24365 PROCEDURE AcctLineType_58 (
24366 p_application_id IN NUMBER
24367 ,p_event_id IN NUMBER
24368 ,p_calculate_acctd_flag IN VARCHAR2
24369 ,p_calculate_g_l_flag IN VARCHAR2
24370 ,p_actual_flag IN OUT VARCHAR2
24371 ,p_balance_type_code OUT VARCHAR2
24372 ,p_gain_or_loss_ref OUT VARCHAR2
24373
24374 --Cost CCID
24375 , p_source_3 IN NUMBER
24376 --Allow Account Override Flag
24377 , p_source_4 IN VARCHAR2
24378 --Cost Clearing CCID
24379 , p_source_6 IN NUMBER
24380 --Adjustment Cost Clearing CCID
24381 , p_source_7 IN NUMBER
24382 --Reversing Line Flag
24383 , p_source_22 IN VARCHAR2
24384 --Actual Upgrade Credit Accounting Class
24385 , p_source_23 IN VARCHAR2
24386 --Entered Raw Cost
24387 , p_source_24 IN NUMBER
24388 --Entered Currency Code
24389 , p_source_25 IN VARCHAR2
24390 --Accounted Raw Cost
24391 , p_source_26 IN NUMBER
24392 --Exchange Rate Date
24393 , p_source_27 IN DATE
24394 --Exchange Rate
24395 , p_source_28 IN NUMBER
24396 --Exchange Rate Type
24397 , p_source_29 IN VARCHAR2
24398 --Actual Upgrade Debit Accounting Class
24399 , p_source_30 IN VARCHAR2
24400 --Use Actuals Upgrade Attributes Flag
24401 , p_source_31 IN VARCHAR2
24402 --Expenditure Item ID
24403 , p_source_32 IN NUMBER
24404 --Cost Distribution Line Number
24405 , p_source_33 IN NUMBER
24406 --Line Type
24407 , p_source_34 IN VARCHAR2
24408 , p_source_34_meaning IN VARCHAR2
24409 --Reversed Line Number
24410 , p_source_35 IN NUMBER
24411 --Project Number
24412 , p_source_68 IN VARCHAR2
24413 )
24414 IS
24415
24416 l_component_type VARCHAR2(80);
24417 l_component_code VARCHAR2(30);
24418 l_component_type_code VARCHAR2(1);
24419 l_component_appl_id INTEGER;
24420 l_amb_context_code VARCHAR2(30);
24421 l_entity_code VARCHAR2(30);
24422 l_event_class_code VARCHAR2(30);
24423 l_ae_header_id NUMBER;
24424 l_event_type_code VARCHAR2(30);
24425 l_line_definition_code VARCHAR2(30);
24426 l_line_definition_owner_code VARCHAR2(1);
24427 --
24428 -- adr variables
24429 l_segment VARCHAR2(30);
24430 l_ccid NUMBER;
24431 l_adr_transaction_coa_id NUMBER;
24432 l_adr_accounting_coa_id NUMBER;
24433 l_adr_flexfield_segment_code VARCHAR2(30);
24434 l_adr_flex_value_set_id NUMBER;
24435 l_adr_value_type_code VARCHAR2(30);
24436 l_adr_value_combination_id NUMBER;
24437 l_adr_value_segment_code VARCHAR2(30);
24438
24439 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24443
24440 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24441 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24442 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24444 -- 4262811 Variables ------------------------------------------------------------------------------------------
24445 l_entered_amt_idx NUMBER;
24446 l_accted_amt_idx NUMBER;
24447 l_acc_rev_flag VARCHAR2(1);
24448 l_accrual_line_num NUMBER;
24449 l_tmp_amt NUMBER;
24450 l_acc_rev_natural_side_code VARCHAR2(1);
24451
24452 l_num_entries NUMBER;
24453 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24454 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24455 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24456 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24457 l_recog_line_1 NUMBER;
24458 l_recog_line_2 NUMBER;
24459
24460 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24461 l_bflow_applied_to_amt NUMBER; -- 5132302
24462 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24463
24464 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24465
24466 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24467 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24468
24469 ---------------------------------------------------------------------------------------------------------------
24470
24471
24472 --
24473 -- bulk performance
24474 --
24475 l_balance_type_code VARCHAR2(1);
24476 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24477 l_log_module VARCHAR2(240);
24478
24479 --
24480 -- Upgrade strategy
24481 --
24482 l_actual_upg_option VARCHAR2(1);
24483 l_enc_upg_option VARCHAR2(1);
24484
24485 --
24486 BEGIN
24487 --
24488 IF g_log_enabled THEN
24489 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
24490 END IF;
24491 --
24492 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24493
24494 trace
24495 (p_msg => 'BEGIN of AcctLineType_58'
24496 ,p_level => C_LEVEL_PROCEDURE
24497 ,p_module => l_log_module);
24498
24499 END IF;
24500 --
24501 l_component_type := 'AMB_JLT';
24502 l_component_code := 'PA_RAW_COST_CLEARING';
24503 l_component_type_code := 'S';
24504 l_component_appl_id := 275;
24505 l_amb_context_code := 'DEFAULT';
24506 l_entity_code := 'EXPENDITURES';
24507 l_event_class_code := 'MISC_COST';
24508 l_event_type_code := 'MISC_COST_ALL';
24509 l_line_definition_owner_code := 'S';
24510 l_line_definition_code := 'JA_CN_PA_ACCRUAL_MIS_COST';
24511 --
24512 l_balance_type_code := 'A';
24513 l_segment := NULL;
24514 l_ccid := NULL;
24515 l_adr_transaction_coa_id := NULL;
24516 l_adr_accounting_coa_id := NULL;
24517 l_adr_flexfield_segment_code := NULL;
24518 l_adr_flex_value_set_id := NULL;
24519 l_adr_value_type_code := NULL;
24520 l_adr_value_combination_id := NULL;
24521 l_adr_value_segment_code := NULL;
24522
24523 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
24524 l_bflow_class_code := ''; -- 4219869 Business Flow
24525 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24526 l_budgetary_control_flag := 'N';
24527
24528 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24529 l_bflow_applied_to_amt := NULL; -- 5132302
24530 l_entered_amt_idx := NULL; -- 4262811
24531 l_accted_amt_idx := NULL; -- 4262811
24532 l_acc_rev_flag := NULL; -- 4262811
24533 l_accrual_line_num := NULL; -- 4262811
24534 l_tmp_amt := NULL; -- 4262811
24535 --
24536
24537 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24538 l_balance_type_code <> 'B' THEN
24539
24540 --
24541 XLA_AE_LINES_PKG.SetNewLine;
24542
24543 p_balance_type_code := l_balance_type_code;
24544 -- set the flag so later we will know whether the gain loss line needs to be created
24545
24546 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24547 p_actual_flag :='A';
24548 END IF;
24549
24550 --
24551 -- bulk performance
24552 --
24553 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24554 p_header_num => 0); -- 4262811
24555 --
24556 -- set accounting line options
24557 --
24558 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24559 p_natural_side_code => 'C'
24560 , p_gain_or_loss_flag => 'N'
24561 , p_gl_transfer_mode_code => 'S'
24562 , p_acct_entry_type_code => 'A'
24563 , p_switch_side_flag => 'Y'
24564 , p_merge_duplicate_code => 'N'
24565 );
24566 --
24567 l_acc_rev_natural_side_code := 'D'; -- 4262811
24568 --
24569 --
24570 -- set accounting line type info
24571 --
24572 xla_ae_lines_pkg.SetAcctLineType
24573 (p_component_type => l_component_type
24574 ,p_event_type_code => l_event_type_code
24575 ,p_line_definition_owner_code => l_line_definition_owner_code
24576 ,p_line_definition_code => l_line_definition_code
24580 ,p_amb_context_code => l_amb_context_code
24577 ,p_accounting_line_code => l_component_code
24578 ,p_accounting_line_type_code => l_component_type_code
24579 ,p_accounting_line_appl_id => l_component_appl_id
24581 ,p_entity_code => l_entity_code
24582 ,p_event_class_code => l_event_class_code);
24583 --
24584 -- set accounting class
24585 --
24586 xla_ae_lines_pkg.SetAcctClass(
24587 p_accounting_class_code => 'COST_CLEARING'
24588 , p_ae_header_id => l_ae_header_id
24589 );
24590
24591 --
24592 -- set rounding class
24593 --
24594 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24595 'COST_CLEARING';
24596
24597 --
24598 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24599 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24600 --
24601 -- bulk performance
24602 --
24603 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24604
24605 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24606 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24607
24608 -- 4955764
24609 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24610 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24611
24612 -- 4458381 Public Sector Enh
24613
24614 --
24615 -- set accounting attributes for the line type
24616 --
24617 l_entered_amt_idx := 22;
24618 l_accted_amt_idx := 27;
24619 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24620 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24621 l_rec_acct_attrs.array_char_value(1) := p_source_22;
24622 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
24623 l_rec_acct_attrs.array_char_value(2) := p_source_23;
24624 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
24625 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
24626 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
24627 l_rec_acct_attrs.array_num_value(4) := p_source_24;
24628 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
24629 l_rec_acct_attrs.array_char_value(5) := p_source_25;
24630 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
24631 l_rec_acct_attrs.array_num_value(6) := p_source_26;
24632 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
24633 l_rec_acct_attrs.array_date_value(7) := p_source_27;
24634 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
24635 l_rec_acct_attrs.array_num_value(8) := p_source_28;
24636 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
24637 l_rec_acct_attrs.array_char_value(9) := p_source_29;
24638 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
24639 l_rec_acct_attrs.array_char_value(10) := p_source_30;
24640 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
24641 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
24642 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
24643 l_rec_acct_attrs.array_num_value(12) := p_source_24;
24644 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
24645 l_rec_acct_attrs.array_char_value(13) := p_source_25;
24646 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
24647 l_rec_acct_attrs.array_num_value(14) := p_source_26;
24648 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
24649 l_rec_acct_attrs.array_date_value(15) := p_source_27;
24650 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
24651 l_rec_acct_attrs.array_num_value(16) := p_source_28;
24652 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
24653 l_rec_acct_attrs.array_char_value(17) := p_source_29;
24654 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
24655 l_rec_acct_attrs.array_char_value(18) := p_source_31;
24656 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
24657 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
24658 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
24659 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
24660 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
24661 l_rec_acct_attrs.array_char_value(21) := p_source_34;
24662 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
24663 l_rec_acct_attrs.array_num_value(22) := p_source_24;
24664 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
24665 l_rec_acct_attrs.array_char_value(23) := p_source_25;
24666 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
24667 l_rec_acct_attrs.array_date_value(24) := p_source_27;
24668 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
24669 l_rec_acct_attrs.array_num_value(25) := p_source_28;
24670 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
24671 l_rec_acct_attrs.array_char_value(26) := p_source_29;
24672 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
24673 l_rec_acct_attrs.array_num_value(27) := p_source_26;
24674 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
24675 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
24676 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
24677 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
24678 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
24679 l_rec_acct_attrs.array_char_value(30) := p_source_34;
24680
24684 ---------------------------------------------------------------------------------------------------------------
24681 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24682 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24683
24685 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24686 ---------------------------------------------------------------------------------------------------------------
24687 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24688
24689 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24690 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24691
24692 IF xla_accounting_cache_pkg.GetValueChar
24693 (p_source_code => 'LEDGER_CATEGORY_CODE'
24694 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24695 AND l_bflow_method_code = 'PRIOR_ENTRY'
24696 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24697 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24698 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24699 )
24700 THEN
24701 xla_ae_lines_pkg.BflowUpgEntry
24702 (p_business_method_code => l_bflow_method_code
24703 ,p_business_class_code => l_bflow_class_code
24704 ,p_balance_type => l_balance_type_code);
24705 ELSE
24706 NULL;
24707 -- No business flow processing for business flow method of NONE.
24708 END IF;
24709
24710 --
24711 -- call analytical criteria
24712 --
24713
24714
24715 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
24716 xla_ae_lines_pkg.SetAnalyticalCriteria(
24717 p_analytical_criterion_name => 'Project Number'
24718 , p_analytical_criterion_owner => 'S'
24719 , p_analytical_criterion_code => 'PROJECT_NUMBER'
24720 , p_amb_context_code => 'DEFAULT'
24721 , p_balancing_flag => 'N'
24722
24723 , p_analytical_detail_char_1 => TO_CHAR(p_source_68)
24724 , p_analytical_detail_num_1 => NULL
24725 , p_analytical_detail_date_1 => NULL
24726
24727 , p_ae_header_id => l_ae_header_id
24728 )
24729 ;
24730 --
24731
24732 --
24733 -- call description
24734 --
24735 -- No description or it is inherited.
24736 --
24737 -- call ADRs
24738 -- Bug 4922099
24739 --
24740 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24741 (NVL(l_actual_upg_option, 'N') = 'O') OR
24742 (NVL(l_enc_upg_option, 'N') = 'O')
24743 )
24744 THEN
24745 NULL;
24746 --
24747 --
24748
24749 l_ccid := AcctDerRule_5(
24750 p_application_id => p_application_id
24751 , p_ae_header_id => l_ae_header_id
24752 , p_source_4 => p_source_4
24753 , p_source_6 => p_source_6
24754 , p_source_7 => p_source_7
24755 , x_transaction_coa_id => l_adr_transaction_coa_id
24756 , x_accounting_coa_id => l_adr_accounting_coa_id
24757 , x_value_type_code => l_adr_value_type_code
24758 , p_side => 'NA'
24759 );
24760
24761 xla_ae_lines_pkg.set_ccid(
24762 p_code_combination_id => l_ccid
24763 , p_value_type_code => l_adr_value_type_code
24764 , p_transaction_coa_id => l_adr_transaction_coa_id
24765 , p_accounting_coa_id => l_adr_accounting_coa_id
24766 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
24767 , p_adr_type_code => 'S'
24768 , p_component_type => l_component_type
24769 , p_component_code => l_component_code
24770 , p_component_type_code => l_component_type_code
24771 , p_component_appl_id => l_component_appl_id
24772 , p_amb_context_code => l_amb_context_code
24773 , p_side => 'NA'
24774 );
24775
24776
24777 --
24778 --
24779 END IF;
24780 --
24781 -- Bug 4922099
24782 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24783 (NVL(l_enc_upg_option, 'N') = 'O')
24784 ) AND
24785 (l_bflow_method_code = 'PRIOR_ENTRY')
24786 )
24787 THEN
24788 IF
24789 --
24790 1 = 2
24791 --
24792 THEN
24793 xla_accounting_err_pkg.build_message
24794 (p_appli_s_name => 'XLA'
24795 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24796 ,p_token_1 => 'LINE_NUMBER'
24797 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24798 ,p_token_2 => 'LINE_TYPE_NAME'
24799 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24800 l_component_type
24801 ,l_component_code
24802 ,l_component_type_code
24803 ,l_component_appl_id
24804 ,l_amb_context_code
24805 ,l_entity_code
24806 ,l_event_class_code
24810 p_lookup_type => 'XLA_OWNER_TYPE'
24807 )
24808 ,p_token_3 => 'OWNER'
24809 ,p_value_3 => xla_lookups_pkg.get_meaning(
24811 ,p_lookup_code => l_component_type_code
24812 )
24813 ,p_token_4 => 'PRODUCT_NAME'
24814 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24815 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24816 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24817 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24818 ,p_ae_header_id => NULL
24819 );
24820
24821 IF (C_LEVEL_ERROR>= g_log_level) THEN
24822 trace
24823 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24824 ,p_level => C_LEVEL_ERROR
24825 ,p_module => l_log_module);
24826 END IF;
24827 END IF;
24828 END IF;
24829 --
24830 --
24831 ------------------------------------------------------------------------------------------------
24832 -- 4219869 Business Flow
24833 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24834 -- Prior Entry. Currently, the following code is always generated.
24835 ------------------------------------------------------------------------------------------------
24836 XLA_AE_LINES_PKG.ValidateCurrentLine;
24837
24838 ------------------------------------------------------------------------------------
24839 -- 4219869 Business Flow
24840 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24841 ------------------------------------------------------------------------------------
24842 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24843
24844 ----------------------------------------------------------------------------------
24845 -- 4219869 Business Flow
24846 -- Update journal entry status -- Need to generate this within IF <condition>
24847 ----------------------------------------------------------------------------------
24848 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24849 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24850 ,p_balance_type_code => l_balance_type_code
24851 );
24852
24853 -------------------------------------------------------------------------------------------
24854 -- 4262811 - Generate the Accrual Reversal lines
24855 -------------------------------------------------------------------------------------------
24856 BEGIN
24857 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24858 (g_array_event(p_event_id).array_value_num('header_index'));
24859 IF l_acc_rev_flag IS NULL THEN
24860 l_acc_rev_flag := 'N';
24861 END IF;
24862 EXCEPTION
24863 WHEN OTHERS THEN
24864 l_acc_rev_flag := 'N';
24865 END;
24866 --
24867 IF (l_acc_rev_flag = 'Y') THEN
24868
24869 -- 4645092 ------------------------------------------------------------------------------
24870 -- To allow MPA report to determine if it should generate report process
24871 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24872 ------------------------------------------------------------------------------------------
24873
24874 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24875 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24876
24877 --
24878 -- Update the line information that should be overwritten
24879 --
24880 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24881 p_header_num => 1);
24882 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24883
24884 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24885
24886 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24887 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24888 END IF;
24889
24890 --
24891 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24892 --
24893 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24894 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24895 ELSE
24896 ---------------------------------------------------------------------------------------------------
24897 -- 4262811a Switch Sign
24898 ---------------------------------------------------------------------------------------------------
24899 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24900 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24901 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24902 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24903 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24904 -- 5132302
24908 END IF;
24905 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24906 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24907
24909
24910 -- 4955764
24911 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24912 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24913
24914
24915 XLA_AE_LINES_PKG.ValidateCurrentLine;
24916 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24917
24918 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24919 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24920 ,p_balance_type_code => l_balance_type_code);
24921
24922 END IF;
24923
24924 -----------------------------------------------------------------------------------------
24925 -- 4262811 Multiperiod Accounting
24926 -----------------------------------------------------------------------------------------
24927 -- No MPA option is assigned.
24928
24929
24930 END IF;
24931 --
24932
24933 --
24934 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24935 trace
24936 (p_msg => 'END of AcctLineType_58'
24937 ,p_level => C_LEVEL_PROCEDURE
24938 ,p_module => l_log_module);
24939 END IF;
24940 --
24941 EXCEPTION
24942 WHEN xla_exceptions_pkg.application_exception THEN
24943 RAISE;
24944 WHEN OTHERS THEN
24945 xla_exceptions_pkg.raise_message
24946 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_58');
24947 END AcctLineType_58;
24948 --
24949
24950 ---------------------------------------
24951 --
24952 -- PRIVATE FUNCTION
24953 -- AcctLineType_59
24954 --
24955 ---------------------------------------
24956 PROCEDURE AcctLineType_59 (
24957 p_application_id IN NUMBER
24958 ,p_event_id IN NUMBER
24959 ,p_calculate_acctd_flag IN VARCHAR2
24960 ,p_calculate_g_l_flag IN VARCHAR2
24961 ,p_actual_flag IN OUT VARCHAR2
24962 ,p_balance_type_code OUT VARCHAR2
24963 ,p_gain_or_loss_ref OUT VARCHAR2
24964
24965 --Cost CCID
24966 , p_source_3 IN NUMBER
24967 --Allow Account Override Flag
24968 , p_source_4 IN VARCHAR2
24969 --Cost Clearing CCID
24970 , p_source_6 IN NUMBER
24971 --Adjustment Cost Clearing CCID
24972 , p_source_7 IN NUMBER
24973 --Exchange Rate Variance Flag
24974 , p_source_21 IN VARCHAR2
24975 --Reversing Line Flag
24976 , p_source_22 IN VARCHAR2
24977 --Actual Upgrade Credit Accounting Class
24978 , p_source_23 IN VARCHAR2
24979 --Entered Raw Cost
24980 , p_source_24 IN NUMBER
24981 --Entered Currency Code
24982 , p_source_25 IN VARCHAR2
24983 --Accounted Raw Cost
24984 , p_source_26 IN NUMBER
24985 --Exchange Rate Date
24986 , p_source_27 IN DATE
24987 --Exchange Rate
24988 , p_source_28 IN NUMBER
24989 --Exchange Rate Type
24990 , p_source_29 IN VARCHAR2
24991 --Actual Upgrade Debit Accounting Class
24992 , p_source_30 IN VARCHAR2
24993 --Use Actuals Upgrade Attributes Flag
24994 , p_source_31 IN VARCHAR2
24995 --Expenditure Item ID
24996 , p_source_32 IN NUMBER
24997 --Cost Distribution Line Number
24998 , p_source_33 IN NUMBER
24999 --Line Type
25000 , p_source_34 IN VARCHAR2
25001 , p_source_34_meaning IN VARCHAR2
25002 --Reversed Line Number
25003 , p_source_35 IN NUMBER
25004 )
25005 IS
25006
25007 l_component_type VARCHAR2(80);
25008 l_component_code VARCHAR2(30);
25009 l_component_type_code VARCHAR2(1);
25010 l_component_appl_id INTEGER;
25011 l_amb_context_code VARCHAR2(30);
25012 l_entity_code VARCHAR2(30);
25013 l_event_class_code VARCHAR2(30);
25014 l_ae_header_id NUMBER;
25015 l_event_type_code VARCHAR2(30);
25016 l_line_definition_code VARCHAR2(30);
25017 l_line_definition_owner_code VARCHAR2(1);
25018 --
25019 -- adr variables
25020 l_segment VARCHAR2(30);
25021 l_ccid NUMBER;
25022 l_adr_transaction_coa_id NUMBER;
25023 l_adr_accounting_coa_id NUMBER;
25024 l_adr_flexfield_segment_code VARCHAR2(30);
25025 l_adr_flex_value_set_id NUMBER;
25026 l_adr_value_type_code VARCHAR2(30);
25027 l_adr_value_combination_id NUMBER;
25028 l_adr_value_segment_code VARCHAR2(30);
25029
25030 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25031 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25032 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25033 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25034
25035 -- 4262811 Variables ------------------------------------------------------------------------------------------
25036 l_entered_amt_idx NUMBER;
25037 l_accted_amt_idx NUMBER;
25038 l_acc_rev_flag VARCHAR2(1);
25039 l_accrual_line_num NUMBER;
25040 l_tmp_amt NUMBER;
25041 l_acc_rev_natural_side_code VARCHAR2(1);
25042
25043 l_num_entries NUMBER;
25044 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25045 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25046 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25047 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25048 l_recog_line_1 NUMBER;
25052 l_bflow_applied_to_amt NUMBER; -- 5132302
25049 l_recog_line_2 NUMBER;
25050
25051 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25053 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25054
25055 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25056
25057 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25058 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25059
25060 ---------------------------------------------------------------------------------------------------------------
25061
25062
25063 --
25064 -- bulk performance
25065 --
25066 l_balance_type_code VARCHAR2(1);
25067 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25068 l_log_module VARCHAR2(240);
25069
25070 --
25071 -- Upgrade strategy
25072 --
25073 l_actual_upg_option VARCHAR2(1);
25074 l_enc_upg_option VARCHAR2(1);
25075
25076 --
25077 BEGIN
25078 --
25079 IF g_log_enabled THEN
25080 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
25081 END IF;
25082 --
25083 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25084
25085 trace
25086 (p_msg => 'BEGIN of AcctLineType_59'
25087 ,p_level => C_LEVEL_PROCEDURE
25088 ,p_module => l_log_module);
25089
25090 END IF;
25091 --
25092 l_component_type := 'AMB_JLT';
25093 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
25094 l_component_type_code := 'S';
25095 l_component_appl_id := 275;
25096 l_amb_context_code := 'DEFAULT';
25097 l_entity_code := 'EXPENDITURES';
25098 l_event_class_code := 'SUPPLIER_COST_ADJ';
25099 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
25100 l_line_definition_owner_code := 'S';
25101 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
25102 --
25103 l_balance_type_code := 'A';
25104 l_segment := NULL;
25105 l_ccid := NULL;
25106 l_adr_transaction_coa_id := NULL;
25107 l_adr_accounting_coa_id := NULL;
25108 l_adr_flexfield_segment_code := NULL;
25109 l_adr_flex_value_set_id := NULL;
25110 l_adr_value_type_code := NULL;
25111 l_adr_value_combination_id := NULL;
25112 l_adr_value_segment_code := NULL;
25113
25114 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25115 l_bflow_class_code := ''; -- 4219869 Business Flow
25116 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25117 l_budgetary_control_flag := 'N';
25118
25119 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25120 l_bflow_applied_to_amt := NULL; -- 5132302
25121 l_entered_amt_idx := NULL; -- 4262811
25122 l_accted_amt_idx := NULL; -- 4262811
25123 l_acc_rev_flag := NULL; -- 4262811
25124 l_accrual_line_num := NULL; -- 4262811
25125 l_tmp_amt := NULL; -- 4262811
25126 --
25127
25128 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25129 l_balance_type_code <> 'B' THEN
25130 IF NVL(p_source_21,'
25131 ') = 'N'
25132 THEN
25133
25134 --
25135 XLA_AE_LINES_PKG.SetNewLine;
25136
25137 p_balance_type_code := l_balance_type_code;
25138 -- set the flag so later we will know whether the gain loss line needs to be created
25139
25140 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25141 p_actual_flag :='A';
25142 END IF;
25143
25144 --
25145 -- bulk performance
25146 --
25147 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25148 p_header_num => 0); -- 4262811
25149 --
25150 -- set accounting line options
25151 --
25152 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25153 p_natural_side_code => 'C'
25154 , p_gain_or_loss_flag => 'N'
25155 , p_gl_transfer_mode_code => 'S'
25156 , p_acct_entry_type_code => 'A'
25157 , p_switch_side_flag => 'Y'
25158 , p_merge_duplicate_code => 'N'
25159 );
25160 --
25161 l_acc_rev_natural_side_code := 'D'; -- 4262811
25162 --
25163 --
25164 -- set accounting line type info
25165 --
25166 xla_ae_lines_pkg.SetAcctLineType
25167 (p_component_type => l_component_type
25168 ,p_event_type_code => l_event_type_code
25169 ,p_line_definition_owner_code => l_line_definition_owner_code
25170 ,p_line_definition_code => l_line_definition_code
25171 ,p_accounting_line_code => l_component_code
25172 ,p_accounting_line_type_code => l_component_type_code
25173 ,p_accounting_line_appl_id => l_component_appl_id
25174 ,p_amb_context_code => l_amb_context_code
25175 ,p_entity_code => l_entity_code
25176 ,p_event_class_code => l_event_class_code);
25177 --
25178 -- set accounting class
25179 --
25180 xla_ae_lines_pkg.SetAcctClass(
25181 p_accounting_class_code => 'COST_CLEARING'
25182 , p_ae_header_id => l_ae_header_id
25183 );
25184
25185 --
25186 -- set rounding class
25187 --
25188 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25189 'COST_CLEARING';
25190
25191 --
25195 -- bulk performance
25192 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25193 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25194 --
25196 --
25197 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25198
25199 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25200 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25201
25202 -- 4955764
25203 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25204 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25205
25206 -- 4458381 Public Sector Enh
25207
25208 --
25209 -- set accounting attributes for the line type
25210 --
25211 l_entered_amt_idx := 22;
25212 l_accted_amt_idx := 27;
25213 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25214 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25215 l_rec_acct_attrs.array_char_value(1) := p_source_22;
25216 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
25217 l_rec_acct_attrs.array_char_value(2) := p_source_23;
25218 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
25219 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
25220 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
25221 l_rec_acct_attrs.array_num_value(4) := p_source_24;
25222 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
25223 l_rec_acct_attrs.array_char_value(5) := p_source_25;
25224 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
25225 l_rec_acct_attrs.array_num_value(6) := p_source_26;
25226 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
25227 l_rec_acct_attrs.array_date_value(7) := p_source_27;
25228 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
25229 l_rec_acct_attrs.array_num_value(8) := p_source_28;
25230 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
25231 l_rec_acct_attrs.array_char_value(9) := p_source_29;
25232 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
25233 l_rec_acct_attrs.array_char_value(10) := p_source_30;
25234 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
25235 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
25236 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
25237 l_rec_acct_attrs.array_num_value(12) := p_source_24;
25238 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
25239 l_rec_acct_attrs.array_char_value(13) := p_source_25;
25240 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
25241 l_rec_acct_attrs.array_num_value(14) := p_source_26;
25242 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
25243 l_rec_acct_attrs.array_date_value(15) := p_source_27;
25244 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
25245 l_rec_acct_attrs.array_num_value(16) := p_source_28;
25246 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
25247 l_rec_acct_attrs.array_char_value(17) := p_source_29;
25248 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
25249 l_rec_acct_attrs.array_char_value(18) := p_source_31;
25250 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
25251 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
25252 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
25253 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
25254 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
25255 l_rec_acct_attrs.array_char_value(21) := p_source_34;
25256 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
25257 l_rec_acct_attrs.array_num_value(22) := p_source_24;
25258 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
25259 l_rec_acct_attrs.array_char_value(23) := p_source_25;
25260 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
25261 l_rec_acct_attrs.array_date_value(24) := p_source_27;
25262 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
25263 l_rec_acct_attrs.array_num_value(25) := p_source_28;
25264 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
25265 l_rec_acct_attrs.array_char_value(26) := p_source_29;
25266 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
25267 l_rec_acct_attrs.array_num_value(27) := p_source_26;
25268 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
25269 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
25270 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
25271 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
25272 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
25273 l_rec_acct_attrs.array_char_value(30) := p_source_34;
25274
25275 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25276 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25277
25278 ---------------------------------------------------------------------------------------------------------------
25279 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25280 ---------------------------------------------------------------------------------------------------------------
25281 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25282
25283 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25284 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25285
25289 AND l_bflow_method_code = 'PRIOR_ENTRY'
25286 IF xla_accounting_cache_pkg.GetValueChar
25287 (p_source_code => 'LEDGER_CATEGORY_CODE'
25288 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25290 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25291 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25292 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25293 )
25294 THEN
25295 xla_ae_lines_pkg.BflowUpgEntry
25296 (p_business_method_code => l_bflow_method_code
25297 ,p_business_class_code => l_bflow_class_code
25298 ,p_balance_type => l_balance_type_code);
25299 ELSE
25300 NULL;
25301 -- No business flow processing for business flow method of NONE.
25302 END IF;
25303
25304 --
25305 -- call analytical criteria
25306 --
25307
25308 --
25309 -- call description
25310 --
25311 -- No description or it is inherited.
25312 --
25313 -- call ADRs
25314 -- Bug 4922099
25315 --
25316 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25317 (NVL(l_actual_upg_option, 'N') = 'O') OR
25318 (NVL(l_enc_upg_option, 'N') = 'O')
25319 )
25320 THEN
25321 NULL;
25322 --
25323 --
25324
25325 l_ccid := AcctDerRule_6(
25326 p_application_id => p_application_id
25327 , p_ae_header_id => l_ae_header_id
25328 , p_source_4 => p_source_4
25329 , p_source_7 => p_source_7
25330 , x_transaction_coa_id => l_adr_transaction_coa_id
25331 , x_accounting_coa_id => l_adr_accounting_coa_id
25332 , x_value_type_code => l_adr_value_type_code
25333 , p_side => 'NA'
25334 );
25335
25336 xla_ae_lines_pkg.set_ccid(
25337 p_code_combination_id => l_ccid
25338 , p_value_type_code => l_adr_value_type_code
25339 , p_transaction_coa_id => l_adr_transaction_coa_id
25340 , p_accounting_coa_id => l_adr_accounting_coa_id
25341 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
25342 , p_adr_type_code => 'S'
25343 , p_component_type => l_component_type
25344 , p_component_code => l_component_code
25345 , p_component_type_code => l_component_type_code
25346 , p_component_appl_id => l_component_appl_id
25347 , p_amb_context_code => l_amb_context_code
25348 , p_side => 'NA'
25349 );
25350
25351
25352 --
25353 --
25354 END IF;
25355 --
25356 -- Bug 4922099
25357 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25358 (NVL(l_enc_upg_option, 'N') = 'O')
25359 ) AND
25360 (l_bflow_method_code = 'PRIOR_ENTRY')
25361 )
25362 THEN
25363 IF
25364 --
25365 1 = 2
25366 --
25367 THEN
25368 xla_accounting_err_pkg.build_message
25369 (p_appli_s_name => 'XLA'
25370 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25371 ,p_token_1 => 'LINE_NUMBER'
25372 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25373 ,p_token_2 => 'LINE_TYPE_NAME'
25374 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25375 l_component_type
25376 ,l_component_code
25377 ,l_component_type_code
25378 ,l_component_appl_id
25379 ,l_amb_context_code
25380 ,l_entity_code
25381 ,l_event_class_code
25382 )
25383 ,p_token_3 => 'OWNER'
25384 ,p_value_3 => xla_lookups_pkg.get_meaning(
25385 p_lookup_type => 'XLA_OWNER_TYPE'
25386 ,p_lookup_code => l_component_type_code
25387 )
25388 ,p_token_4 => 'PRODUCT_NAME'
25389 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25390 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25391 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25392 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25393 ,p_ae_header_id => NULL
25394 );
25395
25396 IF (C_LEVEL_ERROR>= g_log_level) THEN
25397 trace
25398 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25399 ,p_level => C_LEVEL_ERROR
25400 ,p_module => l_log_module);
25401 END IF;
25402 END IF;
25403 END IF;
25404 --
25405 --
25409 -- Prior Entry. Currently, the following code is always generated.
25406 ------------------------------------------------------------------------------------------------
25407 -- 4219869 Business Flow
25408 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25410 ------------------------------------------------------------------------------------------------
25411 XLA_AE_LINES_PKG.ValidateCurrentLine;
25412
25413 ------------------------------------------------------------------------------------
25414 -- 4219869 Business Flow
25415 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25416 ------------------------------------------------------------------------------------
25417 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25418
25419 ----------------------------------------------------------------------------------
25420 -- 4219869 Business Flow
25421 -- Update journal entry status -- Need to generate this within IF <condition>
25422 ----------------------------------------------------------------------------------
25423 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25424 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25425 ,p_balance_type_code => l_balance_type_code
25426 );
25427
25428 -------------------------------------------------------------------------------------------
25429 -- 4262811 - Generate the Accrual Reversal lines
25430 -------------------------------------------------------------------------------------------
25431 BEGIN
25432 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25433 (g_array_event(p_event_id).array_value_num('header_index'));
25434 IF l_acc_rev_flag IS NULL THEN
25435 l_acc_rev_flag := 'N';
25436 END IF;
25437 EXCEPTION
25438 WHEN OTHERS THEN
25439 l_acc_rev_flag := 'N';
25440 END;
25441 --
25442 IF (l_acc_rev_flag = 'Y') THEN
25443
25444 -- 4645092 ------------------------------------------------------------------------------
25445 -- To allow MPA report to determine if it should generate report process
25446 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25447 ------------------------------------------------------------------------------------------
25448
25449 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25450 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25451
25452 --
25453 -- Update the line information that should be overwritten
25454 --
25455 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25456 p_header_num => 1);
25457 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25458
25459 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25460
25461 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25462 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25463 END IF;
25464
25465 --
25466 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25467 --
25468 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25469 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25470 ELSE
25471 ---------------------------------------------------------------------------------------------------
25472 -- 4262811a Switch Sign
25473 ---------------------------------------------------------------------------------------------------
25474 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25475 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25476 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25477 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25478 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25479 -- 5132302
25480 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25481 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25482
25483 END IF;
25484
25485 -- 4955764
25486 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25487 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25488
25489
25490 XLA_AE_LINES_PKG.ValidateCurrentLine;
25491 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25492
25493 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25494 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25495 ,p_balance_type_code => l_balance_type_code);
25496
25497 END IF;
25498
25499 -----------------------------------------------------------------------------------------
25500 -- 4262811 Multiperiod Accounting
25501 -----------------------------------------------------------------------------------------
25502 -- No MPA option is assigned.
25503
25504
25505 END IF;
25506 END IF;
25507 --
25508
25509 --
25510 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25511 trace
25512 (p_msg => 'END of AcctLineType_59'
25513 ,p_level => C_LEVEL_PROCEDURE
25514 ,p_module => l_log_module);
25515 END IF;
25516 --
25517 EXCEPTION
25518 WHEN xla_exceptions_pkg.application_exception THEN
25519 RAISE;
25520 WHEN OTHERS THEN
25524 --
25521 xla_exceptions_pkg.raise_message
25522 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_59');
25523 END AcctLineType_59;
25525
25526 ---------------------------------------
25527 --
25528 -- PRIVATE FUNCTION
25529 -- AcctLineType_60
25530 --
25531 ---------------------------------------
25532 PROCEDURE AcctLineType_60 (
25533 p_application_id IN NUMBER
25534 ,p_event_id IN NUMBER
25535 ,p_calculate_acctd_flag IN VARCHAR2
25536 ,p_calculate_g_l_flag IN VARCHAR2
25537 ,p_actual_flag IN OUT VARCHAR2
25538 ,p_balance_type_code OUT VARCHAR2
25539 ,p_gain_or_loss_ref OUT VARCHAR2
25540
25541 --Cost CCID
25542 , p_source_3 IN NUMBER
25543 --Allow Account Override Flag
25544 , p_source_4 IN VARCHAR2
25545 --Cost Clearing CCID
25546 , p_source_6 IN NUMBER
25547 --Adjustment Cost Clearing CCID
25548 , p_source_7 IN NUMBER
25549 --Reversing Line Flag
25550 , p_source_22 IN VARCHAR2
25551 --Actual Upgrade Credit Accounting Class
25552 , p_source_23 IN VARCHAR2
25553 --Entered Raw Cost
25554 , p_source_24 IN NUMBER
25555 --Entered Currency Code
25556 , p_source_25 IN VARCHAR2
25557 --Accounted Raw Cost
25558 , p_source_26 IN NUMBER
25559 --Exchange Rate Date
25560 , p_source_27 IN DATE
25561 --Exchange Rate
25562 , p_source_28 IN NUMBER
25563 --Exchange Rate Type
25564 , p_source_29 IN VARCHAR2
25565 --Actual Upgrade Debit Accounting Class
25566 , p_source_30 IN VARCHAR2
25567 --Use Actuals Upgrade Attributes Flag
25568 , p_source_31 IN VARCHAR2
25569 --Expenditure Item ID
25570 , p_source_32 IN NUMBER
25571 --Cost Distribution Line Number
25572 , p_source_33 IN NUMBER
25573 --Line Type
25574 , p_source_34 IN VARCHAR2
25575 , p_source_34_meaning IN VARCHAR2
25576 --Reversed Line Number
25577 , p_source_35 IN NUMBER
25578 )
25579 IS
25580
25581 l_component_type VARCHAR2(80);
25582 l_component_code VARCHAR2(30);
25583 l_component_type_code VARCHAR2(1);
25584 l_component_appl_id INTEGER;
25585 l_amb_context_code VARCHAR2(30);
25586 l_entity_code VARCHAR2(30);
25587 l_event_class_code VARCHAR2(30);
25588 l_ae_header_id NUMBER;
25589 l_event_type_code VARCHAR2(30);
25590 l_line_definition_code VARCHAR2(30);
25591 l_line_definition_owner_code VARCHAR2(1);
25592 --
25593 -- adr variables
25594 l_segment VARCHAR2(30);
25595 l_ccid NUMBER;
25596 l_adr_transaction_coa_id NUMBER;
25597 l_adr_accounting_coa_id NUMBER;
25598 l_adr_flexfield_segment_code VARCHAR2(30);
25599 l_adr_flex_value_set_id NUMBER;
25600 l_adr_value_type_code VARCHAR2(30);
25601 l_adr_value_combination_id NUMBER;
25602 l_adr_value_segment_code VARCHAR2(30);
25603
25604 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25605 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25606 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25607 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25608
25609 -- 4262811 Variables ------------------------------------------------------------------------------------------
25610 l_entered_amt_idx NUMBER;
25611 l_accted_amt_idx NUMBER;
25612 l_acc_rev_flag VARCHAR2(1);
25613 l_accrual_line_num NUMBER;
25614 l_tmp_amt NUMBER;
25615 l_acc_rev_natural_side_code VARCHAR2(1);
25616
25617 l_num_entries NUMBER;
25618 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25619 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25620 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25621 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25622 l_recog_line_1 NUMBER;
25623 l_recog_line_2 NUMBER;
25624
25625 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25626 l_bflow_applied_to_amt NUMBER; -- 5132302
25627 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25628
25629 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25630
25631 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25632 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25633
25634 ---------------------------------------------------------------------------------------------------------------
25635
25636
25637 --
25638 -- bulk performance
25639 --
25640 l_balance_type_code VARCHAR2(1);
25641 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25642 l_log_module VARCHAR2(240);
25643
25644 --
25645 -- Upgrade strategy
25646 --
25647 l_actual_upg_option VARCHAR2(1);
25648 l_enc_upg_option VARCHAR2(1);
25649
25650 --
25651 BEGIN
25652 --
25653 IF g_log_enabled THEN
25654 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
25655 END IF;
25656 --
25657 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25658
25659 trace
25660 (p_msg => 'BEGIN of AcctLineType_60'
25661 ,p_level => C_LEVEL_PROCEDURE
25662 ,p_module => l_log_module);
25663
25664 END IF;
25665 --
25666 l_component_type := 'AMB_JLT';
25667 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
25671 l_entity_code := 'EXPENDITURES';
25668 l_component_type_code := 'S';
25669 l_component_appl_id := 275;
25670 l_amb_context_code := 'DEFAULT';
25672 l_event_class_code := 'LABOR_COST_ADJ';
25673 l_event_type_code := 'LABOR_COST_ADJ_ALL';
25674 l_line_definition_owner_code := 'S';
25675 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
25676 --
25677 l_balance_type_code := 'A';
25678 l_segment := NULL;
25679 l_ccid := NULL;
25680 l_adr_transaction_coa_id := NULL;
25681 l_adr_accounting_coa_id := NULL;
25682 l_adr_flexfield_segment_code := NULL;
25683 l_adr_flex_value_set_id := NULL;
25684 l_adr_value_type_code := NULL;
25685 l_adr_value_combination_id := NULL;
25686 l_adr_value_segment_code := NULL;
25687
25688 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25689 l_bflow_class_code := ''; -- 4219869 Business Flow
25690 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25691 l_budgetary_control_flag := 'N';
25692
25693 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25694 l_bflow_applied_to_amt := NULL; -- 5132302
25695 l_entered_amt_idx := NULL; -- 4262811
25696 l_accted_amt_idx := NULL; -- 4262811
25697 l_acc_rev_flag := NULL; -- 4262811
25698 l_accrual_line_num := NULL; -- 4262811
25699 l_tmp_amt := NULL; -- 4262811
25700 --
25701
25702 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25703 l_balance_type_code <> 'B' THEN
25704
25705 --
25706 XLA_AE_LINES_PKG.SetNewLine;
25707
25708 p_balance_type_code := l_balance_type_code;
25709 -- set the flag so later we will know whether the gain loss line needs to be created
25710
25711 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25712 p_actual_flag :='A';
25713 END IF;
25714
25715 --
25716 -- bulk performance
25717 --
25718 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25719 p_header_num => 0); -- 4262811
25720 --
25721 -- set accounting line options
25722 --
25723 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25724 p_natural_side_code => 'C'
25725 , p_gain_or_loss_flag => 'N'
25726 , p_gl_transfer_mode_code => 'S'
25727 , p_acct_entry_type_code => 'A'
25728 , p_switch_side_flag => 'Y'
25729 , p_merge_duplicate_code => 'N'
25730 );
25731 --
25732 l_acc_rev_natural_side_code := 'D'; -- 4262811
25733 --
25734 --
25735 -- set accounting line type info
25736 --
25737 xla_ae_lines_pkg.SetAcctLineType
25738 (p_component_type => l_component_type
25739 ,p_event_type_code => l_event_type_code
25740 ,p_line_definition_owner_code => l_line_definition_owner_code
25741 ,p_line_definition_code => l_line_definition_code
25742 ,p_accounting_line_code => l_component_code
25743 ,p_accounting_line_type_code => l_component_type_code
25744 ,p_accounting_line_appl_id => l_component_appl_id
25745 ,p_amb_context_code => l_amb_context_code
25746 ,p_entity_code => l_entity_code
25747 ,p_event_class_code => l_event_class_code);
25748 --
25749 -- set accounting class
25750 --
25751 xla_ae_lines_pkg.SetAcctClass(
25752 p_accounting_class_code => 'COST_CLEARING'
25753 , p_ae_header_id => l_ae_header_id
25754 );
25755
25756 --
25757 -- set rounding class
25758 --
25759 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25760 'COST_CLEARING';
25761
25762 --
25763 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25764 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25765 --
25766 -- bulk performance
25767 --
25768 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25769
25770 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25771 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25772
25773 -- 4955764
25774 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25775 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25776
25777 -- 4458381 Public Sector Enh
25778
25779 --
25780 -- set accounting attributes for the line type
25781 --
25782 l_entered_amt_idx := 22;
25783 l_accted_amt_idx := 27;
25784 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25785 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25786 l_rec_acct_attrs.array_char_value(1) := p_source_22;
25787 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
25788 l_rec_acct_attrs.array_char_value(2) := p_source_23;
25789 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
25790 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
25791 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
25792 l_rec_acct_attrs.array_num_value(4) := p_source_24;
25793 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
25794 l_rec_acct_attrs.array_char_value(5) := p_source_25;
25795 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
25799 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
25796 l_rec_acct_attrs.array_num_value(6) := p_source_26;
25797 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
25798 l_rec_acct_attrs.array_date_value(7) := p_source_27;
25800 l_rec_acct_attrs.array_num_value(8) := p_source_28;
25801 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
25802 l_rec_acct_attrs.array_char_value(9) := p_source_29;
25803 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
25804 l_rec_acct_attrs.array_char_value(10) := p_source_30;
25805 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
25806 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
25807 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
25808 l_rec_acct_attrs.array_num_value(12) := p_source_24;
25809 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
25810 l_rec_acct_attrs.array_char_value(13) := p_source_25;
25811 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
25812 l_rec_acct_attrs.array_num_value(14) := p_source_26;
25813 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
25814 l_rec_acct_attrs.array_date_value(15) := p_source_27;
25815 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
25816 l_rec_acct_attrs.array_num_value(16) := p_source_28;
25817 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
25818 l_rec_acct_attrs.array_char_value(17) := p_source_29;
25819 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
25820 l_rec_acct_attrs.array_char_value(18) := p_source_31;
25821 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
25822 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
25823 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
25824 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
25825 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
25826 l_rec_acct_attrs.array_char_value(21) := p_source_34;
25827 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
25828 l_rec_acct_attrs.array_num_value(22) := p_source_24;
25829 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
25830 l_rec_acct_attrs.array_char_value(23) := p_source_25;
25831 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
25832 l_rec_acct_attrs.array_date_value(24) := p_source_27;
25833 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
25834 l_rec_acct_attrs.array_num_value(25) := p_source_28;
25835 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
25836 l_rec_acct_attrs.array_char_value(26) := p_source_29;
25837 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
25838 l_rec_acct_attrs.array_num_value(27) := p_source_26;
25839 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
25840 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
25841 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
25842 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
25843 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
25844 l_rec_acct_attrs.array_char_value(30) := p_source_34;
25845
25846 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25847 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25848
25849 ---------------------------------------------------------------------------------------------------------------
25850 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25851 ---------------------------------------------------------------------------------------------------------------
25852 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25853
25854 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25855 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25856
25857 IF xla_accounting_cache_pkg.GetValueChar
25858 (p_source_code => 'LEDGER_CATEGORY_CODE'
25859 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25860 AND l_bflow_method_code = 'PRIOR_ENTRY'
25861 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25862 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25863 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25864 )
25865 THEN
25866 xla_ae_lines_pkg.BflowUpgEntry
25867 (p_business_method_code => l_bflow_method_code
25868 ,p_business_class_code => l_bflow_class_code
25869 ,p_balance_type => l_balance_type_code);
25870 ELSE
25871 NULL;
25872 -- No business flow processing for business flow method of NONE.
25873 END IF;
25874
25875 --
25876 -- call analytical criteria
25877 --
25878
25879 --
25880 -- call description
25881 --
25882 -- No description or it is inherited.
25883 --
25884 -- call ADRs
25885 -- Bug 4922099
25886 --
25887 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25888 (NVL(l_actual_upg_option, 'N') = 'O') OR
25889 (NVL(l_enc_upg_option, 'N') = 'O')
25890 )
25891 THEN
25892 NULL;
25893 --
25894 --
25895
25896 l_ccid := AcctDerRule_6(
25897 p_application_id => p_application_id
25898 , p_ae_header_id => l_ae_header_id
25899 , p_source_4 => p_source_4
25900 , p_source_7 => p_source_7
25901 , x_transaction_coa_id => l_adr_transaction_coa_id
25902 , x_accounting_coa_id => l_adr_accounting_coa_id
25906
25903 , x_value_type_code => l_adr_value_type_code
25904 , p_side => 'NA'
25905 );
25907 xla_ae_lines_pkg.set_ccid(
25908 p_code_combination_id => l_ccid
25909 , p_value_type_code => l_adr_value_type_code
25910 , p_transaction_coa_id => l_adr_transaction_coa_id
25911 , p_accounting_coa_id => l_adr_accounting_coa_id
25912 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
25913 , p_adr_type_code => 'S'
25914 , p_component_type => l_component_type
25915 , p_component_code => l_component_code
25916 , p_component_type_code => l_component_type_code
25917 , p_component_appl_id => l_component_appl_id
25918 , p_amb_context_code => l_amb_context_code
25919 , p_side => 'NA'
25920 );
25921
25922
25923 --
25924 --
25925 END IF;
25926 --
25927 -- Bug 4922099
25928 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25929 (NVL(l_enc_upg_option, 'N') = 'O')
25930 ) AND
25931 (l_bflow_method_code = 'PRIOR_ENTRY')
25932 )
25933 THEN
25934 IF
25935 --
25936 1 = 2
25937 --
25938 THEN
25939 xla_accounting_err_pkg.build_message
25940 (p_appli_s_name => 'XLA'
25941 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25942 ,p_token_1 => 'LINE_NUMBER'
25943 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25944 ,p_token_2 => 'LINE_TYPE_NAME'
25945 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25946 l_component_type
25947 ,l_component_code
25948 ,l_component_type_code
25949 ,l_component_appl_id
25950 ,l_amb_context_code
25951 ,l_entity_code
25952 ,l_event_class_code
25953 )
25954 ,p_token_3 => 'OWNER'
25955 ,p_value_3 => xla_lookups_pkg.get_meaning(
25956 p_lookup_type => 'XLA_OWNER_TYPE'
25957 ,p_lookup_code => l_component_type_code
25958 )
25959 ,p_token_4 => 'PRODUCT_NAME'
25960 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25961 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25962 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25963 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25964 ,p_ae_header_id => NULL
25965 );
25966
25967 IF (C_LEVEL_ERROR>= g_log_level) THEN
25968 trace
25969 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25970 ,p_level => C_LEVEL_ERROR
25971 ,p_module => l_log_module);
25972 END IF;
25973 END IF;
25974 END IF;
25975 --
25976 --
25977 ------------------------------------------------------------------------------------------------
25978 -- 4219869 Business Flow
25979 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25980 -- Prior Entry. Currently, the following code is always generated.
25981 ------------------------------------------------------------------------------------------------
25982 XLA_AE_LINES_PKG.ValidateCurrentLine;
25983
25984 ------------------------------------------------------------------------------------
25985 -- 4219869 Business Flow
25986 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25987 ------------------------------------------------------------------------------------
25988 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25989
25990 ----------------------------------------------------------------------------------
25991 -- 4219869 Business Flow
25992 -- Update journal entry status -- Need to generate this within IF <condition>
25993 ----------------------------------------------------------------------------------
25994 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25995 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25996 ,p_balance_type_code => l_balance_type_code
25997 );
25998
25999 -------------------------------------------------------------------------------------------
26000 -- 4262811 - Generate the Accrual Reversal lines
26001 -------------------------------------------------------------------------------------------
26002 BEGIN
26003 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26004 (g_array_event(p_event_id).array_value_num('header_index'));
26005 IF l_acc_rev_flag IS NULL THEN
26006 l_acc_rev_flag := 'N';
26010 l_acc_rev_flag := 'N';
26007 END IF;
26008 EXCEPTION
26009 WHEN OTHERS THEN
26011 END;
26012 --
26013 IF (l_acc_rev_flag = 'Y') THEN
26014
26015 -- 4645092 ------------------------------------------------------------------------------
26016 -- To allow MPA report to determine if it should generate report process
26017 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26018 ------------------------------------------------------------------------------------------
26019
26020 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26021 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26022
26023 --
26024 -- Update the line information that should be overwritten
26025 --
26026 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26027 p_header_num => 1);
26028 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26029
26030 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26031
26032 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26033 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26034 END IF;
26035
26036 --
26037 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26038 --
26039 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26040 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26041 ELSE
26042 ---------------------------------------------------------------------------------------------------
26043 -- 4262811a Switch Sign
26044 ---------------------------------------------------------------------------------------------------
26045 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26046 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26047 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26048 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26049 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26050 -- 5132302
26051 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26052 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26053
26054 END IF;
26055
26056 -- 4955764
26057 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26058 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26059
26060
26061 XLA_AE_LINES_PKG.ValidateCurrentLine;
26062 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26063
26064 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26065 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26066 ,p_balance_type_code => l_balance_type_code);
26067
26068 END IF;
26069
26070 -----------------------------------------------------------------------------------------
26071 -- 4262811 Multiperiod Accounting
26072 -----------------------------------------------------------------------------------------
26073 -- No MPA option is assigned.
26074
26075
26076 END IF;
26077 --
26078
26079 --
26080 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26081 trace
26082 (p_msg => 'END of AcctLineType_60'
26083 ,p_level => C_LEVEL_PROCEDURE
26084 ,p_module => l_log_module);
26085 END IF;
26086 --
26087 EXCEPTION
26088 WHEN xla_exceptions_pkg.application_exception THEN
26089 RAISE;
26090 WHEN OTHERS THEN
26091 xla_exceptions_pkg.raise_message
26092 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_60');
26093 END AcctLineType_60;
26094 --
26095
26096 ---------------------------------------
26097 --
26098 -- PRIVATE FUNCTION
26099 -- AcctLineType_61
26100 --
26101 ---------------------------------------
26102 PROCEDURE AcctLineType_61 (
26103 p_application_id IN NUMBER
26104 ,p_event_id IN NUMBER
26105 ,p_calculate_acctd_flag IN VARCHAR2
26106 ,p_calculate_g_l_flag IN VARCHAR2
26107 ,p_actual_flag IN OUT VARCHAR2
26108 ,p_balance_type_code OUT VARCHAR2
26109 ,p_gain_or_loss_ref OUT VARCHAR2
26110
26111 --Cost CCID
26112 , p_source_3 IN NUMBER
26113 --Allow Account Override Flag
26114 , p_source_4 IN VARCHAR2
26115 --Cost Clearing CCID
26116 , p_source_6 IN NUMBER
26117 --Adjustment Cost Clearing CCID
26118 , p_source_7 IN NUMBER
26119 --Reversing Line Flag
26120 , p_source_22 IN VARCHAR2
26121 --Actual Upgrade Credit Accounting Class
26122 , p_source_23 IN VARCHAR2
26123 --Entered Raw Cost
26124 , p_source_24 IN NUMBER
26125 --Entered Currency Code
26126 , p_source_25 IN VARCHAR2
26127 --Accounted Raw Cost
26128 , p_source_26 IN NUMBER
26129 --Exchange Rate Date
26130 , p_source_27 IN DATE
26131 --Exchange Rate
26132 , p_source_28 IN NUMBER
26133 --Exchange Rate Type
26134 , p_source_29 IN VARCHAR2
26135 --Actual Upgrade Debit Accounting Class
26136 , p_source_30 IN VARCHAR2
26137 --Use Actuals Upgrade Attributes Flag
26138 , p_source_31 IN VARCHAR2
26139 --Expenditure Item ID
26143 --Line Type
26140 , p_source_32 IN NUMBER
26141 --Cost Distribution Line Number
26142 , p_source_33 IN NUMBER
26144 , p_source_34 IN VARCHAR2
26145 , p_source_34_meaning IN VARCHAR2
26146 --Reversed Line Number
26147 , p_source_35 IN NUMBER
26148 )
26149 IS
26150
26151 l_component_type VARCHAR2(80);
26152 l_component_code VARCHAR2(30);
26153 l_component_type_code VARCHAR2(1);
26154 l_component_appl_id INTEGER;
26155 l_amb_context_code VARCHAR2(30);
26156 l_entity_code VARCHAR2(30);
26157 l_event_class_code VARCHAR2(30);
26158 l_ae_header_id NUMBER;
26159 l_event_type_code VARCHAR2(30);
26160 l_line_definition_code VARCHAR2(30);
26161 l_line_definition_owner_code VARCHAR2(1);
26162 --
26163 -- adr variables
26164 l_segment VARCHAR2(30);
26165 l_ccid NUMBER;
26166 l_adr_transaction_coa_id NUMBER;
26167 l_adr_accounting_coa_id NUMBER;
26168 l_adr_flexfield_segment_code VARCHAR2(30);
26169 l_adr_flex_value_set_id NUMBER;
26170 l_adr_value_type_code VARCHAR2(30);
26171 l_adr_value_combination_id NUMBER;
26172 l_adr_value_segment_code VARCHAR2(30);
26173
26174 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26175 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26176 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26177 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26178
26179 -- 4262811 Variables ------------------------------------------------------------------------------------------
26180 l_entered_amt_idx NUMBER;
26181 l_accted_amt_idx NUMBER;
26182 l_acc_rev_flag VARCHAR2(1);
26183 l_accrual_line_num NUMBER;
26184 l_tmp_amt NUMBER;
26185 l_acc_rev_natural_side_code VARCHAR2(1);
26186
26187 l_num_entries NUMBER;
26188 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26189 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26190 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26191 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26192 l_recog_line_1 NUMBER;
26193 l_recog_line_2 NUMBER;
26194
26195 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26196 l_bflow_applied_to_amt NUMBER; -- 5132302
26197 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26198
26199 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26200
26201 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26202 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26203
26204 ---------------------------------------------------------------------------------------------------------------
26205
26206
26207 --
26208 -- bulk performance
26209 --
26210 l_balance_type_code VARCHAR2(1);
26211 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26212 l_log_module VARCHAR2(240);
26213
26214 --
26215 -- Upgrade strategy
26216 --
26217 l_actual_upg_option VARCHAR2(1);
26218 l_enc_upg_option VARCHAR2(1);
26219
26220 --
26221 BEGIN
26222 --
26223 IF g_log_enabled THEN
26224 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
26225 END IF;
26226 --
26227 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26228
26229 trace
26230 (p_msg => 'BEGIN of AcctLineType_61'
26231 ,p_level => C_LEVEL_PROCEDURE
26232 ,p_module => l_log_module);
26233
26234 END IF;
26235 --
26236 l_component_type := 'AMB_JLT';
26237 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
26238 l_component_type_code := 'S';
26239 l_component_appl_id := 275;
26240 l_amb_context_code := 'DEFAULT';
26241 l_entity_code := 'EXPENDITURES';
26242 l_event_class_code := 'USG_COST_ADJ';
26243 l_event_type_code := 'USG_COST_ADJ_ALL';
26244 l_line_definition_owner_code := 'S';
26245 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
26246 --
26247 l_balance_type_code := 'A';
26248 l_segment := NULL;
26249 l_ccid := NULL;
26250 l_adr_transaction_coa_id := NULL;
26251 l_adr_accounting_coa_id := NULL;
26252 l_adr_flexfield_segment_code := NULL;
26253 l_adr_flex_value_set_id := NULL;
26254 l_adr_value_type_code := NULL;
26255 l_adr_value_combination_id := NULL;
26256 l_adr_value_segment_code := NULL;
26257
26258 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26259 l_bflow_class_code := ''; -- 4219869 Business Flow
26260 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26261 l_budgetary_control_flag := 'N';
26262
26263 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26264 l_bflow_applied_to_amt := NULL; -- 5132302
26265 l_entered_amt_idx := NULL; -- 4262811
26266 l_accted_amt_idx := NULL; -- 4262811
26267 l_acc_rev_flag := NULL; -- 4262811
26268 l_accrual_line_num := NULL; -- 4262811
26269 l_tmp_amt := NULL; -- 4262811
26270 --
26271
26272 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26273 l_balance_type_code <> 'B' THEN
26274
26275 --
26276 XLA_AE_LINES_PKG.SetNewLine;
26277
26281 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26278 p_balance_type_code := l_balance_type_code;
26279 -- set the flag so later we will know whether the gain loss line needs to be created
26280
26282 p_actual_flag :='A';
26283 END IF;
26284
26285 --
26286 -- bulk performance
26287 --
26288 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26289 p_header_num => 0); -- 4262811
26290 --
26291 -- set accounting line options
26292 --
26293 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26294 p_natural_side_code => 'C'
26295 , p_gain_or_loss_flag => 'N'
26296 , p_gl_transfer_mode_code => 'S'
26297 , p_acct_entry_type_code => 'A'
26298 , p_switch_side_flag => 'Y'
26299 , p_merge_duplicate_code => 'N'
26300 );
26301 --
26302 l_acc_rev_natural_side_code := 'D'; -- 4262811
26303 --
26304 --
26305 -- set accounting line type info
26306 --
26307 xla_ae_lines_pkg.SetAcctLineType
26308 (p_component_type => l_component_type
26309 ,p_event_type_code => l_event_type_code
26310 ,p_line_definition_owner_code => l_line_definition_owner_code
26311 ,p_line_definition_code => l_line_definition_code
26312 ,p_accounting_line_code => l_component_code
26313 ,p_accounting_line_type_code => l_component_type_code
26314 ,p_accounting_line_appl_id => l_component_appl_id
26315 ,p_amb_context_code => l_amb_context_code
26316 ,p_entity_code => l_entity_code
26317 ,p_event_class_code => l_event_class_code);
26318 --
26319 -- set accounting class
26320 --
26321 xla_ae_lines_pkg.SetAcctClass(
26322 p_accounting_class_code => 'COST_CLEARING'
26323 , p_ae_header_id => l_ae_header_id
26324 );
26325
26326 --
26327 -- set rounding class
26328 --
26329 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26330 'COST_CLEARING';
26331
26332 --
26333 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26334 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26335 --
26336 -- bulk performance
26337 --
26338 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26339
26340 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26341 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26342
26343 -- 4955764
26344 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26345 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26346
26347 -- 4458381 Public Sector Enh
26348
26349 --
26350 -- set accounting attributes for the line type
26351 --
26352 l_entered_amt_idx := 22;
26353 l_accted_amt_idx := 27;
26354 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26355 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26356 l_rec_acct_attrs.array_char_value(1) := p_source_22;
26357 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
26358 l_rec_acct_attrs.array_char_value(2) := p_source_23;
26359 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
26360 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
26361 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
26362 l_rec_acct_attrs.array_num_value(4) := p_source_24;
26363 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
26364 l_rec_acct_attrs.array_char_value(5) := p_source_25;
26365 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
26366 l_rec_acct_attrs.array_num_value(6) := p_source_26;
26367 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
26368 l_rec_acct_attrs.array_date_value(7) := p_source_27;
26369 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
26370 l_rec_acct_attrs.array_num_value(8) := p_source_28;
26371 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
26372 l_rec_acct_attrs.array_char_value(9) := p_source_29;
26373 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
26374 l_rec_acct_attrs.array_char_value(10) := p_source_30;
26375 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
26376 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
26377 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
26378 l_rec_acct_attrs.array_num_value(12) := p_source_24;
26379 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
26380 l_rec_acct_attrs.array_char_value(13) := p_source_25;
26381 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
26382 l_rec_acct_attrs.array_num_value(14) := p_source_26;
26383 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
26384 l_rec_acct_attrs.array_date_value(15) := p_source_27;
26385 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
26386 l_rec_acct_attrs.array_num_value(16) := p_source_28;
26387 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
26388 l_rec_acct_attrs.array_char_value(17) := p_source_29;
26389 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
26390 l_rec_acct_attrs.array_char_value(18) := p_source_31;
26391 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
26392 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
26396 l_rec_acct_attrs.array_char_value(21) := p_source_34;
26393 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
26394 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
26395 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
26397 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
26398 l_rec_acct_attrs.array_num_value(22) := p_source_24;
26399 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
26400 l_rec_acct_attrs.array_char_value(23) := p_source_25;
26401 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
26402 l_rec_acct_attrs.array_date_value(24) := p_source_27;
26403 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
26404 l_rec_acct_attrs.array_num_value(25) := p_source_28;
26405 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
26406 l_rec_acct_attrs.array_char_value(26) := p_source_29;
26407 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
26408 l_rec_acct_attrs.array_num_value(27) := p_source_26;
26409 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
26410 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
26411 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
26412 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
26413 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
26414 l_rec_acct_attrs.array_char_value(30) := p_source_34;
26415
26416 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26417 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26418
26419 ---------------------------------------------------------------------------------------------------------------
26420 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26421 ---------------------------------------------------------------------------------------------------------------
26422 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26423
26424 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26425 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26426
26427 IF xla_accounting_cache_pkg.GetValueChar
26428 (p_source_code => 'LEDGER_CATEGORY_CODE'
26429 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26430 AND l_bflow_method_code = 'PRIOR_ENTRY'
26431 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26432 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26433 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26434 )
26435 THEN
26436 xla_ae_lines_pkg.BflowUpgEntry
26437 (p_business_method_code => l_bflow_method_code
26438 ,p_business_class_code => l_bflow_class_code
26439 ,p_balance_type => l_balance_type_code);
26440 ELSE
26441 NULL;
26442 -- No business flow processing for business flow method of NONE.
26443 END IF;
26444
26445 --
26446 -- call analytical criteria
26447 --
26448
26449 --
26450 -- call description
26451 --
26452 -- No description or it is inherited.
26453 --
26454 -- call ADRs
26455 -- Bug 4922099
26456 --
26457 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26458 (NVL(l_actual_upg_option, 'N') = 'O') OR
26459 (NVL(l_enc_upg_option, 'N') = 'O')
26460 )
26461 THEN
26462 NULL;
26463 --
26464 --
26465
26466 l_ccid := AcctDerRule_6(
26467 p_application_id => p_application_id
26468 , p_ae_header_id => l_ae_header_id
26469 , p_source_4 => p_source_4
26470 , p_source_7 => p_source_7
26471 , x_transaction_coa_id => l_adr_transaction_coa_id
26472 , x_accounting_coa_id => l_adr_accounting_coa_id
26473 , x_value_type_code => l_adr_value_type_code
26474 , p_side => 'NA'
26475 );
26476
26477 xla_ae_lines_pkg.set_ccid(
26478 p_code_combination_id => l_ccid
26479 , p_value_type_code => l_adr_value_type_code
26480 , p_transaction_coa_id => l_adr_transaction_coa_id
26481 , p_accounting_coa_id => l_adr_accounting_coa_id
26482 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
26483 , p_adr_type_code => 'S'
26484 , p_component_type => l_component_type
26485 , p_component_code => l_component_code
26486 , p_component_type_code => l_component_type_code
26487 , p_component_appl_id => l_component_appl_id
26488 , p_amb_context_code => l_amb_context_code
26489 , p_side => 'NA'
26490 );
26491
26492
26493 --
26494 --
26495 END IF;
26496 --
26497 -- Bug 4922099
26498 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26499 (NVL(l_enc_upg_option, 'N') = 'O')
26500 ) AND
26501 (l_bflow_method_code = 'PRIOR_ENTRY')
26502 )
26503 THEN
26504 IF
26505 --
26506 1 = 2
26507 --
26508 THEN
26509 xla_accounting_err_pkg.build_message
26510 (p_appli_s_name => 'XLA'
26511 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26512 ,p_token_1 => 'LINE_NUMBER'
26513 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26514 ,p_token_2 => 'LINE_TYPE_NAME'
26518 ,l_component_type_code
26515 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26516 l_component_type
26517 ,l_component_code
26519 ,l_component_appl_id
26520 ,l_amb_context_code
26521 ,l_entity_code
26522 ,l_event_class_code
26523 )
26524 ,p_token_3 => 'OWNER'
26525 ,p_value_3 => xla_lookups_pkg.get_meaning(
26526 p_lookup_type => 'XLA_OWNER_TYPE'
26527 ,p_lookup_code => l_component_type_code
26528 )
26529 ,p_token_4 => 'PRODUCT_NAME'
26530 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26531 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26532 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26533 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26534 ,p_ae_header_id => NULL
26535 );
26536
26537 IF (C_LEVEL_ERROR>= g_log_level) THEN
26538 trace
26539 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26540 ,p_level => C_LEVEL_ERROR
26541 ,p_module => l_log_module);
26542 END IF;
26543 END IF;
26544 END IF;
26545 --
26546 --
26547 ------------------------------------------------------------------------------------------------
26548 -- 4219869 Business Flow
26549 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26550 -- Prior Entry. Currently, the following code is always generated.
26551 ------------------------------------------------------------------------------------------------
26552 XLA_AE_LINES_PKG.ValidateCurrentLine;
26553
26554 ------------------------------------------------------------------------------------
26555 -- 4219869 Business Flow
26556 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26557 ------------------------------------------------------------------------------------
26558 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26559
26560 ----------------------------------------------------------------------------------
26561 -- 4219869 Business Flow
26562 -- Update journal entry status -- Need to generate this within IF <condition>
26563 ----------------------------------------------------------------------------------
26564 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26565 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26566 ,p_balance_type_code => l_balance_type_code
26567 );
26568
26569 -------------------------------------------------------------------------------------------
26570 -- 4262811 - Generate the Accrual Reversal lines
26571 -------------------------------------------------------------------------------------------
26572 BEGIN
26573 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26574 (g_array_event(p_event_id).array_value_num('header_index'));
26575 IF l_acc_rev_flag IS NULL THEN
26576 l_acc_rev_flag := 'N';
26577 END IF;
26578 EXCEPTION
26579 WHEN OTHERS THEN
26580 l_acc_rev_flag := 'N';
26581 END;
26582 --
26583 IF (l_acc_rev_flag = 'Y') THEN
26584
26585 -- 4645092 ------------------------------------------------------------------------------
26586 -- To allow MPA report to determine if it should generate report process
26587 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26588 ------------------------------------------------------------------------------------------
26589
26590 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26591 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26592
26593 --
26594 -- Update the line information that should be overwritten
26595 --
26596 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26597 p_header_num => 1);
26598 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26599
26600 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26601
26602 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26603 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26604 END IF;
26605
26606 --
26607 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26608 --
26609 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26610 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26611 ELSE
26612 ---------------------------------------------------------------------------------------------------
26616 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26613 -- 4262811a Switch Sign
26614 ---------------------------------------------------------------------------------------------------
26615 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26617 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26618 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26619 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26620 -- 5132302
26621 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26622 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26623
26624 END IF;
26625
26626 -- 4955764
26627 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26628 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26629
26630
26631 XLA_AE_LINES_PKG.ValidateCurrentLine;
26632 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26633
26634 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26635 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26636 ,p_balance_type_code => l_balance_type_code);
26637
26638 END IF;
26639
26640 -----------------------------------------------------------------------------------------
26641 -- 4262811 Multiperiod Accounting
26642 -----------------------------------------------------------------------------------------
26643 -- No MPA option is assigned.
26644
26645
26646 END IF;
26647 --
26648
26649 --
26650 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26651 trace
26652 (p_msg => 'END of AcctLineType_61'
26653 ,p_level => C_LEVEL_PROCEDURE
26654 ,p_module => l_log_module);
26655 END IF;
26656 --
26657 EXCEPTION
26658 WHEN xla_exceptions_pkg.application_exception THEN
26659 RAISE;
26660 WHEN OTHERS THEN
26661 xla_exceptions_pkg.raise_message
26662 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_61');
26663 END AcctLineType_61;
26664 --
26665
26666 ---------------------------------------
26667 --
26668 -- PRIVATE FUNCTION
26669 -- AcctLineType_62
26670 --
26671 ---------------------------------------
26672 PROCEDURE AcctLineType_62 (
26673 p_application_id IN NUMBER
26674 ,p_event_id IN NUMBER
26675 ,p_calculate_acctd_flag IN VARCHAR2
26676 ,p_calculate_g_l_flag IN VARCHAR2
26677 ,p_actual_flag IN OUT VARCHAR2
26678 ,p_balance_type_code OUT VARCHAR2
26679 ,p_gain_or_loss_ref OUT VARCHAR2
26680
26681 --Cost CCID
26682 , p_source_3 IN NUMBER
26683 --Allow Account Override Flag
26684 , p_source_4 IN VARCHAR2
26685 --Cost Clearing CCID
26686 , p_source_6 IN NUMBER
26687 --Adjustment Cost Clearing CCID
26688 , p_source_7 IN NUMBER
26689 --Reversing Line Flag
26690 , p_source_22 IN VARCHAR2
26691 --Actual Upgrade Credit Accounting Class
26692 , p_source_23 IN VARCHAR2
26693 --Entered Raw Cost
26694 , p_source_24 IN NUMBER
26695 --Entered Currency Code
26696 , p_source_25 IN VARCHAR2
26697 --Accounted Raw Cost
26698 , p_source_26 IN NUMBER
26699 --Exchange Rate Date
26700 , p_source_27 IN DATE
26701 --Exchange Rate
26702 , p_source_28 IN NUMBER
26703 --Exchange Rate Type
26704 , p_source_29 IN VARCHAR2
26705 --Actual Upgrade Debit Accounting Class
26706 , p_source_30 IN VARCHAR2
26707 --Use Actuals Upgrade Attributes Flag
26708 , p_source_31 IN VARCHAR2
26709 --Expenditure Item ID
26710 , p_source_32 IN NUMBER
26711 --Cost Distribution Line Number
26712 , p_source_33 IN NUMBER
26713 --Line Type
26714 , p_source_34 IN VARCHAR2
26715 , p_source_34_meaning IN VARCHAR2
26716 --Reversed Line Number
26717 , p_source_35 IN NUMBER
26718 --Project Number
26719 , p_source_68 IN VARCHAR2
26720 )
26721 IS
26722
26723 l_component_type VARCHAR2(80);
26724 l_component_code VARCHAR2(30);
26725 l_component_type_code VARCHAR2(1);
26726 l_component_appl_id INTEGER;
26727 l_amb_context_code VARCHAR2(30);
26728 l_entity_code VARCHAR2(30);
26729 l_event_class_code VARCHAR2(30);
26730 l_ae_header_id NUMBER;
26731 l_event_type_code VARCHAR2(30);
26732 l_line_definition_code VARCHAR2(30);
26733 l_line_definition_owner_code VARCHAR2(1);
26734 --
26735 -- adr variables
26736 l_segment VARCHAR2(30);
26737 l_ccid NUMBER;
26738 l_adr_transaction_coa_id NUMBER;
26739 l_adr_accounting_coa_id NUMBER;
26740 l_adr_flexfield_segment_code VARCHAR2(30);
26741 l_adr_flex_value_set_id NUMBER;
26742 l_adr_value_type_code VARCHAR2(30);
26743 l_adr_value_combination_id NUMBER;
26744 l_adr_value_segment_code VARCHAR2(30);
26745
26746 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26747 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26748 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26749 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26750
26751 -- 4262811 Variables ------------------------------------------------------------------------------------------
26755 l_accrual_line_num NUMBER;
26752 l_entered_amt_idx NUMBER;
26753 l_accted_amt_idx NUMBER;
26754 l_acc_rev_flag VARCHAR2(1);
26756 l_tmp_amt NUMBER;
26757 l_acc_rev_natural_side_code VARCHAR2(1);
26758
26759 l_num_entries NUMBER;
26760 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26761 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26762 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26763 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26764 l_recog_line_1 NUMBER;
26765 l_recog_line_2 NUMBER;
26766
26767 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26768 l_bflow_applied_to_amt NUMBER; -- 5132302
26769 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26770
26771 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26772
26773 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26774 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26775
26776 ---------------------------------------------------------------------------------------------------------------
26777
26778
26779 --
26780 -- bulk performance
26781 --
26782 l_balance_type_code VARCHAR2(1);
26783 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26784 l_log_module VARCHAR2(240);
26785
26786 --
26787 -- Upgrade strategy
26788 --
26789 l_actual_upg_option VARCHAR2(1);
26790 l_enc_upg_option VARCHAR2(1);
26791
26792 --
26793 BEGIN
26794 --
26795 IF g_log_enabled THEN
26796 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
26797 END IF;
26798 --
26799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26800
26801 trace
26802 (p_msg => 'BEGIN of AcctLineType_62'
26803 ,p_level => C_LEVEL_PROCEDURE
26804 ,p_module => l_log_module);
26805
26806 END IF;
26807 --
26808 l_component_type := 'AMB_JLT';
26809 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
26810 l_component_type_code := 'S';
26811 l_component_appl_id := 275;
26812 l_amb_context_code := 'DEFAULT';
26813 l_entity_code := 'EXPENDITURES';
26814 l_event_class_code := 'MISC_COST_ADJ';
26815 l_event_type_code := 'MISC_COST_ADJ_ALL';
26816 l_line_definition_owner_code := 'S';
26817 l_line_definition_code := 'JA_CN_PA_ACCRUAL_MIS_COSTADJ';
26818 --
26819 l_balance_type_code := 'A';
26820 l_segment := NULL;
26821 l_ccid := NULL;
26822 l_adr_transaction_coa_id := NULL;
26823 l_adr_accounting_coa_id := NULL;
26824 l_adr_flexfield_segment_code := NULL;
26825 l_adr_flex_value_set_id := NULL;
26826 l_adr_value_type_code := NULL;
26827 l_adr_value_combination_id := NULL;
26828 l_adr_value_segment_code := NULL;
26829
26830 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26831 l_bflow_class_code := ''; -- 4219869 Business Flow
26832 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26833 l_budgetary_control_flag := 'N';
26834
26835 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26836 l_bflow_applied_to_amt := NULL; -- 5132302
26837 l_entered_amt_idx := NULL; -- 4262811
26838 l_accted_amt_idx := NULL; -- 4262811
26839 l_acc_rev_flag := NULL; -- 4262811
26840 l_accrual_line_num := NULL; -- 4262811
26841 l_tmp_amt := NULL; -- 4262811
26842 --
26843
26844 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26845 l_balance_type_code <> 'B' THEN
26846
26847 --
26848 XLA_AE_LINES_PKG.SetNewLine;
26849
26850 p_balance_type_code := l_balance_type_code;
26851 -- set the flag so later we will know whether the gain loss line needs to be created
26852
26853 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26854 p_actual_flag :='A';
26855 END IF;
26856
26857 --
26858 -- bulk performance
26859 --
26860 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26861 p_header_num => 0); -- 4262811
26862 --
26863 -- set accounting line options
26864 --
26865 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26866 p_natural_side_code => 'C'
26867 , p_gain_or_loss_flag => 'N'
26868 , p_gl_transfer_mode_code => 'S'
26869 , p_acct_entry_type_code => 'A'
26870 , p_switch_side_flag => 'Y'
26871 , p_merge_duplicate_code => 'N'
26872 );
26873 --
26874 l_acc_rev_natural_side_code := 'D'; -- 4262811
26875 --
26876 --
26877 -- set accounting line type info
26878 --
26879 xla_ae_lines_pkg.SetAcctLineType
26880 (p_component_type => l_component_type
26881 ,p_event_type_code => l_event_type_code
26882 ,p_line_definition_owner_code => l_line_definition_owner_code
26883 ,p_line_definition_code => l_line_definition_code
26884 ,p_accounting_line_code => l_component_code
26885 ,p_accounting_line_type_code => l_component_type_code
26886 ,p_accounting_line_appl_id => l_component_appl_id
26887 ,p_amb_context_code => l_amb_context_code
26888 ,p_entity_code => l_entity_code
26892 --
26889 ,p_event_class_code => l_event_class_code);
26890 --
26891 -- set accounting class
26893 xla_ae_lines_pkg.SetAcctClass(
26894 p_accounting_class_code => 'COST_CLEARING'
26895 , p_ae_header_id => l_ae_header_id
26896 );
26897
26898 --
26899 -- set rounding class
26900 --
26901 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26902 'COST_CLEARING';
26903
26904 --
26905 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26906 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26907 --
26908 -- bulk performance
26909 --
26910 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26911
26912 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26913 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26914
26915 -- 4955764
26916 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26917 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26918
26919 -- 4458381 Public Sector Enh
26920
26921 --
26922 -- set accounting attributes for the line type
26923 --
26924 l_entered_amt_idx := 22;
26925 l_accted_amt_idx := 27;
26926 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26927 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26928 l_rec_acct_attrs.array_char_value(1) := p_source_22;
26929 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
26930 l_rec_acct_attrs.array_char_value(2) := p_source_23;
26931 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
26932 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
26933 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
26934 l_rec_acct_attrs.array_num_value(4) := p_source_24;
26935 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
26936 l_rec_acct_attrs.array_char_value(5) := p_source_25;
26937 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
26938 l_rec_acct_attrs.array_num_value(6) := p_source_26;
26939 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
26940 l_rec_acct_attrs.array_date_value(7) := p_source_27;
26941 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
26942 l_rec_acct_attrs.array_num_value(8) := p_source_28;
26943 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
26944 l_rec_acct_attrs.array_char_value(9) := p_source_29;
26945 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
26946 l_rec_acct_attrs.array_char_value(10) := p_source_30;
26947 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
26948 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
26949 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
26950 l_rec_acct_attrs.array_num_value(12) := p_source_24;
26951 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
26952 l_rec_acct_attrs.array_char_value(13) := p_source_25;
26953 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
26954 l_rec_acct_attrs.array_num_value(14) := p_source_26;
26955 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
26956 l_rec_acct_attrs.array_date_value(15) := p_source_27;
26957 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
26958 l_rec_acct_attrs.array_num_value(16) := p_source_28;
26959 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
26960 l_rec_acct_attrs.array_char_value(17) := p_source_29;
26961 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
26962 l_rec_acct_attrs.array_char_value(18) := p_source_31;
26963 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
26964 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
26965 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
26966 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
26967 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
26968 l_rec_acct_attrs.array_char_value(21) := p_source_34;
26969 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
26970 l_rec_acct_attrs.array_num_value(22) := p_source_24;
26971 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
26972 l_rec_acct_attrs.array_char_value(23) := p_source_25;
26973 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
26974 l_rec_acct_attrs.array_date_value(24) := p_source_27;
26975 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
26976 l_rec_acct_attrs.array_num_value(25) := p_source_28;
26977 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
26978 l_rec_acct_attrs.array_char_value(26) := p_source_29;
26979 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
26980 l_rec_acct_attrs.array_num_value(27) := p_source_26;
26981 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
26982 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
26983 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
26984 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
26985 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
26986 l_rec_acct_attrs.array_char_value(30) := p_source_34;
26987
26988 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26989 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26990
26991 ---------------------------------------------------------------------------------------------------------------
26995
26992 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26993 ---------------------------------------------------------------------------------------------------------------
26994 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26996 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26997 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26998
26999 IF xla_accounting_cache_pkg.GetValueChar
27000 (p_source_code => 'LEDGER_CATEGORY_CODE'
27001 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27002 AND l_bflow_method_code = 'PRIOR_ENTRY'
27003 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27004 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27005 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27006 )
27007 THEN
27008 xla_ae_lines_pkg.BflowUpgEntry
27009 (p_business_method_code => l_bflow_method_code
27010 ,p_business_class_code => l_bflow_class_code
27011 ,p_balance_type => l_balance_type_code);
27012 ELSE
27013 NULL;
27014 -- No business flow processing for business flow method of NONE.
27015 END IF;
27016
27017 --
27018 -- call analytical criteria
27019 --
27020
27021
27022 xla_ae_lines_pkg.g_rec_lines.array_anc_id_1(xla_ae_lines_pkg.g_LineNumber) :=
27023 xla_ae_lines_pkg.SetAnalyticalCriteria(
27024 p_analytical_criterion_name => 'Project Number'
27025 , p_analytical_criterion_owner => 'S'
27026 , p_analytical_criterion_code => 'PROJECT_NUMBER'
27027 , p_amb_context_code => 'DEFAULT'
27028 , p_balancing_flag => 'N'
27029
27030 , p_analytical_detail_char_1 => TO_CHAR(p_source_68)
27031 , p_analytical_detail_num_1 => NULL
27032 , p_analytical_detail_date_1 => NULL
27033
27034 , p_ae_header_id => l_ae_header_id
27035 )
27036 ;
27037 --
27038
27039 --
27040 -- call description
27041 --
27042 -- No description or it is inherited.
27043 --
27044 -- call ADRs
27045 -- Bug 4922099
27046 --
27047 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27048 (NVL(l_actual_upg_option, 'N') = 'O') OR
27049 (NVL(l_enc_upg_option, 'N') = 'O')
27050 )
27051 THEN
27052 NULL;
27053 --
27054 --
27055
27056 l_ccid := AcctDerRule_6(
27057 p_application_id => p_application_id
27058 , p_ae_header_id => l_ae_header_id
27059 , p_source_4 => p_source_4
27060 , p_source_7 => p_source_7
27061 , x_transaction_coa_id => l_adr_transaction_coa_id
27062 , x_accounting_coa_id => l_adr_accounting_coa_id
27063 , x_value_type_code => l_adr_value_type_code
27064 , p_side => 'NA'
27065 );
27066
27067 xla_ae_lines_pkg.set_ccid(
27068 p_code_combination_id => l_ccid
27069 , p_value_type_code => l_adr_value_type_code
27070 , p_transaction_coa_id => l_adr_transaction_coa_id
27071 , p_accounting_coa_id => l_adr_accounting_coa_id
27072 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
27073 , p_adr_type_code => 'S'
27074 , p_component_type => l_component_type
27075 , p_component_code => l_component_code
27076 , p_component_type_code => l_component_type_code
27077 , p_component_appl_id => l_component_appl_id
27078 , p_amb_context_code => l_amb_context_code
27079 , p_side => 'NA'
27080 );
27081
27082
27083 --
27084 --
27085 END IF;
27086 --
27087 -- Bug 4922099
27088 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27089 (NVL(l_enc_upg_option, 'N') = 'O')
27090 ) AND
27091 (l_bflow_method_code = 'PRIOR_ENTRY')
27092 )
27093 THEN
27094 IF
27095 --
27096 1 = 2
27097 --
27098 THEN
27099 xla_accounting_err_pkg.build_message
27100 (p_appli_s_name => 'XLA'
27101 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27102 ,p_token_1 => 'LINE_NUMBER'
27103 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27104 ,p_token_2 => 'LINE_TYPE_NAME'
27105 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27106 l_component_type
27107 ,l_component_code
27108 ,l_component_type_code
27109 ,l_component_appl_id
27110 ,l_amb_context_code
27111 ,l_entity_code
27112 ,l_event_class_code
27113 )
27114 ,p_token_3 => 'OWNER'
27115 ,p_value_3 => xla_lookups_pkg.get_meaning(
27116 p_lookup_type => 'XLA_OWNER_TYPE'
27120 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27117 ,p_lookup_code => l_component_type_code
27118 )
27119 ,p_token_4 => 'PRODUCT_NAME'
27121 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27122 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27123 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27124 ,p_ae_header_id => NULL
27125 );
27126
27127 IF (C_LEVEL_ERROR>= g_log_level) THEN
27128 trace
27129 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27130 ,p_level => C_LEVEL_ERROR
27131 ,p_module => l_log_module);
27132 END IF;
27133 END IF;
27134 END IF;
27135 --
27136 --
27137 ------------------------------------------------------------------------------------------------
27138 -- 4219869 Business Flow
27139 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27140 -- Prior Entry. Currently, the following code is always generated.
27141 ------------------------------------------------------------------------------------------------
27142 XLA_AE_LINES_PKG.ValidateCurrentLine;
27143
27144 ------------------------------------------------------------------------------------
27145 -- 4219869 Business Flow
27146 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27147 ------------------------------------------------------------------------------------
27148 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27149
27150 ----------------------------------------------------------------------------------
27151 -- 4219869 Business Flow
27152 -- Update journal entry status -- Need to generate this within IF <condition>
27153 ----------------------------------------------------------------------------------
27154 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27155 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27156 ,p_balance_type_code => l_balance_type_code
27157 );
27158
27159 -------------------------------------------------------------------------------------------
27160 -- 4262811 - Generate the Accrual Reversal lines
27161 -------------------------------------------------------------------------------------------
27162 BEGIN
27163 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27164 (g_array_event(p_event_id).array_value_num('header_index'));
27165 IF l_acc_rev_flag IS NULL THEN
27166 l_acc_rev_flag := 'N';
27167 END IF;
27168 EXCEPTION
27169 WHEN OTHERS THEN
27170 l_acc_rev_flag := 'N';
27171 END;
27172 --
27173 IF (l_acc_rev_flag = 'Y') THEN
27174
27175 -- 4645092 ------------------------------------------------------------------------------
27176 -- To allow MPA report to determine if it should generate report process
27177 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27178 ------------------------------------------------------------------------------------------
27179
27180 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27181 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27182
27183 --
27184 -- Update the line information that should be overwritten
27185 --
27186 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27187 p_header_num => 1);
27188 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27189
27190 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27191
27192 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27193 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27194 END IF;
27195
27196 --
27197 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27198 --
27199 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27200 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27201 ELSE
27202 ---------------------------------------------------------------------------------------------------
27203 -- 4262811a Switch Sign
27204 ---------------------------------------------------------------------------------------------------
27205 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27206 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27207 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27208 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27209 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27210 -- 5132302
27211 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27212 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27213
27214 END IF;
27215
27216 -- 4955764
27217 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27221 XLA_AE_LINES_PKG.ValidateCurrentLine;
27218 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27219
27220
27222 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27223
27224 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27225 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27226 ,p_balance_type_code => l_balance_type_code);
27227
27228 END IF;
27229
27230 -----------------------------------------------------------------------------------------
27231 -- 4262811 Multiperiod Accounting
27232 -----------------------------------------------------------------------------------------
27233 -- No MPA option is assigned.
27234
27235
27236 END IF;
27237 --
27238
27239 --
27240 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27241 trace
27242 (p_msg => 'END of AcctLineType_62'
27243 ,p_level => C_LEVEL_PROCEDURE
27244 ,p_module => l_log_module);
27245 END IF;
27246 --
27247 EXCEPTION
27248 WHEN xla_exceptions_pkg.application_exception THEN
27249 RAISE;
27250 WHEN OTHERS THEN
27251 xla_exceptions_pkg.raise_message
27252 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_62');
27253 END AcctLineType_62;
27254 --
27255
27256 ---------------------------------------
27257 --
27258 -- PRIVATE FUNCTION
27259 -- AcctLineType_63
27260 --
27261 ---------------------------------------
27262 PROCEDURE AcctLineType_63 (
27263 p_application_id IN NUMBER
27264 ,p_event_id IN NUMBER
27265 ,p_calculate_acctd_flag IN VARCHAR2
27266 ,p_calculate_g_l_flag IN VARCHAR2
27267 ,p_actual_flag IN OUT VARCHAR2
27268 ,p_balance_type_code OUT VARCHAR2
27269 ,p_gain_or_loss_ref OUT VARCHAR2
27270
27271 --Cost CCID
27272 , p_source_3 IN NUMBER
27273 --Allow Account Override Flag
27274 , p_source_4 IN VARCHAR2
27275 --Cost Clearing CCID
27276 , p_source_6 IN NUMBER
27277 --Adjustment Cost Clearing CCID
27278 , p_source_7 IN NUMBER
27279 --Reversing Line Flag
27280 , p_source_22 IN VARCHAR2
27281 --Actual Upgrade Credit Accounting Class
27282 , p_source_23 IN VARCHAR2
27283 --Entered Raw Cost
27284 , p_source_24 IN NUMBER
27285 --Entered Currency Code
27286 , p_source_25 IN VARCHAR2
27287 --Accounted Raw Cost
27288 , p_source_26 IN NUMBER
27289 --Exchange Rate Date
27290 , p_source_27 IN DATE
27291 --Exchange Rate
27292 , p_source_28 IN NUMBER
27293 --Exchange Rate Type
27294 , p_source_29 IN VARCHAR2
27295 --Actual Upgrade Debit Accounting Class
27296 , p_source_30 IN VARCHAR2
27297 --Use Actuals Upgrade Attributes Flag
27298 , p_source_31 IN VARCHAR2
27299 --Expenditure Item ID
27300 , p_source_32 IN NUMBER
27301 --Cost Distribution Line Number
27302 , p_source_33 IN NUMBER
27303 --Line Type
27304 , p_source_34 IN VARCHAR2
27305 , p_source_34_meaning IN VARCHAR2
27306 --Reversed Line Number
27307 , p_source_35 IN NUMBER
27308 )
27309 IS
27310
27311 l_component_type VARCHAR2(80);
27312 l_component_code VARCHAR2(30);
27313 l_component_type_code VARCHAR2(1);
27314 l_component_appl_id INTEGER;
27315 l_amb_context_code VARCHAR2(30);
27316 l_entity_code VARCHAR2(30);
27317 l_event_class_code VARCHAR2(30);
27318 l_ae_header_id NUMBER;
27319 l_event_type_code VARCHAR2(30);
27320 l_line_definition_code VARCHAR2(30);
27321 l_line_definition_owner_code VARCHAR2(1);
27322 --
27323 -- adr variables
27324 l_segment VARCHAR2(30);
27325 l_ccid NUMBER;
27326 l_adr_transaction_coa_id NUMBER;
27327 l_adr_accounting_coa_id NUMBER;
27328 l_adr_flexfield_segment_code VARCHAR2(30);
27329 l_adr_flex_value_set_id NUMBER;
27330 l_adr_value_type_code VARCHAR2(30);
27331 l_adr_value_combination_id NUMBER;
27332 l_adr_value_segment_code VARCHAR2(30);
27333
27334 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27335 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27336 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27337 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27338
27339 -- 4262811 Variables ------------------------------------------------------------------------------------------
27340 l_entered_amt_idx NUMBER;
27341 l_accted_amt_idx NUMBER;
27342 l_acc_rev_flag VARCHAR2(1);
27343 l_accrual_line_num NUMBER;
27344 l_tmp_amt NUMBER;
27345 l_acc_rev_natural_side_code VARCHAR2(1);
27346
27347 l_num_entries NUMBER;
27348 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27349 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27350 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27351 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27352 l_recog_line_1 NUMBER;
27353 l_recog_line_2 NUMBER;
27354
27355 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27356 l_bflow_applied_to_amt NUMBER; -- 5132302
27357 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27358
27359 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27360
27364 ---------------------------------------------------------------------------------------------------------------
27361 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27362 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27363
27365
27366
27367 --
27368 -- bulk performance
27369 --
27370 l_balance_type_code VARCHAR2(1);
27371 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27372 l_log_module VARCHAR2(240);
27373
27374 --
27375 -- Upgrade strategy
27376 --
27377 l_actual_upg_option VARCHAR2(1);
27378 l_enc_upg_option VARCHAR2(1);
27379
27380 --
27381 BEGIN
27382 --
27383 IF g_log_enabled THEN
27384 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
27385 END IF;
27386 --
27387 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27388
27389 trace
27390 (p_msg => 'BEGIN of AcctLineType_63'
27391 ,p_level => C_LEVEL_PROCEDURE
27392 ,p_module => l_log_module);
27393
27394 END IF;
27395 --
27396 l_component_type := 'AMB_JLT';
27397 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
27398 l_component_type_code := 'S';
27399 l_component_appl_id := 275;
27400 l_amb_context_code := 'DEFAULT';
27401 l_entity_code := 'EXPENDITURES';
27402 l_event_class_code := 'WIP_COST_ADJ';
27403 l_event_type_code := 'WIP_COST_ADJ_ALL';
27404 l_line_definition_owner_code := 'S';
27405 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
27406 --
27407 l_balance_type_code := 'A';
27408 l_segment := NULL;
27409 l_ccid := NULL;
27410 l_adr_transaction_coa_id := NULL;
27411 l_adr_accounting_coa_id := NULL;
27412 l_adr_flexfield_segment_code := NULL;
27413 l_adr_flex_value_set_id := NULL;
27414 l_adr_value_type_code := NULL;
27415 l_adr_value_combination_id := NULL;
27416 l_adr_value_segment_code := NULL;
27417
27418 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27419 l_bflow_class_code := ''; -- 4219869 Business Flow
27420 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27421 l_budgetary_control_flag := 'N';
27422
27423 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27424 l_bflow_applied_to_amt := NULL; -- 5132302
27425 l_entered_amt_idx := NULL; -- 4262811
27426 l_accted_amt_idx := NULL; -- 4262811
27427 l_acc_rev_flag := NULL; -- 4262811
27428 l_accrual_line_num := NULL; -- 4262811
27429 l_tmp_amt := NULL; -- 4262811
27430 --
27431
27432 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27433 l_balance_type_code <> 'B' THEN
27434
27435 --
27436 XLA_AE_LINES_PKG.SetNewLine;
27437
27438 p_balance_type_code := l_balance_type_code;
27439 -- set the flag so later we will know whether the gain loss line needs to be created
27440
27441 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27442 p_actual_flag :='A';
27443 END IF;
27444
27445 --
27446 -- bulk performance
27447 --
27448 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27449 p_header_num => 0); -- 4262811
27450 --
27451 -- set accounting line options
27452 --
27453 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27454 p_natural_side_code => 'C'
27455 , p_gain_or_loss_flag => 'N'
27456 , p_gl_transfer_mode_code => 'S'
27457 , p_acct_entry_type_code => 'A'
27458 , p_switch_side_flag => 'Y'
27459 , p_merge_duplicate_code => 'N'
27460 );
27461 --
27462 l_acc_rev_natural_side_code := 'D'; -- 4262811
27463 --
27464 --
27465 -- set accounting line type info
27466 --
27467 xla_ae_lines_pkg.SetAcctLineType
27468 (p_component_type => l_component_type
27469 ,p_event_type_code => l_event_type_code
27470 ,p_line_definition_owner_code => l_line_definition_owner_code
27471 ,p_line_definition_code => l_line_definition_code
27472 ,p_accounting_line_code => l_component_code
27473 ,p_accounting_line_type_code => l_component_type_code
27474 ,p_accounting_line_appl_id => l_component_appl_id
27475 ,p_amb_context_code => l_amb_context_code
27476 ,p_entity_code => l_entity_code
27477 ,p_event_class_code => l_event_class_code);
27478 --
27479 -- set accounting class
27480 --
27481 xla_ae_lines_pkg.SetAcctClass(
27482 p_accounting_class_code => 'COST_CLEARING'
27483 , p_ae_header_id => l_ae_header_id
27484 );
27485
27486 --
27487 -- set rounding class
27488 --
27489 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27490 'COST_CLEARING';
27491
27492 --
27493 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27494 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27495 --
27496 -- bulk performance
27497 --
27498 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27499
27500 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27501 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27502
27503 -- 4955764
27507 -- 4458381 Public Sector Enh
27504 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27505 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27506
27508
27509 --
27510 -- set accounting attributes for the line type
27511 --
27512 l_entered_amt_idx := 22;
27513 l_accted_amt_idx := 27;
27514 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27515 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27516 l_rec_acct_attrs.array_char_value(1) := p_source_22;
27517 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
27518 l_rec_acct_attrs.array_char_value(2) := p_source_23;
27519 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
27520 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
27521 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
27522 l_rec_acct_attrs.array_num_value(4) := p_source_24;
27523 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
27524 l_rec_acct_attrs.array_char_value(5) := p_source_25;
27525 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
27526 l_rec_acct_attrs.array_num_value(6) := p_source_26;
27527 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
27528 l_rec_acct_attrs.array_date_value(7) := p_source_27;
27529 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
27530 l_rec_acct_attrs.array_num_value(8) := p_source_28;
27531 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
27532 l_rec_acct_attrs.array_char_value(9) := p_source_29;
27533 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
27534 l_rec_acct_attrs.array_char_value(10) := p_source_30;
27535 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
27536 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
27537 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
27538 l_rec_acct_attrs.array_num_value(12) := p_source_24;
27539 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
27540 l_rec_acct_attrs.array_char_value(13) := p_source_25;
27541 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
27542 l_rec_acct_attrs.array_num_value(14) := p_source_26;
27543 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
27544 l_rec_acct_attrs.array_date_value(15) := p_source_27;
27545 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
27546 l_rec_acct_attrs.array_num_value(16) := p_source_28;
27547 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
27548 l_rec_acct_attrs.array_char_value(17) := p_source_29;
27549 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
27550 l_rec_acct_attrs.array_char_value(18) := p_source_31;
27551 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
27552 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
27553 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
27554 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
27555 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
27556 l_rec_acct_attrs.array_char_value(21) := p_source_34;
27557 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
27558 l_rec_acct_attrs.array_num_value(22) := p_source_24;
27559 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
27560 l_rec_acct_attrs.array_char_value(23) := p_source_25;
27561 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
27562 l_rec_acct_attrs.array_date_value(24) := p_source_27;
27563 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
27564 l_rec_acct_attrs.array_num_value(25) := p_source_28;
27565 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
27566 l_rec_acct_attrs.array_char_value(26) := p_source_29;
27567 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
27568 l_rec_acct_attrs.array_num_value(27) := p_source_26;
27569 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
27570 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
27571 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
27572 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
27573 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
27574 l_rec_acct_attrs.array_char_value(30) := p_source_34;
27575
27576 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27577 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27578
27579 ---------------------------------------------------------------------------------------------------------------
27580 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27581 ---------------------------------------------------------------------------------------------------------------
27582 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27583
27584 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27585 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27586
27587 IF xla_accounting_cache_pkg.GetValueChar
27588 (p_source_code => 'LEDGER_CATEGORY_CODE'
27589 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27590 AND l_bflow_method_code = 'PRIOR_ENTRY'
27591 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27592 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27593 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27594 )
27595 THEN
27596 xla_ae_lines_pkg.BflowUpgEntry
27597 (p_business_method_code => l_bflow_method_code
27601 NULL;
27598 ,p_business_class_code => l_bflow_class_code
27599 ,p_balance_type => l_balance_type_code);
27600 ELSE
27602 -- No business flow processing for business flow method of NONE.
27603 END IF;
27604
27605 --
27606 -- call analytical criteria
27607 --
27608
27609 --
27610 -- call description
27611 --
27612 -- No description or it is inherited.
27613 --
27614 -- call ADRs
27615 -- Bug 4922099
27616 --
27617 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27618 (NVL(l_actual_upg_option, 'N') = 'O') OR
27619 (NVL(l_enc_upg_option, 'N') = 'O')
27620 )
27621 THEN
27622 NULL;
27623 --
27624 --
27625
27626 l_ccid := AcctDerRule_6(
27627 p_application_id => p_application_id
27628 , p_ae_header_id => l_ae_header_id
27629 , p_source_4 => p_source_4
27630 , p_source_7 => p_source_7
27631 , x_transaction_coa_id => l_adr_transaction_coa_id
27632 , x_accounting_coa_id => l_adr_accounting_coa_id
27633 , x_value_type_code => l_adr_value_type_code
27634 , p_side => 'NA'
27635 );
27636
27637 xla_ae_lines_pkg.set_ccid(
27638 p_code_combination_id => l_ccid
27639 , p_value_type_code => l_adr_value_type_code
27640 , p_transaction_coa_id => l_adr_transaction_coa_id
27641 , p_accounting_coa_id => l_adr_accounting_coa_id
27642 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
27643 , p_adr_type_code => 'S'
27644 , p_component_type => l_component_type
27645 , p_component_code => l_component_code
27646 , p_component_type_code => l_component_type_code
27647 , p_component_appl_id => l_component_appl_id
27648 , p_amb_context_code => l_amb_context_code
27649 , p_side => 'NA'
27650 );
27651
27652
27653 --
27654 --
27655 END IF;
27656 --
27657 -- Bug 4922099
27658 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27659 (NVL(l_enc_upg_option, 'N') = 'O')
27660 ) AND
27661 (l_bflow_method_code = 'PRIOR_ENTRY')
27662 )
27663 THEN
27664 IF
27665 --
27666 1 = 2
27667 --
27668 THEN
27669 xla_accounting_err_pkg.build_message
27670 (p_appli_s_name => 'XLA'
27671 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27672 ,p_token_1 => 'LINE_NUMBER'
27673 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27674 ,p_token_2 => 'LINE_TYPE_NAME'
27675 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27676 l_component_type
27677 ,l_component_code
27678 ,l_component_type_code
27679 ,l_component_appl_id
27680 ,l_amb_context_code
27681 ,l_entity_code
27682 ,l_event_class_code
27683 )
27684 ,p_token_3 => 'OWNER'
27685 ,p_value_3 => xla_lookups_pkg.get_meaning(
27686 p_lookup_type => 'XLA_OWNER_TYPE'
27687 ,p_lookup_code => l_component_type_code
27688 )
27689 ,p_token_4 => 'PRODUCT_NAME'
27690 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27691 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27692 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27693 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27694 ,p_ae_header_id => NULL
27695 );
27696
27697 IF (C_LEVEL_ERROR>= g_log_level) THEN
27698 trace
27699 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27700 ,p_level => C_LEVEL_ERROR
27701 ,p_module => l_log_module);
27702 END IF;
27703 END IF;
27704 END IF;
27705 --
27706 --
27707 ------------------------------------------------------------------------------------------------
27708 -- 4219869 Business Flow
27709 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27710 -- Prior Entry. Currently, the following code is always generated.
27711 ------------------------------------------------------------------------------------------------
27712 XLA_AE_LINES_PKG.ValidateCurrentLine;
27713
27714 ------------------------------------------------------------------------------------
27715 -- 4219869 Business Flow
27719
27716 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27717 ------------------------------------------------------------------------------------
27718 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27720 ----------------------------------------------------------------------------------
27721 -- 4219869 Business Flow
27722 -- Update journal entry status -- Need to generate this within IF <condition>
27723 ----------------------------------------------------------------------------------
27724 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27725 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27726 ,p_balance_type_code => l_balance_type_code
27727 );
27728
27729 -------------------------------------------------------------------------------------------
27730 -- 4262811 - Generate the Accrual Reversal lines
27731 -------------------------------------------------------------------------------------------
27732 BEGIN
27733 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27734 (g_array_event(p_event_id).array_value_num('header_index'));
27735 IF l_acc_rev_flag IS NULL THEN
27736 l_acc_rev_flag := 'N';
27737 END IF;
27738 EXCEPTION
27739 WHEN OTHERS THEN
27740 l_acc_rev_flag := 'N';
27741 END;
27742 --
27743 IF (l_acc_rev_flag = 'Y') THEN
27744
27745 -- 4645092 ------------------------------------------------------------------------------
27746 -- To allow MPA report to determine if it should generate report process
27747 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27748 ------------------------------------------------------------------------------------------
27749
27750 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27751 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27752
27753 --
27754 -- Update the line information that should be overwritten
27755 --
27756 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27757 p_header_num => 1);
27758 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27759
27760 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27761
27762 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27763 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27764 END IF;
27765
27766 --
27767 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27768 --
27769 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27770 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27771 ELSE
27772 ---------------------------------------------------------------------------------------------------
27773 -- 4262811a Switch Sign
27774 ---------------------------------------------------------------------------------------------------
27775 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27776 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27777 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27778 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27779 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27780 -- 5132302
27781 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27782 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27783
27784 END IF;
27785
27786 -- 4955764
27787 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27788 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27789
27790
27791 XLA_AE_LINES_PKG.ValidateCurrentLine;
27792 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27793
27794 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27795 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27796 ,p_balance_type_code => l_balance_type_code);
27797
27798 END IF;
27799
27800 -----------------------------------------------------------------------------------------
27801 -- 4262811 Multiperiod Accounting
27802 -----------------------------------------------------------------------------------------
27803 -- No MPA option is assigned.
27804
27805
27806 END IF;
27807 --
27808
27809 --
27810 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27811 trace
27812 (p_msg => 'END of AcctLineType_63'
27813 ,p_level => C_LEVEL_PROCEDURE
27814 ,p_module => l_log_module);
27815 END IF;
27816 --
27817 EXCEPTION
27818 WHEN xla_exceptions_pkg.application_exception THEN
27819 RAISE;
27820 WHEN OTHERS THEN
27821 xla_exceptions_pkg.raise_message
27822 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_63');
27823 END AcctLineType_63;
27824 --
27825
27826 ---------------------------------------
27827 --
27828 -- PRIVATE FUNCTION
27829 -- AcctLineType_64
27830 --
27831 ---------------------------------------
27832 PROCEDURE AcctLineType_64 (
27833 p_application_id IN NUMBER
27834 ,p_event_id IN NUMBER
27835 ,p_calculate_acctd_flag IN VARCHAR2
27836 ,p_calculate_g_l_flag IN VARCHAR2
27840
27837 ,p_actual_flag IN OUT VARCHAR2
27838 ,p_balance_type_code OUT VARCHAR2
27839 ,p_gain_or_loss_ref OUT VARCHAR2
27841 --Cost CCID
27842 , p_source_3 IN NUMBER
27843 --Allow Account Override Flag
27844 , p_source_4 IN VARCHAR2
27845 --Cost Clearing CCID
27846 , p_source_6 IN NUMBER
27847 --Adjustment Cost Clearing CCID
27848 , p_source_7 IN NUMBER
27849 --Reversing Line Flag
27850 , p_source_22 IN VARCHAR2
27851 --Actual Upgrade Credit Accounting Class
27852 , p_source_23 IN VARCHAR2
27853 --Entered Raw Cost
27854 , p_source_24 IN NUMBER
27855 --Entered Currency Code
27856 , p_source_25 IN VARCHAR2
27857 --Accounted Raw Cost
27858 , p_source_26 IN NUMBER
27859 --Exchange Rate Date
27860 , p_source_27 IN DATE
27861 --Exchange Rate
27862 , p_source_28 IN NUMBER
27863 --Exchange Rate Type
27864 , p_source_29 IN VARCHAR2
27865 --Actual Upgrade Debit Accounting Class
27866 , p_source_30 IN VARCHAR2
27867 --Use Actuals Upgrade Attributes Flag
27868 , p_source_31 IN VARCHAR2
27869 --Expenditure Item ID
27870 , p_source_32 IN NUMBER
27871 --Cost Distribution Line Number
27872 , p_source_33 IN NUMBER
27873 --Line Type
27874 , p_source_34 IN VARCHAR2
27875 , p_source_34_meaning IN VARCHAR2
27876 --Reversed Line Number
27877 , p_source_35 IN NUMBER
27878 )
27879 IS
27880
27881 l_component_type VARCHAR2(80);
27882 l_component_code VARCHAR2(30);
27883 l_component_type_code VARCHAR2(1);
27884 l_component_appl_id INTEGER;
27885 l_amb_context_code VARCHAR2(30);
27886 l_entity_code VARCHAR2(30);
27887 l_event_class_code VARCHAR2(30);
27888 l_ae_header_id NUMBER;
27889 l_event_type_code VARCHAR2(30);
27890 l_line_definition_code VARCHAR2(30);
27891 l_line_definition_owner_code VARCHAR2(1);
27892 --
27893 -- adr variables
27894 l_segment VARCHAR2(30);
27895 l_ccid NUMBER;
27896 l_adr_transaction_coa_id NUMBER;
27897 l_adr_accounting_coa_id NUMBER;
27898 l_adr_flexfield_segment_code VARCHAR2(30);
27899 l_adr_flex_value_set_id NUMBER;
27900 l_adr_value_type_code VARCHAR2(30);
27901 l_adr_value_combination_id NUMBER;
27902 l_adr_value_segment_code VARCHAR2(30);
27903
27904 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27905 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27906 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27907 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27908
27909 -- 4262811 Variables ------------------------------------------------------------------------------------------
27910 l_entered_amt_idx NUMBER;
27911 l_accted_amt_idx NUMBER;
27912 l_acc_rev_flag VARCHAR2(1);
27913 l_accrual_line_num NUMBER;
27914 l_tmp_amt NUMBER;
27915 l_acc_rev_natural_side_code VARCHAR2(1);
27916
27917 l_num_entries NUMBER;
27918 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27919 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27920 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27921 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27922 l_recog_line_1 NUMBER;
27923 l_recog_line_2 NUMBER;
27924
27925 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27926 l_bflow_applied_to_amt NUMBER; -- 5132302
27927 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27928
27929 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27930
27931 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27932 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27933
27934 ---------------------------------------------------------------------------------------------------------------
27935
27936
27937 --
27938 -- bulk performance
27939 --
27940 l_balance_type_code VARCHAR2(1);
27941 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27942 l_log_module VARCHAR2(240);
27943
27944 --
27945 -- Upgrade strategy
27946 --
27947 l_actual_upg_option VARCHAR2(1);
27948 l_enc_upg_option VARCHAR2(1);
27949
27950 --
27951 BEGIN
27952 --
27953 IF g_log_enabled THEN
27954 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
27955 END IF;
27956 --
27957 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27958
27959 trace
27960 (p_msg => 'BEGIN of AcctLineType_64'
27961 ,p_level => C_LEVEL_PROCEDURE
27962 ,p_module => l_log_module);
27963
27964 END IF;
27965 --
27966 l_component_type := 'AMB_JLT';
27967 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
27968 l_component_type_code := 'S';
27969 l_component_appl_id := 275;
27970 l_amb_context_code := 'DEFAULT';
27971 l_entity_code := 'EXPENDITURES';
27972 l_event_class_code := 'INVENTORY_COST_ADJ';
27973 l_event_type_code := 'INVENTORY_COST_ADJ_ALL';
27974 l_line_definition_owner_code := 'S';
27975 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
27976 --
27977 l_balance_type_code := 'A';
27978 l_segment := NULL;
27979 l_ccid := NULL;
27983 l_adr_flex_value_set_id := NULL;
27980 l_adr_transaction_coa_id := NULL;
27981 l_adr_accounting_coa_id := NULL;
27982 l_adr_flexfield_segment_code := NULL;
27984 l_adr_value_type_code := NULL;
27985 l_adr_value_combination_id := NULL;
27986 l_adr_value_segment_code := NULL;
27987
27988 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27989 l_bflow_class_code := ''; -- 4219869 Business Flow
27990 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27991 l_budgetary_control_flag := 'N';
27992
27993 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27994 l_bflow_applied_to_amt := NULL; -- 5132302
27995 l_entered_amt_idx := NULL; -- 4262811
27996 l_accted_amt_idx := NULL; -- 4262811
27997 l_acc_rev_flag := NULL; -- 4262811
27998 l_accrual_line_num := NULL; -- 4262811
27999 l_tmp_amt := NULL; -- 4262811
28000 --
28001
28002 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28003 l_balance_type_code <> 'B' THEN
28004
28005 --
28006 XLA_AE_LINES_PKG.SetNewLine;
28007
28008 p_balance_type_code := l_balance_type_code;
28009 -- set the flag so later we will know whether the gain loss line needs to be created
28010
28011 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28012 p_actual_flag :='A';
28013 END IF;
28014
28015 --
28016 -- bulk performance
28017 --
28018 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28019 p_header_num => 0); -- 4262811
28020 --
28021 -- set accounting line options
28022 --
28023 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28024 p_natural_side_code => 'C'
28025 , p_gain_or_loss_flag => 'N'
28026 , p_gl_transfer_mode_code => 'S'
28027 , p_acct_entry_type_code => 'A'
28028 , p_switch_side_flag => 'Y'
28029 , p_merge_duplicate_code => 'N'
28030 );
28031 --
28032 l_acc_rev_natural_side_code := 'D'; -- 4262811
28033 --
28034 --
28035 -- set accounting line type info
28036 --
28037 xla_ae_lines_pkg.SetAcctLineType
28038 (p_component_type => l_component_type
28039 ,p_event_type_code => l_event_type_code
28040 ,p_line_definition_owner_code => l_line_definition_owner_code
28041 ,p_line_definition_code => l_line_definition_code
28042 ,p_accounting_line_code => l_component_code
28043 ,p_accounting_line_type_code => l_component_type_code
28044 ,p_accounting_line_appl_id => l_component_appl_id
28045 ,p_amb_context_code => l_amb_context_code
28046 ,p_entity_code => l_entity_code
28047 ,p_event_class_code => l_event_class_code);
28048 --
28049 -- set accounting class
28050 --
28051 xla_ae_lines_pkg.SetAcctClass(
28052 p_accounting_class_code => 'COST_CLEARING'
28053 , p_ae_header_id => l_ae_header_id
28054 );
28055
28056 --
28057 -- set rounding class
28058 --
28059 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28060 'COST_CLEARING';
28061
28062 --
28063 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28064 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28065 --
28066 -- bulk performance
28067 --
28068 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28069
28070 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28071 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28072
28073 -- 4955764
28074 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28075 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28076
28077 -- 4458381 Public Sector Enh
28078
28079 --
28080 -- set accounting attributes for the line type
28081 --
28082 l_entered_amt_idx := 22;
28083 l_accted_amt_idx := 27;
28084 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28085 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28086 l_rec_acct_attrs.array_char_value(1) := p_source_22;
28087 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
28088 l_rec_acct_attrs.array_char_value(2) := p_source_23;
28089 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
28090 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
28091 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
28092 l_rec_acct_attrs.array_num_value(4) := p_source_24;
28093 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
28094 l_rec_acct_attrs.array_char_value(5) := p_source_25;
28095 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
28096 l_rec_acct_attrs.array_num_value(6) := p_source_26;
28097 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
28098 l_rec_acct_attrs.array_date_value(7) := p_source_27;
28099 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
28100 l_rec_acct_attrs.array_num_value(8) := p_source_28;
28101 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
28102 l_rec_acct_attrs.array_char_value(9) := p_source_29;
28103 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
28104 l_rec_acct_attrs.array_char_value(10) := p_source_30;
28108 l_rec_acct_attrs.array_num_value(12) := p_source_24;
28105 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
28106 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
28107 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
28109 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
28110 l_rec_acct_attrs.array_char_value(13) := p_source_25;
28111 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
28112 l_rec_acct_attrs.array_num_value(14) := p_source_26;
28113 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
28114 l_rec_acct_attrs.array_date_value(15) := p_source_27;
28115 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
28116 l_rec_acct_attrs.array_num_value(16) := p_source_28;
28117 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
28118 l_rec_acct_attrs.array_char_value(17) := p_source_29;
28119 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
28120 l_rec_acct_attrs.array_char_value(18) := p_source_31;
28121 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
28122 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
28123 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
28124 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
28125 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
28126 l_rec_acct_attrs.array_char_value(21) := p_source_34;
28127 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
28128 l_rec_acct_attrs.array_num_value(22) := p_source_24;
28129 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
28130 l_rec_acct_attrs.array_char_value(23) := p_source_25;
28131 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
28132 l_rec_acct_attrs.array_date_value(24) := p_source_27;
28133 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
28134 l_rec_acct_attrs.array_num_value(25) := p_source_28;
28135 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
28136 l_rec_acct_attrs.array_char_value(26) := p_source_29;
28137 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
28138 l_rec_acct_attrs.array_num_value(27) := p_source_26;
28139 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
28140 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
28141 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
28142 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
28143 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
28144 l_rec_acct_attrs.array_char_value(30) := p_source_34;
28145
28146 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28147 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28148
28149 ---------------------------------------------------------------------------------------------------------------
28150 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28151 ---------------------------------------------------------------------------------------------------------------
28152 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28153
28154 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28155 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28156
28157 IF xla_accounting_cache_pkg.GetValueChar
28158 (p_source_code => 'LEDGER_CATEGORY_CODE'
28159 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28160 AND l_bflow_method_code = 'PRIOR_ENTRY'
28161 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28162 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28163 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28164 )
28165 THEN
28166 xla_ae_lines_pkg.BflowUpgEntry
28167 (p_business_method_code => l_bflow_method_code
28168 ,p_business_class_code => l_bflow_class_code
28169 ,p_balance_type => l_balance_type_code);
28170 ELSE
28171 NULL;
28172 -- No business flow processing for business flow method of NONE.
28173 END IF;
28174
28175 --
28176 -- call analytical criteria
28177 --
28178
28179 --
28180 -- call description
28181 --
28182 -- No description or it is inherited.
28183 --
28184 -- call ADRs
28185 -- Bug 4922099
28186 --
28187 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28188 (NVL(l_actual_upg_option, 'N') = 'O') OR
28189 (NVL(l_enc_upg_option, 'N') = 'O')
28190 )
28191 THEN
28192 NULL;
28193 --
28194 --
28195
28196 l_ccid := AcctDerRule_6(
28197 p_application_id => p_application_id
28198 , p_ae_header_id => l_ae_header_id
28199 , p_source_4 => p_source_4
28200 , p_source_7 => p_source_7
28201 , x_transaction_coa_id => l_adr_transaction_coa_id
28202 , x_accounting_coa_id => l_adr_accounting_coa_id
28203 , x_value_type_code => l_adr_value_type_code
28204 , p_side => 'NA'
28205 );
28206
28207 xla_ae_lines_pkg.set_ccid(
28208 p_code_combination_id => l_ccid
28209 , p_value_type_code => l_adr_value_type_code
28210 , p_transaction_coa_id => l_adr_transaction_coa_id
28211 , p_accounting_coa_id => l_adr_accounting_coa_id
28212 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
28213 , p_adr_type_code => 'S'
28214 , p_component_type => l_component_type
28218 , p_amb_context_code => l_amb_context_code
28215 , p_component_code => l_component_code
28216 , p_component_type_code => l_component_type_code
28217 , p_component_appl_id => l_component_appl_id
28219 , p_side => 'NA'
28220 );
28221
28222
28223 --
28224 --
28225 END IF;
28226 --
28227 -- Bug 4922099
28228 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28229 (NVL(l_enc_upg_option, 'N') = 'O')
28230 ) AND
28231 (l_bflow_method_code = 'PRIOR_ENTRY')
28232 )
28233 THEN
28234 IF
28235 --
28236 1 = 2
28237 --
28238 THEN
28239 xla_accounting_err_pkg.build_message
28240 (p_appli_s_name => 'XLA'
28241 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28242 ,p_token_1 => 'LINE_NUMBER'
28243 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28244 ,p_token_2 => 'LINE_TYPE_NAME'
28245 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28246 l_component_type
28247 ,l_component_code
28248 ,l_component_type_code
28249 ,l_component_appl_id
28250 ,l_amb_context_code
28251 ,l_entity_code
28252 ,l_event_class_code
28253 )
28254 ,p_token_3 => 'OWNER'
28255 ,p_value_3 => xla_lookups_pkg.get_meaning(
28256 p_lookup_type => 'XLA_OWNER_TYPE'
28257 ,p_lookup_code => l_component_type_code
28258 )
28259 ,p_token_4 => 'PRODUCT_NAME'
28260 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28261 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28262 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28263 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28264 ,p_ae_header_id => NULL
28265 );
28266
28267 IF (C_LEVEL_ERROR>= g_log_level) THEN
28268 trace
28269 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28270 ,p_level => C_LEVEL_ERROR
28271 ,p_module => l_log_module);
28272 END IF;
28273 END IF;
28274 END IF;
28275 --
28276 --
28277 ------------------------------------------------------------------------------------------------
28278 -- 4219869 Business Flow
28279 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28280 -- Prior Entry. Currently, the following code is always generated.
28281 ------------------------------------------------------------------------------------------------
28282 XLA_AE_LINES_PKG.ValidateCurrentLine;
28283
28284 ------------------------------------------------------------------------------------
28285 -- 4219869 Business Flow
28286 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28287 ------------------------------------------------------------------------------------
28288 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28289
28290 ----------------------------------------------------------------------------------
28291 -- 4219869 Business Flow
28292 -- Update journal entry status -- Need to generate this within IF <condition>
28293 ----------------------------------------------------------------------------------
28294 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28295 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28296 ,p_balance_type_code => l_balance_type_code
28297 );
28298
28299 -------------------------------------------------------------------------------------------
28300 -- 4262811 - Generate the Accrual Reversal lines
28301 -------------------------------------------------------------------------------------------
28302 BEGIN
28303 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28304 (g_array_event(p_event_id).array_value_num('header_index'));
28305 IF l_acc_rev_flag IS NULL THEN
28306 l_acc_rev_flag := 'N';
28307 END IF;
28308 EXCEPTION
28309 WHEN OTHERS THEN
28310 l_acc_rev_flag := 'N';
28311 END;
28312 --
28313 IF (l_acc_rev_flag = 'Y') THEN
28314
28315 -- 4645092 ------------------------------------------------------------------------------
28316 -- To allow MPA report to determine if it should generate report process
28317 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28318 ------------------------------------------------------------------------------------------
28319
28320 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28324 -- Update the line information that should be overwritten
28321 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28322
28323 --
28325 --
28326 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28327 p_header_num => 1);
28328 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28329
28330 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28331
28332 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28333 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28334 END IF;
28335
28336 --
28337 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28338 --
28339 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28340 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28341 ELSE
28342 ---------------------------------------------------------------------------------------------------
28343 -- 4262811a Switch Sign
28344 ---------------------------------------------------------------------------------------------------
28345 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28346 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28347 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28348 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28349 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28350 -- 5132302
28351 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28352 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28353
28354 END IF;
28355
28356 -- 4955764
28357 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28358 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28359
28360
28361 XLA_AE_LINES_PKG.ValidateCurrentLine;
28362 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28363
28364 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28365 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28366 ,p_balance_type_code => l_balance_type_code);
28367
28368 END IF;
28369
28370 -----------------------------------------------------------------------------------------
28371 -- 4262811 Multiperiod Accounting
28372 -----------------------------------------------------------------------------------------
28373 -- No MPA option is assigned.
28374
28375
28376 END IF;
28377 --
28378
28379 --
28380 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28381 trace
28382 (p_msg => 'END of AcctLineType_64'
28383 ,p_level => C_LEVEL_PROCEDURE
28384 ,p_module => l_log_module);
28385 END IF;
28386 --
28387 EXCEPTION
28388 WHEN xla_exceptions_pkg.application_exception THEN
28389 RAISE;
28390 WHEN OTHERS THEN
28391 xla_exceptions_pkg.raise_message
28392 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_64');
28393 END AcctLineType_64;
28394 --
28395
28396 ---------------------------------------
28397 --
28398 -- PRIVATE FUNCTION
28399 -- AcctLineType_65
28400 --
28401 ---------------------------------------
28402 PROCEDURE AcctLineType_65 (
28403 p_application_id IN NUMBER
28404 ,p_event_id IN NUMBER
28405 ,p_calculate_acctd_flag IN VARCHAR2
28406 ,p_calculate_g_l_flag IN VARCHAR2
28407 ,p_actual_flag IN OUT VARCHAR2
28408 ,p_balance_type_code OUT VARCHAR2
28409 ,p_gain_or_loss_ref OUT VARCHAR2
28410
28411 --Realized Gains CCID
28412 , p_source_16 IN NUMBER
28413 --Entered Currency Code
28414 , p_source_25 IN VARCHAR2
28415 --Exchange Rate Date
28416 , p_source_27 IN DATE
28417 --Exchange Rate
28418 , p_source_28 IN NUMBER
28419 --Exchange Rate Type
28420 , p_source_29 IN VARCHAR2
28421 --Revenue Distribution Type
28422 , p_source_36 IN VARCHAR2
28423 --Crediting Revenue Flag
28424 , p_source_38 IN VARCHAR2
28425 --Revenue First Distribution ID
28426 , p_source_39 IN NUMBER
28427 --Revenue Second Distribution ID
28428 , p_source_40 IN NUMBER
28429 --Entered Amount
28430 , p_source_41 IN NUMBER
28431 --Event ID
28432 , p_source_42 IN NUMBER
28433 --Accounted Amount
28434 , p_source_43 IN NUMBER
28435 )
28436 IS
28437
28438 l_component_type VARCHAR2(80);
28439 l_component_code VARCHAR2(30);
28440 l_component_type_code VARCHAR2(1);
28441 l_component_appl_id INTEGER;
28442 l_amb_context_code VARCHAR2(30);
28443 l_entity_code VARCHAR2(30);
28444 l_event_class_code VARCHAR2(30);
28445 l_ae_header_id NUMBER;
28446 l_event_type_code VARCHAR2(30);
28447 l_line_definition_code VARCHAR2(30);
28448 l_line_definition_owner_code VARCHAR2(1);
28449 --
28450 -- adr variables
28451 l_segment VARCHAR2(30);
28452 l_ccid NUMBER;
28453 l_adr_transaction_coa_id NUMBER;
28454 l_adr_accounting_coa_id NUMBER;
28458 l_adr_value_combination_id NUMBER;
28455 l_adr_flexfield_segment_code VARCHAR2(30);
28456 l_adr_flex_value_set_id NUMBER;
28457 l_adr_value_type_code VARCHAR2(30);
28459 l_adr_value_segment_code VARCHAR2(30);
28460
28461 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28462 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28463 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28464 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28465
28466 -- 4262811 Variables ------------------------------------------------------------------------------------------
28467 l_entered_amt_idx NUMBER;
28468 l_accted_amt_idx NUMBER;
28469 l_acc_rev_flag VARCHAR2(1);
28470 l_accrual_line_num NUMBER;
28471 l_tmp_amt NUMBER;
28472 l_acc_rev_natural_side_code VARCHAR2(1);
28473
28474 l_num_entries NUMBER;
28475 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28476 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28477 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28478 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28479 l_recog_line_1 NUMBER;
28480 l_recog_line_2 NUMBER;
28481
28482 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28483 l_bflow_applied_to_amt NUMBER; -- 5132302
28484 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28485
28486 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28487
28488 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28489 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28490
28491 ---------------------------------------------------------------------------------------------------------------
28492
28493
28494 --
28495 -- bulk performance
28496 --
28497 l_balance_type_code VARCHAR2(1);
28498 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28499 l_log_module VARCHAR2(240);
28500
28501 --
28502 -- Upgrade strategy
28503 --
28504 l_actual_upg_option VARCHAR2(1);
28505 l_enc_upg_option VARCHAR2(1);
28506
28507 --
28508 BEGIN
28509 --
28510 IF g_log_enabled THEN
28511 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
28512 END IF;
28513 --
28514 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28515
28516 trace
28517 (p_msg => 'BEGIN of AcctLineType_65'
28518 ,p_level => C_LEVEL_PROCEDURE
28519 ,p_module => l_log_module);
28520
28521 END IF;
28522 --
28523 l_component_type := 'AMB_JLT';
28524 l_component_code := 'PA_REALIZED_GAINS';
28525 l_component_type_code := 'S';
28526 l_component_appl_id := 275;
28527 l_amb_context_code := 'DEFAULT';
28528 l_entity_code := 'REVENUE';
28529 l_event_class_code := 'REVENUE';
28530 l_event_type_code := 'REVENUE_ALL';
28531 l_line_definition_owner_code := 'S';
28532 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
28533 --
28534 l_balance_type_code := 'A';
28535 l_segment := NULL;
28536 l_ccid := NULL;
28537 l_adr_transaction_coa_id := NULL;
28538 l_adr_accounting_coa_id := NULL;
28539 l_adr_flexfield_segment_code := NULL;
28540 l_adr_flex_value_set_id := NULL;
28541 l_adr_value_type_code := NULL;
28542 l_adr_value_combination_id := NULL;
28543 l_adr_value_segment_code := NULL;
28544
28545 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28546 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
28547 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28548 l_budgetary_control_flag := 'N';
28549
28550 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28551 l_bflow_applied_to_amt := NULL; -- 5132302
28552 l_entered_amt_idx := NULL; -- 4262811
28553 l_accted_amt_idx := NULL; -- 4262811
28554 l_acc_rev_flag := NULL; -- 4262811
28555 l_accrual_line_num := NULL; -- 4262811
28556 l_tmp_amt := NULL; -- 4262811
28557 --
28558
28559 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28560 l_balance_type_code <> 'B' THEN
28561 IF NVL(p_source_36,'
28562 ') = 'Revenue - Realized Gains' AND
28563 NVL(p_source_38,'
28564 ') = 'N'
28565 THEN
28566
28567 --
28568 XLA_AE_LINES_PKG.SetNewLine;
28569
28570 p_balance_type_code := l_balance_type_code;
28571 -- set the flag so later we will know whether the gain loss line needs to be created
28572
28573 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28574 p_actual_flag :='A';
28575 END IF;
28576
28577 --
28578 -- bulk performance
28579 --
28580 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28581 p_header_num => 0); -- 4262811
28582 --
28583 -- set accounting line options
28584 --
28585 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28586 p_natural_side_code => 'D'
28587 , p_gain_or_loss_flag => 'N'
28588 , p_gl_transfer_mode_code => 'S'
28589 , p_acct_entry_type_code => 'A'
28590 , p_switch_side_flag => 'Y'
28591 , p_merge_duplicate_code => 'N'
28592 );
28593 --
28597 -- set accounting line type info
28594 l_acc_rev_natural_side_code := 'C'; -- 4262811
28595 --
28596 --
28598 --
28599 xla_ae_lines_pkg.SetAcctLineType
28600 (p_component_type => l_component_type
28601 ,p_event_type_code => l_event_type_code
28602 ,p_line_definition_owner_code => l_line_definition_owner_code
28603 ,p_line_definition_code => l_line_definition_code
28604 ,p_accounting_line_code => l_component_code
28605 ,p_accounting_line_type_code => l_component_type_code
28606 ,p_accounting_line_appl_id => l_component_appl_id
28607 ,p_amb_context_code => l_amb_context_code
28608 ,p_entity_code => l_entity_code
28609 ,p_event_class_code => l_event_class_code);
28610 --
28611 -- set accounting class
28612 --
28613 xla_ae_lines_pkg.SetAcctClass(
28614 p_accounting_class_code => 'REALIZED_GAINS'
28615 , p_ae_header_id => l_ae_header_id
28616 );
28617
28618 --
28619 -- set rounding class
28620 --
28621 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28622 'REALIZED_GAINS';
28623
28624 --
28625 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28626 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28627 --
28628 -- bulk performance
28629 --
28630 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28631
28632 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28633 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28634
28635 -- 4955764
28636 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28637 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28638
28639 -- 4458381 Public Sector Enh
28640
28641 --
28642 -- set accounting attributes for the line type
28643 --
28644 l_entered_amt_idx := 4;
28645 l_accted_amt_idx := 10;
28646 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28647 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
28648 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
28649 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
28650 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
28651 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
28652 l_rec_acct_attrs.array_char_value(3) := p_source_36;
28653 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
28654 l_rec_acct_attrs.array_num_value(4) := p_source_41;
28655 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
28656 l_rec_acct_attrs.array_char_value(5) := p_source_25;
28657 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
28658 l_rec_acct_attrs.array_date_value(6) := p_source_27;
28659 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
28660 l_rec_acct_attrs.array_num_value(7) := p_source_28;
28661 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
28662 l_rec_acct_attrs.array_char_value(8) := p_source_29;
28663 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
28664 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
28665 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
28666 l_rec_acct_attrs.array_num_value(10) := p_source_43;
28667
28668 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28669 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28670
28671 ---------------------------------------------------------------------------------------------------------------
28672 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28673 ---------------------------------------------------------------------------------------------------------------
28674 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28675
28676 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28677 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28678
28679 IF xla_accounting_cache_pkg.GetValueChar
28680 (p_source_code => 'LEDGER_CATEGORY_CODE'
28681 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28682 AND l_bflow_method_code = 'PRIOR_ENTRY'
28683 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28684 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28685 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28686 )
28687 THEN
28688 xla_ae_lines_pkg.BflowUpgEntry
28689 (p_business_method_code => l_bflow_method_code
28690 ,p_business_class_code => l_bflow_class_code
28691 ,p_balance_type => l_balance_type_code);
28692 ELSE
28693 NULL;
28694 -- No business flow processing for business flow method of NONE.
28695 END IF;
28696
28697 --
28698 -- call analytical criteria
28699 --
28700
28701 --
28702 -- call description
28703 --
28704 -- No description or it is inherited.
28705 --
28706 -- call ADRs
28707 -- Bug 4922099
28708 --
28709 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28710 (NVL(l_actual_upg_option, 'N') = 'O') OR
28711 (NVL(l_enc_upg_option, 'N') = 'O')
28712 )
28713 THEN
28714 NULL;
28715 --
28716 --
28717
28721 , p_source_16 => p_source_16
28718 l_ccid := AcctDerRule_15(
28719 p_application_id => p_application_id
28720 , p_ae_header_id => l_ae_header_id
28722 , x_transaction_coa_id => l_adr_transaction_coa_id
28723 , x_accounting_coa_id => l_adr_accounting_coa_id
28724 , x_value_type_code => l_adr_value_type_code
28725 , p_side => 'NA'
28726 );
28727
28728 xla_ae_lines_pkg.set_ccid(
28729 p_code_combination_id => l_ccid
28730 , p_value_type_code => l_adr_value_type_code
28731 , p_transaction_coa_id => l_adr_transaction_coa_id
28732 , p_accounting_coa_id => l_adr_accounting_coa_id
28733 , p_adr_code => 'REALIZED_GAINS_RULE'
28734 , p_adr_type_code => 'S'
28735 , p_component_type => l_component_type
28736 , p_component_code => l_component_code
28737 , p_component_type_code => l_component_type_code
28738 , p_component_appl_id => l_component_appl_id
28739 , p_amb_context_code => l_amb_context_code
28740 , p_side => 'NA'
28741 );
28742
28743
28744 --
28745 --
28746 END IF;
28747 --
28748 -- Bug 4922099
28749 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28750 (NVL(l_enc_upg_option, 'N') = 'O')
28751 ) AND
28752 (l_bflow_method_code = 'PRIOR_ENTRY')
28753 )
28754 THEN
28755 IF
28756 --
28757 1 = 2
28758 --
28759 THEN
28760 xla_accounting_err_pkg.build_message
28761 (p_appli_s_name => 'XLA'
28762 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28763 ,p_token_1 => 'LINE_NUMBER'
28764 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28765 ,p_token_2 => 'LINE_TYPE_NAME'
28766 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28767 l_component_type
28768 ,l_component_code
28769 ,l_component_type_code
28770 ,l_component_appl_id
28771 ,l_amb_context_code
28772 ,l_entity_code
28773 ,l_event_class_code
28774 )
28775 ,p_token_3 => 'OWNER'
28776 ,p_value_3 => xla_lookups_pkg.get_meaning(
28777 p_lookup_type => 'XLA_OWNER_TYPE'
28778 ,p_lookup_code => l_component_type_code
28779 )
28780 ,p_token_4 => 'PRODUCT_NAME'
28781 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28782 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28783 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28784 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28785 ,p_ae_header_id => NULL
28786 );
28787
28788 IF (C_LEVEL_ERROR>= g_log_level) THEN
28789 trace
28790 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28791 ,p_level => C_LEVEL_ERROR
28792 ,p_module => l_log_module);
28793 END IF;
28794 END IF;
28795 END IF;
28796 --
28797 --
28798 ------------------------------------------------------------------------------------------------
28799 -- 4219869 Business Flow
28800 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28801 -- Prior Entry. Currently, the following code is always generated.
28802 ------------------------------------------------------------------------------------------------
28803 XLA_AE_LINES_PKG.ValidateCurrentLine;
28804
28805 ------------------------------------------------------------------------------------
28806 -- 4219869 Business Flow
28807 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28808 ------------------------------------------------------------------------------------
28809 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28810
28811 ----------------------------------------------------------------------------------
28812 -- 4219869 Business Flow
28813 -- Update journal entry status -- Need to generate this within IF <condition>
28814 ----------------------------------------------------------------------------------
28815 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28816 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28817 ,p_balance_type_code => l_balance_type_code
28818 );
28819
28820 -------------------------------------------------------------------------------------------
28821 -- 4262811 - Generate the Accrual Reversal lines
28825 (g_array_event(p_event_id).array_value_num('header_index'));
28822 -------------------------------------------------------------------------------------------
28823 BEGIN
28824 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28826 IF l_acc_rev_flag IS NULL THEN
28827 l_acc_rev_flag := 'N';
28828 END IF;
28829 EXCEPTION
28830 WHEN OTHERS THEN
28831 l_acc_rev_flag := 'N';
28832 END;
28833 --
28834 IF (l_acc_rev_flag = 'Y') THEN
28835
28836 -- 4645092 ------------------------------------------------------------------------------
28837 -- To allow MPA report to determine if it should generate report process
28838 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28839 ------------------------------------------------------------------------------------------
28840
28841 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28842 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28843
28844 --
28845 -- Update the line information that should be overwritten
28846 --
28847 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28848 p_header_num => 1);
28849 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28850
28851 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28852
28853 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28854 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28855 END IF;
28856
28857 --
28858 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28859 --
28860 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28861 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28862 ELSE
28863 ---------------------------------------------------------------------------------------------------
28864 -- 4262811a Switch Sign
28865 ---------------------------------------------------------------------------------------------------
28866 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28867 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28868 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28869 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28870 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28871 -- 5132302
28872 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28873 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28874
28875 END IF;
28876
28877 -- 4955764
28878 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28879 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28880
28881
28882 XLA_AE_LINES_PKG.ValidateCurrentLine;
28883 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28884
28885 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28886 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28887 ,p_balance_type_code => l_balance_type_code);
28888
28889 END IF;
28890
28891 -----------------------------------------------------------------------------------------
28892 -- 4262811 Multiperiod Accounting
28893 -----------------------------------------------------------------------------------------
28894 -- No MPA option is assigned.
28895
28896
28897 END IF;
28898 END IF;
28899 --
28900
28901 --
28902 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28903 trace
28904 (p_msg => 'END of AcctLineType_65'
28905 ,p_level => C_LEVEL_PROCEDURE
28906 ,p_module => l_log_module);
28907 END IF;
28908 --
28909 EXCEPTION
28910 WHEN xla_exceptions_pkg.application_exception THEN
28911 RAISE;
28912 WHEN OTHERS THEN
28913 xla_exceptions_pkg.raise_message
28914 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_65');
28915 END AcctLineType_65;
28916 --
28917
28918 ---------------------------------------
28919 --
28920 -- PRIVATE FUNCTION
28921 -- AcctLineType_66
28922 --
28923 ---------------------------------------
28924 PROCEDURE AcctLineType_66 (
28925 p_application_id IN NUMBER
28926 ,p_event_id IN NUMBER
28927 ,p_calculate_acctd_flag IN VARCHAR2
28928 ,p_calculate_g_l_flag IN VARCHAR2
28929 ,p_actual_flag IN OUT VARCHAR2
28930 ,p_balance_type_code OUT VARCHAR2
28931 ,p_gain_or_loss_ref OUT VARCHAR2
28932
28933 --Actual Upgrade Credit Accounting Class
28934 , p_source_23 IN VARCHAR2
28935 --Entered Currency Code
28936 , p_source_25 IN VARCHAR2
28937 --Exchange Rate Date
28938 , p_source_27 IN DATE
28939 --Exchange Rate
28940 , p_source_28 IN NUMBER
28941 --Exchange Rate Type
28942 , p_source_29 IN VARCHAR2
28943 --Actual Upgrade Debit Accounting Class
28944 , p_source_30 IN VARCHAR2
28945 --Use Actuals Upgrade Attributes Flag
28946 , p_source_31 IN VARCHAR2
28947 --Revenue Distribution Type
28948 , p_source_36 IN VARCHAR2
28949 --Crediting Revenue Flag
28950 , p_source_38 IN VARCHAR2
28954 , p_source_40 IN NUMBER
28951 --Revenue First Distribution ID
28952 , p_source_39 IN NUMBER
28953 --Revenue Second Distribution ID
28955 --Entered Amount
28956 , p_source_41 IN NUMBER
28957 --Event ID
28958 , p_source_42 IN NUMBER
28959 --Accounted Amount
28960 , p_source_43 IN NUMBER
28961 --Actual Upgrade Credit CCID
28962 , p_source_59 IN NUMBER
28963 --Actual Upgrade Debit CCID
28964 , p_source_60 IN NUMBER
28965 --Application ID
28966 , p_source_61 IN NUMBER
28967 --Revenue Entity Code
28968 , p_source_62 IN VARCHAR2
28969 --Crediting Revenue First Distribution ID
28970 , p_source_63 IN NUMBER
28971 --Project ID
28972 , p_source_64 IN NUMBER
28973 --Crediting Revenue Second Distribution ID
28974 , p_source_65 IN NUMBER
28975 --Draft Revenue Number Credited
28976 , p_source_66 IN NUMBER
28977 )
28978 IS
28979
28980 l_component_type VARCHAR2(80);
28981 l_component_code VARCHAR2(30);
28982 l_component_type_code VARCHAR2(1);
28983 l_component_appl_id INTEGER;
28984 l_amb_context_code VARCHAR2(30);
28985 l_entity_code VARCHAR2(30);
28986 l_event_class_code VARCHAR2(30);
28987 l_ae_header_id NUMBER;
28988 l_event_type_code VARCHAR2(30);
28989 l_line_definition_code VARCHAR2(30);
28990 l_line_definition_owner_code VARCHAR2(1);
28991 --
28992 -- adr variables
28993 l_segment VARCHAR2(30);
28994 l_ccid NUMBER;
28995 l_adr_transaction_coa_id NUMBER;
28996 l_adr_accounting_coa_id NUMBER;
28997 l_adr_flexfield_segment_code VARCHAR2(30);
28998 l_adr_flex_value_set_id NUMBER;
28999 l_adr_value_type_code VARCHAR2(30);
29000 l_adr_value_combination_id NUMBER;
29001 l_adr_value_segment_code VARCHAR2(30);
29002
29003 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29004 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29005 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29006 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29007
29008 -- 4262811 Variables ------------------------------------------------------------------------------------------
29009 l_entered_amt_idx NUMBER;
29010 l_accted_amt_idx NUMBER;
29011 l_acc_rev_flag VARCHAR2(1);
29012 l_accrual_line_num NUMBER;
29013 l_tmp_amt NUMBER;
29014 l_acc_rev_natural_side_code VARCHAR2(1);
29015
29016 l_num_entries NUMBER;
29017 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29018 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29019 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29020 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29021 l_recog_line_1 NUMBER;
29022 l_recog_line_2 NUMBER;
29023
29024 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29025 l_bflow_applied_to_amt NUMBER; -- 5132302
29026 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29027
29028 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29029
29030 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29031 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29032
29033 ---------------------------------------------------------------------------------------------------------------
29034
29035
29036 --
29037 -- bulk performance
29038 --
29039 l_balance_type_code VARCHAR2(1);
29040 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29041 l_log_module VARCHAR2(240);
29042
29043 --
29044 -- Upgrade strategy
29045 --
29046 l_actual_upg_option VARCHAR2(1);
29047 l_enc_upg_option VARCHAR2(1);
29048
29049 --
29050 BEGIN
29051 --
29052 IF g_log_enabled THEN
29053 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
29054 END IF;
29055 --
29056 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29057
29058 trace
29059 (p_msg => 'BEGIN of AcctLineType_66'
29060 ,p_level => C_LEVEL_PROCEDURE
29061 ,p_module => l_log_module);
29062
29063 END IF;
29064 --
29065 l_component_type := 'AMB_JLT';
29066 l_component_code := 'PA_REALIZED_GAINS_ADJ';
29067 l_component_type_code := 'S';
29068 l_component_appl_id := 275;
29069 l_amb_context_code := 'DEFAULT';
29070 l_entity_code := 'REVENUE';
29071 l_event_class_code := 'REVENUE_ADJ';
29072 l_event_type_code := 'REVENUE_ADJ_ALL';
29073 l_line_definition_owner_code := 'S';
29074 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
29075 --
29076 l_balance_type_code := 'A';
29077 l_segment := NULL;
29078 l_ccid := NULL;
29079 l_adr_transaction_coa_id := NULL;
29080 l_adr_accounting_coa_id := NULL;
29081 l_adr_flexfield_segment_code := NULL;
29082 l_adr_flex_value_set_id := NULL;
29083 l_adr_value_type_code := NULL;
29084 l_adr_value_combination_id := NULL;
29085 l_adr_value_segment_code := NULL;
29086
29087 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
29088 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
29089 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
29090 l_budgetary_control_flag := 'N';
29091
29095 l_accted_amt_idx := NULL; -- 4262811
29092 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29093 l_bflow_applied_to_amt := NULL; -- 5132302
29094 l_entered_amt_idx := NULL; -- 4262811
29096 l_acc_rev_flag := NULL; -- 4262811
29097 l_accrual_line_num := NULL; -- 4262811
29098 l_tmp_amt := NULL; -- 4262811
29099 --
29100
29101 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29102 l_balance_type_code <> 'B' THEN
29103 IF NVL(p_source_36,'
29104 ') = 'Revenue - Realized Gains' AND
29105 NVL(p_source_38,'
29106 ') = 'Y'
29107 THEN
29108
29109 --
29110 XLA_AE_LINES_PKG.SetNewLine;
29111
29112 p_balance_type_code := l_balance_type_code;
29113 -- set the flag so later we will know whether the gain loss line needs to be created
29114
29115 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29116 p_actual_flag :='A';
29117 END IF;
29118
29119 --
29120 -- bulk performance
29121 --
29122 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29123 p_header_num => 0); -- 4262811
29124 --
29125 -- set accounting line options
29126 --
29127 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29128 p_natural_side_code => 'D'
29129 , p_gain_or_loss_flag => 'N'
29130 , p_gl_transfer_mode_code => 'S'
29131 , p_acct_entry_type_code => 'A'
29132 , p_switch_side_flag => 'Y'
29133 , p_merge_duplicate_code => 'N'
29134 );
29135 --
29136 l_acc_rev_natural_side_code := 'C'; -- 4262811
29137 --
29138 --
29139 -- set accounting line type info
29140 --
29141 xla_ae_lines_pkg.SetAcctLineType
29142 (p_component_type => l_component_type
29143 ,p_event_type_code => l_event_type_code
29144 ,p_line_definition_owner_code => l_line_definition_owner_code
29145 ,p_line_definition_code => l_line_definition_code
29146 ,p_accounting_line_code => l_component_code
29147 ,p_accounting_line_type_code => l_component_type_code
29148 ,p_accounting_line_appl_id => l_component_appl_id
29149 ,p_amb_context_code => l_amb_context_code
29150 ,p_entity_code => l_entity_code
29151 ,p_event_class_code => l_event_class_code);
29152 --
29153 -- set accounting class
29154 --
29155 xla_ae_lines_pkg.SetAcctClass(
29156 p_accounting_class_code => 'REALIZED_GAINS'
29157 , p_ae_header_id => l_ae_header_id
29158 );
29159
29160 --
29161 -- set rounding class
29162 --
29163 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29164 'REALIZED_GAINS';
29165
29166 --
29167 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29168 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29169 --
29170 -- bulk performance
29171 --
29172 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29173
29174 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29175 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29176
29177 -- 4955764
29178 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29179 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29180
29181 -- 4458381 Public Sector Enh
29182
29183 --
29184 -- set accounting attributes for the line type
29185 --
29186 l_entered_amt_idx := 28;
29187 l_accted_amt_idx := 31;
29188 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29189 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
29190 l_rec_acct_attrs.array_char_value(1) := p_source_23;
29191 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
29192 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
29193 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
29194 l_rec_acct_attrs.array_num_value(3) := p_source_41;
29195 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
29196 l_rec_acct_attrs.array_char_value(4) := p_source_25;
29197 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
29198 l_rec_acct_attrs.array_num_value(5) := p_source_43;
29199 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
29200 l_rec_acct_attrs.array_date_value(6) := p_source_27;
29201 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
29202 l_rec_acct_attrs.array_num_value(7) := p_source_28;
29203 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
29204 l_rec_acct_attrs.array_char_value(8) := p_source_29;
29205 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
29206 l_rec_acct_attrs.array_char_value(9) := p_source_30;
29207 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
29208 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
29209 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
29210 l_rec_acct_attrs.array_num_value(11) := p_source_41;
29211 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
29212 l_rec_acct_attrs.array_char_value(12) := p_source_25;
29213 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
29214 l_rec_acct_attrs.array_num_value(13) := p_source_43;
29218 l_rec_acct_attrs.array_num_value(15) := p_source_28;
29215 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
29216 l_rec_acct_attrs.array_date_value(14) := p_source_27;
29217 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
29219 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
29220 l_rec_acct_attrs.array_char_value(16) := p_source_29;
29221 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
29222 l_rec_acct_attrs.array_char_value(17) := p_source_31;
29223 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
29224 l_rec_acct_attrs.array_num_value(18) := p_source_61;
29225 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29226 l_rec_acct_attrs.array_char_value(19) := p_source_36;
29227 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
29228 l_rec_acct_attrs.array_char_value(20) := p_source_62;
29229 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
29230 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
29231 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29232 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
29233 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
29234 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
29235 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
29236 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
29237 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
29238 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
29239 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
29240 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
29241 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
29242 l_rec_acct_attrs.array_char_value(27) := p_source_36;
29243 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
29244 l_rec_acct_attrs.array_num_value(28) := p_source_41;
29245 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
29246 l_rec_acct_attrs.array_char_value(29) := p_source_25;
29247 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
29248 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_42);
29249 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
29250 l_rec_acct_attrs.array_num_value(31) := p_source_43;
29251
29252 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29253 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29254
29255 ---------------------------------------------------------------------------------------------------------------
29256 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29257 ---------------------------------------------------------------------------------------------------------------
29258 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29259
29260 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29261 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29262
29263 IF xla_accounting_cache_pkg.GetValueChar
29264 (p_source_code => 'LEDGER_CATEGORY_CODE'
29265 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29266 AND l_bflow_method_code = 'PRIOR_ENTRY'
29267 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29268 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29269 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29270 )
29271 THEN
29272 xla_ae_lines_pkg.BflowUpgEntry
29273 (p_business_method_code => l_bflow_method_code
29274 ,p_business_class_code => l_bflow_class_code
29275 ,p_balance_type => l_balance_type_code);
29276 ELSE
29277 NULL;
29278 XLA_AE_LINES_PKG.business_flow_validation(
29279 p_business_method_code => l_bflow_method_code
29280 ,p_business_class_code => l_bflow_class_code
29281 ,p_inherit_description_flag => l_inherit_desc_flag);
29282 END IF;
29283
29284 --
29285 -- call analytical criteria
29286 --
29287 -- Inherited Analytical Criteria for business flow method of Prior Entry.
29288 --
29289 -- call description
29290 --
29291 -- No description or it is inherited.
29292 --
29293 -- call ADRs
29294 -- Bug 4922099
29295 --
29296 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29297 (NVL(l_actual_upg_option, 'N') = 'O') OR
29298 (NVL(l_enc_upg_option, 'N') = 'O')
29299 )
29300 THEN
29301 NULL;
29302 --
29303 --
29304
29305 --
29306 --
29307 END IF;
29308 --
29309 -- Bug 4922099
29310 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29311 (NVL(l_enc_upg_option, 'N') = 'O')
29312 ) AND
29313 (l_bflow_method_code = 'PRIOR_ENTRY')
29314 )
29315 THEN
29316 IF
29317 --
29318 1 = 1
29319 --
29320 THEN
29321 xla_accounting_err_pkg.build_message
29322 (p_appli_s_name => 'XLA'
29323 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29324 ,p_token_1 => 'LINE_NUMBER'
29325 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29326 ,p_token_2 => 'LINE_TYPE_NAME'
29330 ,l_component_type_code
29327 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29328 l_component_type
29329 ,l_component_code
29331 ,l_component_appl_id
29332 ,l_amb_context_code
29333 ,l_entity_code
29334 ,l_event_class_code
29335 )
29336 ,p_token_3 => 'OWNER'
29337 ,p_value_3 => xla_lookups_pkg.get_meaning(
29338 p_lookup_type => 'XLA_OWNER_TYPE'
29339 ,p_lookup_code => l_component_type_code
29340 )
29341 ,p_token_4 => 'PRODUCT_NAME'
29342 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29343 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29344 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29345 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29346 ,p_ae_header_id => NULL
29347 );
29348
29349 IF (C_LEVEL_ERROR>= g_log_level) THEN
29350 trace
29351 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29352 ,p_level => C_LEVEL_ERROR
29353 ,p_module => l_log_module);
29354 END IF;
29355 END IF;
29356 END IF;
29357 --
29358 --
29359 ------------------------------------------------------------------------------------------------
29360 -- 4219869 Business Flow
29361 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29362 -- Prior Entry. Currently, the following code is always generated.
29363 ------------------------------------------------------------------------------------------------
29364 -- No ValidateCurrentLine for business flow method of Prior Entry
29365
29366 ------------------------------------------------------------------------------------
29367 -- 4219869 Business Flow
29368 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29369 ------------------------------------------------------------------------------------
29370 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29371
29372 ----------------------------------------------------------------------------------
29373 -- 4219869 Business Flow
29374 -- Update journal entry status -- Need to generate this within IF <condition>
29375 ----------------------------------------------------------------------------------
29376 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29377 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29378 ,p_balance_type_code => l_balance_type_code
29379 );
29380
29381 -------------------------------------------------------------------------------------------
29382 -- 4262811 - Generate the Accrual Reversal lines
29383 -------------------------------------------------------------------------------------------
29384 BEGIN
29385 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29386 (g_array_event(p_event_id).array_value_num('header_index'));
29387 IF l_acc_rev_flag IS NULL THEN
29388 l_acc_rev_flag := 'N';
29389 END IF;
29390 EXCEPTION
29391 WHEN OTHERS THEN
29392 l_acc_rev_flag := 'N';
29393 END;
29394 --
29395 IF (l_acc_rev_flag = 'Y') THEN
29396
29397 -- 4645092 ------------------------------------------------------------------------------
29398 -- To allow MPA report to determine if it should generate report process
29399 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29400 ------------------------------------------------------------------------------------------
29401
29402 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29403 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29404
29405 --
29406 -- Update the line information that should be overwritten
29407 --
29408 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29409 p_header_num => 1);
29410 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29411
29412 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29413
29414 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29415 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29416 END IF;
29417
29418 --
29419 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29420 --
29421 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29422 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29423 ELSE
29427 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29424 ---------------------------------------------------------------------------------------------------
29425 -- 4262811a Switch Sign
29426 ---------------------------------------------------------------------------------------------------
29428 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29429 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29430 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29431 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29432 -- 5132302
29433 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29434 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29435
29436 END IF;
29437
29438 -- 4955764
29439 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29440 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29441
29442
29443 XLA_AE_LINES_PKG.ValidateCurrentLine;
29444 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29445
29446 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29447 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29448 ,p_balance_type_code => l_balance_type_code);
29449
29450 END IF;
29451
29452 -----------------------------------------------------------------------------------------
29453 -- 4262811 Multiperiod Accounting
29454 -----------------------------------------------------------------------------------------
29455 -- No MPA option is assigned.
29456
29457
29458 END IF;
29459 END IF;
29460 --
29461
29462 --
29463 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29464 trace
29465 (p_msg => 'END of AcctLineType_66'
29466 ,p_level => C_LEVEL_PROCEDURE
29467 ,p_module => l_log_module);
29468 END IF;
29469 --
29470 EXCEPTION
29471 WHEN xla_exceptions_pkg.application_exception THEN
29472 RAISE;
29473 WHEN OTHERS THEN
29474 xla_exceptions_pkg.raise_message
29475 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_66');
29476 END AcctLineType_66;
29477 --
29478
29479 ---------------------------------------
29480 --
29481 -- PRIVATE FUNCTION
29482 -- AcctLineType_67
29483 --
29484 ---------------------------------------
29485 PROCEDURE AcctLineType_67 (
29486 p_application_id IN NUMBER
29487 ,p_event_id IN NUMBER
29488 ,p_calculate_acctd_flag IN VARCHAR2
29489 ,p_calculate_g_l_flag IN VARCHAR2
29490 ,p_actual_flag IN OUT VARCHAR2
29491 ,p_balance_type_code OUT VARCHAR2
29492 ,p_gain_or_loss_ref OUT VARCHAR2
29493
29494 --Realized Losses CCID
29495 , p_source_17 IN NUMBER
29496 --Entered Currency Code
29497 , p_source_25 IN VARCHAR2
29498 --Exchange Rate Date
29499 , p_source_27 IN DATE
29500 --Exchange Rate
29501 , p_source_28 IN NUMBER
29502 --Exchange Rate Type
29503 , p_source_29 IN VARCHAR2
29504 --Revenue Distribution Type
29505 , p_source_36 IN VARCHAR2
29506 --Crediting Revenue Flag
29507 , p_source_38 IN VARCHAR2
29508 --Revenue First Distribution ID
29509 , p_source_39 IN NUMBER
29510 --Revenue Second Distribution ID
29511 , p_source_40 IN NUMBER
29512 --Entered Amount
29513 , p_source_41 IN NUMBER
29514 --Event ID
29515 , p_source_42 IN NUMBER
29516 --Accounted Amount
29517 , p_source_43 IN NUMBER
29518 )
29519 IS
29520
29521 l_component_type VARCHAR2(80);
29522 l_component_code VARCHAR2(30);
29523 l_component_type_code VARCHAR2(1);
29524 l_component_appl_id INTEGER;
29525 l_amb_context_code VARCHAR2(30);
29526 l_entity_code VARCHAR2(30);
29527 l_event_class_code VARCHAR2(30);
29528 l_ae_header_id NUMBER;
29529 l_event_type_code VARCHAR2(30);
29530 l_line_definition_code VARCHAR2(30);
29531 l_line_definition_owner_code VARCHAR2(1);
29532 --
29533 -- adr variables
29534 l_segment VARCHAR2(30);
29535 l_ccid NUMBER;
29536 l_adr_transaction_coa_id NUMBER;
29537 l_adr_accounting_coa_id NUMBER;
29538 l_adr_flexfield_segment_code VARCHAR2(30);
29539 l_adr_flex_value_set_id NUMBER;
29540 l_adr_value_type_code VARCHAR2(30);
29541 l_adr_value_combination_id NUMBER;
29542 l_adr_value_segment_code VARCHAR2(30);
29543
29544 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29545 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29546 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29547 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29548
29549 -- 4262811 Variables ------------------------------------------------------------------------------------------
29550 l_entered_amt_idx NUMBER;
29551 l_accted_amt_idx NUMBER;
29552 l_acc_rev_flag VARCHAR2(1);
29553 l_accrual_line_num NUMBER;
29554 l_tmp_amt NUMBER;
29555 l_acc_rev_natural_side_code VARCHAR2(1);
29556
29557 l_num_entries NUMBER;
29558 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29559 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29563 l_recog_line_2 NUMBER;
29560 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29561 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29562 l_recog_line_1 NUMBER;
29564
29565 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29566 l_bflow_applied_to_amt NUMBER; -- 5132302
29567 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29568
29569 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29570
29571 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29572 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29573
29574 ---------------------------------------------------------------------------------------------------------------
29575
29576
29577 --
29578 -- bulk performance
29579 --
29580 l_balance_type_code VARCHAR2(1);
29581 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29582 l_log_module VARCHAR2(240);
29583
29584 --
29585 -- Upgrade strategy
29586 --
29587 l_actual_upg_option VARCHAR2(1);
29588 l_enc_upg_option VARCHAR2(1);
29589
29590 --
29591 BEGIN
29592 --
29593 IF g_log_enabled THEN
29594 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
29595 END IF;
29596 --
29597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29598
29599 trace
29600 (p_msg => 'BEGIN of AcctLineType_67'
29601 ,p_level => C_LEVEL_PROCEDURE
29602 ,p_module => l_log_module);
29603
29604 END IF;
29605 --
29606 l_component_type := 'AMB_JLT';
29607 l_component_code := 'PA_REALIZED_LOSSES';
29608 l_component_type_code := 'S';
29609 l_component_appl_id := 275;
29610 l_amb_context_code := 'DEFAULT';
29611 l_entity_code := 'REVENUE';
29612 l_event_class_code := 'REVENUE';
29613 l_event_type_code := 'REVENUE_ALL';
29614 l_line_definition_owner_code := 'S';
29615 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
29616 --
29617 l_balance_type_code := 'A';
29618 l_segment := NULL;
29619 l_ccid := NULL;
29620 l_adr_transaction_coa_id := NULL;
29621 l_adr_accounting_coa_id := NULL;
29622 l_adr_flexfield_segment_code := NULL;
29623 l_adr_flex_value_set_id := NULL;
29624 l_adr_value_type_code := NULL;
29625 l_adr_value_combination_id := NULL;
29626 l_adr_value_segment_code := NULL;
29627
29628 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29629 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
29630 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29631 l_budgetary_control_flag := 'N';
29632
29633 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29634 l_bflow_applied_to_amt := NULL; -- 5132302
29635 l_entered_amt_idx := NULL; -- 4262811
29636 l_accted_amt_idx := NULL; -- 4262811
29637 l_acc_rev_flag := NULL; -- 4262811
29638 l_accrual_line_num := NULL; -- 4262811
29639 l_tmp_amt := NULL; -- 4262811
29640 --
29641
29642 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29643 l_balance_type_code <> 'B' THEN
29644 IF NVL(p_source_36,'
29645 ') = 'Revenue - Realized Losses' AND
29646 NVL(p_source_38,'
29647 ') = 'N'
29648 THEN
29649
29650 --
29651 XLA_AE_LINES_PKG.SetNewLine;
29652
29653 p_balance_type_code := l_balance_type_code;
29654 -- set the flag so later we will know whether the gain loss line needs to be created
29655
29656 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29657 p_actual_flag :='A';
29658 END IF;
29659
29660 --
29661 -- bulk performance
29662 --
29663 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29664 p_header_num => 0); -- 4262811
29665 --
29666 -- set accounting line options
29667 --
29668 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29669 p_natural_side_code => 'C'
29670 , p_gain_or_loss_flag => 'N'
29671 , p_gl_transfer_mode_code => 'S'
29672 , p_acct_entry_type_code => 'A'
29673 , p_switch_side_flag => 'Y'
29674 , p_merge_duplicate_code => 'N'
29675 );
29676 --
29677 l_acc_rev_natural_side_code := 'D'; -- 4262811
29678 --
29679 --
29680 -- set accounting line type info
29681 --
29682 xla_ae_lines_pkg.SetAcctLineType
29683 (p_component_type => l_component_type
29684 ,p_event_type_code => l_event_type_code
29685 ,p_line_definition_owner_code => l_line_definition_owner_code
29686 ,p_line_definition_code => l_line_definition_code
29687 ,p_accounting_line_code => l_component_code
29688 ,p_accounting_line_type_code => l_component_type_code
29689 ,p_accounting_line_appl_id => l_component_appl_id
29690 ,p_amb_context_code => l_amb_context_code
29691 ,p_entity_code => l_entity_code
29692 ,p_event_class_code => l_event_class_code);
29693 --
29694 -- set accounting class
29695 --
29696 xla_ae_lines_pkg.SetAcctClass(
29697 p_accounting_class_code => 'REALIZED_LOSS'
29698 , p_ae_header_id => l_ae_header_id
29699 );
29700
29701 --
29702 -- set rounding class
29703 --
29707 --
29704 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29705 'REALIZED_LOSS';
29706
29708 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29709 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29710 --
29711 -- bulk performance
29712 --
29713 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29714
29715 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29716 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29717
29718 -- 4955764
29719 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29720 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29721
29722 -- 4458381 Public Sector Enh
29723
29724 --
29725 -- set accounting attributes for the line type
29726 --
29727 l_entered_amt_idx := 4;
29728 l_accted_amt_idx := 10;
29729 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29730 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
29731 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
29732 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
29733 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
29734 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
29735 l_rec_acct_attrs.array_char_value(3) := p_source_36;
29736 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
29737 l_rec_acct_attrs.array_num_value(4) := p_source_41;
29738 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
29739 l_rec_acct_attrs.array_char_value(5) := p_source_25;
29740 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
29741 l_rec_acct_attrs.array_date_value(6) := p_source_27;
29742 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
29743 l_rec_acct_attrs.array_num_value(7) := p_source_28;
29744 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
29745 l_rec_acct_attrs.array_char_value(8) := p_source_29;
29746 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
29747 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
29748 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
29749 l_rec_acct_attrs.array_num_value(10) := p_source_43;
29750
29751 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29752 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29753
29754 ---------------------------------------------------------------------------------------------------------------
29755 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29756 ---------------------------------------------------------------------------------------------------------------
29757 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29758
29759 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29760 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29761
29762 IF xla_accounting_cache_pkg.GetValueChar
29763 (p_source_code => 'LEDGER_CATEGORY_CODE'
29764 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29765 AND l_bflow_method_code = 'PRIOR_ENTRY'
29766 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29767 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29768 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29769 )
29770 THEN
29771 xla_ae_lines_pkg.BflowUpgEntry
29772 (p_business_method_code => l_bflow_method_code
29773 ,p_business_class_code => l_bflow_class_code
29774 ,p_balance_type => l_balance_type_code);
29775 ELSE
29776 NULL;
29777 -- No business flow processing for business flow method of NONE.
29778 END IF;
29779
29780 --
29781 -- call analytical criteria
29782 --
29783
29784 --
29785 -- call description
29786 --
29787 -- No description or it is inherited.
29788 --
29789 -- call ADRs
29790 -- Bug 4922099
29791 --
29792 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29793 (NVL(l_actual_upg_option, 'N') = 'O') OR
29794 (NVL(l_enc_upg_option, 'N') = 'O')
29795 )
29796 THEN
29797 NULL;
29798 --
29799 --
29800
29801 l_ccid := AcctDerRule_16(
29802 p_application_id => p_application_id
29803 , p_ae_header_id => l_ae_header_id
29804 , p_source_17 => p_source_17
29805 , x_transaction_coa_id => l_adr_transaction_coa_id
29806 , x_accounting_coa_id => l_adr_accounting_coa_id
29807 , x_value_type_code => l_adr_value_type_code
29808 , p_side => 'NA'
29809 );
29810
29811 xla_ae_lines_pkg.set_ccid(
29812 p_code_combination_id => l_ccid
29813 , p_value_type_code => l_adr_value_type_code
29814 , p_transaction_coa_id => l_adr_transaction_coa_id
29815 , p_accounting_coa_id => l_adr_accounting_coa_id
29816 , p_adr_code => 'REALIZED_LOSSES_RULE'
29817 , p_adr_type_code => 'S'
29818 , p_component_type => l_component_type
29819 , p_component_code => l_component_code
29820 , p_component_type_code => l_component_type_code
29821 , p_component_appl_id => l_component_appl_id
29825
29822 , p_amb_context_code => l_amb_context_code
29823 , p_side => 'NA'
29824 );
29826
29827 --
29828 --
29829 END IF;
29830 --
29831 -- Bug 4922099
29832 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29833 (NVL(l_enc_upg_option, 'N') = 'O')
29834 ) AND
29835 (l_bflow_method_code = 'PRIOR_ENTRY')
29836 )
29837 THEN
29838 IF
29839 --
29840 1 = 2
29841 --
29842 THEN
29843 xla_accounting_err_pkg.build_message
29844 (p_appli_s_name => 'XLA'
29845 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29846 ,p_token_1 => 'LINE_NUMBER'
29847 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29848 ,p_token_2 => 'LINE_TYPE_NAME'
29849 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29850 l_component_type
29851 ,l_component_code
29852 ,l_component_type_code
29853 ,l_component_appl_id
29854 ,l_amb_context_code
29855 ,l_entity_code
29856 ,l_event_class_code
29857 )
29858 ,p_token_3 => 'OWNER'
29859 ,p_value_3 => xla_lookups_pkg.get_meaning(
29860 p_lookup_type => 'XLA_OWNER_TYPE'
29861 ,p_lookup_code => l_component_type_code
29862 )
29863 ,p_token_4 => 'PRODUCT_NAME'
29864 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29865 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29866 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29867 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29868 ,p_ae_header_id => NULL
29869 );
29870
29871 IF (C_LEVEL_ERROR>= g_log_level) THEN
29872 trace
29873 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29874 ,p_level => C_LEVEL_ERROR
29875 ,p_module => l_log_module);
29876 END IF;
29877 END IF;
29878 END IF;
29879 --
29880 --
29881 ------------------------------------------------------------------------------------------------
29882 -- 4219869 Business Flow
29883 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29884 -- Prior Entry. Currently, the following code is always generated.
29885 ------------------------------------------------------------------------------------------------
29886 XLA_AE_LINES_PKG.ValidateCurrentLine;
29887
29888 ------------------------------------------------------------------------------------
29889 -- 4219869 Business Flow
29890 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29891 ------------------------------------------------------------------------------------
29892 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29893
29894 ----------------------------------------------------------------------------------
29895 -- 4219869 Business Flow
29896 -- Update journal entry status -- Need to generate this within IF <condition>
29897 ----------------------------------------------------------------------------------
29898 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29899 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29900 ,p_balance_type_code => l_balance_type_code
29901 );
29902
29903 -------------------------------------------------------------------------------------------
29904 -- 4262811 - Generate the Accrual Reversal lines
29905 -------------------------------------------------------------------------------------------
29906 BEGIN
29907 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29908 (g_array_event(p_event_id).array_value_num('header_index'));
29909 IF l_acc_rev_flag IS NULL THEN
29910 l_acc_rev_flag := 'N';
29911 END IF;
29912 EXCEPTION
29913 WHEN OTHERS THEN
29914 l_acc_rev_flag := 'N';
29915 END;
29916 --
29917 IF (l_acc_rev_flag = 'Y') THEN
29918
29919 -- 4645092 ------------------------------------------------------------------------------
29920 -- To allow MPA report to determine if it should generate report process
29921 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29922 ------------------------------------------------------------------------------------------
29923
29924 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29925 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29926
29927 --
29928 -- Update the line information that should be overwritten
29929 --
29933
29930 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29931 p_header_num => 1);
29932 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29934 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29935
29936 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29937 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29938 END IF;
29939
29940 --
29941 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29942 --
29943 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29944 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29945 ELSE
29946 ---------------------------------------------------------------------------------------------------
29947 -- 4262811a Switch Sign
29948 ---------------------------------------------------------------------------------------------------
29949 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29950 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29951 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29952 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29953 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29954 -- 5132302
29955 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29956 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29957
29958 END IF;
29959
29960 -- 4955764
29961 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29962 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29963
29964
29965 XLA_AE_LINES_PKG.ValidateCurrentLine;
29966 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29967
29968 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29969 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29970 ,p_balance_type_code => l_balance_type_code);
29971
29972 END IF;
29973
29974 -----------------------------------------------------------------------------------------
29975 -- 4262811 Multiperiod Accounting
29976 -----------------------------------------------------------------------------------------
29977 -- No MPA option is assigned.
29978
29979
29980 END IF;
29981 END IF;
29982 --
29983
29984 --
29985 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29986 trace
29987 (p_msg => 'END of AcctLineType_67'
29988 ,p_level => C_LEVEL_PROCEDURE
29989 ,p_module => l_log_module);
29990 END IF;
29991 --
29992 EXCEPTION
29993 WHEN xla_exceptions_pkg.application_exception THEN
29994 RAISE;
29995 WHEN OTHERS THEN
29996 xla_exceptions_pkg.raise_message
29997 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_67');
29998 END AcctLineType_67;
29999 --
30000
30001 ---------------------------------------
30002 --
30003 -- PRIVATE FUNCTION
30004 -- AcctLineType_68
30005 --
30006 ---------------------------------------
30007 PROCEDURE AcctLineType_68 (
30008 p_application_id IN NUMBER
30009 ,p_event_id IN NUMBER
30010 ,p_calculate_acctd_flag IN VARCHAR2
30011 ,p_calculate_g_l_flag IN VARCHAR2
30012 ,p_actual_flag IN OUT VARCHAR2
30013 ,p_balance_type_code OUT VARCHAR2
30014 ,p_gain_or_loss_ref OUT VARCHAR2
30015
30016 --Actual Upgrade Credit Accounting Class
30017 , p_source_23 IN VARCHAR2
30018 --Entered Currency Code
30019 , p_source_25 IN VARCHAR2
30020 --Exchange Rate Date
30021 , p_source_27 IN DATE
30022 --Exchange Rate
30023 , p_source_28 IN NUMBER
30024 --Exchange Rate Type
30025 , p_source_29 IN VARCHAR2
30026 --Actual Upgrade Debit Accounting Class
30027 , p_source_30 IN VARCHAR2
30028 --Use Actuals Upgrade Attributes Flag
30029 , p_source_31 IN VARCHAR2
30030 --Revenue Distribution Type
30031 , p_source_36 IN VARCHAR2
30032 --Crediting Revenue Flag
30033 , p_source_38 IN VARCHAR2
30034 --Revenue First Distribution ID
30035 , p_source_39 IN NUMBER
30036 --Revenue Second Distribution ID
30037 , p_source_40 IN NUMBER
30038 --Entered Amount
30039 , p_source_41 IN NUMBER
30040 --Event ID
30041 , p_source_42 IN NUMBER
30042 --Accounted Amount
30043 , p_source_43 IN NUMBER
30044 --Actual Upgrade Credit CCID
30045 , p_source_59 IN NUMBER
30046 --Actual Upgrade Debit CCID
30047 , p_source_60 IN NUMBER
30048 --Application ID
30049 , p_source_61 IN NUMBER
30050 --Revenue Entity Code
30051 , p_source_62 IN VARCHAR2
30052 --Crediting Revenue First Distribution ID
30053 , p_source_63 IN NUMBER
30054 --Project ID
30055 , p_source_64 IN NUMBER
30056 --Crediting Revenue Second Distribution ID
30057 , p_source_65 IN NUMBER
30058 --Draft Revenue Number Credited
30059 , p_source_66 IN NUMBER
30060 )
30061 IS
30062
30063 l_component_type VARCHAR2(80);
30064 l_component_code VARCHAR2(30);
30068 l_entity_code VARCHAR2(30);
30065 l_component_type_code VARCHAR2(1);
30066 l_component_appl_id INTEGER;
30067 l_amb_context_code VARCHAR2(30);
30069 l_event_class_code VARCHAR2(30);
30070 l_ae_header_id NUMBER;
30071 l_event_type_code VARCHAR2(30);
30072 l_line_definition_code VARCHAR2(30);
30073 l_line_definition_owner_code VARCHAR2(1);
30074 --
30075 -- adr variables
30076 l_segment VARCHAR2(30);
30077 l_ccid NUMBER;
30078 l_adr_transaction_coa_id NUMBER;
30079 l_adr_accounting_coa_id NUMBER;
30080 l_adr_flexfield_segment_code VARCHAR2(30);
30081 l_adr_flex_value_set_id NUMBER;
30082 l_adr_value_type_code VARCHAR2(30);
30083 l_adr_value_combination_id NUMBER;
30084 l_adr_value_segment_code VARCHAR2(30);
30085
30086 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30087 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30088 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30089 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30090
30091 -- 4262811 Variables ------------------------------------------------------------------------------------------
30092 l_entered_amt_idx NUMBER;
30093 l_accted_amt_idx NUMBER;
30094 l_acc_rev_flag VARCHAR2(1);
30095 l_accrual_line_num NUMBER;
30096 l_tmp_amt NUMBER;
30097 l_acc_rev_natural_side_code VARCHAR2(1);
30098
30099 l_num_entries NUMBER;
30100 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30101 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30102 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30103 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30104 l_recog_line_1 NUMBER;
30105 l_recog_line_2 NUMBER;
30106
30107 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30108 l_bflow_applied_to_amt NUMBER; -- 5132302
30109 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30110
30111 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30112
30113 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30114 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30115
30116 ---------------------------------------------------------------------------------------------------------------
30117
30118
30119 --
30120 -- bulk performance
30121 --
30122 l_balance_type_code VARCHAR2(1);
30123 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30124 l_log_module VARCHAR2(240);
30125
30126 --
30127 -- Upgrade strategy
30128 --
30129 l_actual_upg_option VARCHAR2(1);
30130 l_enc_upg_option VARCHAR2(1);
30131
30132 --
30133 BEGIN
30134 --
30135 IF g_log_enabled THEN
30136 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
30137 END IF;
30138 --
30139 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30140
30141 trace
30142 (p_msg => 'BEGIN of AcctLineType_68'
30143 ,p_level => C_LEVEL_PROCEDURE
30144 ,p_module => l_log_module);
30145
30146 END IF;
30147 --
30148 l_component_type := 'AMB_JLT';
30149 l_component_code := 'PA_REALIZED_LOSSES_ADJ';
30150 l_component_type_code := 'S';
30151 l_component_appl_id := 275;
30152 l_amb_context_code := 'DEFAULT';
30153 l_entity_code := 'REVENUE';
30154 l_event_class_code := 'REVENUE_ADJ';
30155 l_event_type_code := 'REVENUE_ADJ_ALL';
30156 l_line_definition_owner_code := 'S';
30157 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
30158 --
30159 l_balance_type_code := 'A';
30160 l_segment := NULL;
30161 l_ccid := NULL;
30162 l_adr_transaction_coa_id := NULL;
30163 l_adr_accounting_coa_id := NULL;
30164 l_adr_flexfield_segment_code := NULL;
30165 l_adr_flex_value_set_id := NULL;
30166 l_adr_value_type_code := NULL;
30167 l_adr_value_combination_id := NULL;
30168 l_adr_value_segment_code := NULL;
30169
30170 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
30171 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
30172 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
30173 l_budgetary_control_flag := 'N';
30174
30175 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30176 l_bflow_applied_to_amt := NULL; -- 5132302
30177 l_entered_amt_idx := NULL; -- 4262811
30178 l_accted_amt_idx := NULL; -- 4262811
30179 l_acc_rev_flag := NULL; -- 4262811
30180 l_accrual_line_num := NULL; -- 4262811
30181 l_tmp_amt := NULL; -- 4262811
30182 --
30183
30184 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30185 l_balance_type_code <> 'B' THEN
30186 IF NVL(p_source_36,'
30187 ') = 'Revenue - Realized Losses' AND
30188 NVL(p_source_38,'
30189 ') = 'Y'
30190 THEN
30191
30192 --
30193 XLA_AE_LINES_PKG.SetNewLine;
30194
30195 p_balance_type_code := l_balance_type_code;
30196 -- set the flag so later we will know whether the gain loss line needs to be created
30197
30198 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30199 p_actual_flag :='A';
30200 END IF;
30201
30202 --
30206 p_header_num => 0); -- 4262811
30203 -- bulk performance
30204 --
30205 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30207 --
30208 -- set accounting line options
30209 --
30210 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30211 p_natural_side_code => 'C'
30212 , p_gain_or_loss_flag => 'N'
30213 , p_gl_transfer_mode_code => 'S'
30214 , p_acct_entry_type_code => 'A'
30215 , p_switch_side_flag => 'Y'
30216 , p_merge_duplicate_code => 'N'
30217 );
30218 --
30219 l_acc_rev_natural_side_code := 'D'; -- 4262811
30220 --
30221 --
30222 -- set accounting line type info
30223 --
30224 xla_ae_lines_pkg.SetAcctLineType
30225 (p_component_type => l_component_type
30226 ,p_event_type_code => l_event_type_code
30227 ,p_line_definition_owner_code => l_line_definition_owner_code
30228 ,p_line_definition_code => l_line_definition_code
30229 ,p_accounting_line_code => l_component_code
30230 ,p_accounting_line_type_code => l_component_type_code
30231 ,p_accounting_line_appl_id => l_component_appl_id
30232 ,p_amb_context_code => l_amb_context_code
30233 ,p_entity_code => l_entity_code
30234 ,p_event_class_code => l_event_class_code);
30235 --
30236 -- set accounting class
30237 --
30238 xla_ae_lines_pkg.SetAcctClass(
30239 p_accounting_class_code => 'REALIZED_LOSS'
30240 , p_ae_header_id => l_ae_header_id
30241 );
30242
30243 --
30244 -- set rounding class
30245 --
30246 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30247 'REALIZED_LOSS';
30248
30249 --
30250 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30251 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30252 --
30253 -- bulk performance
30254 --
30255 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30256
30257 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30258 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30259
30260 -- 4955764
30261 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30262 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30263
30264 -- 4458381 Public Sector Enh
30265
30266 --
30267 -- set accounting attributes for the line type
30268 --
30269 l_entered_amt_idx := 28;
30270 l_accted_amt_idx := 31;
30271 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30272 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
30273 l_rec_acct_attrs.array_char_value(1) := p_source_23;
30274 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
30275 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
30276 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
30277 l_rec_acct_attrs.array_num_value(3) := p_source_41;
30278 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
30279 l_rec_acct_attrs.array_char_value(4) := p_source_25;
30280 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
30281 l_rec_acct_attrs.array_num_value(5) := p_source_43;
30282 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
30283 l_rec_acct_attrs.array_date_value(6) := p_source_27;
30284 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
30285 l_rec_acct_attrs.array_num_value(7) := p_source_28;
30286 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
30287 l_rec_acct_attrs.array_char_value(8) := p_source_29;
30288 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
30289 l_rec_acct_attrs.array_char_value(9) := p_source_30;
30290 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
30291 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
30292 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
30293 l_rec_acct_attrs.array_num_value(11) := p_source_41;
30294 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
30295 l_rec_acct_attrs.array_char_value(12) := p_source_25;
30296 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
30297 l_rec_acct_attrs.array_num_value(13) := p_source_43;
30298 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
30299 l_rec_acct_attrs.array_date_value(14) := p_source_27;
30300 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
30301 l_rec_acct_attrs.array_num_value(15) := p_source_28;
30302 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
30303 l_rec_acct_attrs.array_char_value(16) := p_source_29;
30304 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
30305 l_rec_acct_attrs.array_char_value(17) := p_source_31;
30306 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
30307 l_rec_acct_attrs.array_num_value(18) := p_source_61;
30308 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30309 l_rec_acct_attrs.array_char_value(19) := p_source_36;
30310 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
30311 l_rec_acct_attrs.array_char_value(20) := p_source_62;
30312 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
30313 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
30314 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30318 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
30315 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
30316 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
30317 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
30319 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
30320 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
30321 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
30322 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
30323 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
30324 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
30325 l_rec_acct_attrs.array_char_value(27) := p_source_36;
30326 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
30327 l_rec_acct_attrs.array_num_value(28) := p_source_41;
30328 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
30329 l_rec_acct_attrs.array_char_value(29) := p_source_25;
30330 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
30331 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_42);
30332 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
30333 l_rec_acct_attrs.array_num_value(31) := p_source_43;
30334
30335 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30336 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30337
30338 ---------------------------------------------------------------------------------------------------------------
30339 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30340 ---------------------------------------------------------------------------------------------------------------
30341 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30342
30343 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30344 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30345
30346 IF xla_accounting_cache_pkg.GetValueChar
30347 (p_source_code => 'LEDGER_CATEGORY_CODE'
30348 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30349 AND l_bflow_method_code = 'PRIOR_ENTRY'
30350 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30351 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30352 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30353 )
30354 THEN
30355 xla_ae_lines_pkg.BflowUpgEntry
30356 (p_business_method_code => l_bflow_method_code
30357 ,p_business_class_code => l_bflow_class_code
30358 ,p_balance_type => l_balance_type_code);
30359 ELSE
30360 NULL;
30361 XLA_AE_LINES_PKG.business_flow_validation(
30362 p_business_method_code => l_bflow_method_code
30363 ,p_business_class_code => l_bflow_class_code
30364 ,p_inherit_description_flag => l_inherit_desc_flag);
30365 END IF;
30366
30367 --
30368 -- call analytical criteria
30369 --
30370 -- Inherited Analytical Criteria for business flow method of Prior Entry.
30371 --
30372 -- call description
30373 --
30374 -- No description or it is inherited.
30375 --
30376 -- call ADRs
30377 -- Bug 4922099
30378 --
30379 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30380 (NVL(l_actual_upg_option, 'N') = 'O') OR
30381 (NVL(l_enc_upg_option, 'N') = 'O')
30382 )
30383 THEN
30384 NULL;
30385 --
30386 --
30387
30388 --
30389 --
30390 END IF;
30391 --
30392 -- Bug 4922099
30393 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30394 (NVL(l_enc_upg_option, 'N') = 'O')
30395 ) AND
30396 (l_bflow_method_code = 'PRIOR_ENTRY')
30397 )
30398 THEN
30399 IF
30400 --
30401 1 = 1
30402 --
30403 THEN
30404 xla_accounting_err_pkg.build_message
30405 (p_appli_s_name => 'XLA'
30406 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30407 ,p_token_1 => 'LINE_NUMBER'
30408 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30409 ,p_token_2 => 'LINE_TYPE_NAME'
30410 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30411 l_component_type
30412 ,l_component_code
30413 ,l_component_type_code
30414 ,l_component_appl_id
30415 ,l_amb_context_code
30416 ,l_entity_code
30417 ,l_event_class_code
30418 )
30419 ,p_token_3 => 'OWNER'
30420 ,p_value_3 => xla_lookups_pkg.get_meaning(
30421 p_lookup_type => 'XLA_OWNER_TYPE'
30422 ,p_lookup_code => l_component_type_code
30426 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30423 )
30424 ,p_token_4 => 'PRODUCT_NAME'
30425 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30427 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30428 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30429 ,p_ae_header_id => NULL
30430 );
30431
30432 IF (C_LEVEL_ERROR>= g_log_level) THEN
30433 trace
30434 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30435 ,p_level => C_LEVEL_ERROR
30436 ,p_module => l_log_module);
30437 END IF;
30438 END IF;
30439 END IF;
30440 --
30441 --
30442 ------------------------------------------------------------------------------------------------
30443 -- 4219869 Business Flow
30444 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30445 -- Prior Entry. Currently, the following code is always generated.
30446 ------------------------------------------------------------------------------------------------
30447 -- No ValidateCurrentLine for business flow method of Prior Entry
30448
30449 ------------------------------------------------------------------------------------
30450 -- 4219869 Business Flow
30451 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30452 ------------------------------------------------------------------------------------
30453 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30454
30455 ----------------------------------------------------------------------------------
30456 -- 4219869 Business Flow
30457 -- Update journal entry status -- Need to generate this within IF <condition>
30458 ----------------------------------------------------------------------------------
30459 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30460 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30461 ,p_balance_type_code => l_balance_type_code
30462 );
30463
30464 -------------------------------------------------------------------------------------------
30465 -- 4262811 - Generate the Accrual Reversal lines
30466 -------------------------------------------------------------------------------------------
30467 BEGIN
30468 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30469 (g_array_event(p_event_id).array_value_num('header_index'));
30470 IF l_acc_rev_flag IS NULL THEN
30471 l_acc_rev_flag := 'N';
30472 END IF;
30473 EXCEPTION
30474 WHEN OTHERS THEN
30475 l_acc_rev_flag := 'N';
30476 END;
30477 --
30478 IF (l_acc_rev_flag = 'Y') THEN
30479
30480 -- 4645092 ------------------------------------------------------------------------------
30481 -- To allow MPA report to determine if it should generate report process
30482 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30483 ------------------------------------------------------------------------------------------
30484
30485 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30486 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30487
30488 --
30489 -- Update the line information that should be overwritten
30490 --
30491 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30492 p_header_num => 1);
30493 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30494
30495 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30496
30497 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30498 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30499 END IF;
30500
30501 --
30502 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30503 --
30504 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30505 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30506 ELSE
30507 ---------------------------------------------------------------------------------------------------
30508 -- 4262811a Switch Sign
30509 ---------------------------------------------------------------------------------------------------
30510 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30511 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30512 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30513 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30514 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30515 -- 5132302
30516 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30517 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30518
30519 END IF;
30520
30521 -- 4955764
30522 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30523 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30524
30525
30529 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30526 XLA_AE_LINES_PKG.ValidateCurrentLine;
30527 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30528
30530 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30531 ,p_balance_type_code => l_balance_type_code);
30532
30533 END IF;
30534
30535 -----------------------------------------------------------------------------------------
30536 -- 4262811 Multiperiod Accounting
30537 -----------------------------------------------------------------------------------------
30538 -- No MPA option is assigned.
30539
30540
30541 END IF;
30542 END IF;
30543 --
30544
30545 --
30546 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30547 trace
30548 (p_msg => 'END of AcctLineType_68'
30549 ,p_level => C_LEVEL_PROCEDURE
30550 ,p_module => l_log_module);
30551 END IF;
30552 --
30553 EXCEPTION
30554 WHEN xla_exceptions_pkg.application_exception THEN
30555 RAISE;
30556 WHEN OTHERS THEN
30557 xla_exceptions_pkg.raise_message
30558 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_68');
30559 END AcctLineType_68;
30560 --
30561
30562 ---------------------------------------
30563 --
30564 -- PRIVATE FUNCTION
30565 -- AcctLineType_69
30566 --
30567 ---------------------------------------
30568 PROCEDURE AcctLineType_69 (
30569 p_application_id IN NUMBER
30570 ,p_event_id IN NUMBER
30571 ,p_calculate_acctd_flag IN VARCHAR2
30572 ,p_calculate_g_l_flag IN VARCHAR2
30573 ,p_actual_flag IN OUT VARCHAR2
30574 ,p_balance_type_code OUT VARCHAR2
30575 ,p_gain_or_loss_ref OUT VARCHAR2
30576
30577 --Allow Account Override Flag
30578 , p_source_4 IN VARCHAR2
30579 --Provider Cost/ Revenue CCID
30580 , p_source_8 IN NUMBER
30581 --Adjustment Receiver Cost/ Revenue CCID
30582 , p_source_10 IN NUMBER
30583 --Receiver Cost/ Revenue CCID
30584 , p_source_15 IN NUMBER
30585 --Reversing Line Flag
30586 , p_source_22 IN VARCHAR2
30587 --Actual Upgrade Credit Accounting Class
30588 , p_source_23 IN VARCHAR2
30589 --Entered Currency Code
30590 , p_source_25 IN VARCHAR2
30591 --Exchange Rate Date
30592 , p_source_27 IN DATE
30593 --Exchange Rate
30594 , p_source_28 IN NUMBER
30595 --Exchange Rate Type
30596 , p_source_29 IN VARCHAR2
30597 --Actual Upgrade Debit Accounting Class
30598 , p_source_30 IN VARCHAR2
30599 --Use Actuals Upgrade Attributes Flag
30600 , p_source_31 IN VARCHAR2
30601 --Expenditure Item ID
30602 , p_source_32 IN NUMBER
30603 --Cost Distribution Line Number
30604 , p_source_33 IN NUMBER
30605 --Line Type
30606 , p_source_34 IN VARCHAR2
30607 , p_source_34_meaning IN VARCHAR2
30608 --Reversed Line Number
30609 , p_source_35 IN NUMBER
30610 --Entered Amount
30611 , p_source_41 IN NUMBER
30612 --Accounted Amount
30613 , p_source_43 IN NUMBER
30614 --Transfer Amount Type
30615 , p_source_67 IN VARCHAR2
30616 , p_source_67_meaning IN VARCHAR2
30617 )
30618 IS
30619
30620 l_component_type VARCHAR2(80);
30621 l_component_code VARCHAR2(30);
30622 l_component_type_code VARCHAR2(1);
30623 l_component_appl_id INTEGER;
30624 l_amb_context_code VARCHAR2(30);
30625 l_entity_code VARCHAR2(30);
30626 l_event_class_code VARCHAR2(30);
30627 l_ae_header_id NUMBER;
30628 l_event_type_code VARCHAR2(30);
30629 l_line_definition_code VARCHAR2(30);
30630 l_line_definition_owner_code VARCHAR2(1);
30631 --
30632 -- adr variables
30633 l_segment VARCHAR2(30);
30634 l_ccid NUMBER;
30635 l_adr_transaction_coa_id NUMBER;
30636 l_adr_accounting_coa_id NUMBER;
30637 l_adr_flexfield_segment_code VARCHAR2(30);
30638 l_adr_flex_value_set_id NUMBER;
30639 l_adr_value_type_code VARCHAR2(30);
30640 l_adr_value_combination_id NUMBER;
30641 l_adr_value_segment_code VARCHAR2(30);
30642
30643 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30644 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30645 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30646 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30647
30648 -- 4262811 Variables ------------------------------------------------------------------------------------------
30649 l_entered_amt_idx NUMBER;
30650 l_accted_amt_idx NUMBER;
30651 l_acc_rev_flag VARCHAR2(1);
30652 l_accrual_line_num NUMBER;
30653 l_tmp_amt NUMBER;
30654 l_acc_rev_natural_side_code VARCHAR2(1);
30655
30656 l_num_entries NUMBER;
30657 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30658 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30659 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30660 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30661 l_recog_line_1 NUMBER;
30662 l_recog_line_2 NUMBER;
30663
30664 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30665 l_bflow_applied_to_amt NUMBER; -- 5132302
30666 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30667
30668 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30669
30673 ---------------------------------------------------------------------------------------------------------------
30670 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30671 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30672
30674
30675
30676 --
30677 -- bulk performance
30678 --
30679 l_balance_type_code VARCHAR2(1);
30680 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30681 l_log_module VARCHAR2(240);
30682
30683 --
30684 -- Upgrade strategy
30685 --
30686 l_actual_upg_option VARCHAR2(1);
30687 l_enc_upg_option VARCHAR2(1);
30688
30689 --
30690 BEGIN
30691 --
30692 IF g_log_enabled THEN
30693 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
30694 END IF;
30695 --
30696 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30697
30698 trace
30699 (p_msg => 'BEGIN of AcctLineType_69'
30700 ,p_level => C_LEVEL_PROCEDURE
30701 ,p_module => l_log_module);
30702
30703 END IF;
30704 --
30705 l_component_type := 'AMB_JLT';
30706 l_component_code := 'PA_RECEIVER_COST';
30707 l_component_type_code := 'S';
30708 l_component_appl_id := 275;
30709 l_amb_context_code := 'DEFAULT';
30710 l_entity_code := 'EXPENDITURES';
30711 l_event_class_code := 'BORROWED_AND_LENT';
30712 l_event_type_code := 'BORROWED_AND_LENT_ALL';
30713 l_line_definition_owner_code := 'S';
30714 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
30715 --
30716 l_balance_type_code := 'A';
30717 l_segment := NULL;
30718 l_ccid := NULL;
30719 l_adr_transaction_coa_id := NULL;
30720 l_adr_accounting_coa_id := NULL;
30721 l_adr_flexfield_segment_code := NULL;
30722 l_adr_flex_value_set_id := NULL;
30723 l_adr_value_type_code := NULL;
30724 l_adr_value_combination_id := NULL;
30725 l_adr_value_segment_code := NULL;
30726
30727 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30728 l_bflow_class_code := ''; -- 4219869 Business Flow
30729 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30730 l_budgetary_control_flag := 'N';
30731
30732 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30733 l_bflow_applied_to_amt := NULL; -- 5132302
30734 l_entered_amt_idx := NULL; -- 4262811
30735 l_accted_amt_idx := NULL; -- 4262811
30736 l_acc_rev_flag := NULL; -- 4262811
30737 l_accrual_line_num := NULL; -- 4262811
30738 l_tmp_amt := NULL; -- 4262811
30739 --
30740
30741 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30742 l_balance_type_code <> 'B' THEN
30743 IF NVL(p_source_67,'
30744 ') = 'COST_TRANSFER' OR
30745 NVL(p_source_67,'
30746 ') = 'COST_REVENUE' OR
30747 p_source_67 IS NULL
30748 THEN
30749
30750 --
30751 XLA_AE_LINES_PKG.SetNewLine;
30752
30753 p_balance_type_code := l_balance_type_code;
30754 -- set the flag so later we will know whether the gain loss line needs to be created
30755
30756 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30757 p_actual_flag :='A';
30758 END IF;
30759
30760 --
30761 -- bulk performance
30762 --
30763 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30764 p_header_num => 0); -- 4262811
30765 --
30766 -- set accounting line options
30767 --
30768 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30769 p_natural_side_code => 'D'
30770 , p_gain_or_loss_flag => 'N'
30771 , p_gl_transfer_mode_code => 'S'
30772 , p_acct_entry_type_code => 'A'
30773 , p_switch_side_flag => 'Y'
30774 , p_merge_duplicate_code => 'N'
30775 );
30776 --
30777 l_acc_rev_natural_side_code := 'C'; -- 4262811
30778 --
30779 --
30780 -- set accounting line type info
30781 --
30782 xla_ae_lines_pkg.SetAcctLineType
30783 (p_component_type => l_component_type
30784 ,p_event_type_code => l_event_type_code
30785 ,p_line_definition_owner_code => l_line_definition_owner_code
30786 ,p_line_definition_code => l_line_definition_code
30787 ,p_accounting_line_code => l_component_code
30788 ,p_accounting_line_type_code => l_component_type_code
30789 ,p_accounting_line_appl_id => l_component_appl_id
30790 ,p_amb_context_code => l_amb_context_code
30791 ,p_entity_code => l_entity_code
30792 ,p_event_class_code => l_event_class_code);
30793 --
30794 -- set accounting class
30795 --
30796 xla_ae_lines_pkg.SetAcctClass(
30797 p_accounting_class_code => 'RECEIVER_COST'
30798 , p_ae_header_id => l_ae_header_id
30799 );
30800
30801 --
30802 -- set rounding class
30803 --
30804 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30805 'RECEIVER_COST';
30806
30807 --
30808 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30809 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30810 --
30811 -- bulk performance
30812 --
30813 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30814
30818 -- 4955764
30815 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30816 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30817
30819 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30820 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30821
30822 -- 4458381 Public Sector Enh
30823
30824 --
30825 -- set accounting attributes for the line type
30826 --
30827 l_entered_amt_idx := 22;
30828 l_accted_amt_idx := 27;
30829 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30830 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30831 l_rec_acct_attrs.array_char_value(1) := p_source_22;
30832 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
30833 l_rec_acct_attrs.array_char_value(2) := p_source_23;
30834 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
30835 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
30836 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
30837 l_rec_acct_attrs.array_num_value(4) := p_source_41;
30838 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
30839 l_rec_acct_attrs.array_char_value(5) := p_source_25;
30840 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
30841 l_rec_acct_attrs.array_num_value(6) := p_source_43;
30842 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
30843 l_rec_acct_attrs.array_date_value(7) := p_source_27;
30844 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
30845 l_rec_acct_attrs.array_num_value(8) := p_source_28;
30846 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
30847 l_rec_acct_attrs.array_char_value(9) := p_source_29;
30848 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
30849 l_rec_acct_attrs.array_char_value(10) := p_source_30;
30850 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
30851 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
30852 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
30853 l_rec_acct_attrs.array_num_value(12) := p_source_41;
30854 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
30855 l_rec_acct_attrs.array_char_value(13) := p_source_25;
30856 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
30857 l_rec_acct_attrs.array_num_value(14) := p_source_43;
30858 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
30859 l_rec_acct_attrs.array_date_value(15) := p_source_27;
30860 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
30861 l_rec_acct_attrs.array_num_value(16) := p_source_28;
30862 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
30863 l_rec_acct_attrs.array_char_value(17) := p_source_29;
30864 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
30865 l_rec_acct_attrs.array_char_value(18) := p_source_31;
30866 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
30867 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
30868 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
30869 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
30870 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
30871 l_rec_acct_attrs.array_char_value(21) := p_source_34;
30872 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
30873 l_rec_acct_attrs.array_num_value(22) := p_source_41;
30874 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
30875 l_rec_acct_attrs.array_char_value(23) := p_source_25;
30876 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
30877 l_rec_acct_attrs.array_date_value(24) := p_source_27;
30878 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
30879 l_rec_acct_attrs.array_num_value(25) := p_source_28;
30880 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
30881 l_rec_acct_attrs.array_char_value(26) := p_source_29;
30882 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
30883 l_rec_acct_attrs.array_num_value(27) := p_source_43;
30884 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
30885 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
30886 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
30887 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
30888 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
30889 l_rec_acct_attrs.array_char_value(30) := p_source_34;
30890
30891 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30892 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30893
30894 ---------------------------------------------------------------------------------------------------------------
30895 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30896 ---------------------------------------------------------------------------------------------------------------
30897 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30898
30899 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30900 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30901
30902 IF xla_accounting_cache_pkg.GetValueChar
30903 (p_source_code => 'LEDGER_CATEGORY_CODE'
30904 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30905 AND l_bflow_method_code = 'PRIOR_ENTRY'
30906 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30907 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30911 xla_ae_lines_pkg.BflowUpgEntry
30908 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30909 )
30910 THEN
30912 (p_business_method_code => l_bflow_method_code
30913 ,p_business_class_code => l_bflow_class_code
30914 ,p_balance_type => l_balance_type_code);
30915 ELSE
30916 NULL;
30917 -- No business flow processing for business flow method of NONE.
30918 END IF;
30919
30920 --
30921 -- call analytical criteria
30922 --
30923
30924 --
30925 -- call description
30926 --
30927 -- No description or it is inherited.
30928 --
30929 -- call ADRs
30930 -- Bug 4922099
30931 --
30932 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30933 (NVL(l_actual_upg_option, 'N') = 'O') OR
30934 (NVL(l_enc_upg_option, 'N') = 'O')
30935 )
30936 THEN
30937 NULL;
30938 --
30939 --
30940
30941 l_ccid := AcctDerRule_14(
30942 p_application_id => p_application_id
30943 , p_ae_header_id => l_ae_header_id
30944 , p_source_4 => p_source_4
30945 , p_source_10 => p_source_10
30946 , p_source_15 => p_source_15
30947 , x_transaction_coa_id => l_adr_transaction_coa_id
30948 , x_accounting_coa_id => l_adr_accounting_coa_id
30949 , x_value_type_code => l_adr_value_type_code
30950 , p_side => 'NA'
30951 );
30952
30953 xla_ae_lines_pkg.set_ccid(
30954 p_code_combination_id => l_ccid
30955 , p_value_type_code => l_adr_value_type_code
30956 , p_transaction_coa_id => l_adr_transaction_coa_id
30957 , p_accounting_coa_id => l_adr_accounting_coa_id
30958 , p_adr_code => 'PA_RECVR_COST_REV_ACCT_RULE'
30959 , p_adr_type_code => 'S'
30960 , p_component_type => l_component_type
30961 , p_component_code => l_component_code
30962 , p_component_type_code => l_component_type_code
30963 , p_component_appl_id => l_component_appl_id
30964 , p_amb_context_code => l_amb_context_code
30965 , p_side => 'NA'
30966 );
30967
30968
30969 --
30970 --
30971 END IF;
30972 --
30973 -- Bug 4922099
30974 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30975 (NVL(l_enc_upg_option, 'N') = 'O')
30976 ) AND
30977 (l_bflow_method_code = 'PRIOR_ENTRY')
30978 )
30979 THEN
30980 IF
30981 --
30982 1 = 2
30983 --
30984 THEN
30985 xla_accounting_err_pkg.build_message
30986 (p_appli_s_name => 'XLA'
30987 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30988 ,p_token_1 => 'LINE_NUMBER'
30989 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30990 ,p_token_2 => 'LINE_TYPE_NAME'
30991 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30992 l_component_type
30993 ,l_component_code
30994 ,l_component_type_code
30995 ,l_component_appl_id
30996 ,l_amb_context_code
30997 ,l_entity_code
30998 ,l_event_class_code
30999 )
31000 ,p_token_3 => 'OWNER'
31001 ,p_value_3 => xla_lookups_pkg.get_meaning(
31002 p_lookup_type => 'XLA_OWNER_TYPE'
31003 ,p_lookup_code => l_component_type_code
31004 )
31005 ,p_token_4 => 'PRODUCT_NAME'
31006 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31007 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31008 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31009 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31010 ,p_ae_header_id => NULL
31011 );
31012
31013 IF (C_LEVEL_ERROR>= g_log_level) THEN
31014 trace
31015 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31016 ,p_level => C_LEVEL_ERROR
31017 ,p_module => l_log_module);
31018 END IF;
31019 END IF;
31020 END IF;
31021 --
31022 --
31023 ------------------------------------------------------------------------------------------------
31024 -- 4219869 Business Flow
31025 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31026 -- Prior Entry. Currently, the following code is always generated.
31027 ------------------------------------------------------------------------------------------------
31031 -- 4219869 Business Flow
31028 XLA_AE_LINES_PKG.ValidateCurrentLine;
31029
31030 ------------------------------------------------------------------------------------
31032 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31033 ------------------------------------------------------------------------------------
31034 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31035
31036 ----------------------------------------------------------------------------------
31037 -- 4219869 Business Flow
31038 -- Update journal entry status -- Need to generate this within IF <condition>
31039 ----------------------------------------------------------------------------------
31040 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31041 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31042 ,p_balance_type_code => l_balance_type_code
31043 );
31044
31045 -------------------------------------------------------------------------------------------
31046 -- 4262811 - Generate the Accrual Reversal lines
31047 -------------------------------------------------------------------------------------------
31048 BEGIN
31049 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31050 (g_array_event(p_event_id).array_value_num('header_index'));
31051 IF l_acc_rev_flag IS NULL THEN
31052 l_acc_rev_flag := 'N';
31053 END IF;
31054 EXCEPTION
31055 WHEN OTHERS THEN
31056 l_acc_rev_flag := 'N';
31057 END;
31058 --
31059 IF (l_acc_rev_flag = 'Y') THEN
31060
31061 -- 4645092 ------------------------------------------------------------------------------
31062 -- To allow MPA report to determine if it should generate report process
31063 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31064 ------------------------------------------------------------------------------------------
31065
31066 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31067 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31068
31069 --
31070 -- Update the line information that should be overwritten
31071 --
31072 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31073 p_header_num => 1);
31074 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31075
31076 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31077
31078 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31079 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31080 END IF;
31081
31082 --
31083 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31084 --
31085 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31086 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31087 ELSE
31088 ---------------------------------------------------------------------------------------------------
31089 -- 4262811a Switch Sign
31090 ---------------------------------------------------------------------------------------------------
31091 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31092 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31093 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31094 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31095 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31096 -- 5132302
31097 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31098 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31099
31100 END IF;
31101
31102 -- 4955764
31103 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31104 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31105
31106
31107 XLA_AE_LINES_PKG.ValidateCurrentLine;
31108 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31109
31110 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31111 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31112 ,p_balance_type_code => l_balance_type_code);
31113
31114 END IF;
31115
31116 -----------------------------------------------------------------------------------------
31117 -- 4262811 Multiperiod Accounting
31118 -----------------------------------------------------------------------------------------
31119 -- No MPA option is assigned.
31120
31121
31122 END IF;
31123 END IF;
31124 --
31125
31126 --
31127 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31128 trace
31129 (p_msg => 'END of AcctLineType_69'
31130 ,p_level => C_LEVEL_PROCEDURE
31131 ,p_module => l_log_module);
31132 END IF;
31133 --
31134 EXCEPTION
31135 WHEN xla_exceptions_pkg.application_exception THEN
31136 RAISE;
31137 WHEN OTHERS THEN
31138 xla_exceptions_pkg.raise_message
31139 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_69');
31140 END AcctLineType_69;
31141 --
31142
31143 ---------------------------------------
31144 --
31145 -- PRIVATE FUNCTION
31146 -- AcctLineType_70
31147 --
31148 ---------------------------------------
31152 ,p_calculate_acctd_flag IN VARCHAR2
31149 PROCEDURE AcctLineType_70 (
31150 p_application_id IN NUMBER
31151 ,p_event_id IN NUMBER
31153 ,p_calculate_g_l_flag IN VARCHAR2
31154 ,p_actual_flag IN OUT VARCHAR2
31155 ,p_balance_type_code OUT VARCHAR2
31156 ,p_gain_or_loss_ref OUT VARCHAR2
31157
31158 --Allow Account Override Flag
31159 , p_source_4 IN VARCHAR2
31160 --Provider Cost/ Revenue CCID
31161 , p_source_8 IN NUMBER
31162 --Adjustment Receiver Cost/ Revenue CCID
31163 , p_source_10 IN NUMBER
31164 --Receiver Cost/ Revenue CCID
31165 , p_source_15 IN NUMBER
31166 --Reversing Line Flag
31167 , p_source_22 IN VARCHAR2
31168 --Actual Upgrade Credit Accounting Class
31169 , p_source_23 IN VARCHAR2
31170 --Entered Currency Code
31171 , p_source_25 IN VARCHAR2
31172 --Exchange Rate Date
31173 , p_source_27 IN DATE
31174 --Exchange Rate
31175 , p_source_28 IN NUMBER
31176 --Exchange Rate Type
31177 , p_source_29 IN VARCHAR2
31178 --Actual Upgrade Debit Accounting Class
31179 , p_source_30 IN VARCHAR2
31180 --Use Actuals Upgrade Attributes Flag
31181 , p_source_31 IN VARCHAR2
31182 --Expenditure Item ID
31183 , p_source_32 IN NUMBER
31184 --Cost Distribution Line Number
31185 , p_source_33 IN NUMBER
31186 --Line Type
31187 , p_source_34 IN VARCHAR2
31188 , p_source_34_meaning IN VARCHAR2
31189 --Reversed Line Number
31190 , p_source_35 IN NUMBER
31191 --Entered Amount
31192 , p_source_41 IN NUMBER
31193 --Accounted Amount
31194 , p_source_43 IN NUMBER
31195 --Transfer Amount Type
31196 , p_source_67 IN VARCHAR2
31197 , p_source_67_meaning IN VARCHAR2
31198 )
31199 IS
31200
31201 l_component_type VARCHAR2(80);
31202 l_component_code VARCHAR2(30);
31203 l_component_type_code VARCHAR2(1);
31204 l_component_appl_id INTEGER;
31205 l_amb_context_code VARCHAR2(30);
31206 l_entity_code VARCHAR2(30);
31207 l_event_class_code VARCHAR2(30);
31208 l_ae_header_id NUMBER;
31209 l_event_type_code VARCHAR2(30);
31210 l_line_definition_code VARCHAR2(30);
31211 l_line_definition_owner_code VARCHAR2(1);
31212 --
31213 -- adr variables
31214 l_segment VARCHAR2(30);
31215 l_ccid NUMBER;
31216 l_adr_transaction_coa_id NUMBER;
31217 l_adr_accounting_coa_id NUMBER;
31218 l_adr_flexfield_segment_code VARCHAR2(30);
31219 l_adr_flex_value_set_id NUMBER;
31220 l_adr_value_type_code VARCHAR2(30);
31221 l_adr_value_combination_id NUMBER;
31222 l_adr_value_segment_code VARCHAR2(30);
31223
31224 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31225 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31226 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31227 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31228
31229 -- 4262811 Variables ------------------------------------------------------------------------------------------
31230 l_entered_amt_idx NUMBER;
31231 l_accted_amt_idx NUMBER;
31232 l_acc_rev_flag VARCHAR2(1);
31233 l_accrual_line_num NUMBER;
31234 l_tmp_amt NUMBER;
31235 l_acc_rev_natural_side_code VARCHAR2(1);
31236
31237 l_num_entries NUMBER;
31238 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31239 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31240 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31241 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31242 l_recog_line_1 NUMBER;
31243 l_recog_line_2 NUMBER;
31244
31245 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31246 l_bflow_applied_to_amt NUMBER; -- 5132302
31247 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31248
31249 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31250
31251 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31252 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31253
31254 ---------------------------------------------------------------------------------------------------------------
31255
31256
31257 --
31258 -- bulk performance
31259 --
31260 l_balance_type_code VARCHAR2(1);
31261 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31262 l_log_module VARCHAR2(240);
31263
31264 --
31265 -- Upgrade strategy
31266 --
31267 l_actual_upg_option VARCHAR2(1);
31268 l_enc_upg_option VARCHAR2(1);
31269
31270 --
31271 BEGIN
31272 --
31273 IF g_log_enabled THEN
31274 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
31275 END IF;
31276 --
31277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31278
31279 trace
31280 (p_msg => 'BEGIN of AcctLineType_70'
31281 ,p_level => C_LEVEL_PROCEDURE
31282 ,p_module => l_log_module);
31283
31284 END IF;
31285 --
31286 l_component_type := 'AMB_JLT';
31287 l_component_code := 'PA_RECEIVER_COST_ADJ';
31288 l_component_type_code := 'S';
31289 l_component_appl_id := 275;
31290 l_amb_context_code := 'DEFAULT';
31291 l_entity_code := 'EXPENDITURES';
31295 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
31292 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
31293 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
31294 l_line_definition_owner_code := 'S';
31296 --
31297 l_balance_type_code := 'A';
31298 l_segment := NULL;
31299 l_ccid := NULL;
31300 l_adr_transaction_coa_id := NULL;
31301 l_adr_accounting_coa_id := NULL;
31302 l_adr_flexfield_segment_code := NULL;
31303 l_adr_flex_value_set_id := NULL;
31304 l_adr_value_type_code := NULL;
31305 l_adr_value_combination_id := NULL;
31306 l_adr_value_segment_code := NULL;
31307
31308 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31309 l_bflow_class_code := ''; -- 4219869 Business Flow
31310 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31311 l_budgetary_control_flag := 'N';
31312
31313 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31314 l_bflow_applied_to_amt := NULL; -- 5132302
31315 l_entered_amt_idx := NULL; -- 4262811
31316 l_accted_amt_idx := NULL; -- 4262811
31317 l_acc_rev_flag := NULL; -- 4262811
31318 l_accrual_line_num := NULL; -- 4262811
31319 l_tmp_amt := NULL; -- 4262811
31320 --
31321
31322 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31323 l_balance_type_code <> 'B' THEN
31324 IF NVL(p_source_67,'
31325 ') = 'COST_TRANSFER' OR
31326 NVL(p_source_67,'
31327 ') = 'COST_REVENUE' OR
31328 p_source_67 IS NULL
31329 THEN
31330
31331 --
31332 XLA_AE_LINES_PKG.SetNewLine;
31333
31334 p_balance_type_code := l_balance_type_code;
31335 -- set the flag so later we will know whether the gain loss line needs to be created
31336
31337 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31338 p_actual_flag :='A';
31339 END IF;
31340
31341 --
31342 -- bulk performance
31343 --
31344 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31345 p_header_num => 0); -- 4262811
31346 --
31347 -- set accounting line options
31348 --
31349 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31350 p_natural_side_code => 'D'
31351 , p_gain_or_loss_flag => 'N'
31352 , p_gl_transfer_mode_code => 'S'
31353 , p_acct_entry_type_code => 'A'
31354 , p_switch_side_flag => 'Y'
31355 , p_merge_duplicate_code => 'N'
31356 );
31357 --
31358 l_acc_rev_natural_side_code := 'C'; -- 4262811
31359 --
31360 --
31361 -- set accounting line type info
31362 --
31363 xla_ae_lines_pkg.SetAcctLineType
31364 (p_component_type => l_component_type
31365 ,p_event_type_code => l_event_type_code
31366 ,p_line_definition_owner_code => l_line_definition_owner_code
31367 ,p_line_definition_code => l_line_definition_code
31368 ,p_accounting_line_code => l_component_code
31369 ,p_accounting_line_type_code => l_component_type_code
31370 ,p_accounting_line_appl_id => l_component_appl_id
31371 ,p_amb_context_code => l_amb_context_code
31372 ,p_entity_code => l_entity_code
31373 ,p_event_class_code => l_event_class_code);
31374 --
31375 -- set accounting class
31376 --
31377 xla_ae_lines_pkg.SetAcctClass(
31378 p_accounting_class_code => 'RECEIVER_COST'
31379 , p_ae_header_id => l_ae_header_id
31380 );
31381
31382 --
31383 -- set rounding class
31384 --
31385 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31386 'RECEIVER_COST';
31387
31388 --
31389 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31390 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31391 --
31392 -- bulk performance
31393 --
31394 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31395
31396 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31397 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31398
31399 -- 4955764
31400 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31401 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31402
31403 -- 4458381 Public Sector Enh
31404
31405 --
31406 -- set accounting attributes for the line type
31407 --
31408 l_entered_amt_idx := 22;
31409 l_accted_amt_idx := 27;
31410 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31411 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31412 l_rec_acct_attrs.array_char_value(1) := p_source_22;
31413 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
31414 l_rec_acct_attrs.array_char_value(2) := p_source_23;
31415 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
31416 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
31417 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
31418 l_rec_acct_attrs.array_num_value(4) := p_source_41;
31419 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
31420 l_rec_acct_attrs.array_char_value(5) := p_source_25;
31421 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
31425 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
31422 l_rec_acct_attrs.array_num_value(6) := p_source_43;
31423 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
31424 l_rec_acct_attrs.array_date_value(7) := p_source_27;
31426 l_rec_acct_attrs.array_num_value(8) := p_source_28;
31427 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
31428 l_rec_acct_attrs.array_char_value(9) := p_source_29;
31429 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
31430 l_rec_acct_attrs.array_char_value(10) := p_source_30;
31431 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
31432 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
31433 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
31434 l_rec_acct_attrs.array_num_value(12) := p_source_41;
31435 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
31436 l_rec_acct_attrs.array_char_value(13) := p_source_25;
31437 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
31438 l_rec_acct_attrs.array_num_value(14) := p_source_43;
31439 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
31440 l_rec_acct_attrs.array_date_value(15) := p_source_27;
31441 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
31442 l_rec_acct_attrs.array_num_value(16) := p_source_28;
31443 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
31444 l_rec_acct_attrs.array_char_value(17) := p_source_29;
31445 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
31446 l_rec_acct_attrs.array_char_value(18) := p_source_31;
31447 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
31448 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
31449 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
31450 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
31451 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
31452 l_rec_acct_attrs.array_char_value(21) := p_source_34;
31453 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
31454 l_rec_acct_attrs.array_num_value(22) := p_source_41;
31455 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
31456 l_rec_acct_attrs.array_char_value(23) := p_source_25;
31457 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
31458 l_rec_acct_attrs.array_date_value(24) := p_source_27;
31459 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
31460 l_rec_acct_attrs.array_num_value(25) := p_source_28;
31461 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
31462 l_rec_acct_attrs.array_char_value(26) := p_source_29;
31463 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
31464 l_rec_acct_attrs.array_num_value(27) := p_source_43;
31465 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
31466 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
31467 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
31468 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
31469 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
31470 l_rec_acct_attrs.array_char_value(30) := p_source_34;
31471
31472 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31473 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31474
31475 ---------------------------------------------------------------------------------------------------------------
31476 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31477 ---------------------------------------------------------------------------------------------------------------
31478 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31479
31480 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31481 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31482
31483 IF xla_accounting_cache_pkg.GetValueChar
31484 (p_source_code => 'LEDGER_CATEGORY_CODE'
31485 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31486 AND l_bflow_method_code = 'PRIOR_ENTRY'
31487 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31488 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31489 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31490 )
31491 THEN
31492 xla_ae_lines_pkg.BflowUpgEntry
31493 (p_business_method_code => l_bflow_method_code
31494 ,p_business_class_code => l_bflow_class_code
31495 ,p_balance_type => l_balance_type_code);
31496 ELSE
31497 NULL;
31498 -- No business flow processing for business flow method of NONE.
31499 END IF;
31500
31501 --
31502 -- call analytical criteria
31503 --
31504
31505 --
31506 -- call description
31507 --
31508 -- No description or it is inherited.
31509 --
31510 -- call ADRs
31511 -- Bug 4922099
31512 --
31513 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31514 (NVL(l_actual_upg_option, 'N') = 'O') OR
31515 (NVL(l_enc_upg_option, 'N') = 'O')
31516 )
31517 THEN
31518 NULL;
31519 --
31520 --
31521
31522 l_ccid := AcctDerRule_9(
31523 p_application_id => p_application_id
31524 , p_ae_header_id => l_ae_header_id
31525 , p_source_4 => p_source_4
31526 , p_source_10 => p_source_10
31527 , x_transaction_coa_id => l_adr_transaction_coa_id
31528 , x_accounting_coa_id => l_adr_accounting_coa_id
31532
31529 , x_value_type_code => l_adr_value_type_code
31530 , p_side => 'NA'
31531 );
31533 xla_ae_lines_pkg.set_ccid(
31534 p_code_combination_id => l_ccid
31535 , p_value_type_code => l_adr_value_type_code
31536 , p_transaction_coa_id => l_adr_transaction_coa_id
31537 , p_accounting_coa_id => l_adr_accounting_coa_id
31538 , p_adr_code => 'PA_RCVR_COST_REV_ADJ_ACCT_RULE'
31539 , p_adr_type_code => 'S'
31540 , p_component_type => l_component_type
31541 , p_component_code => l_component_code
31542 , p_component_type_code => l_component_type_code
31543 , p_component_appl_id => l_component_appl_id
31544 , p_amb_context_code => l_amb_context_code
31545 , p_side => 'NA'
31546 );
31547
31548
31549 --
31550 --
31551 END IF;
31552 --
31553 -- Bug 4922099
31554 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31555 (NVL(l_enc_upg_option, 'N') = 'O')
31556 ) AND
31557 (l_bflow_method_code = 'PRIOR_ENTRY')
31558 )
31559 THEN
31560 IF
31561 --
31562 1 = 2
31563 --
31564 THEN
31565 xla_accounting_err_pkg.build_message
31566 (p_appli_s_name => 'XLA'
31567 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31568 ,p_token_1 => 'LINE_NUMBER'
31569 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31570 ,p_token_2 => 'LINE_TYPE_NAME'
31571 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31572 l_component_type
31573 ,l_component_code
31574 ,l_component_type_code
31575 ,l_component_appl_id
31576 ,l_amb_context_code
31577 ,l_entity_code
31578 ,l_event_class_code
31579 )
31580 ,p_token_3 => 'OWNER'
31581 ,p_value_3 => xla_lookups_pkg.get_meaning(
31582 p_lookup_type => 'XLA_OWNER_TYPE'
31583 ,p_lookup_code => l_component_type_code
31584 )
31585 ,p_token_4 => 'PRODUCT_NAME'
31586 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31587 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31588 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31589 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31590 ,p_ae_header_id => NULL
31591 );
31592
31593 IF (C_LEVEL_ERROR>= g_log_level) THEN
31594 trace
31595 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31596 ,p_level => C_LEVEL_ERROR
31597 ,p_module => l_log_module);
31598 END IF;
31599 END IF;
31600 END IF;
31601 --
31602 --
31603 ------------------------------------------------------------------------------------------------
31604 -- 4219869 Business Flow
31605 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31606 -- Prior Entry. Currently, the following code is always generated.
31607 ------------------------------------------------------------------------------------------------
31608 XLA_AE_LINES_PKG.ValidateCurrentLine;
31609
31610 ------------------------------------------------------------------------------------
31611 -- 4219869 Business Flow
31612 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31613 ------------------------------------------------------------------------------------
31614 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31615
31616 ----------------------------------------------------------------------------------
31617 -- 4219869 Business Flow
31618 -- Update journal entry status -- Need to generate this within IF <condition>
31619 ----------------------------------------------------------------------------------
31620 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31621 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31622 ,p_balance_type_code => l_balance_type_code
31623 );
31624
31625 -------------------------------------------------------------------------------------------
31626 -- 4262811 - Generate the Accrual Reversal lines
31627 -------------------------------------------------------------------------------------------
31628 BEGIN
31629 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31630 (g_array_event(p_event_id).array_value_num('header_index'));
31631 IF l_acc_rev_flag IS NULL THEN
31632 l_acc_rev_flag := 'N';
31636 l_acc_rev_flag := 'N';
31633 END IF;
31634 EXCEPTION
31635 WHEN OTHERS THEN
31637 END;
31638 --
31639 IF (l_acc_rev_flag = 'Y') THEN
31640
31641 -- 4645092 ------------------------------------------------------------------------------
31642 -- To allow MPA report to determine if it should generate report process
31643 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31644 ------------------------------------------------------------------------------------------
31645
31646 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31647 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31648
31649 --
31650 -- Update the line information that should be overwritten
31651 --
31652 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31653 p_header_num => 1);
31654 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31655
31656 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31657
31658 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31659 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31660 END IF;
31661
31662 --
31663 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31664 --
31665 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31666 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31667 ELSE
31668 ---------------------------------------------------------------------------------------------------
31669 -- 4262811a Switch Sign
31670 ---------------------------------------------------------------------------------------------------
31671 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31672 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31673 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31674 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31675 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31676 -- 5132302
31677 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31678 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31679
31680 END IF;
31681
31682 -- 4955764
31683 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31684 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31685
31686
31687 XLA_AE_LINES_PKG.ValidateCurrentLine;
31688 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31689
31690 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31691 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31692 ,p_balance_type_code => l_balance_type_code);
31693
31694 END IF;
31695
31696 -----------------------------------------------------------------------------------------
31697 -- 4262811 Multiperiod Accounting
31698 -----------------------------------------------------------------------------------------
31699 -- No MPA option is assigned.
31700
31701
31702 END IF;
31703 END IF;
31704 --
31705
31706 --
31707 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31708 trace
31709 (p_msg => 'END of AcctLineType_70'
31710 ,p_level => C_LEVEL_PROCEDURE
31711 ,p_module => l_log_module);
31712 END IF;
31713 --
31714 EXCEPTION
31715 WHEN xla_exceptions_pkg.application_exception THEN
31716 RAISE;
31717 WHEN OTHERS THEN
31718 xla_exceptions_pkg.raise_message
31719 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_70');
31720 END AcctLineType_70;
31721 --
31722
31723 ---------------------------------------
31724 --
31725 -- PRIVATE FUNCTION
31726 -- AcctLineType_71
31727 --
31728 ---------------------------------------
31729 PROCEDURE AcctLineType_71 (
31730 p_application_id IN NUMBER
31731 ,p_event_id IN NUMBER
31732 ,p_calculate_acctd_flag IN VARCHAR2
31733 ,p_calculate_g_l_flag IN VARCHAR2
31734 ,p_actual_flag IN OUT VARCHAR2
31735 ,p_balance_type_code OUT VARCHAR2
31736 ,p_gain_or_loss_ref OUT VARCHAR2
31737
31738 --Allow Account Override Flag
31739 , p_source_4 IN VARCHAR2
31740 --Provider Cost/ Revenue CCID
31741 , p_source_8 IN NUMBER
31742 --Adjustment Receiver Cost/ Revenue CCID
31743 , p_source_10 IN NUMBER
31744 --Receiver Cost/ Revenue CCID
31745 , p_source_15 IN NUMBER
31746 --Reversing Line Flag
31747 , p_source_22 IN VARCHAR2
31748 --Actual Upgrade Credit Accounting Class
31749 , p_source_23 IN VARCHAR2
31750 --Entered Currency Code
31751 , p_source_25 IN VARCHAR2
31752 --Exchange Rate Date
31753 , p_source_27 IN DATE
31754 --Exchange Rate
31755 , p_source_28 IN NUMBER
31756 --Exchange Rate Type
31757 , p_source_29 IN VARCHAR2
31758 --Actual Upgrade Debit Accounting Class
31759 , p_source_30 IN VARCHAR2
31760 --Use Actuals Upgrade Attributes Flag
31761 , p_source_31 IN VARCHAR2
31762 --Expenditure Item ID
31763 , p_source_32 IN NUMBER
31764 --Cost Distribution Line Number
31768 , p_source_34_meaning IN VARCHAR2
31765 , p_source_33 IN NUMBER
31766 --Line Type
31767 , p_source_34 IN VARCHAR2
31769 --Reversed Line Number
31770 , p_source_35 IN NUMBER
31771 --Entered Amount
31772 , p_source_41 IN NUMBER
31773 --Accounted Amount
31774 , p_source_43 IN NUMBER
31775 --Transfer Amount Type
31776 , p_source_67 IN VARCHAR2
31777 , p_source_67_meaning IN VARCHAR2
31778 )
31779 IS
31780
31781 l_component_type VARCHAR2(80);
31782 l_component_code VARCHAR2(30);
31783 l_component_type_code VARCHAR2(1);
31784 l_component_appl_id INTEGER;
31785 l_amb_context_code VARCHAR2(30);
31786 l_entity_code VARCHAR2(30);
31787 l_event_class_code VARCHAR2(30);
31788 l_ae_header_id NUMBER;
31789 l_event_type_code VARCHAR2(30);
31790 l_line_definition_code VARCHAR2(30);
31791 l_line_definition_owner_code VARCHAR2(1);
31792 --
31793 -- adr variables
31794 l_segment VARCHAR2(30);
31795 l_ccid NUMBER;
31796 l_adr_transaction_coa_id NUMBER;
31797 l_adr_accounting_coa_id NUMBER;
31798 l_adr_flexfield_segment_code VARCHAR2(30);
31799 l_adr_flex_value_set_id NUMBER;
31800 l_adr_value_type_code VARCHAR2(30);
31801 l_adr_value_combination_id NUMBER;
31802 l_adr_value_segment_code VARCHAR2(30);
31803
31804 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31805 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31806 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31807 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31808
31809 -- 4262811 Variables ------------------------------------------------------------------------------------------
31810 l_entered_amt_idx NUMBER;
31811 l_accted_amt_idx NUMBER;
31812 l_acc_rev_flag VARCHAR2(1);
31813 l_accrual_line_num NUMBER;
31814 l_tmp_amt NUMBER;
31815 l_acc_rev_natural_side_code VARCHAR2(1);
31816
31817 l_num_entries NUMBER;
31818 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31819 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31820 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31821 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31822 l_recog_line_1 NUMBER;
31823 l_recog_line_2 NUMBER;
31824
31825 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31826 l_bflow_applied_to_amt NUMBER; -- 5132302
31827 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31828
31829 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31830
31831 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31832 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31833
31834 ---------------------------------------------------------------------------------------------------------------
31835
31836
31837 --
31838 -- bulk performance
31839 --
31840 l_balance_type_code VARCHAR2(1);
31841 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31842 l_log_module VARCHAR2(240);
31843
31844 --
31845 -- Upgrade strategy
31846 --
31847 l_actual_upg_option VARCHAR2(1);
31848 l_enc_upg_option VARCHAR2(1);
31849
31850 --
31851 BEGIN
31852 --
31853 IF g_log_enabled THEN
31854 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
31855 END IF;
31856 --
31857 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31858
31859 trace
31860 (p_msg => 'BEGIN of AcctLineType_71'
31861 ,p_level => C_LEVEL_PROCEDURE
31862 ,p_module => l_log_module);
31863
31864 END IF;
31865 --
31866 l_component_type := 'AMB_JLT';
31867 l_component_code := 'PA_RECEIVER_REVENUE';
31868 l_component_type_code := 'S';
31869 l_component_appl_id := 275;
31870 l_amb_context_code := 'DEFAULT';
31871 l_entity_code := 'EXPENDITURES';
31872 l_event_class_code := 'BORROWED_AND_LENT';
31873 l_event_type_code := 'BORROWED_AND_LENT_ALL';
31874 l_line_definition_owner_code := 'S';
31875 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
31876 --
31877 l_balance_type_code := 'A';
31878 l_segment := NULL;
31879 l_ccid := NULL;
31880 l_adr_transaction_coa_id := NULL;
31881 l_adr_accounting_coa_id := NULL;
31882 l_adr_flexfield_segment_code := NULL;
31883 l_adr_flex_value_set_id := NULL;
31884 l_adr_value_type_code := NULL;
31885 l_adr_value_combination_id := NULL;
31886 l_adr_value_segment_code := NULL;
31887
31888 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31889 l_bflow_class_code := ''; -- 4219869 Business Flow
31890 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31891 l_budgetary_control_flag := 'N';
31892
31893 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31894 l_bflow_applied_to_amt := NULL; -- 5132302
31895 l_entered_amt_idx := NULL; -- 4262811
31896 l_accted_amt_idx := NULL; -- 4262811
31897 l_acc_rev_flag := NULL; -- 4262811
31898 l_accrual_line_num := NULL; -- 4262811
31899 l_tmp_amt := NULL; -- 4262811
31900 --
31901
31905 ') = 'REVENUE_TRANSFER'
31902 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31903 l_balance_type_code <> 'B' THEN
31904 IF NVL(p_source_67,'
31906 THEN
31907
31908 --
31909 XLA_AE_LINES_PKG.SetNewLine;
31910
31911 p_balance_type_code := l_balance_type_code;
31912 -- set the flag so later we will know whether the gain loss line needs to be created
31913
31914 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31915 p_actual_flag :='A';
31916 END IF;
31917
31918 --
31919 -- bulk performance
31920 --
31921 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31922 p_header_num => 0); -- 4262811
31923 --
31924 -- set accounting line options
31925 --
31926 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31927 p_natural_side_code => 'D'
31928 , p_gain_or_loss_flag => 'N'
31929 , p_gl_transfer_mode_code => 'S'
31930 , p_acct_entry_type_code => 'A'
31931 , p_switch_side_flag => 'Y'
31932 , p_merge_duplicate_code => 'N'
31933 );
31934 --
31935 l_acc_rev_natural_side_code := 'C'; -- 4262811
31936 --
31937 --
31938 -- set accounting line type info
31939 --
31940 xla_ae_lines_pkg.SetAcctLineType
31941 (p_component_type => l_component_type
31942 ,p_event_type_code => l_event_type_code
31943 ,p_line_definition_owner_code => l_line_definition_owner_code
31944 ,p_line_definition_code => l_line_definition_code
31945 ,p_accounting_line_code => l_component_code
31946 ,p_accounting_line_type_code => l_component_type_code
31947 ,p_accounting_line_appl_id => l_component_appl_id
31948 ,p_amb_context_code => l_amb_context_code
31949 ,p_entity_code => l_entity_code
31950 ,p_event_class_code => l_event_class_code);
31951 --
31952 -- set accounting class
31953 --
31954 xla_ae_lines_pkg.SetAcctClass(
31955 p_accounting_class_code => 'RECEIVER_REVENUE'
31956 , p_ae_header_id => l_ae_header_id
31957 );
31958
31959 --
31960 -- set rounding class
31961 --
31962 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31963 'RECEIVER_REVENUE';
31964
31965 --
31966 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31967 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31968 --
31969 -- bulk performance
31970 --
31971 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31972
31973 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31974 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31975
31976 -- 4955764
31977 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31978 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31979
31980 -- 4458381 Public Sector Enh
31981
31982 --
31983 -- set accounting attributes for the line type
31984 --
31985 l_entered_amt_idx := 22;
31986 l_accted_amt_idx := 27;
31987 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31988 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31989 l_rec_acct_attrs.array_char_value(1) := p_source_22;
31990 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
31991 l_rec_acct_attrs.array_char_value(2) := p_source_23;
31992 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
31993 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
31994 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
31995 l_rec_acct_attrs.array_num_value(4) := p_source_41;
31996 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
31997 l_rec_acct_attrs.array_char_value(5) := p_source_25;
31998 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
31999 l_rec_acct_attrs.array_num_value(6) := p_source_43;
32000 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
32001 l_rec_acct_attrs.array_date_value(7) := p_source_27;
32002 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
32003 l_rec_acct_attrs.array_num_value(8) := p_source_28;
32004 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
32005 l_rec_acct_attrs.array_char_value(9) := p_source_29;
32006 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
32007 l_rec_acct_attrs.array_char_value(10) := p_source_30;
32008 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
32009 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
32010 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
32011 l_rec_acct_attrs.array_num_value(12) := p_source_41;
32012 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
32013 l_rec_acct_attrs.array_char_value(13) := p_source_25;
32014 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
32015 l_rec_acct_attrs.array_num_value(14) := p_source_43;
32016 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
32017 l_rec_acct_attrs.array_date_value(15) := p_source_27;
32018 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
32019 l_rec_acct_attrs.array_num_value(16) := p_source_28;
32020 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
32021 l_rec_acct_attrs.array_char_value(17) := p_source_29;
32025 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
32022 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
32023 l_rec_acct_attrs.array_char_value(18) := p_source_31;
32024 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
32026 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
32027 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
32028 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
32029 l_rec_acct_attrs.array_char_value(21) := p_source_34;
32030 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
32031 l_rec_acct_attrs.array_num_value(22) := p_source_41;
32032 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
32033 l_rec_acct_attrs.array_char_value(23) := p_source_25;
32034 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
32035 l_rec_acct_attrs.array_date_value(24) := p_source_27;
32036 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
32037 l_rec_acct_attrs.array_num_value(25) := p_source_28;
32038 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
32039 l_rec_acct_attrs.array_char_value(26) := p_source_29;
32040 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
32041 l_rec_acct_attrs.array_num_value(27) := p_source_43;
32042 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
32043 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
32044 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
32045 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
32046 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
32047 l_rec_acct_attrs.array_char_value(30) := p_source_34;
32048
32049 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32050 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32051
32052 ---------------------------------------------------------------------------------------------------------------
32053 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32054 ---------------------------------------------------------------------------------------------------------------
32055 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32056
32057 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32058 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32059
32060 IF xla_accounting_cache_pkg.GetValueChar
32061 (p_source_code => 'LEDGER_CATEGORY_CODE'
32062 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32063 AND l_bflow_method_code = 'PRIOR_ENTRY'
32064 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32065 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32066 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32067 )
32068 THEN
32069 xla_ae_lines_pkg.BflowUpgEntry
32070 (p_business_method_code => l_bflow_method_code
32071 ,p_business_class_code => l_bflow_class_code
32072 ,p_balance_type => l_balance_type_code);
32073 ELSE
32074 NULL;
32075 -- No business flow processing for business flow method of NONE.
32076 END IF;
32077
32078 --
32079 -- call analytical criteria
32080 --
32081
32082 --
32083 -- call description
32084 --
32085 -- No description or it is inherited.
32086 --
32087 -- call ADRs
32088 -- Bug 4922099
32089 --
32090 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32091 (NVL(l_actual_upg_option, 'N') = 'O') OR
32092 (NVL(l_enc_upg_option, 'N') = 'O')
32093 )
32094 THEN
32095 NULL;
32096 --
32097 --
32098
32099 l_ccid := AcctDerRule_14(
32100 p_application_id => p_application_id
32101 , p_ae_header_id => l_ae_header_id
32102 , p_source_4 => p_source_4
32103 , p_source_10 => p_source_10
32104 , p_source_15 => p_source_15
32105 , x_transaction_coa_id => l_adr_transaction_coa_id
32106 , x_accounting_coa_id => l_adr_accounting_coa_id
32107 , x_value_type_code => l_adr_value_type_code
32108 , p_side => 'NA'
32109 );
32110
32111 xla_ae_lines_pkg.set_ccid(
32112 p_code_combination_id => l_ccid
32113 , p_value_type_code => l_adr_value_type_code
32114 , p_transaction_coa_id => l_adr_transaction_coa_id
32115 , p_accounting_coa_id => l_adr_accounting_coa_id
32116 , p_adr_code => 'PA_RECVR_COST_REV_ACCT_RULE'
32117 , p_adr_type_code => 'S'
32118 , p_component_type => l_component_type
32119 , p_component_code => l_component_code
32120 , p_component_type_code => l_component_type_code
32121 , p_component_appl_id => l_component_appl_id
32122 , p_amb_context_code => l_amb_context_code
32123 , p_side => 'NA'
32124 );
32125
32126
32127 --
32128 --
32129 END IF;
32130 --
32131 -- Bug 4922099
32132 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32133 (NVL(l_enc_upg_option, 'N') = 'O')
32134 ) AND
32135 (l_bflow_method_code = 'PRIOR_ENTRY')
32136 )
32137 THEN
32138 IF
32139 --
32140 1 = 2
32141 --
32142 THEN
32143 xla_accounting_err_pkg.build_message
32144 (p_appli_s_name => 'XLA'
32148 ,p_token_2 => 'LINE_TYPE_NAME'
32145 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32146 ,p_token_1 => 'LINE_NUMBER'
32147 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32149 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32150 l_component_type
32151 ,l_component_code
32152 ,l_component_type_code
32153 ,l_component_appl_id
32154 ,l_amb_context_code
32155 ,l_entity_code
32156 ,l_event_class_code
32157 )
32158 ,p_token_3 => 'OWNER'
32159 ,p_value_3 => xla_lookups_pkg.get_meaning(
32160 p_lookup_type => 'XLA_OWNER_TYPE'
32161 ,p_lookup_code => l_component_type_code
32162 )
32163 ,p_token_4 => 'PRODUCT_NAME'
32164 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32165 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32166 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32167 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32168 ,p_ae_header_id => NULL
32169 );
32170
32171 IF (C_LEVEL_ERROR>= g_log_level) THEN
32172 trace
32173 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32174 ,p_level => C_LEVEL_ERROR
32175 ,p_module => l_log_module);
32176 END IF;
32177 END IF;
32178 END IF;
32179 --
32180 --
32181 ------------------------------------------------------------------------------------------------
32182 -- 4219869 Business Flow
32183 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32184 -- Prior Entry. Currently, the following code is always generated.
32185 ------------------------------------------------------------------------------------------------
32186 XLA_AE_LINES_PKG.ValidateCurrentLine;
32187
32188 ------------------------------------------------------------------------------------
32189 -- 4219869 Business Flow
32190 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32191 ------------------------------------------------------------------------------------
32192 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32193
32194 ----------------------------------------------------------------------------------
32195 -- 4219869 Business Flow
32196 -- Update journal entry status -- Need to generate this within IF <condition>
32197 ----------------------------------------------------------------------------------
32198 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32199 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32200 ,p_balance_type_code => l_balance_type_code
32201 );
32202
32203 -------------------------------------------------------------------------------------------
32204 -- 4262811 - Generate the Accrual Reversal lines
32205 -------------------------------------------------------------------------------------------
32206 BEGIN
32207 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32208 (g_array_event(p_event_id).array_value_num('header_index'));
32209 IF l_acc_rev_flag IS NULL THEN
32210 l_acc_rev_flag := 'N';
32211 END IF;
32212 EXCEPTION
32213 WHEN OTHERS THEN
32214 l_acc_rev_flag := 'N';
32215 END;
32216 --
32217 IF (l_acc_rev_flag = 'Y') THEN
32218
32219 -- 4645092 ------------------------------------------------------------------------------
32220 -- To allow MPA report to determine if it should generate report process
32221 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32222 ------------------------------------------------------------------------------------------
32223
32224 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32225 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32226
32227 --
32228 -- Update the line information that should be overwritten
32229 --
32230 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32231 p_header_num => 1);
32232 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32233
32234 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32235
32236 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32237 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32238 END IF;
32239
32240 --
32241 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32245 ELSE
32242 --
32243 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32244 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32246 ---------------------------------------------------------------------------------------------------
32247 -- 4262811a Switch Sign
32248 ---------------------------------------------------------------------------------------------------
32249 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32250 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32251 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32252 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32253 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32254 -- 5132302
32255 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32256 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32257
32258 END IF;
32259
32260 -- 4955764
32261 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32262 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32263
32264
32265 XLA_AE_LINES_PKG.ValidateCurrentLine;
32266 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32267
32268 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32269 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32270 ,p_balance_type_code => l_balance_type_code);
32271
32272 END IF;
32273
32274 -----------------------------------------------------------------------------------------
32275 -- 4262811 Multiperiod Accounting
32276 -----------------------------------------------------------------------------------------
32277 -- No MPA option is assigned.
32278
32279
32280 END IF;
32281 END IF;
32282 --
32283
32284 --
32285 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32286 trace
32287 (p_msg => 'END of AcctLineType_71'
32288 ,p_level => C_LEVEL_PROCEDURE
32289 ,p_module => l_log_module);
32290 END IF;
32291 --
32292 EXCEPTION
32293 WHEN xla_exceptions_pkg.application_exception THEN
32294 RAISE;
32295 WHEN OTHERS THEN
32296 xla_exceptions_pkg.raise_message
32297 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_71');
32298 END AcctLineType_71;
32299 --
32300
32301 ---------------------------------------
32302 --
32303 -- PRIVATE FUNCTION
32304 -- AcctLineType_72
32305 --
32306 ---------------------------------------
32307 PROCEDURE AcctLineType_72 (
32308 p_application_id IN NUMBER
32309 ,p_event_id IN NUMBER
32310 ,p_calculate_acctd_flag IN VARCHAR2
32311 ,p_calculate_g_l_flag IN VARCHAR2
32312 ,p_actual_flag IN OUT VARCHAR2
32313 ,p_balance_type_code OUT VARCHAR2
32314 ,p_gain_or_loss_ref OUT VARCHAR2
32315
32316 --Allow Account Override Flag
32317 , p_source_4 IN VARCHAR2
32318 --Provider Cost/ Revenue CCID
32319 , p_source_8 IN NUMBER
32320 --Adjustment Receiver Cost/ Revenue CCID
32321 , p_source_10 IN NUMBER
32322 --Receiver Cost/ Revenue CCID
32323 , p_source_15 IN NUMBER
32324 --Reversing Line Flag
32325 , p_source_22 IN VARCHAR2
32326 --Actual Upgrade Credit Accounting Class
32327 , p_source_23 IN VARCHAR2
32328 --Entered Currency Code
32329 , p_source_25 IN VARCHAR2
32330 --Exchange Rate Date
32331 , p_source_27 IN DATE
32332 --Exchange Rate
32333 , p_source_28 IN NUMBER
32334 --Exchange Rate Type
32335 , p_source_29 IN VARCHAR2
32336 --Actual Upgrade Debit Accounting Class
32337 , p_source_30 IN VARCHAR2
32338 --Use Actuals Upgrade Attributes Flag
32339 , p_source_31 IN VARCHAR2
32340 --Expenditure Item ID
32341 , p_source_32 IN NUMBER
32342 --Cost Distribution Line Number
32343 , p_source_33 IN NUMBER
32344 --Line Type
32345 , p_source_34 IN VARCHAR2
32346 , p_source_34_meaning IN VARCHAR2
32347 --Reversed Line Number
32348 , p_source_35 IN NUMBER
32349 --Entered Amount
32350 , p_source_41 IN NUMBER
32351 --Accounted Amount
32352 , p_source_43 IN NUMBER
32353 --Transfer Amount Type
32354 , p_source_67 IN VARCHAR2
32355 , p_source_67_meaning IN VARCHAR2
32356 )
32357 IS
32358
32359 l_component_type VARCHAR2(80);
32360 l_component_code VARCHAR2(30);
32361 l_component_type_code VARCHAR2(1);
32362 l_component_appl_id INTEGER;
32363 l_amb_context_code VARCHAR2(30);
32364 l_entity_code VARCHAR2(30);
32365 l_event_class_code VARCHAR2(30);
32366 l_ae_header_id NUMBER;
32367 l_event_type_code VARCHAR2(30);
32368 l_line_definition_code VARCHAR2(30);
32369 l_line_definition_owner_code VARCHAR2(1);
32370 --
32371 -- adr variables
32372 l_segment VARCHAR2(30);
32373 l_ccid NUMBER;
32374 l_adr_transaction_coa_id NUMBER;
32375 l_adr_accounting_coa_id NUMBER;
32376 l_adr_flexfield_segment_code VARCHAR2(30);
32377 l_adr_flex_value_set_id NUMBER;
32378 l_adr_value_type_code VARCHAR2(30);
32379 l_adr_value_combination_id NUMBER;
32383 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32380 l_adr_value_segment_code VARCHAR2(30);
32381
32382 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32384 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32385 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32386
32387 -- 4262811 Variables ------------------------------------------------------------------------------------------
32388 l_entered_amt_idx NUMBER;
32389 l_accted_amt_idx NUMBER;
32390 l_acc_rev_flag VARCHAR2(1);
32391 l_accrual_line_num NUMBER;
32392 l_tmp_amt NUMBER;
32393 l_acc_rev_natural_side_code VARCHAR2(1);
32394
32395 l_num_entries NUMBER;
32396 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32397 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32398 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32399 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32400 l_recog_line_1 NUMBER;
32401 l_recog_line_2 NUMBER;
32402
32403 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32404 l_bflow_applied_to_amt NUMBER; -- 5132302
32405 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32406
32407 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32408
32409 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32410 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32411
32412 ---------------------------------------------------------------------------------------------------------------
32413
32414
32415 --
32416 -- bulk performance
32417 --
32418 l_balance_type_code VARCHAR2(1);
32419 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32420 l_log_module VARCHAR2(240);
32421
32422 --
32423 -- Upgrade strategy
32424 --
32425 l_actual_upg_option VARCHAR2(1);
32426 l_enc_upg_option VARCHAR2(1);
32427
32428 --
32429 BEGIN
32430 --
32431 IF g_log_enabled THEN
32432 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
32433 END IF;
32434 --
32435 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32436
32437 trace
32438 (p_msg => 'BEGIN of AcctLineType_72'
32439 ,p_level => C_LEVEL_PROCEDURE
32440 ,p_module => l_log_module);
32441
32442 END IF;
32443 --
32444 l_component_type := 'AMB_JLT';
32445 l_component_code := 'PA_RECEIVER_REVENUE_ADJ';
32446 l_component_type_code := 'S';
32447 l_component_appl_id := 275;
32448 l_amb_context_code := 'DEFAULT';
32449 l_entity_code := 'EXPENDITURES';
32450 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
32451 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
32452 l_line_definition_owner_code := 'S';
32453 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
32454 --
32455 l_balance_type_code := 'A';
32456 l_segment := NULL;
32457 l_ccid := NULL;
32458 l_adr_transaction_coa_id := NULL;
32459 l_adr_accounting_coa_id := NULL;
32460 l_adr_flexfield_segment_code := NULL;
32461 l_adr_flex_value_set_id := NULL;
32462 l_adr_value_type_code := NULL;
32463 l_adr_value_combination_id := NULL;
32464 l_adr_value_segment_code := NULL;
32465
32466 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
32467 l_bflow_class_code := ''; -- 4219869 Business Flow
32468 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32469 l_budgetary_control_flag := 'N';
32470
32471 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32472 l_bflow_applied_to_amt := NULL; -- 5132302
32473 l_entered_amt_idx := NULL; -- 4262811
32474 l_accted_amt_idx := NULL; -- 4262811
32475 l_acc_rev_flag := NULL; -- 4262811
32476 l_accrual_line_num := NULL; -- 4262811
32477 l_tmp_amt := NULL; -- 4262811
32478 --
32479
32480 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32481 l_balance_type_code <> 'B' THEN
32482 IF NVL(p_source_67,'
32483 ') = 'REVENUE_TRANSFER'
32484 THEN
32485
32486 --
32487 XLA_AE_LINES_PKG.SetNewLine;
32488
32489 p_balance_type_code := l_balance_type_code;
32490 -- set the flag so later we will know whether the gain loss line needs to be created
32491
32492 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32493 p_actual_flag :='A';
32494 END IF;
32495
32496 --
32497 -- bulk performance
32498 --
32499 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32500 p_header_num => 0); -- 4262811
32501 --
32502 -- set accounting line options
32503 --
32504 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32505 p_natural_side_code => 'D'
32506 , p_gain_or_loss_flag => 'N'
32507 , p_gl_transfer_mode_code => 'S'
32508 , p_acct_entry_type_code => 'A'
32509 , p_switch_side_flag => 'Y'
32510 , p_merge_duplicate_code => 'N'
32511 );
32512 --
32513 l_acc_rev_natural_side_code := 'C'; -- 4262811
32514 --
32515 --
32516 -- set accounting line type info
32517 --
32518 xla_ae_lines_pkg.SetAcctLineType
32522 ,p_line_definition_code => l_line_definition_code
32519 (p_component_type => l_component_type
32520 ,p_event_type_code => l_event_type_code
32521 ,p_line_definition_owner_code => l_line_definition_owner_code
32523 ,p_accounting_line_code => l_component_code
32524 ,p_accounting_line_type_code => l_component_type_code
32525 ,p_accounting_line_appl_id => l_component_appl_id
32526 ,p_amb_context_code => l_amb_context_code
32527 ,p_entity_code => l_entity_code
32528 ,p_event_class_code => l_event_class_code);
32529 --
32530 -- set accounting class
32531 --
32532 xla_ae_lines_pkg.SetAcctClass(
32533 p_accounting_class_code => 'RECEIVER_REVENUE'
32534 , p_ae_header_id => l_ae_header_id
32535 );
32536
32537 --
32538 -- set rounding class
32539 --
32540 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32541 'RECEIVER_REVENUE';
32542
32543 --
32544 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32545 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32546 --
32547 -- bulk performance
32548 --
32549 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32550
32551 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32552 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32553
32554 -- 4955764
32555 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32556 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32557
32558 -- 4458381 Public Sector Enh
32559
32560 --
32561 -- set accounting attributes for the line type
32562 --
32563 l_entered_amt_idx := 22;
32564 l_accted_amt_idx := 27;
32565 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32566 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32567 l_rec_acct_attrs.array_char_value(1) := p_source_22;
32568 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
32569 l_rec_acct_attrs.array_char_value(2) := p_source_23;
32570 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
32571 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
32572 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
32573 l_rec_acct_attrs.array_num_value(4) := p_source_41;
32574 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
32575 l_rec_acct_attrs.array_char_value(5) := p_source_25;
32576 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
32577 l_rec_acct_attrs.array_num_value(6) := p_source_43;
32578 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
32579 l_rec_acct_attrs.array_date_value(7) := p_source_27;
32580 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
32581 l_rec_acct_attrs.array_num_value(8) := p_source_28;
32582 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
32583 l_rec_acct_attrs.array_char_value(9) := p_source_29;
32584 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
32585 l_rec_acct_attrs.array_char_value(10) := p_source_30;
32586 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
32587 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
32588 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
32589 l_rec_acct_attrs.array_num_value(12) := p_source_41;
32590 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
32591 l_rec_acct_attrs.array_char_value(13) := p_source_25;
32592 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
32593 l_rec_acct_attrs.array_num_value(14) := p_source_43;
32594 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
32595 l_rec_acct_attrs.array_date_value(15) := p_source_27;
32596 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
32597 l_rec_acct_attrs.array_num_value(16) := p_source_28;
32598 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
32599 l_rec_acct_attrs.array_char_value(17) := p_source_29;
32600 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
32601 l_rec_acct_attrs.array_char_value(18) := p_source_31;
32602 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
32603 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
32604 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
32605 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
32606 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
32607 l_rec_acct_attrs.array_char_value(21) := p_source_34;
32608 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
32609 l_rec_acct_attrs.array_num_value(22) := p_source_41;
32610 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
32611 l_rec_acct_attrs.array_char_value(23) := p_source_25;
32612 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
32613 l_rec_acct_attrs.array_date_value(24) := p_source_27;
32614 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
32615 l_rec_acct_attrs.array_num_value(25) := p_source_28;
32616 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
32617 l_rec_acct_attrs.array_char_value(26) := p_source_29;
32618 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
32619 l_rec_acct_attrs.array_num_value(27) := p_source_43;
32620 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
32621 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
32625 l_rec_acct_attrs.array_char_value(30) := p_source_34;
32622 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
32623 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
32624 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
32626
32627 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32628 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32629
32630 ---------------------------------------------------------------------------------------------------------------
32631 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32632 ---------------------------------------------------------------------------------------------------------------
32633 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32634
32635 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32636 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32637
32638 IF xla_accounting_cache_pkg.GetValueChar
32639 (p_source_code => 'LEDGER_CATEGORY_CODE'
32640 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32641 AND l_bflow_method_code = 'PRIOR_ENTRY'
32642 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32643 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32644 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32645 )
32646 THEN
32647 xla_ae_lines_pkg.BflowUpgEntry
32648 (p_business_method_code => l_bflow_method_code
32649 ,p_business_class_code => l_bflow_class_code
32650 ,p_balance_type => l_balance_type_code);
32651 ELSE
32652 NULL;
32653 -- No business flow processing for business flow method of NONE.
32654 END IF;
32655
32656 --
32657 -- call analytical criteria
32658 --
32659
32660 --
32661 -- call description
32662 --
32663 -- No description or it is inherited.
32664 --
32665 -- call ADRs
32666 -- Bug 4922099
32667 --
32668 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32669 (NVL(l_actual_upg_option, 'N') = 'O') OR
32670 (NVL(l_enc_upg_option, 'N') = 'O')
32671 )
32672 THEN
32673 NULL;
32674 --
32675 --
32676
32677 l_ccid := AcctDerRule_9(
32678 p_application_id => p_application_id
32679 , p_ae_header_id => l_ae_header_id
32680 , p_source_4 => p_source_4
32681 , p_source_10 => p_source_10
32682 , x_transaction_coa_id => l_adr_transaction_coa_id
32683 , x_accounting_coa_id => l_adr_accounting_coa_id
32684 , x_value_type_code => l_adr_value_type_code
32685 , p_side => 'NA'
32686 );
32687
32688 xla_ae_lines_pkg.set_ccid(
32689 p_code_combination_id => l_ccid
32690 , p_value_type_code => l_adr_value_type_code
32691 , p_transaction_coa_id => l_adr_transaction_coa_id
32692 , p_accounting_coa_id => l_adr_accounting_coa_id
32693 , p_adr_code => 'PA_RCVR_COST_REV_ADJ_ACCT_RULE'
32694 , p_adr_type_code => 'S'
32695 , p_component_type => l_component_type
32696 , p_component_code => l_component_code
32697 , p_component_type_code => l_component_type_code
32698 , p_component_appl_id => l_component_appl_id
32699 , p_amb_context_code => l_amb_context_code
32700 , p_side => 'NA'
32701 );
32702
32703
32704 --
32705 --
32706 END IF;
32707 --
32708 -- Bug 4922099
32709 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32710 (NVL(l_enc_upg_option, 'N') = 'O')
32711 ) AND
32712 (l_bflow_method_code = 'PRIOR_ENTRY')
32713 )
32714 THEN
32715 IF
32716 --
32717 1 = 2
32718 --
32719 THEN
32720 xla_accounting_err_pkg.build_message
32721 (p_appli_s_name => 'XLA'
32722 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32723 ,p_token_1 => 'LINE_NUMBER'
32724 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32725 ,p_token_2 => 'LINE_TYPE_NAME'
32726 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32727 l_component_type
32728 ,l_component_code
32729 ,l_component_type_code
32730 ,l_component_appl_id
32731 ,l_amb_context_code
32732 ,l_entity_code
32733 ,l_event_class_code
32734 )
32735 ,p_token_3 => 'OWNER'
32736 ,p_value_3 => xla_lookups_pkg.get_meaning(
32737 p_lookup_type => 'XLA_OWNER_TYPE'
32738 ,p_lookup_code => l_component_type_code
32742 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32739 )
32740 ,p_token_4 => 'PRODUCT_NAME'
32741 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32743 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32744 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32745 ,p_ae_header_id => NULL
32746 );
32747
32748 IF (C_LEVEL_ERROR>= g_log_level) THEN
32749 trace
32750 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32751 ,p_level => C_LEVEL_ERROR
32752 ,p_module => l_log_module);
32753 END IF;
32754 END IF;
32755 END IF;
32756 --
32757 --
32758 ------------------------------------------------------------------------------------------------
32759 -- 4219869 Business Flow
32760 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32761 -- Prior Entry. Currently, the following code is always generated.
32762 ------------------------------------------------------------------------------------------------
32763 XLA_AE_LINES_PKG.ValidateCurrentLine;
32764
32765 ------------------------------------------------------------------------------------
32766 -- 4219869 Business Flow
32767 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32768 ------------------------------------------------------------------------------------
32769 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32770
32771 ----------------------------------------------------------------------------------
32772 -- 4219869 Business Flow
32773 -- Update journal entry status -- Need to generate this within IF <condition>
32774 ----------------------------------------------------------------------------------
32775 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32776 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32777 ,p_balance_type_code => l_balance_type_code
32778 );
32779
32780 -------------------------------------------------------------------------------------------
32781 -- 4262811 - Generate the Accrual Reversal lines
32782 -------------------------------------------------------------------------------------------
32783 BEGIN
32784 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32785 (g_array_event(p_event_id).array_value_num('header_index'));
32786 IF l_acc_rev_flag IS NULL THEN
32787 l_acc_rev_flag := 'N';
32788 END IF;
32789 EXCEPTION
32790 WHEN OTHERS THEN
32791 l_acc_rev_flag := 'N';
32792 END;
32793 --
32794 IF (l_acc_rev_flag = 'Y') THEN
32795
32796 -- 4645092 ------------------------------------------------------------------------------
32797 -- To allow MPA report to determine if it should generate report process
32798 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32799 ------------------------------------------------------------------------------------------
32800
32801 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32802 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32803
32804 --
32805 -- Update the line information that should be overwritten
32806 --
32807 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32808 p_header_num => 1);
32809 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32810
32811 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32812
32813 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32814 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32815 END IF;
32816
32817 --
32818 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32819 --
32820 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32821 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32822 ELSE
32823 ---------------------------------------------------------------------------------------------------
32824 -- 4262811a Switch Sign
32825 ---------------------------------------------------------------------------------------------------
32826 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32827 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32828 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32829 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32830 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32831 -- 5132302
32832 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32833 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32834
32835 END IF;
32836
32837 -- 4955764
32838 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32839 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32840
32841
32845 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32842 XLA_AE_LINES_PKG.ValidateCurrentLine;
32843 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32844
32846 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32847 ,p_balance_type_code => l_balance_type_code);
32848
32849 END IF;
32850
32851 -----------------------------------------------------------------------------------------
32852 -- 4262811 Multiperiod Accounting
32853 -----------------------------------------------------------------------------------------
32854 -- No MPA option is assigned.
32855
32856
32857 END IF;
32858 END IF;
32859 --
32860
32861 --
32862 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32863 trace
32864 (p_msg => 'END of AcctLineType_72'
32865 ,p_level => C_LEVEL_PROCEDURE
32866 ,p_module => l_log_module);
32867 END IF;
32868 --
32869 EXCEPTION
32870 WHEN xla_exceptions_pkg.application_exception THEN
32871 RAISE;
32872 WHEN OTHERS THEN
32873 xla_exceptions_pkg.raise_message
32874 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_72');
32875 END AcctLineType_72;
32876 --
32877
32878 ---------------------------------------
32879 --
32880 -- PRIVATE FUNCTION
32881 -- AcctLineType_73
32882 --
32883 ---------------------------------------
32884 PROCEDURE AcctLineType_73 (
32885 p_application_id IN NUMBER
32886 ,p_event_id IN NUMBER
32887 ,p_calculate_acctd_flag IN VARCHAR2
32888 ,p_calculate_g_l_flag IN VARCHAR2
32889 ,p_actual_flag IN OUT VARCHAR2
32890 ,p_balance_type_code OUT VARCHAR2
32891 ,p_gain_or_loss_ref OUT VARCHAR2
32892
32893 --Allow Account Override Flag
32894 , p_source_4 IN VARCHAR2
32895 --Provider Cost Destination CCID
32896 , p_source_11 IN NUMBER
32897 --Adjustment Provider Cost Destination CCID
32898 , p_source_12 IN NUMBER
32899 --Provider Cost Source CCID
32900 , p_source_13 IN NUMBER
32901 --Reversing Line Flag
32902 , p_source_22 IN VARCHAR2
32903 --Actual Upgrade Credit Accounting Class
32904 , p_source_23 IN VARCHAR2
32905 --Entered Currency Code
32906 , p_source_25 IN VARCHAR2
32907 --Exchange Rate Date
32908 , p_source_27 IN DATE
32909 --Exchange Rate
32910 , p_source_28 IN NUMBER
32911 --Exchange Rate Type
32912 , p_source_29 IN VARCHAR2
32913 --Actual Upgrade Debit Accounting Class
32914 , p_source_30 IN VARCHAR2
32915 --Use Actuals Upgrade Attributes Flag
32916 , p_source_31 IN VARCHAR2
32917 --Expenditure Item ID
32918 , p_source_32 IN NUMBER
32919 --Cost Distribution Line Number
32920 , p_source_33 IN NUMBER
32921 --Line Type
32922 , p_source_34 IN VARCHAR2
32923 , p_source_34_meaning IN VARCHAR2
32924 --Reversed Line Number
32925 , p_source_35 IN NUMBER
32926 --Entered Amount
32927 , p_source_41 IN NUMBER
32928 --Accounted Amount
32929 , p_source_43 IN NUMBER
32930 )
32931 IS
32932
32933 l_component_type VARCHAR2(80);
32934 l_component_code VARCHAR2(30);
32935 l_component_type_code VARCHAR2(1);
32936 l_component_appl_id INTEGER;
32937 l_amb_context_code VARCHAR2(30);
32938 l_entity_code VARCHAR2(30);
32939 l_event_class_code VARCHAR2(30);
32940 l_ae_header_id NUMBER;
32941 l_event_type_code VARCHAR2(30);
32942 l_line_definition_code VARCHAR2(30);
32943 l_line_definition_owner_code VARCHAR2(1);
32944 --
32945 -- adr variables
32946 l_segment VARCHAR2(30);
32947 l_ccid NUMBER;
32948 l_adr_transaction_coa_id NUMBER;
32949 l_adr_accounting_coa_id NUMBER;
32950 l_adr_flexfield_segment_code VARCHAR2(30);
32951 l_adr_flex_value_set_id NUMBER;
32952 l_adr_value_type_code VARCHAR2(30);
32953 l_adr_value_combination_id NUMBER;
32954 l_adr_value_segment_code VARCHAR2(30);
32955
32956 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32957 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32958 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32959 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32960
32961 -- 4262811 Variables ------------------------------------------------------------------------------------------
32962 l_entered_amt_idx NUMBER;
32963 l_accted_amt_idx NUMBER;
32964 l_acc_rev_flag VARCHAR2(1);
32965 l_accrual_line_num NUMBER;
32966 l_tmp_amt NUMBER;
32967 l_acc_rev_natural_side_code VARCHAR2(1);
32968
32969 l_num_entries NUMBER;
32970 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32971 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32972 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32973 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32974 l_recog_line_1 NUMBER;
32975 l_recog_line_2 NUMBER;
32976
32977 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32978 l_bflow_applied_to_amt NUMBER; -- 5132302
32979 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32980
32981 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32982
32983 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32987
32984 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32985
32986 ---------------------------------------------------------------------------------------------------------------
32988
32989 --
32990 -- bulk performance
32991 --
32992 l_balance_type_code VARCHAR2(1);
32993 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32994 l_log_module VARCHAR2(240);
32995
32996 --
32997 -- Upgrade strategy
32998 --
32999 l_actual_upg_option VARCHAR2(1);
33000 l_enc_upg_option VARCHAR2(1);
33001
33002 --
33003 BEGIN
33004 --
33005 IF g_log_enabled THEN
33006 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
33007 END IF;
33008 --
33009 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33010
33011 trace
33012 (p_msg => 'BEGIN of AcctLineType_73'
33013 ,p_level => C_LEVEL_PROCEDURE
33014 ,p_module => l_log_module);
33015
33016 END IF;
33017 --
33018 l_component_type := 'AMB_JLT';
33019 l_component_code := 'PA_RECLASS_DEST';
33020 l_component_type_code := 'S';
33021 l_component_appl_id := 275;
33022 l_amb_context_code := 'DEFAULT';
33023 l_entity_code := 'EXPENDITURES';
33024 l_event_class_code := 'PRVDR_RECVR_RECLASS';
33025 l_event_type_code := 'PRVDR_RECVR_RECLASS_ALL';
33026 l_line_definition_owner_code := 'S';
33027 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
33028 --
33029 l_balance_type_code := 'A';
33030 l_segment := NULL;
33031 l_ccid := NULL;
33032 l_adr_transaction_coa_id := NULL;
33033 l_adr_accounting_coa_id := NULL;
33034 l_adr_flexfield_segment_code := NULL;
33035 l_adr_flex_value_set_id := NULL;
33036 l_adr_value_type_code := NULL;
33037 l_adr_value_combination_id := NULL;
33038 l_adr_value_segment_code := NULL;
33039
33040 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33041 l_bflow_class_code := ''; -- 4219869 Business Flow
33042 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33043 l_budgetary_control_flag := 'N';
33044
33045 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33046 l_bflow_applied_to_amt := NULL; -- 5132302
33047 l_entered_amt_idx := NULL; -- 4262811
33048 l_accted_amt_idx := NULL; -- 4262811
33049 l_acc_rev_flag := NULL; -- 4262811
33050 l_accrual_line_num := NULL; -- 4262811
33051 l_tmp_amt := NULL; -- 4262811
33052 --
33053
33054 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33055 l_balance_type_code <> 'B' THEN
33056
33057 --
33058 XLA_AE_LINES_PKG.SetNewLine;
33059
33060 p_balance_type_code := l_balance_type_code;
33061 -- set the flag so later we will know whether the gain loss line needs to be created
33062
33063 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33064 p_actual_flag :='A';
33065 END IF;
33066
33067 --
33068 -- bulk performance
33069 --
33070 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33071 p_header_num => 0); -- 4262811
33072 --
33073 -- set accounting line options
33074 --
33075 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33076 p_natural_side_code => 'D'
33077 , p_gain_or_loss_flag => 'N'
33078 , p_gl_transfer_mode_code => 'S'
33079 , p_acct_entry_type_code => 'A'
33080 , p_switch_side_flag => 'Y'
33081 , p_merge_duplicate_code => 'N'
33082 );
33083 --
33084 l_acc_rev_natural_side_code := 'C'; -- 4262811
33085 --
33086 --
33087 -- set accounting line type info
33088 --
33089 xla_ae_lines_pkg.SetAcctLineType
33090 (p_component_type => l_component_type
33091 ,p_event_type_code => l_event_type_code
33092 ,p_line_definition_owner_code => l_line_definition_owner_code
33093 ,p_line_definition_code => l_line_definition_code
33094 ,p_accounting_line_code => l_component_code
33095 ,p_accounting_line_type_code => l_component_type_code
33096 ,p_accounting_line_appl_id => l_component_appl_id
33097 ,p_amb_context_code => l_amb_context_code
33098 ,p_entity_code => l_entity_code
33099 ,p_event_class_code => l_event_class_code);
33100 --
33101 -- set accounting class
33102 --
33103 xla_ae_lines_pkg.SetAcctClass(
33104 p_accounting_class_code => 'RECLASS_DESTINATION'
33105 , p_ae_header_id => l_ae_header_id
33106 );
33107
33108 --
33109 -- set rounding class
33110 --
33111 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33112 'RECLASS_DESTINATION';
33113
33114 --
33115 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33116 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33117 --
33118 -- bulk performance
33119 --
33120 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33121
33122 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33123 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33124
33125 -- 4955764
33129 -- 4458381 Public Sector Enh
33126 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33127 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33128
33130
33131 --
33132 -- set accounting attributes for the line type
33133 --
33134 l_entered_amt_idx := 22;
33135 l_accted_amt_idx := 27;
33136 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33137 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33138 l_rec_acct_attrs.array_char_value(1) := p_source_22;
33139 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
33140 l_rec_acct_attrs.array_char_value(2) := p_source_23;
33141 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
33142 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_13);
33143 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
33144 l_rec_acct_attrs.array_num_value(4) := p_source_41;
33145 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
33146 l_rec_acct_attrs.array_char_value(5) := p_source_25;
33147 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
33148 l_rec_acct_attrs.array_num_value(6) := p_source_43;
33149 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
33150 l_rec_acct_attrs.array_date_value(7) := p_source_27;
33151 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
33152 l_rec_acct_attrs.array_num_value(8) := p_source_28;
33153 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
33154 l_rec_acct_attrs.array_char_value(9) := p_source_29;
33155 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
33156 l_rec_acct_attrs.array_char_value(10) := p_source_30;
33157 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
33158 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_11);
33159 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
33160 l_rec_acct_attrs.array_num_value(12) := p_source_41;
33161 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
33162 l_rec_acct_attrs.array_char_value(13) := p_source_25;
33163 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
33164 l_rec_acct_attrs.array_num_value(14) := p_source_43;
33165 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
33166 l_rec_acct_attrs.array_date_value(15) := p_source_27;
33167 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
33168 l_rec_acct_attrs.array_num_value(16) := p_source_28;
33169 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
33170 l_rec_acct_attrs.array_char_value(17) := p_source_29;
33171 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
33172 l_rec_acct_attrs.array_char_value(18) := p_source_31;
33173 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
33174 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
33175 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
33176 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
33177 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
33178 l_rec_acct_attrs.array_char_value(21) := p_source_34;
33179 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
33180 l_rec_acct_attrs.array_num_value(22) := p_source_41;
33181 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
33182 l_rec_acct_attrs.array_char_value(23) := p_source_25;
33183 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
33184 l_rec_acct_attrs.array_date_value(24) := p_source_27;
33185 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
33186 l_rec_acct_attrs.array_num_value(25) := p_source_28;
33187 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
33188 l_rec_acct_attrs.array_char_value(26) := p_source_29;
33189 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
33190 l_rec_acct_attrs.array_num_value(27) := p_source_43;
33191 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
33192 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
33193 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
33194 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
33195 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
33196 l_rec_acct_attrs.array_char_value(30) := p_source_34;
33197
33198 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33199 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33200
33201 ---------------------------------------------------------------------------------------------------------------
33202 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33203 ---------------------------------------------------------------------------------------------------------------
33204 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33205
33206 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33207 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33208
33209 IF xla_accounting_cache_pkg.GetValueChar
33210 (p_source_code => 'LEDGER_CATEGORY_CODE'
33211 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33212 AND l_bflow_method_code = 'PRIOR_ENTRY'
33213 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33214 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33215 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33216 )
33217 THEN
33218 xla_ae_lines_pkg.BflowUpgEntry
33219 (p_business_method_code => l_bflow_method_code
33223 NULL;
33220 ,p_business_class_code => l_bflow_class_code
33221 ,p_balance_type => l_balance_type_code);
33222 ELSE
33224 -- No business flow processing for business flow method of NONE.
33225 END IF;
33226
33227 --
33228 -- call analytical criteria
33229 --
33230
33231 --
33232 -- call description
33233 --
33234 -- No description or it is inherited.
33235 --
33236 -- call ADRs
33237 -- Bug 4922099
33238 --
33239 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33240 (NVL(l_actual_upg_option, 'N') = 'O') OR
33241 (NVL(l_enc_upg_option, 'N') = 'O')
33242 )
33243 THEN
33244 NULL;
33245 --
33246 --
33247
33248 l_ccid := AcctDerRule_10(
33249 p_application_id => p_application_id
33250 , p_ae_header_id => l_ae_header_id
33251 , p_source_4 => p_source_4
33252 , p_source_11 => p_source_11
33253 , p_source_12 => p_source_12
33254 , x_transaction_coa_id => l_adr_transaction_coa_id
33255 , x_accounting_coa_id => l_adr_accounting_coa_id
33256 , x_value_type_code => l_adr_value_type_code
33257 , p_side => 'NA'
33258 );
33259
33260 xla_ae_lines_pkg.set_ccid(
33261 p_code_combination_id => l_ccid
33262 , p_value_type_code => l_adr_value_type_code
33263 , p_transaction_coa_id => l_adr_transaction_coa_id
33264 , p_accounting_coa_id => l_adr_accounting_coa_id
33265 , p_adr_code => 'PA_RECLASS_DEST_ACCT_RULE'
33266 , p_adr_type_code => 'S'
33267 , p_component_type => l_component_type
33268 , p_component_code => l_component_code
33269 , p_component_type_code => l_component_type_code
33270 , p_component_appl_id => l_component_appl_id
33271 , p_amb_context_code => l_amb_context_code
33272 , p_side => 'NA'
33273 );
33274
33275
33276 --
33277 --
33278 END IF;
33279 --
33280 -- Bug 4922099
33281 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33282 (NVL(l_enc_upg_option, 'N') = 'O')
33283 ) AND
33284 (l_bflow_method_code = 'PRIOR_ENTRY')
33285 )
33286 THEN
33287 IF
33288 --
33289 1 = 2
33290 --
33291 THEN
33292 xla_accounting_err_pkg.build_message
33293 (p_appli_s_name => 'XLA'
33294 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33295 ,p_token_1 => 'LINE_NUMBER'
33296 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33297 ,p_token_2 => 'LINE_TYPE_NAME'
33298 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33299 l_component_type
33300 ,l_component_code
33301 ,l_component_type_code
33302 ,l_component_appl_id
33303 ,l_amb_context_code
33304 ,l_entity_code
33305 ,l_event_class_code
33306 )
33307 ,p_token_3 => 'OWNER'
33308 ,p_value_3 => xla_lookups_pkg.get_meaning(
33309 p_lookup_type => 'XLA_OWNER_TYPE'
33310 ,p_lookup_code => l_component_type_code
33311 )
33312 ,p_token_4 => 'PRODUCT_NAME'
33313 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33314 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33315 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33316 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33317 ,p_ae_header_id => NULL
33318 );
33319
33320 IF (C_LEVEL_ERROR>= g_log_level) THEN
33321 trace
33322 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33323 ,p_level => C_LEVEL_ERROR
33324 ,p_module => l_log_module);
33325 END IF;
33326 END IF;
33327 END IF;
33328 --
33329 --
33330 ------------------------------------------------------------------------------------------------
33331 -- 4219869 Business Flow
33332 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33333 -- Prior Entry. Currently, the following code is always generated.
33334 ------------------------------------------------------------------------------------------------
33335 XLA_AE_LINES_PKG.ValidateCurrentLine;
33336
33337 ------------------------------------------------------------------------------------
33338 -- 4219869 Business Flow
33342
33339 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33340 ------------------------------------------------------------------------------------
33341 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33343 ----------------------------------------------------------------------------------
33344 -- 4219869 Business Flow
33345 -- Update journal entry status -- Need to generate this within IF <condition>
33346 ----------------------------------------------------------------------------------
33347 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33348 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33349 ,p_balance_type_code => l_balance_type_code
33350 );
33351
33352 -------------------------------------------------------------------------------------------
33353 -- 4262811 - Generate the Accrual Reversal lines
33354 -------------------------------------------------------------------------------------------
33355 BEGIN
33356 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33357 (g_array_event(p_event_id).array_value_num('header_index'));
33358 IF l_acc_rev_flag IS NULL THEN
33359 l_acc_rev_flag := 'N';
33360 END IF;
33361 EXCEPTION
33362 WHEN OTHERS THEN
33363 l_acc_rev_flag := 'N';
33364 END;
33365 --
33366 IF (l_acc_rev_flag = 'Y') THEN
33367
33368 -- 4645092 ------------------------------------------------------------------------------
33369 -- To allow MPA report to determine if it should generate report process
33370 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33371 ------------------------------------------------------------------------------------------
33372
33373 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33374 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33375
33376 --
33377 -- Update the line information that should be overwritten
33378 --
33379 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33380 p_header_num => 1);
33381 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33382
33383 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33384
33385 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33386 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33387 END IF;
33388
33389 --
33390 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33391 --
33392 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33393 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33394 ELSE
33395 ---------------------------------------------------------------------------------------------------
33396 -- 4262811a Switch Sign
33397 ---------------------------------------------------------------------------------------------------
33398 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33399 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33400 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33401 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33402 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33403 -- 5132302
33404 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33405 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33406
33407 END IF;
33408
33409 -- 4955764
33410 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33411 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33412
33413
33414 XLA_AE_LINES_PKG.ValidateCurrentLine;
33415 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33416
33417 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33418 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33419 ,p_balance_type_code => l_balance_type_code);
33420
33421 END IF;
33422
33423 -----------------------------------------------------------------------------------------
33424 -- 4262811 Multiperiod Accounting
33425 -----------------------------------------------------------------------------------------
33426 -- No MPA option is assigned.
33427
33428
33429 END IF;
33430 --
33431
33432 --
33433 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33434 trace
33435 (p_msg => 'END of AcctLineType_73'
33436 ,p_level => C_LEVEL_PROCEDURE
33437 ,p_module => l_log_module);
33438 END IF;
33439 --
33440 EXCEPTION
33441 WHEN xla_exceptions_pkg.application_exception THEN
33442 RAISE;
33443 WHEN OTHERS THEN
33444 xla_exceptions_pkg.raise_message
33445 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_73');
33446 END AcctLineType_73;
33447 --
33448
33449 ---------------------------------------
33450 --
33451 -- PRIVATE FUNCTION
33452 -- AcctLineType_74
33453 --
33454 ---------------------------------------
33455 PROCEDURE AcctLineType_74 (
33456 p_application_id IN NUMBER
33457 ,p_event_id IN NUMBER
33458 ,p_calculate_acctd_flag IN VARCHAR2
33459 ,p_calculate_g_l_flag IN VARCHAR2
33463
33460 ,p_actual_flag IN OUT VARCHAR2
33461 ,p_balance_type_code OUT VARCHAR2
33462 ,p_gain_or_loss_ref OUT VARCHAR2
33464 --Allow Account Override Flag
33465 , p_source_4 IN VARCHAR2
33466 --Provider Cost Destination CCID
33467 , p_source_11 IN NUMBER
33468 --Adjustment Provider Cost Destination CCID
33469 , p_source_12 IN NUMBER
33470 --Provider Cost Source CCID
33471 , p_source_13 IN NUMBER
33472 --Reversing Line Flag
33473 , p_source_22 IN VARCHAR2
33474 --Actual Upgrade Credit Accounting Class
33475 , p_source_23 IN VARCHAR2
33476 --Entered Currency Code
33477 , p_source_25 IN VARCHAR2
33478 --Exchange Rate Date
33479 , p_source_27 IN DATE
33480 --Exchange Rate
33481 , p_source_28 IN NUMBER
33482 --Exchange Rate Type
33483 , p_source_29 IN VARCHAR2
33484 --Actual Upgrade Debit Accounting Class
33485 , p_source_30 IN VARCHAR2
33486 --Use Actuals Upgrade Attributes Flag
33487 , p_source_31 IN VARCHAR2
33488 --Expenditure Item ID
33489 , p_source_32 IN NUMBER
33490 --Cost Distribution Line Number
33491 , p_source_33 IN NUMBER
33492 --Line Type
33493 , p_source_34 IN VARCHAR2
33494 , p_source_34_meaning IN VARCHAR2
33495 --Reversed Line Number
33496 , p_source_35 IN NUMBER
33497 --Entered Amount
33498 , p_source_41 IN NUMBER
33499 --Accounted Amount
33500 , p_source_43 IN NUMBER
33501 )
33502 IS
33503
33504 l_component_type VARCHAR2(80);
33505 l_component_code VARCHAR2(30);
33506 l_component_type_code VARCHAR2(1);
33507 l_component_appl_id INTEGER;
33508 l_amb_context_code VARCHAR2(30);
33509 l_entity_code VARCHAR2(30);
33510 l_event_class_code VARCHAR2(30);
33511 l_ae_header_id NUMBER;
33512 l_event_type_code VARCHAR2(30);
33513 l_line_definition_code VARCHAR2(30);
33514 l_line_definition_owner_code VARCHAR2(1);
33515 --
33516 -- adr variables
33517 l_segment VARCHAR2(30);
33518 l_ccid NUMBER;
33519 l_adr_transaction_coa_id NUMBER;
33520 l_adr_accounting_coa_id NUMBER;
33521 l_adr_flexfield_segment_code VARCHAR2(30);
33522 l_adr_flex_value_set_id NUMBER;
33523 l_adr_value_type_code VARCHAR2(30);
33524 l_adr_value_combination_id NUMBER;
33525 l_adr_value_segment_code VARCHAR2(30);
33526
33527 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33528 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33529 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33530 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33531
33532 -- 4262811 Variables ------------------------------------------------------------------------------------------
33533 l_entered_amt_idx NUMBER;
33534 l_accted_amt_idx NUMBER;
33535 l_acc_rev_flag VARCHAR2(1);
33536 l_accrual_line_num NUMBER;
33537 l_tmp_amt NUMBER;
33538 l_acc_rev_natural_side_code VARCHAR2(1);
33539
33540 l_num_entries NUMBER;
33541 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33542 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33543 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33544 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33545 l_recog_line_1 NUMBER;
33546 l_recog_line_2 NUMBER;
33547
33548 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33549 l_bflow_applied_to_amt NUMBER; -- 5132302
33550 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33551
33552 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33553
33554 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33555 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33556
33557 ---------------------------------------------------------------------------------------------------------------
33558
33559
33560 --
33561 -- bulk performance
33562 --
33563 l_balance_type_code VARCHAR2(1);
33564 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33565 l_log_module VARCHAR2(240);
33566
33567 --
33568 -- Upgrade strategy
33569 --
33570 l_actual_upg_option VARCHAR2(1);
33571 l_enc_upg_option VARCHAR2(1);
33572
33573 --
33574 BEGIN
33575 --
33576 IF g_log_enabled THEN
33577 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
33578 END IF;
33579 --
33580 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33581
33582 trace
33583 (p_msg => 'BEGIN of AcctLineType_74'
33584 ,p_level => C_LEVEL_PROCEDURE
33585 ,p_module => l_log_module);
33586
33587 END IF;
33588 --
33589 l_component_type := 'AMB_JLT';
33590 l_component_code := 'PA_RECLASS_DEST_ADJ';
33591 l_component_type_code := 'S';
33592 l_component_appl_id := 275;
33593 l_amb_context_code := 'DEFAULT';
33594 l_entity_code := 'EXPENDITURES';
33595 l_event_class_code := 'PRVDR_RECVR_RECLASS_ADJ';
33596 l_event_type_code := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
33597 l_line_definition_owner_code := 'S';
33598 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
33599 --
33600 l_balance_type_code := 'A';
33601 l_segment := NULL;
33605 l_adr_flexfield_segment_code := NULL;
33602 l_ccid := NULL;
33603 l_adr_transaction_coa_id := NULL;
33604 l_adr_accounting_coa_id := NULL;
33606 l_adr_flex_value_set_id := NULL;
33607 l_adr_value_type_code := NULL;
33608 l_adr_value_combination_id := NULL;
33609 l_adr_value_segment_code := NULL;
33610
33611 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33612 l_bflow_class_code := ''; -- 4219869 Business Flow
33613 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33614 l_budgetary_control_flag := 'N';
33615
33616 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33617 l_bflow_applied_to_amt := NULL; -- 5132302
33618 l_entered_amt_idx := NULL; -- 4262811
33619 l_accted_amt_idx := NULL; -- 4262811
33620 l_acc_rev_flag := NULL; -- 4262811
33621 l_accrual_line_num := NULL; -- 4262811
33622 l_tmp_amt := NULL; -- 4262811
33623 --
33624
33625 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33626 l_balance_type_code <> 'B' THEN
33627
33628 --
33629 XLA_AE_LINES_PKG.SetNewLine;
33630
33631 p_balance_type_code := l_balance_type_code;
33632 -- set the flag so later we will know whether the gain loss line needs to be created
33633
33634 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33635 p_actual_flag :='A';
33636 END IF;
33637
33638 --
33639 -- bulk performance
33640 --
33641 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33642 p_header_num => 0); -- 4262811
33643 --
33644 -- set accounting line options
33645 --
33646 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33647 p_natural_side_code => 'D'
33648 , p_gain_or_loss_flag => 'N'
33649 , p_gl_transfer_mode_code => 'S'
33650 , p_acct_entry_type_code => 'A'
33651 , p_switch_side_flag => 'Y'
33652 , p_merge_duplicate_code => 'N'
33653 );
33654 --
33655 l_acc_rev_natural_side_code := 'C'; -- 4262811
33656 --
33657 --
33658 -- set accounting line type info
33659 --
33660 xla_ae_lines_pkg.SetAcctLineType
33661 (p_component_type => l_component_type
33662 ,p_event_type_code => l_event_type_code
33663 ,p_line_definition_owner_code => l_line_definition_owner_code
33664 ,p_line_definition_code => l_line_definition_code
33665 ,p_accounting_line_code => l_component_code
33666 ,p_accounting_line_type_code => l_component_type_code
33667 ,p_accounting_line_appl_id => l_component_appl_id
33668 ,p_amb_context_code => l_amb_context_code
33669 ,p_entity_code => l_entity_code
33670 ,p_event_class_code => l_event_class_code);
33671 --
33672 -- set accounting class
33673 --
33674 xla_ae_lines_pkg.SetAcctClass(
33675 p_accounting_class_code => 'RECLASS_DESTINATION'
33676 , p_ae_header_id => l_ae_header_id
33677 );
33678
33679 --
33680 -- set rounding class
33681 --
33682 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33683 'RECLASS_DESTINATION';
33684
33685 --
33686 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33687 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33688 --
33689 -- bulk performance
33690 --
33691 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33692
33693 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33694 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33695
33696 -- 4955764
33697 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33698 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33699
33700 -- 4458381 Public Sector Enh
33701
33702 --
33703 -- set accounting attributes for the line type
33704 --
33705 l_entered_amt_idx := 22;
33706 l_accted_amt_idx := 27;
33707 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33708 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33709 l_rec_acct_attrs.array_char_value(1) := p_source_22;
33710 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
33711 l_rec_acct_attrs.array_char_value(2) := p_source_23;
33712 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
33713 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_13);
33714 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
33715 l_rec_acct_attrs.array_num_value(4) := p_source_41;
33716 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
33717 l_rec_acct_attrs.array_char_value(5) := p_source_25;
33718 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
33719 l_rec_acct_attrs.array_num_value(6) := p_source_43;
33720 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
33721 l_rec_acct_attrs.array_date_value(7) := p_source_27;
33722 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
33723 l_rec_acct_attrs.array_num_value(8) := p_source_28;
33724 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
33725 l_rec_acct_attrs.array_char_value(9) := p_source_29;
33726 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
33730 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
33727 l_rec_acct_attrs.array_char_value(10) := p_source_30;
33728 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
33729 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_11);
33731 l_rec_acct_attrs.array_num_value(12) := p_source_41;
33732 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
33733 l_rec_acct_attrs.array_char_value(13) := p_source_25;
33734 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
33735 l_rec_acct_attrs.array_num_value(14) := p_source_43;
33736 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
33737 l_rec_acct_attrs.array_date_value(15) := p_source_27;
33738 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
33739 l_rec_acct_attrs.array_num_value(16) := p_source_28;
33740 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
33741 l_rec_acct_attrs.array_char_value(17) := p_source_29;
33742 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
33743 l_rec_acct_attrs.array_char_value(18) := p_source_31;
33744 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
33745 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
33746 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
33747 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
33748 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
33749 l_rec_acct_attrs.array_char_value(21) := p_source_34;
33750 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
33751 l_rec_acct_attrs.array_num_value(22) := p_source_41;
33752 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
33753 l_rec_acct_attrs.array_char_value(23) := p_source_25;
33754 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
33755 l_rec_acct_attrs.array_date_value(24) := p_source_27;
33756 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
33757 l_rec_acct_attrs.array_num_value(25) := p_source_28;
33758 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
33759 l_rec_acct_attrs.array_char_value(26) := p_source_29;
33760 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
33761 l_rec_acct_attrs.array_num_value(27) := p_source_43;
33762 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
33763 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
33764 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
33765 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
33766 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
33767 l_rec_acct_attrs.array_char_value(30) := p_source_34;
33768
33769 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33770 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33771
33772 ---------------------------------------------------------------------------------------------------------------
33773 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33774 ---------------------------------------------------------------------------------------------------------------
33775 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33776
33777 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33778 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33779
33780 IF xla_accounting_cache_pkg.GetValueChar
33781 (p_source_code => 'LEDGER_CATEGORY_CODE'
33782 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33783 AND l_bflow_method_code = 'PRIOR_ENTRY'
33784 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33785 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33786 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33787 )
33788 THEN
33789 xla_ae_lines_pkg.BflowUpgEntry
33790 (p_business_method_code => l_bflow_method_code
33791 ,p_business_class_code => l_bflow_class_code
33792 ,p_balance_type => l_balance_type_code);
33793 ELSE
33794 NULL;
33795 -- No business flow processing for business flow method of NONE.
33796 END IF;
33797
33798 --
33799 -- call analytical criteria
33800 --
33801
33802 --
33803 -- call description
33804 --
33805 -- No description or it is inherited.
33806 --
33807 -- call ADRs
33808 -- Bug 4922099
33809 --
33810 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33811 (NVL(l_actual_upg_option, 'N') = 'O') OR
33812 (NVL(l_enc_upg_option, 'N') = 'O')
33813 )
33814 THEN
33815 NULL;
33816 --
33817 --
33818
33819 l_ccid := AcctDerRule_11(
33820 p_application_id => p_application_id
33821 , p_ae_header_id => l_ae_header_id
33822 , p_source_4 => p_source_4
33823 , p_source_12 => p_source_12
33824 , x_transaction_coa_id => l_adr_transaction_coa_id
33825 , x_accounting_coa_id => l_adr_accounting_coa_id
33826 , x_value_type_code => l_adr_value_type_code
33827 , p_side => 'NA'
33828 );
33829
33830 xla_ae_lines_pkg.set_ccid(
33831 p_code_combination_id => l_ccid
33832 , p_value_type_code => l_adr_value_type_code
33833 , p_transaction_coa_id => l_adr_transaction_coa_id
33834 , p_accounting_coa_id => l_adr_accounting_coa_id
33835 , p_adr_code => 'PA_RECLASS_DEST_ADJ_ACCT_RULE'
33836 , p_adr_type_code => 'S'
33840 , p_component_appl_id => l_component_appl_id
33837 , p_component_type => l_component_type
33838 , p_component_code => l_component_code
33839 , p_component_type_code => l_component_type_code
33841 , p_amb_context_code => l_amb_context_code
33842 , p_side => 'NA'
33843 );
33844
33845
33846 --
33847 --
33848 END IF;
33849 --
33850 -- Bug 4922099
33851 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33852 (NVL(l_enc_upg_option, 'N') = 'O')
33853 ) AND
33854 (l_bflow_method_code = 'PRIOR_ENTRY')
33855 )
33856 THEN
33857 IF
33858 --
33859 1 = 2
33860 --
33861 THEN
33862 xla_accounting_err_pkg.build_message
33863 (p_appli_s_name => 'XLA'
33864 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33865 ,p_token_1 => 'LINE_NUMBER'
33866 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33867 ,p_token_2 => 'LINE_TYPE_NAME'
33868 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33869 l_component_type
33870 ,l_component_code
33871 ,l_component_type_code
33872 ,l_component_appl_id
33873 ,l_amb_context_code
33874 ,l_entity_code
33875 ,l_event_class_code
33876 )
33877 ,p_token_3 => 'OWNER'
33878 ,p_value_3 => xla_lookups_pkg.get_meaning(
33879 p_lookup_type => 'XLA_OWNER_TYPE'
33880 ,p_lookup_code => l_component_type_code
33881 )
33882 ,p_token_4 => 'PRODUCT_NAME'
33883 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33884 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33885 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33886 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33887 ,p_ae_header_id => NULL
33888 );
33889
33890 IF (C_LEVEL_ERROR>= g_log_level) THEN
33891 trace
33892 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33893 ,p_level => C_LEVEL_ERROR
33894 ,p_module => l_log_module);
33895 END IF;
33896 END IF;
33897 END IF;
33898 --
33899 --
33900 ------------------------------------------------------------------------------------------------
33901 -- 4219869 Business Flow
33902 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33903 -- Prior Entry. Currently, the following code is always generated.
33904 ------------------------------------------------------------------------------------------------
33905 XLA_AE_LINES_PKG.ValidateCurrentLine;
33906
33907 ------------------------------------------------------------------------------------
33908 -- 4219869 Business Flow
33909 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33910 ------------------------------------------------------------------------------------
33911 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33912
33913 ----------------------------------------------------------------------------------
33914 -- 4219869 Business Flow
33915 -- Update journal entry status -- Need to generate this within IF <condition>
33916 ----------------------------------------------------------------------------------
33917 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33918 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33919 ,p_balance_type_code => l_balance_type_code
33920 );
33921
33922 -------------------------------------------------------------------------------------------
33923 -- 4262811 - Generate the Accrual Reversal lines
33924 -------------------------------------------------------------------------------------------
33925 BEGIN
33926 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33927 (g_array_event(p_event_id).array_value_num('header_index'));
33928 IF l_acc_rev_flag IS NULL THEN
33929 l_acc_rev_flag := 'N';
33930 END IF;
33931 EXCEPTION
33932 WHEN OTHERS THEN
33933 l_acc_rev_flag := 'N';
33934 END;
33935 --
33936 IF (l_acc_rev_flag = 'Y') THEN
33937
33938 -- 4645092 ------------------------------------------------------------------------------
33939 -- To allow MPA report to determine if it should generate report process
33940 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33941 ------------------------------------------------------------------------------------------
33942
33946 --
33943 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33944 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33945
33947 -- Update the line information that should be overwritten
33948 --
33949 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33950 p_header_num => 1);
33951 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33952
33953 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33954
33955 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33956 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33957 END IF;
33958
33959 --
33960 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33961 --
33962 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33963 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33964 ELSE
33965 ---------------------------------------------------------------------------------------------------
33966 -- 4262811a Switch Sign
33967 ---------------------------------------------------------------------------------------------------
33968 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33969 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33970 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33971 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33972 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33973 -- 5132302
33974 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33975 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33976
33977 END IF;
33978
33979 -- 4955764
33980 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33981 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33982
33983
33984 XLA_AE_LINES_PKG.ValidateCurrentLine;
33985 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33986
33987 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33988 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33989 ,p_balance_type_code => l_balance_type_code);
33990
33991 END IF;
33992
33993 -----------------------------------------------------------------------------------------
33994 -- 4262811 Multiperiod Accounting
33995 -----------------------------------------------------------------------------------------
33996 -- No MPA option is assigned.
33997
33998
33999 END IF;
34000 --
34001
34002 --
34003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34004 trace
34005 (p_msg => 'END of AcctLineType_74'
34006 ,p_level => C_LEVEL_PROCEDURE
34007 ,p_module => l_log_module);
34008 END IF;
34009 --
34010 EXCEPTION
34011 WHEN xla_exceptions_pkg.application_exception THEN
34012 RAISE;
34013 WHEN OTHERS THEN
34014 xla_exceptions_pkg.raise_message
34015 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_74');
34016 END AcctLineType_74;
34017 --
34018
34019 ---------------------------------------
34020 --
34021 -- PRIVATE FUNCTION
34022 -- AcctLineType_75
34023 --
34024 ---------------------------------------
34025 PROCEDURE AcctLineType_75 (
34026 p_application_id IN NUMBER
34027 ,p_event_id IN NUMBER
34028 ,p_calculate_acctd_flag IN VARCHAR2
34029 ,p_calculate_g_l_flag IN VARCHAR2
34030 ,p_actual_flag IN OUT VARCHAR2
34031 ,p_balance_type_code OUT VARCHAR2
34032 ,p_gain_or_loss_ref OUT VARCHAR2
34033
34034 --Allow Account Override Flag
34035 , p_source_4 IN VARCHAR2
34036 --Provider Cost Destination CCID
34037 , p_source_11 IN NUMBER
34038 --Provider Cost Source CCID
34039 , p_source_13 IN NUMBER
34040 --Adjustment Provider Cost Source CCID
34041 , p_source_14 IN NUMBER
34042 --Reversing Line Flag
34043 , p_source_22 IN VARCHAR2
34044 --Actual Upgrade Credit Accounting Class
34045 , p_source_23 IN VARCHAR2
34046 --Entered Currency Code
34047 , p_source_25 IN VARCHAR2
34048 --Exchange Rate Date
34049 , p_source_27 IN DATE
34050 --Exchange Rate
34051 , p_source_28 IN NUMBER
34052 --Exchange Rate Type
34053 , p_source_29 IN VARCHAR2
34054 --Actual Upgrade Debit Accounting Class
34055 , p_source_30 IN VARCHAR2
34056 --Use Actuals Upgrade Attributes Flag
34057 , p_source_31 IN VARCHAR2
34058 --Expenditure Item ID
34059 , p_source_32 IN NUMBER
34060 --Cost Distribution Line Number
34061 , p_source_33 IN NUMBER
34062 --Line Type
34063 , p_source_34 IN VARCHAR2
34064 , p_source_34_meaning IN VARCHAR2
34065 --Reversed Line Number
34066 , p_source_35 IN NUMBER
34067 --Entered Amount
34068 , p_source_41 IN NUMBER
34069 --Accounted Amount
34070 , p_source_43 IN NUMBER
34071 )
34072 IS
34073
34074 l_component_type VARCHAR2(80);
34075 l_component_code VARCHAR2(30);
34076 l_component_type_code VARCHAR2(1);
34080 l_event_class_code VARCHAR2(30);
34077 l_component_appl_id INTEGER;
34078 l_amb_context_code VARCHAR2(30);
34079 l_entity_code VARCHAR2(30);
34081 l_ae_header_id NUMBER;
34082 l_event_type_code VARCHAR2(30);
34083 l_line_definition_code VARCHAR2(30);
34084 l_line_definition_owner_code VARCHAR2(1);
34085 --
34086 -- adr variables
34087 l_segment VARCHAR2(30);
34088 l_ccid NUMBER;
34089 l_adr_transaction_coa_id NUMBER;
34090 l_adr_accounting_coa_id NUMBER;
34091 l_adr_flexfield_segment_code VARCHAR2(30);
34092 l_adr_flex_value_set_id NUMBER;
34093 l_adr_value_type_code VARCHAR2(30);
34094 l_adr_value_combination_id NUMBER;
34095 l_adr_value_segment_code VARCHAR2(30);
34096
34097 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34098 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34099 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34100 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34101
34102 -- 4262811 Variables ------------------------------------------------------------------------------------------
34103 l_entered_amt_idx NUMBER;
34104 l_accted_amt_idx NUMBER;
34105 l_acc_rev_flag VARCHAR2(1);
34106 l_accrual_line_num NUMBER;
34107 l_tmp_amt NUMBER;
34108 l_acc_rev_natural_side_code VARCHAR2(1);
34109
34110 l_num_entries NUMBER;
34111 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34112 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34113 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34114 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34115 l_recog_line_1 NUMBER;
34116 l_recog_line_2 NUMBER;
34117
34118 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34119 l_bflow_applied_to_amt NUMBER; -- 5132302
34120 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34121
34122 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34123
34124 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34125 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34126
34127 ---------------------------------------------------------------------------------------------------------------
34128
34129
34130 --
34131 -- bulk performance
34132 --
34133 l_balance_type_code VARCHAR2(1);
34134 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34135 l_log_module VARCHAR2(240);
34136
34137 --
34138 -- Upgrade strategy
34139 --
34140 l_actual_upg_option VARCHAR2(1);
34141 l_enc_upg_option VARCHAR2(1);
34142
34143 --
34144 BEGIN
34145 --
34146 IF g_log_enabled THEN
34147 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
34148 END IF;
34149 --
34150 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34151
34152 trace
34153 (p_msg => 'BEGIN of AcctLineType_75'
34154 ,p_level => C_LEVEL_PROCEDURE
34155 ,p_module => l_log_module);
34156
34157 END IF;
34158 --
34159 l_component_type := 'AMB_JLT';
34160 l_component_code := 'PA_RECLASS_SOURCE';
34161 l_component_type_code := 'S';
34162 l_component_appl_id := 275;
34163 l_amb_context_code := 'DEFAULT';
34164 l_entity_code := 'EXPENDITURES';
34165 l_event_class_code := 'PRVDR_RECVR_RECLASS';
34166 l_event_type_code := 'PRVDR_RECVR_RECLASS_ALL';
34167 l_line_definition_owner_code := 'S';
34168 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
34169 --
34170 l_balance_type_code := 'A';
34171 l_segment := NULL;
34172 l_ccid := NULL;
34173 l_adr_transaction_coa_id := NULL;
34174 l_adr_accounting_coa_id := NULL;
34175 l_adr_flexfield_segment_code := NULL;
34176 l_adr_flex_value_set_id := NULL;
34177 l_adr_value_type_code := NULL;
34178 l_adr_value_combination_id := NULL;
34179 l_adr_value_segment_code := NULL;
34180
34181 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34182 l_bflow_class_code := ''; -- 4219869 Business Flow
34183 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34184 l_budgetary_control_flag := 'N';
34185
34186 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34187 l_bflow_applied_to_amt := NULL; -- 5132302
34188 l_entered_amt_idx := NULL; -- 4262811
34189 l_accted_amt_idx := NULL; -- 4262811
34190 l_acc_rev_flag := NULL; -- 4262811
34191 l_accrual_line_num := NULL; -- 4262811
34192 l_tmp_amt := NULL; -- 4262811
34193 --
34194
34195 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34196 l_balance_type_code <> 'B' THEN
34197
34198 --
34199 XLA_AE_LINES_PKG.SetNewLine;
34200
34201 p_balance_type_code := l_balance_type_code;
34202 -- set the flag so later we will know whether the gain loss line needs to be created
34203
34204 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34205 p_actual_flag :='A';
34206 END IF;
34207
34208 --
34209 -- bulk performance
34210 --
34211 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34212 p_header_num => 0); -- 4262811
34213 --
34217 p_natural_side_code => 'C'
34214 -- set accounting line options
34215 --
34216 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34218 , p_gain_or_loss_flag => 'N'
34219 , p_gl_transfer_mode_code => 'S'
34220 , p_acct_entry_type_code => 'A'
34221 , p_switch_side_flag => 'Y'
34222 , p_merge_duplicate_code => 'N'
34223 );
34224 --
34225 l_acc_rev_natural_side_code := 'D'; -- 4262811
34226 --
34227 --
34228 -- set accounting line type info
34229 --
34230 xla_ae_lines_pkg.SetAcctLineType
34231 (p_component_type => l_component_type
34232 ,p_event_type_code => l_event_type_code
34233 ,p_line_definition_owner_code => l_line_definition_owner_code
34234 ,p_line_definition_code => l_line_definition_code
34235 ,p_accounting_line_code => l_component_code
34236 ,p_accounting_line_type_code => l_component_type_code
34237 ,p_accounting_line_appl_id => l_component_appl_id
34238 ,p_amb_context_code => l_amb_context_code
34239 ,p_entity_code => l_entity_code
34240 ,p_event_class_code => l_event_class_code);
34241 --
34242 -- set accounting class
34243 --
34244 xla_ae_lines_pkg.SetAcctClass(
34245 p_accounting_class_code => 'RECLASS_SOURCE'
34246 , p_ae_header_id => l_ae_header_id
34247 );
34248
34249 --
34250 -- set rounding class
34251 --
34252 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34253 'RECLASS_SOURCE';
34254
34255 --
34256 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34257 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34258 --
34259 -- bulk performance
34260 --
34261 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34262
34263 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34264 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34265
34266 -- 4955764
34267 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34268 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34269
34270 -- 4458381 Public Sector Enh
34271
34272 --
34273 -- set accounting attributes for the line type
34274 --
34275 l_entered_amt_idx := 22;
34276 l_accted_amt_idx := 27;
34277 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34278 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34279 l_rec_acct_attrs.array_char_value(1) := p_source_22;
34280 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
34281 l_rec_acct_attrs.array_char_value(2) := p_source_23;
34282 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
34283 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_13);
34284 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
34285 l_rec_acct_attrs.array_num_value(4) := p_source_41;
34286 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
34287 l_rec_acct_attrs.array_char_value(5) := p_source_25;
34288 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
34289 l_rec_acct_attrs.array_num_value(6) := p_source_43;
34290 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
34291 l_rec_acct_attrs.array_date_value(7) := p_source_27;
34292 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
34293 l_rec_acct_attrs.array_num_value(8) := p_source_28;
34294 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
34295 l_rec_acct_attrs.array_char_value(9) := p_source_29;
34296 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
34297 l_rec_acct_attrs.array_char_value(10) := p_source_30;
34298 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
34299 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_11);
34300 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
34301 l_rec_acct_attrs.array_num_value(12) := p_source_41;
34302 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
34303 l_rec_acct_attrs.array_char_value(13) := p_source_25;
34304 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
34305 l_rec_acct_attrs.array_num_value(14) := p_source_43;
34306 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
34307 l_rec_acct_attrs.array_date_value(15) := p_source_27;
34308 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
34309 l_rec_acct_attrs.array_num_value(16) := p_source_28;
34310 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
34311 l_rec_acct_attrs.array_char_value(17) := p_source_29;
34312 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
34313 l_rec_acct_attrs.array_char_value(18) := p_source_31;
34314 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
34315 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
34316 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
34317 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
34318 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
34319 l_rec_acct_attrs.array_char_value(21) := p_source_34;
34320 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
34321 l_rec_acct_attrs.array_num_value(22) := p_source_41;
34322 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
34323 l_rec_acct_attrs.array_char_value(23) := p_source_25;
34327 l_rec_acct_attrs.array_num_value(25) := p_source_28;
34324 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
34325 l_rec_acct_attrs.array_date_value(24) := p_source_27;
34326 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
34328 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
34329 l_rec_acct_attrs.array_char_value(26) := p_source_29;
34330 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
34331 l_rec_acct_attrs.array_num_value(27) := p_source_43;
34332 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
34333 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
34334 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
34335 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
34336 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
34337 l_rec_acct_attrs.array_char_value(30) := p_source_34;
34338
34339 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34340 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34341
34342 ---------------------------------------------------------------------------------------------------------------
34343 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34344 ---------------------------------------------------------------------------------------------------------------
34345 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34346
34347 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34348 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34349
34350 IF xla_accounting_cache_pkg.GetValueChar
34351 (p_source_code => 'LEDGER_CATEGORY_CODE'
34352 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34353 AND l_bflow_method_code = 'PRIOR_ENTRY'
34354 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34355 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34356 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34357 )
34358 THEN
34359 xla_ae_lines_pkg.BflowUpgEntry
34360 (p_business_method_code => l_bflow_method_code
34361 ,p_business_class_code => l_bflow_class_code
34362 ,p_balance_type => l_balance_type_code);
34363 ELSE
34364 NULL;
34365 -- No business flow processing for business flow method of NONE.
34366 END IF;
34367
34368 --
34369 -- call analytical criteria
34370 --
34371
34372 --
34373 -- call description
34374 --
34375 -- No description or it is inherited.
34376 --
34377 -- call ADRs
34378 -- Bug 4922099
34379 --
34380 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34381 (NVL(l_actual_upg_option, 'N') = 'O') OR
34382 (NVL(l_enc_upg_option, 'N') = 'O')
34383 )
34384 THEN
34385 NULL;
34386 --
34387 --
34388
34389 l_ccid := AcctDerRule_12(
34390 p_application_id => p_application_id
34391 , p_ae_header_id => l_ae_header_id
34392 , p_source_4 => p_source_4
34393 , p_source_13 => p_source_13
34394 , p_source_14 => p_source_14
34395 , x_transaction_coa_id => l_adr_transaction_coa_id
34396 , x_accounting_coa_id => l_adr_accounting_coa_id
34397 , x_value_type_code => l_adr_value_type_code
34398 , p_side => 'NA'
34399 );
34400
34401 xla_ae_lines_pkg.set_ccid(
34402 p_code_combination_id => l_ccid
34403 , p_value_type_code => l_adr_value_type_code
34404 , p_transaction_coa_id => l_adr_transaction_coa_id
34405 , p_accounting_coa_id => l_adr_accounting_coa_id
34406 , p_adr_code => 'PA_RECLASS_SOURCE_ACCT_RULE'
34407 , p_adr_type_code => 'S'
34408 , p_component_type => l_component_type
34409 , p_component_code => l_component_code
34410 , p_component_type_code => l_component_type_code
34411 , p_component_appl_id => l_component_appl_id
34412 , p_amb_context_code => l_amb_context_code
34413 , p_side => 'NA'
34414 );
34415
34416
34417 --
34418 --
34419 END IF;
34420 --
34421 -- Bug 4922099
34422 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34423 (NVL(l_enc_upg_option, 'N') = 'O')
34424 ) AND
34425 (l_bflow_method_code = 'PRIOR_ENTRY')
34426 )
34427 THEN
34428 IF
34429 --
34430 1 = 2
34431 --
34432 THEN
34433 xla_accounting_err_pkg.build_message
34434 (p_appli_s_name => 'XLA'
34435 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34436 ,p_token_1 => 'LINE_NUMBER'
34437 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34438 ,p_token_2 => 'LINE_TYPE_NAME'
34439 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34440 l_component_type
34441 ,l_component_code
34442 ,l_component_type_code
34443 ,l_component_appl_id
34447 )
34444 ,l_amb_context_code
34445 ,l_entity_code
34446 ,l_event_class_code
34448 ,p_token_3 => 'OWNER'
34449 ,p_value_3 => xla_lookups_pkg.get_meaning(
34450 p_lookup_type => 'XLA_OWNER_TYPE'
34451 ,p_lookup_code => l_component_type_code
34452 )
34453 ,p_token_4 => 'PRODUCT_NAME'
34454 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34455 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34456 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34457 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34458 ,p_ae_header_id => NULL
34459 );
34460
34461 IF (C_LEVEL_ERROR>= g_log_level) THEN
34462 trace
34463 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34464 ,p_level => C_LEVEL_ERROR
34465 ,p_module => l_log_module);
34466 END IF;
34467 END IF;
34468 END IF;
34469 --
34470 --
34471 ------------------------------------------------------------------------------------------------
34472 -- 4219869 Business Flow
34473 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34474 -- Prior Entry. Currently, the following code is always generated.
34475 ------------------------------------------------------------------------------------------------
34476 XLA_AE_LINES_PKG.ValidateCurrentLine;
34477
34478 ------------------------------------------------------------------------------------
34479 -- 4219869 Business Flow
34480 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34481 ------------------------------------------------------------------------------------
34482 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34483
34484 ----------------------------------------------------------------------------------
34485 -- 4219869 Business Flow
34486 -- Update journal entry status -- Need to generate this within IF <condition>
34487 ----------------------------------------------------------------------------------
34488 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34489 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34490 ,p_balance_type_code => l_balance_type_code
34491 );
34492
34493 -------------------------------------------------------------------------------------------
34494 -- 4262811 - Generate the Accrual Reversal lines
34495 -------------------------------------------------------------------------------------------
34496 BEGIN
34497 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34498 (g_array_event(p_event_id).array_value_num('header_index'));
34499 IF l_acc_rev_flag IS NULL THEN
34500 l_acc_rev_flag := 'N';
34501 END IF;
34502 EXCEPTION
34503 WHEN OTHERS THEN
34504 l_acc_rev_flag := 'N';
34505 END;
34506 --
34507 IF (l_acc_rev_flag = 'Y') THEN
34508
34509 -- 4645092 ------------------------------------------------------------------------------
34510 -- To allow MPA report to determine if it should generate report process
34511 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34512 ------------------------------------------------------------------------------------------
34513
34514 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34515 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34516
34517 --
34518 -- Update the line information that should be overwritten
34519 --
34520 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34521 p_header_num => 1);
34522 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34523
34524 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34525
34526 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34527 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34528 END IF;
34529
34530 --
34531 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34532 --
34533 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34534 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34535 ELSE
34536 ---------------------------------------------------------------------------------------------------
34537 -- 4262811a Switch Sign
34538 ---------------------------------------------------------------------------------------------------
34539 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34540 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34541 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34545 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34542 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34543 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34544 -- 5132302
34546 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34547
34548 END IF;
34549
34550 -- 4955764
34551 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34552 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34553
34554
34555 XLA_AE_LINES_PKG.ValidateCurrentLine;
34556 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34557
34558 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34559 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34560 ,p_balance_type_code => l_balance_type_code);
34561
34562 END IF;
34563
34564 -----------------------------------------------------------------------------------------
34565 -- 4262811 Multiperiod Accounting
34566 -----------------------------------------------------------------------------------------
34567 -- No MPA option is assigned.
34568
34569
34570 END IF;
34571 --
34572
34573 --
34574 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34575 trace
34576 (p_msg => 'END of AcctLineType_75'
34577 ,p_level => C_LEVEL_PROCEDURE
34578 ,p_module => l_log_module);
34579 END IF;
34580 --
34581 EXCEPTION
34582 WHEN xla_exceptions_pkg.application_exception THEN
34583 RAISE;
34584 WHEN OTHERS THEN
34585 xla_exceptions_pkg.raise_message
34586 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_75');
34587 END AcctLineType_75;
34588 --
34589
34590 ---------------------------------------
34591 --
34592 -- PRIVATE FUNCTION
34593 -- AcctLineType_76
34594 --
34595 ---------------------------------------
34596 PROCEDURE AcctLineType_76 (
34597 p_application_id IN NUMBER
34598 ,p_event_id IN NUMBER
34599 ,p_calculate_acctd_flag IN VARCHAR2
34600 ,p_calculate_g_l_flag IN VARCHAR2
34601 ,p_actual_flag IN OUT VARCHAR2
34602 ,p_balance_type_code OUT VARCHAR2
34603 ,p_gain_or_loss_ref OUT VARCHAR2
34604
34605 --Allow Account Override Flag
34606 , p_source_4 IN VARCHAR2
34607 --Provider Cost Destination CCID
34608 , p_source_11 IN NUMBER
34609 --Provider Cost Source CCID
34610 , p_source_13 IN NUMBER
34611 --Adjustment Provider Cost Source CCID
34612 , p_source_14 IN NUMBER
34613 --Reversing Line Flag
34614 , p_source_22 IN VARCHAR2
34615 --Actual Upgrade Credit Accounting Class
34616 , p_source_23 IN VARCHAR2
34617 --Entered Currency Code
34618 , p_source_25 IN VARCHAR2
34619 --Exchange Rate Date
34620 , p_source_27 IN DATE
34621 --Exchange Rate
34622 , p_source_28 IN NUMBER
34623 --Exchange Rate Type
34624 , p_source_29 IN VARCHAR2
34625 --Actual Upgrade Debit Accounting Class
34626 , p_source_30 IN VARCHAR2
34627 --Use Actuals Upgrade Attributes Flag
34628 , p_source_31 IN VARCHAR2
34629 --Expenditure Item ID
34630 , p_source_32 IN NUMBER
34631 --Cost Distribution Line Number
34632 , p_source_33 IN NUMBER
34633 --Line Type
34634 , p_source_34 IN VARCHAR2
34635 , p_source_34_meaning IN VARCHAR2
34636 --Reversed Line Number
34637 , p_source_35 IN NUMBER
34638 --Entered Amount
34639 , p_source_41 IN NUMBER
34640 --Accounted Amount
34641 , p_source_43 IN NUMBER
34642 )
34643 IS
34644
34645 l_component_type VARCHAR2(80);
34646 l_component_code VARCHAR2(30);
34647 l_component_type_code VARCHAR2(1);
34648 l_component_appl_id INTEGER;
34649 l_amb_context_code VARCHAR2(30);
34650 l_entity_code VARCHAR2(30);
34651 l_event_class_code VARCHAR2(30);
34652 l_ae_header_id NUMBER;
34653 l_event_type_code VARCHAR2(30);
34654 l_line_definition_code VARCHAR2(30);
34655 l_line_definition_owner_code VARCHAR2(1);
34656 --
34657 -- adr variables
34658 l_segment VARCHAR2(30);
34659 l_ccid NUMBER;
34660 l_adr_transaction_coa_id NUMBER;
34661 l_adr_accounting_coa_id NUMBER;
34662 l_adr_flexfield_segment_code VARCHAR2(30);
34663 l_adr_flex_value_set_id NUMBER;
34664 l_adr_value_type_code VARCHAR2(30);
34665 l_adr_value_combination_id NUMBER;
34666 l_adr_value_segment_code VARCHAR2(30);
34667
34668 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34669 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34670 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34671 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34672
34673 -- 4262811 Variables ------------------------------------------------------------------------------------------
34674 l_entered_amt_idx NUMBER;
34675 l_accted_amt_idx NUMBER;
34676 l_acc_rev_flag VARCHAR2(1);
34677 l_accrual_line_num NUMBER;
34678 l_tmp_amt NUMBER;
34679 l_acc_rev_natural_side_code VARCHAR2(1);
34680
34681 l_num_entries NUMBER;
34682 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34683 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34687 l_recog_line_2 NUMBER;
34684 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34685 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34686 l_recog_line_1 NUMBER;
34688
34689 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34690 l_bflow_applied_to_amt NUMBER; -- 5132302
34691 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34692
34693 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34694
34695 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34696 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34697
34698 ---------------------------------------------------------------------------------------------------------------
34699
34700
34701 --
34702 -- bulk performance
34703 --
34704 l_balance_type_code VARCHAR2(1);
34705 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34706 l_log_module VARCHAR2(240);
34707
34708 --
34709 -- Upgrade strategy
34710 --
34711 l_actual_upg_option VARCHAR2(1);
34712 l_enc_upg_option VARCHAR2(1);
34713
34714 --
34715 BEGIN
34716 --
34717 IF g_log_enabled THEN
34718 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
34719 END IF;
34720 --
34721 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34722
34723 trace
34724 (p_msg => 'BEGIN of AcctLineType_76'
34725 ,p_level => C_LEVEL_PROCEDURE
34726 ,p_module => l_log_module);
34727
34728 END IF;
34729 --
34730 l_component_type := 'AMB_JLT';
34731 l_component_code := 'PA_RECLASS_SOURCE_ADJ';
34732 l_component_type_code := 'S';
34733 l_component_appl_id := 275;
34734 l_amb_context_code := 'DEFAULT';
34735 l_entity_code := 'EXPENDITURES';
34736 l_event_class_code := 'PRVDR_RECVR_RECLASS_ADJ';
34737 l_event_type_code := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
34738 l_line_definition_owner_code := 'S';
34739 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
34740 --
34741 l_balance_type_code := 'A';
34742 l_segment := NULL;
34743 l_ccid := NULL;
34744 l_adr_transaction_coa_id := NULL;
34745 l_adr_accounting_coa_id := NULL;
34746 l_adr_flexfield_segment_code := NULL;
34747 l_adr_flex_value_set_id := NULL;
34748 l_adr_value_type_code := NULL;
34749 l_adr_value_combination_id := NULL;
34750 l_adr_value_segment_code := NULL;
34751
34752 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34753 l_bflow_class_code := ''; -- 4219869 Business Flow
34754 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34755 l_budgetary_control_flag := 'N';
34756
34757 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34758 l_bflow_applied_to_amt := NULL; -- 5132302
34759 l_entered_amt_idx := NULL; -- 4262811
34760 l_accted_amt_idx := NULL; -- 4262811
34761 l_acc_rev_flag := NULL; -- 4262811
34762 l_accrual_line_num := NULL; -- 4262811
34763 l_tmp_amt := NULL; -- 4262811
34764 --
34765
34766 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34767 l_balance_type_code <> 'B' THEN
34768
34769 --
34770 XLA_AE_LINES_PKG.SetNewLine;
34771
34772 p_balance_type_code := l_balance_type_code;
34773 -- set the flag so later we will know whether the gain loss line needs to be created
34774
34775 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34776 p_actual_flag :='A';
34777 END IF;
34778
34779 --
34780 -- bulk performance
34781 --
34782 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34783 p_header_num => 0); -- 4262811
34784 --
34785 -- set accounting line options
34786 --
34787 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34788 p_natural_side_code => 'C'
34789 , p_gain_or_loss_flag => 'N'
34790 , p_gl_transfer_mode_code => 'S'
34791 , p_acct_entry_type_code => 'A'
34792 , p_switch_side_flag => 'Y'
34793 , p_merge_duplicate_code => 'N'
34794 );
34795 --
34796 l_acc_rev_natural_side_code := 'D'; -- 4262811
34797 --
34798 --
34799 -- set accounting line type info
34800 --
34801 xla_ae_lines_pkg.SetAcctLineType
34802 (p_component_type => l_component_type
34803 ,p_event_type_code => l_event_type_code
34804 ,p_line_definition_owner_code => l_line_definition_owner_code
34805 ,p_line_definition_code => l_line_definition_code
34806 ,p_accounting_line_code => l_component_code
34807 ,p_accounting_line_type_code => l_component_type_code
34808 ,p_accounting_line_appl_id => l_component_appl_id
34809 ,p_amb_context_code => l_amb_context_code
34810 ,p_entity_code => l_entity_code
34811 ,p_event_class_code => l_event_class_code);
34812 --
34813 -- set accounting class
34814 --
34815 xla_ae_lines_pkg.SetAcctClass(
34816 p_accounting_class_code => 'RECLASS_SOURCE'
34817 , p_ae_header_id => l_ae_header_id
34818 );
34819
34820 --
34821 -- set rounding class
34822 --
34823 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34827 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34824 'RECLASS_SOURCE';
34825
34826 --
34828 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34829 --
34830 -- bulk performance
34831 --
34832 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34833
34834 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34835 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34836
34837 -- 4955764
34838 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34839 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34840
34841 -- 4458381 Public Sector Enh
34842
34843 --
34844 -- set accounting attributes for the line type
34845 --
34846 l_entered_amt_idx := 22;
34847 l_accted_amt_idx := 27;
34848 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34849 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34850 l_rec_acct_attrs.array_char_value(1) := p_source_22;
34851 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
34852 l_rec_acct_attrs.array_char_value(2) := p_source_23;
34853 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
34854 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_13);
34855 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
34856 l_rec_acct_attrs.array_num_value(4) := p_source_41;
34857 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
34858 l_rec_acct_attrs.array_char_value(5) := p_source_25;
34859 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
34860 l_rec_acct_attrs.array_num_value(6) := p_source_43;
34861 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
34862 l_rec_acct_attrs.array_date_value(7) := p_source_27;
34863 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
34864 l_rec_acct_attrs.array_num_value(8) := p_source_28;
34865 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
34866 l_rec_acct_attrs.array_char_value(9) := p_source_29;
34867 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
34868 l_rec_acct_attrs.array_char_value(10) := p_source_30;
34869 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
34870 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_11);
34871 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
34872 l_rec_acct_attrs.array_num_value(12) := p_source_41;
34873 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
34874 l_rec_acct_attrs.array_char_value(13) := p_source_25;
34875 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
34876 l_rec_acct_attrs.array_num_value(14) := p_source_43;
34877 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
34878 l_rec_acct_attrs.array_date_value(15) := p_source_27;
34879 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
34880 l_rec_acct_attrs.array_num_value(16) := p_source_28;
34881 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
34882 l_rec_acct_attrs.array_char_value(17) := p_source_29;
34883 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
34884 l_rec_acct_attrs.array_char_value(18) := p_source_31;
34885 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
34886 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
34887 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
34888 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
34889 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
34890 l_rec_acct_attrs.array_char_value(21) := p_source_34;
34891 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
34892 l_rec_acct_attrs.array_num_value(22) := p_source_41;
34893 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
34894 l_rec_acct_attrs.array_char_value(23) := p_source_25;
34895 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
34896 l_rec_acct_attrs.array_date_value(24) := p_source_27;
34897 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
34898 l_rec_acct_attrs.array_num_value(25) := p_source_28;
34899 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
34900 l_rec_acct_attrs.array_char_value(26) := p_source_29;
34901 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
34902 l_rec_acct_attrs.array_num_value(27) := p_source_43;
34903 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
34904 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
34905 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
34906 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
34907 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
34908 l_rec_acct_attrs.array_char_value(30) := p_source_34;
34909
34910 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34911 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34912
34913 ---------------------------------------------------------------------------------------------------------------
34914 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34915 ---------------------------------------------------------------------------------------------------------------
34916 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34917
34918 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34922 (p_source_code => 'LEDGER_CATEGORY_CODE'
34919 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34920
34921 IF xla_accounting_cache_pkg.GetValueChar
34923 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34924 AND l_bflow_method_code = 'PRIOR_ENTRY'
34925 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34926 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34927 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34928 )
34929 THEN
34930 xla_ae_lines_pkg.BflowUpgEntry
34931 (p_business_method_code => l_bflow_method_code
34932 ,p_business_class_code => l_bflow_class_code
34933 ,p_balance_type => l_balance_type_code);
34934 ELSE
34935 NULL;
34936 -- No business flow processing for business flow method of NONE.
34937 END IF;
34938
34939 --
34940 -- call analytical criteria
34941 --
34942
34943 --
34944 -- call description
34945 --
34946 -- No description or it is inherited.
34947 --
34948 -- call ADRs
34949 -- Bug 4922099
34950 --
34951 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34952 (NVL(l_actual_upg_option, 'N') = 'O') OR
34953 (NVL(l_enc_upg_option, 'N') = 'O')
34954 )
34955 THEN
34956 NULL;
34957 --
34958 --
34959
34960 l_ccid := AcctDerRule_13(
34961 p_application_id => p_application_id
34962 , p_ae_header_id => l_ae_header_id
34963 , p_source_4 => p_source_4
34964 , p_source_14 => p_source_14
34965 , x_transaction_coa_id => l_adr_transaction_coa_id
34966 , x_accounting_coa_id => l_adr_accounting_coa_id
34967 , x_value_type_code => l_adr_value_type_code
34968 , p_side => 'NA'
34969 );
34970
34971 xla_ae_lines_pkg.set_ccid(
34972 p_code_combination_id => l_ccid
34973 , p_value_type_code => l_adr_value_type_code
34974 , p_transaction_coa_id => l_adr_transaction_coa_id
34975 , p_accounting_coa_id => l_adr_accounting_coa_id
34976 , p_adr_code => 'PA_RECLASS_SRC_ADJ_ACCT_RULE'
34977 , p_adr_type_code => 'S'
34978 , p_component_type => l_component_type
34979 , p_component_code => l_component_code
34980 , p_component_type_code => l_component_type_code
34981 , p_component_appl_id => l_component_appl_id
34982 , p_amb_context_code => l_amb_context_code
34983 , p_side => 'NA'
34984 );
34985
34986
34987 --
34988 --
34989 END IF;
34990 --
34991 -- Bug 4922099
34992 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34993 (NVL(l_enc_upg_option, 'N') = 'O')
34994 ) AND
34995 (l_bflow_method_code = 'PRIOR_ENTRY')
34996 )
34997 THEN
34998 IF
34999 --
35000 1 = 2
35001 --
35002 THEN
35003 xla_accounting_err_pkg.build_message
35004 (p_appli_s_name => 'XLA'
35005 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35006 ,p_token_1 => 'LINE_NUMBER'
35007 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35008 ,p_token_2 => 'LINE_TYPE_NAME'
35009 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35010 l_component_type
35011 ,l_component_code
35012 ,l_component_type_code
35013 ,l_component_appl_id
35014 ,l_amb_context_code
35015 ,l_entity_code
35016 ,l_event_class_code
35017 )
35018 ,p_token_3 => 'OWNER'
35019 ,p_value_3 => xla_lookups_pkg.get_meaning(
35020 p_lookup_type => 'XLA_OWNER_TYPE'
35021 ,p_lookup_code => l_component_type_code
35022 )
35023 ,p_token_4 => 'PRODUCT_NAME'
35024 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35025 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35026 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35027 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35028 ,p_ae_header_id => NULL
35029 );
35030
35031 IF (C_LEVEL_ERROR>= g_log_level) THEN
35032 trace
35033 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35034 ,p_level => C_LEVEL_ERROR
35035 ,p_module => l_log_module);
35036 END IF;
35040 --
35037 END IF;
35038 END IF;
35039 --
35041 ------------------------------------------------------------------------------------------------
35042 -- 4219869 Business Flow
35043 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35044 -- Prior Entry. Currently, the following code is always generated.
35045 ------------------------------------------------------------------------------------------------
35046 XLA_AE_LINES_PKG.ValidateCurrentLine;
35047
35048 ------------------------------------------------------------------------------------
35049 -- 4219869 Business Flow
35050 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35051 ------------------------------------------------------------------------------------
35052 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35053
35054 ----------------------------------------------------------------------------------
35055 -- 4219869 Business Flow
35056 -- Update journal entry status -- Need to generate this within IF <condition>
35057 ----------------------------------------------------------------------------------
35058 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35059 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35060 ,p_balance_type_code => l_balance_type_code
35061 );
35062
35063 -------------------------------------------------------------------------------------------
35064 -- 4262811 - Generate the Accrual Reversal lines
35065 -------------------------------------------------------------------------------------------
35066 BEGIN
35067 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35068 (g_array_event(p_event_id).array_value_num('header_index'));
35069 IF l_acc_rev_flag IS NULL THEN
35070 l_acc_rev_flag := 'N';
35071 END IF;
35072 EXCEPTION
35073 WHEN OTHERS THEN
35074 l_acc_rev_flag := 'N';
35075 END;
35076 --
35077 IF (l_acc_rev_flag = 'Y') THEN
35078
35079 -- 4645092 ------------------------------------------------------------------------------
35080 -- To allow MPA report to determine if it should generate report process
35081 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35082 ------------------------------------------------------------------------------------------
35083
35084 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35085 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35086
35087 --
35088 -- Update the line information that should be overwritten
35089 --
35090 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35091 p_header_num => 1);
35092 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35093
35094 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35095
35096 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35097 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35098 END IF;
35099
35100 --
35101 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35102 --
35103 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35104 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35105 ELSE
35106 ---------------------------------------------------------------------------------------------------
35107 -- 4262811a Switch Sign
35108 ---------------------------------------------------------------------------------------------------
35109 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35110 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35111 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35112 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35113 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35114 -- 5132302
35115 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35116 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35117
35118 END IF;
35119
35120 -- 4955764
35121 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35122 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35123
35124
35125 XLA_AE_LINES_PKG.ValidateCurrentLine;
35126 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35127
35128 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35129 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35130 ,p_balance_type_code => l_balance_type_code);
35131
35132 END IF;
35133
35134 -----------------------------------------------------------------------------------------
35135 -- 4262811 Multiperiod Accounting
35136 -----------------------------------------------------------------------------------------
35137 -- No MPA option is assigned.
35138
35139
35140 END IF;
35141 --
35142
35143 --
35144 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35145 trace
35146 (p_msg => 'END of AcctLineType_76'
35147 ,p_level => C_LEVEL_PROCEDURE
35148 ,p_module => l_log_module);
35149 END IF;
35150 --
35151 EXCEPTION
35155 xla_exceptions_pkg.raise_message
35152 WHEN xla_exceptions_pkg.application_exception THEN
35153 RAISE;
35154 WHEN OTHERS THEN
35156 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_76');
35157 END AcctLineType_76;
35158 --
35159
35160 ---------------------------------------
35161 --
35162 -- PRIVATE FUNCTION
35163 -- AcctLineType_77
35164 --
35165 ---------------------------------------
35166 PROCEDURE AcctLineType_77 (
35167 p_application_id IN NUMBER
35168 ,p_event_id IN NUMBER
35169 ,p_calculate_acctd_flag IN VARCHAR2
35170 ,p_calculate_g_l_flag IN VARCHAR2
35171 ,p_actual_flag IN OUT VARCHAR2
35172 ,p_balance_type_code OUT VARCHAR2
35173 ,p_gain_or_loss_ref OUT VARCHAR2
35174
35175 --Actual Upgrade Credit Accounting Class
35176 , p_source_23 IN VARCHAR2
35177 --Entered Currency Code
35178 , p_source_25 IN VARCHAR2
35179 --Exchange Rate Date
35180 , p_source_27 IN DATE
35181 --Exchange Rate
35182 , p_source_28 IN NUMBER
35183 --Exchange Rate Type
35184 , p_source_29 IN VARCHAR2
35185 --Actual Upgrade Debit Accounting Class
35186 , p_source_30 IN VARCHAR2
35187 --Use Actuals Upgrade Attributes Flag
35188 , p_source_31 IN VARCHAR2
35189 --Revenue Distribution Type
35190 , p_source_36 IN VARCHAR2
35191 --Crediting Revenue Flag
35192 , p_source_38 IN VARCHAR2
35193 --Revenue First Distribution ID
35194 , p_source_39 IN NUMBER
35195 --Revenue Second Distribution ID
35196 , p_source_40 IN NUMBER
35197 --Entered Amount
35198 , p_source_41 IN NUMBER
35199 --Event ID
35200 , p_source_42 IN NUMBER
35201 --Accounted Amount
35202 , p_source_43 IN NUMBER
35203 --Actual Upgrade Credit CCID
35204 , p_source_59 IN NUMBER
35205 --Actual Upgrade Debit CCID
35206 , p_source_60 IN NUMBER
35207 --Application ID
35208 , p_source_61 IN NUMBER
35209 --Revenue Entity Code
35210 , p_source_62 IN VARCHAR2
35211 --Crediting Revenue First Distribution ID
35212 , p_source_63 IN NUMBER
35213 --Project ID
35214 , p_source_64 IN NUMBER
35215 --Crediting Revenue Second Distribution ID
35216 , p_source_65 IN NUMBER
35217 --Draft Revenue Number Credited
35218 , p_source_66 IN NUMBER
35219 )
35220 IS
35221
35222 l_component_type VARCHAR2(80);
35223 l_component_code VARCHAR2(30);
35224 l_component_type_code VARCHAR2(1);
35225 l_component_appl_id INTEGER;
35226 l_amb_context_code VARCHAR2(30);
35227 l_entity_code VARCHAR2(30);
35228 l_event_class_code VARCHAR2(30);
35229 l_ae_header_id NUMBER;
35230 l_event_type_code VARCHAR2(30);
35231 l_line_definition_code VARCHAR2(30);
35232 l_line_definition_owner_code VARCHAR2(1);
35233 --
35234 -- adr variables
35235 l_segment VARCHAR2(30);
35236 l_ccid NUMBER;
35237 l_adr_transaction_coa_id NUMBER;
35238 l_adr_accounting_coa_id NUMBER;
35239 l_adr_flexfield_segment_code VARCHAR2(30);
35240 l_adr_flex_value_set_id NUMBER;
35241 l_adr_value_type_code VARCHAR2(30);
35242 l_adr_value_combination_id NUMBER;
35243 l_adr_value_segment_code VARCHAR2(30);
35244
35245 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35246 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35247 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35248 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35249
35250 -- 4262811 Variables ------------------------------------------------------------------------------------------
35251 l_entered_amt_idx NUMBER;
35252 l_accted_amt_idx NUMBER;
35253 l_acc_rev_flag VARCHAR2(1);
35254 l_accrual_line_num NUMBER;
35255 l_tmp_amt NUMBER;
35256 l_acc_rev_natural_side_code VARCHAR2(1);
35257
35258 l_num_entries NUMBER;
35259 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35260 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35261 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35262 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35263 l_recog_line_1 NUMBER;
35264 l_recog_line_2 NUMBER;
35265
35266 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35267 l_bflow_applied_to_amt NUMBER; -- 5132302
35268 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35269
35270 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35271
35272 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35273 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35274
35275 ---------------------------------------------------------------------------------------------------------------
35276
35277
35278 --
35279 -- bulk performance
35280 --
35281 l_balance_type_code VARCHAR2(1);
35282 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35283 l_log_module VARCHAR2(240);
35284
35285 --
35286 -- Upgrade strategy
35287 --
35288 l_actual_upg_option VARCHAR2(1);
35289 l_enc_upg_option VARCHAR2(1);
35290
35291 --
35292 BEGIN
35293 --
35294 IF g_log_enabled THEN
35295 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
35296 END IF;
35300 trace
35297 --
35298 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35299
35301 (p_msg => 'BEGIN of AcctLineType_77'
35302 ,p_level => C_LEVEL_PROCEDURE
35303 ,p_module => l_log_module);
35304
35305 END IF;
35306 --
35307 l_component_type := 'AMB_JLT';
35308 l_component_code := 'PA_REV_ADJ';
35309 l_component_type_code := 'S';
35310 l_component_appl_id := 275;
35311 l_amb_context_code := 'DEFAULT';
35312 l_entity_code := 'REVENUE';
35313 l_event_class_code := 'REVENUE_ADJ';
35314 l_event_type_code := 'REVENUE_ADJ_ALL';
35315 l_line_definition_owner_code := 'S';
35316 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
35317 --
35318 l_balance_type_code := 'A';
35319 l_segment := NULL;
35320 l_ccid := NULL;
35321 l_adr_transaction_coa_id := NULL;
35322 l_adr_accounting_coa_id := NULL;
35323 l_adr_flexfield_segment_code := NULL;
35324 l_adr_flex_value_set_id := NULL;
35325 l_adr_value_type_code := NULL;
35326 l_adr_value_combination_id := NULL;
35327 l_adr_value_segment_code := NULL;
35328
35329 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
35330 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
35331 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
35332 l_budgetary_control_flag := 'N';
35333
35334 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35335 l_bflow_applied_to_amt := NULL; -- 5132302
35336 l_entered_amt_idx := NULL; -- 4262811
35337 l_accted_amt_idx := NULL; -- 4262811
35338 l_acc_rev_flag := NULL; -- 4262811
35339 l_accrual_line_num := NULL; -- 4262811
35340 l_tmp_amt := NULL; -- 4262811
35341 --
35342
35343 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35344 l_balance_type_code <> 'B' THEN
35345 IF NVL(p_source_36,'
35346 ') = 'Revenue - Normal Revenue' AND
35347 NVL(p_source_38,'
35348 ') = 'Y'
35349 THEN
35350
35351 --
35352 XLA_AE_LINES_PKG.SetNewLine;
35353
35354 p_balance_type_code := l_balance_type_code;
35355 -- set the flag so later we will know whether the gain loss line needs to be created
35356
35357 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35358 p_actual_flag :='A';
35359 END IF;
35360
35361 --
35362 -- bulk performance
35363 --
35364 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35365 p_header_num => 0); -- 4262811
35366 --
35367 -- set accounting line options
35368 --
35369 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35370 p_natural_side_code => 'D'
35371 , p_gain_or_loss_flag => 'N'
35372 , p_gl_transfer_mode_code => 'S'
35373 , p_acct_entry_type_code => 'A'
35374 , p_switch_side_flag => 'Y'
35375 , p_merge_duplicate_code => 'N'
35376 );
35377 --
35378 l_acc_rev_natural_side_code := 'C'; -- 4262811
35379 --
35380 --
35381 -- set accounting line type info
35382 --
35383 xla_ae_lines_pkg.SetAcctLineType
35384 (p_component_type => l_component_type
35385 ,p_event_type_code => l_event_type_code
35386 ,p_line_definition_owner_code => l_line_definition_owner_code
35387 ,p_line_definition_code => l_line_definition_code
35388 ,p_accounting_line_code => l_component_code
35389 ,p_accounting_line_type_code => l_component_type_code
35390 ,p_accounting_line_appl_id => l_component_appl_id
35391 ,p_amb_context_code => l_amb_context_code
35392 ,p_entity_code => l_entity_code
35393 ,p_event_class_code => l_event_class_code);
35394 --
35395 -- set accounting class
35396 --
35397 xla_ae_lines_pkg.SetAcctClass(
35398 p_accounting_class_code => 'REVENUE_ADJ'
35399 , p_ae_header_id => l_ae_header_id
35400 );
35401
35402 --
35403 -- set rounding class
35404 --
35405 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35406 'REVENUE_ADJ';
35407
35408 --
35409 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35410 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35411 --
35412 -- bulk performance
35413 --
35414 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35415
35416 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35417 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35418
35419 -- 4955764
35420 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35421 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35422
35423 -- 4458381 Public Sector Enh
35424
35425 --
35426 -- set accounting attributes for the line type
35427 --
35428 l_entered_amt_idx := 28;
35429 l_accted_amt_idx := 31;
35430 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35431 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
35432 l_rec_acct_attrs.array_char_value(1) := p_source_23;
35433 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
35437 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
35434 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
35435 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
35436 l_rec_acct_attrs.array_num_value(3) := p_source_41;
35438 l_rec_acct_attrs.array_char_value(4) := p_source_25;
35439 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
35440 l_rec_acct_attrs.array_num_value(5) := p_source_43;
35441 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
35442 l_rec_acct_attrs.array_date_value(6) := p_source_27;
35443 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
35444 l_rec_acct_attrs.array_num_value(7) := p_source_28;
35445 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
35446 l_rec_acct_attrs.array_char_value(8) := p_source_29;
35447 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
35448 l_rec_acct_attrs.array_char_value(9) := p_source_30;
35449 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
35450 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
35451 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
35452 l_rec_acct_attrs.array_num_value(11) := p_source_41;
35453 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
35454 l_rec_acct_attrs.array_char_value(12) := p_source_25;
35455 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
35456 l_rec_acct_attrs.array_num_value(13) := p_source_43;
35457 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
35458 l_rec_acct_attrs.array_date_value(14) := p_source_27;
35459 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
35460 l_rec_acct_attrs.array_num_value(15) := p_source_28;
35461 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
35462 l_rec_acct_attrs.array_char_value(16) := p_source_29;
35463 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
35464 l_rec_acct_attrs.array_char_value(17) := p_source_31;
35465 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
35466 l_rec_acct_attrs.array_num_value(18) := p_source_61;
35467 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35468 l_rec_acct_attrs.array_char_value(19) := p_source_36;
35469 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
35470 l_rec_acct_attrs.array_char_value(20) := p_source_62;
35471 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
35472 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
35473 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35474 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
35475 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
35476 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
35477 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
35478 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
35479 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
35480 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
35481 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
35482 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
35483 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
35484 l_rec_acct_attrs.array_char_value(27) := p_source_36;
35485 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
35486 l_rec_acct_attrs.array_num_value(28) := p_source_41;
35487 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
35488 l_rec_acct_attrs.array_char_value(29) := p_source_25;
35489 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
35490 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_42);
35491 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
35492 l_rec_acct_attrs.array_num_value(31) := p_source_43;
35493
35494 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35495 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35496
35497 ---------------------------------------------------------------------------------------------------------------
35498 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35499 ---------------------------------------------------------------------------------------------------------------
35500 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35501
35502 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35503 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35504
35505 IF xla_accounting_cache_pkg.GetValueChar
35506 (p_source_code => 'LEDGER_CATEGORY_CODE'
35507 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35508 AND l_bflow_method_code = 'PRIOR_ENTRY'
35509 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35510 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35511 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35512 )
35513 THEN
35514 xla_ae_lines_pkg.BflowUpgEntry
35515 (p_business_method_code => l_bflow_method_code
35516 ,p_business_class_code => l_bflow_class_code
35517 ,p_balance_type => l_balance_type_code);
35518 ELSE
35519 NULL;
35520 XLA_AE_LINES_PKG.business_flow_validation(
35521 p_business_method_code => l_bflow_method_code
35522 ,p_business_class_code => l_bflow_class_code
35523 ,p_inherit_description_flag => l_inherit_desc_flag);
35524 END IF;
35525
35529 -- Inherited Analytical Criteria for business flow method of Prior Entry.
35526 --
35527 -- call analytical criteria
35528 --
35530 --
35531 -- call description
35532 --
35533 -- No description or it is inherited.
35534 --
35535 -- call ADRs
35536 -- Bug 4922099
35537 --
35538 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35539 (NVL(l_actual_upg_option, 'N') = 'O') OR
35540 (NVL(l_enc_upg_option, 'N') = 'O')
35541 )
35542 THEN
35543 NULL;
35544 --
35545 --
35546
35547 --
35548 --
35549 END IF;
35550 --
35551 -- Bug 4922099
35552 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35553 (NVL(l_enc_upg_option, 'N') = 'O')
35554 ) AND
35555 (l_bflow_method_code = 'PRIOR_ENTRY')
35556 )
35557 THEN
35558 IF
35559 --
35560 1 = 1
35561 --
35562 THEN
35563 xla_accounting_err_pkg.build_message
35564 (p_appli_s_name => 'XLA'
35565 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35566 ,p_token_1 => 'LINE_NUMBER'
35567 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35568 ,p_token_2 => 'LINE_TYPE_NAME'
35569 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35570 l_component_type
35571 ,l_component_code
35572 ,l_component_type_code
35573 ,l_component_appl_id
35574 ,l_amb_context_code
35575 ,l_entity_code
35576 ,l_event_class_code
35577 )
35578 ,p_token_3 => 'OWNER'
35579 ,p_value_3 => xla_lookups_pkg.get_meaning(
35580 p_lookup_type => 'XLA_OWNER_TYPE'
35581 ,p_lookup_code => l_component_type_code
35582 )
35583 ,p_token_4 => 'PRODUCT_NAME'
35584 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35585 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35586 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35587 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35588 ,p_ae_header_id => NULL
35589 );
35590
35591 IF (C_LEVEL_ERROR>= g_log_level) THEN
35592 trace
35593 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35594 ,p_level => C_LEVEL_ERROR
35595 ,p_module => l_log_module);
35596 END IF;
35597 END IF;
35598 END IF;
35599 --
35600 --
35601 ------------------------------------------------------------------------------------------------
35602 -- 4219869 Business Flow
35603 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35604 -- Prior Entry. Currently, the following code is always generated.
35605 ------------------------------------------------------------------------------------------------
35606 -- No ValidateCurrentLine for business flow method of Prior Entry
35607
35608 ------------------------------------------------------------------------------------
35609 -- 4219869 Business Flow
35610 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35611 ------------------------------------------------------------------------------------
35612 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35613
35614 ----------------------------------------------------------------------------------
35615 -- 4219869 Business Flow
35616 -- Update journal entry status -- Need to generate this within IF <condition>
35617 ----------------------------------------------------------------------------------
35618 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35619 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35620 ,p_balance_type_code => l_balance_type_code
35621 );
35622
35623 -------------------------------------------------------------------------------------------
35624 -- 4262811 - Generate the Accrual Reversal lines
35625 -------------------------------------------------------------------------------------------
35626 BEGIN
35627 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35628 (g_array_event(p_event_id).array_value_num('header_index'));
35629 IF l_acc_rev_flag IS NULL THEN
35630 l_acc_rev_flag := 'N';
35631 END IF;
35632 EXCEPTION
35633 WHEN OTHERS THEN
35634 l_acc_rev_flag := 'N';
35635 END;
35636 --
35637 IF (l_acc_rev_flag = 'Y') THEN
35638
35642 ------------------------------------------------------------------------------------------
35639 -- 4645092 ------------------------------------------------------------------------------
35640 -- To allow MPA report to determine if it should generate report process
35641 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35643
35644 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35645 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35646
35647 --
35648 -- Update the line information that should be overwritten
35649 --
35650 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35651 p_header_num => 1);
35652 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35653
35654 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35655
35656 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35657 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35658 END IF;
35659
35660 --
35661 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35662 --
35663 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35664 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35665 ELSE
35666 ---------------------------------------------------------------------------------------------------
35667 -- 4262811a Switch Sign
35668 ---------------------------------------------------------------------------------------------------
35669 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35670 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35671 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35672 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35673 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35674 -- 5132302
35675 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35676 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35677
35678 END IF;
35679
35680 -- 4955764
35681 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35682 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35683
35684
35685 XLA_AE_LINES_PKG.ValidateCurrentLine;
35686 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35687
35688 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35689 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35690 ,p_balance_type_code => l_balance_type_code);
35691
35692 END IF;
35693
35694 -----------------------------------------------------------------------------------------
35695 -- 4262811 Multiperiod Accounting
35696 -----------------------------------------------------------------------------------------
35697 -- No MPA option is assigned.
35698
35699
35700 END IF;
35701 END IF;
35702 --
35703
35704 --
35705 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35706 trace
35707 (p_msg => 'END of AcctLineType_77'
35708 ,p_level => C_LEVEL_PROCEDURE
35709 ,p_module => l_log_module);
35710 END IF;
35711 --
35712 EXCEPTION
35713 WHEN xla_exceptions_pkg.application_exception THEN
35714 RAISE;
35715 WHEN OTHERS THEN
35716 xla_exceptions_pkg.raise_message
35717 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_77');
35718 END AcctLineType_77;
35719 --
35720
35721 ---------------------------------------
35722 --
35723 -- PRIVATE FUNCTION
35724 -- AcctLineType_78
35725 --
35726 ---------------------------------------
35727 PROCEDURE AcctLineType_78 (
35728 p_application_id IN NUMBER
35729 ,p_event_id IN NUMBER
35730 ,p_calculate_acctd_flag IN VARCHAR2
35731 ,p_calculate_g_l_flag IN VARCHAR2
35732 ,p_actual_flag IN OUT VARCHAR2
35733 ,p_balance_type_code OUT VARCHAR2
35734 ,p_gain_or_loss_ref OUT VARCHAR2
35735
35736 --Budget Code Combination ID
35737 , p_source_2 IN NUMBER
35738 --Cost CCID
35739 , p_source_3 IN NUMBER
35740 --Allow Account Override Flag
35741 , p_source_4 IN VARCHAR2
35742 --Adjustment Cost CCID
35743 , p_source_5 IN NUMBER
35744 --Cost Clearing CCID
35745 , p_source_6 IN NUMBER
35746 --Reversing Line Flag
35747 , p_source_22 IN VARCHAR2
35748 --Actual Upgrade Credit Accounting Class
35749 , p_source_23 IN VARCHAR2
35750 --Entered Currency Code
35751 , p_source_25 IN VARCHAR2
35752 --Exchange Rate Date
35753 , p_source_27 IN DATE
35754 --Exchange Rate
35755 , p_source_28 IN NUMBER
35756 --Exchange Rate Type
35757 , p_source_29 IN VARCHAR2
35758 --Actual Upgrade Debit Accounting Class
35759 , p_source_30 IN VARCHAR2
35760 --Use Actuals Upgrade Attributes Flag
35761 , p_source_31 IN VARCHAR2
35762 --Expenditure Item ID
35763 , p_source_32 IN NUMBER
35764 --Cost Distribution Line Number
35765 , p_source_33 IN NUMBER
35766 --Line Type
35767 , p_source_34 IN VARCHAR2
35768 , p_source_34_meaning IN VARCHAR2
35769 --Reversed Line Number
35773 --Accounted Burdened Cost
35770 , p_source_35 IN NUMBER
35771 --Entered Burdened Cost
35772 , p_source_44 IN NUMBER
35774 , p_source_45 IN NUMBER
35775 --Encumbrance Amount
35776 , p_source_46 IN NUMBER
35777 --Project Encumbrance Applied to Application Identifier
35778 , p_source_47 IN NUMBER
35779 --Project Encumbrance Applied to Distribution Type
35780 , p_source_48 IN VARCHAR2
35781 --Project Encumbrance Applied to Entity Code
35782 , p_source_49 IN VARCHAR2
35783 --Project Encumbrance Applied to First Distribution ID
35784 , p_source_50 IN NUMBER
35785 --Project Encumbrance Applied to First System Transaction ID
35786 , p_source_51 IN NUMBER
35787 --Project Encumbrance Applied to Second Distribution ID
35788 , p_source_52 IN VARCHAR2
35789 --Encumbrance Upgrade Credit Accounting Class
35790 , p_source_53 IN VARCHAR2
35791 --Encumbrance Upgrade Debit Accounting Class
35792 , p_source_54 IN VARCHAR2
35793 --Use Encumbrance Upgrade Attributes Flag
35794 , p_source_55 IN VARCHAR2
35795 --Encumbrance Type ID
35796 , p_source_56 IN NUMBER
35797 --Project Encumbrance Type ID
35798 , p_source_57 IN NUMBER
35799 )
35800 IS
35801
35802 l_component_type VARCHAR2(80);
35803 l_component_code VARCHAR2(30);
35804 l_component_type_code VARCHAR2(1);
35805 l_component_appl_id INTEGER;
35806 l_amb_context_code VARCHAR2(30);
35807 l_entity_code VARCHAR2(30);
35808 l_event_class_code VARCHAR2(30);
35809 l_ae_header_id NUMBER;
35810 l_event_type_code VARCHAR2(30);
35811 l_line_definition_code VARCHAR2(30);
35812 l_line_definition_owner_code VARCHAR2(1);
35813 --
35814 -- adr variables
35815 l_segment VARCHAR2(30);
35816 l_ccid NUMBER;
35817 l_adr_transaction_coa_id NUMBER;
35818 l_adr_accounting_coa_id NUMBER;
35819 l_adr_flexfield_segment_code VARCHAR2(30);
35820 l_adr_flex_value_set_id NUMBER;
35821 l_adr_value_type_code VARCHAR2(30);
35822 l_adr_value_combination_id NUMBER;
35823 l_adr_value_segment_code VARCHAR2(30);
35824
35825 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35826 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35827 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35828 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35829
35830 -- 4262811 Variables ------------------------------------------------------------------------------------------
35831 l_entered_amt_idx NUMBER;
35832 l_accted_amt_idx NUMBER;
35833 l_acc_rev_flag VARCHAR2(1);
35834 l_accrual_line_num NUMBER;
35835 l_tmp_amt NUMBER;
35836 l_acc_rev_natural_side_code VARCHAR2(1);
35837
35838 l_num_entries NUMBER;
35839 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35840 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35841 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35842 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35843 l_recog_line_1 NUMBER;
35844 l_recog_line_2 NUMBER;
35845
35846 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35847 l_bflow_applied_to_amt NUMBER; -- 5132302
35848 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35849
35850 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35851
35852 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35853 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35854
35855 ---------------------------------------------------------------------------------------------------------------
35856
35857
35858 --
35859 -- bulk performance
35860 --
35861 l_balance_type_code VARCHAR2(1);
35862 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35863 l_log_module VARCHAR2(240);
35864
35865 --
35866 -- Upgrade strategy
35867 --
35868 l_actual_upg_option VARCHAR2(1);
35869 l_enc_upg_option VARCHAR2(1);
35870
35871 --
35872 BEGIN
35873 --
35874 IF g_log_enabled THEN
35875 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
35876 END IF;
35877 --
35878 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35879
35880 trace
35881 (p_msg => 'BEGIN of AcctLineType_78'
35882 ,p_level => C_LEVEL_PROCEDURE
35883 ,p_module => l_log_module);
35884
35885 END IF;
35886 --
35887 l_component_type := 'AMB_JLT';
35888 l_component_code := 'PA_TOT_BURDENED_COST';
35889 l_component_type_code := 'S';
35890 l_component_appl_id := 275;
35891 l_amb_context_code := 'DEFAULT';
35892 l_entity_code := 'EXPENDITURES';
35893 l_event_class_code := 'TOT_BURDENED_COST';
35894 l_event_type_code := 'TOT_BURDENED_COST_ALL';
35895 l_line_definition_owner_code := 'S';
35896 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
35897 --
35898 l_balance_type_code := 'A';
35899 l_segment := NULL;
35900 l_ccid := NULL;
35901 l_adr_transaction_coa_id := NULL;
35902 l_adr_accounting_coa_id := NULL;
35903 l_adr_flexfield_segment_code := NULL;
35904 l_adr_flex_value_set_id := NULL;
35905 l_adr_value_type_code := NULL;
35906 l_adr_value_combination_id := NULL;
35910 l_bflow_class_code := ''; -- 4219869 Business Flow
35907 l_adr_value_segment_code := NULL;
35908
35909 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35911 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35912 l_budgetary_control_flag := 'N';
35913
35914 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35915 l_bflow_applied_to_amt := NULL; -- 5132302
35916 l_entered_amt_idx := NULL; -- 4262811
35917 l_accted_amt_idx := NULL; -- 4262811
35918 l_acc_rev_flag := NULL; -- 4262811
35919 l_accrual_line_num := NULL; -- 4262811
35920 l_tmp_amt := NULL; -- 4262811
35921 --
35922
35923 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35924 l_balance_type_code <> 'B' THEN
35925 IF NVL(p_source_34,'
35926 ') = 'D'
35927 THEN
35928
35929 --
35930 XLA_AE_LINES_PKG.SetNewLine;
35931
35932 p_balance_type_code := l_balance_type_code;
35933 -- set the flag so later we will know whether the gain loss line needs to be created
35934
35935 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35936 p_actual_flag :='A';
35937 END IF;
35938
35939 --
35940 -- bulk performance
35941 --
35942 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35943 p_header_num => 0); -- 4262811
35944 --
35945 -- set accounting line options
35946 --
35947 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35948 p_natural_side_code => 'D'
35949 , p_gain_or_loss_flag => 'N'
35950 , p_gl_transfer_mode_code => 'S'
35951 , p_acct_entry_type_code => 'A'
35952 , p_switch_side_flag => 'Y'
35953 , p_merge_duplicate_code => 'N'
35954 );
35955 --
35956 l_acc_rev_natural_side_code := 'C'; -- 4262811
35957 --
35958 --
35959 -- set accounting line type info
35960 --
35961 xla_ae_lines_pkg.SetAcctLineType
35962 (p_component_type => l_component_type
35963 ,p_event_type_code => l_event_type_code
35964 ,p_line_definition_owner_code => l_line_definition_owner_code
35965 ,p_line_definition_code => l_line_definition_code
35966 ,p_accounting_line_code => l_component_code
35967 ,p_accounting_line_type_code => l_component_type_code
35968 ,p_accounting_line_appl_id => l_component_appl_id
35969 ,p_amb_context_code => l_amb_context_code
35970 ,p_entity_code => l_entity_code
35971 ,p_event_class_code => l_event_class_code);
35972 --
35973 -- set accounting class
35974 --
35975 xla_ae_lines_pkg.SetAcctClass(
35976 p_accounting_class_code => 'COST'
35977 , p_ae_header_id => l_ae_header_id
35978 );
35979
35980 --
35981 -- set rounding class
35982 --
35983 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35984 'COST';
35985
35986 --
35987 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35988 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35989 --
35990 -- bulk performance
35991 --
35992 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35993
35994 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35995 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35996
35997 -- 4955764
35998 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35999 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36000
36001 -- 4458381 Public Sector Enh
36002
36003 --
36004 -- set accounting attributes for the line type
36005 --
36006 l_entered_amt_idx := 40;
36007 l_accted_amt_idx := 46;
36008 l_bflow_applied_to_amt_idx := 19; -- 5132302
36009 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36010 l_rec_acct_attrs.array_char_value(1) := p_source_22;
36011 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
36012 l_rec_acct_attrs.array_char_value(2) := p_source_23;
36013 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
36014 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
36015 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
36016 l_rec_acct_attrs.array_num_value(4) := p_source_44;
36017 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
36018 l_rec_acct_attrs.array_char_value(5) := p_source_25;
36019 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
36020 l_rec_acct_attrs.array_num_value(6) := p_source_45;
36021 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
36022 l_rec_acct_attrs.array_date_value(7) := p_source_27;
36023 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
36024 l_rec_acct_attrs.array_num_value(8) := p_source_28;
36025 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
36026 l_rec_acct_attrs.array_char_value(9) := p_source_29;
36027 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
36028 l_rec_acct_attrs.array_char_value(10) := p_source_30;
36029 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
36030 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
36031 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
36035 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
36032 l_rec_acct_attrs.array_num_value(12) := p_source_44;
36033 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
36034 l_rec_acct_attrs.array_char_value(13) := p_source_25;
36036 l_rec_acct_attrs.array_num_value(14) := p_source_45;
36037 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
36038 l_rec_acct_attrs.array_date_value(15) := p_source_27;
36039 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
36040 l_rec_acct_attrs.array_num_value(16) := p_source_28;
36041 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
36042 l_rec_acct_attrs.array_char_value(17) := p_source_29;
36043 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
36044 l_rec_acct_attrs.array_char_value(18) := p_source_31;
36045 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
36046 l_rec_acct_attrs.array_num_value(19) := p_source_46;
36047 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
36048 l_rec_acct_attrs.array_num_value(20) := p_source_47;
36049 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36050 l_rec_acct_attrs.array_char_value(21) := p_source_48;
36051 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
36052 l_rec_acct_attrs.array_char_value(22) := p_source_49;
36053 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
36054 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
36055 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36056 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
36057 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
36058 l_rec_acct_attrs.array_char_value(25) := p_source_52;
36059 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
36060 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
36061 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
36062 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
36063 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
36064 l_rec_acct_attrs.array_char_value(28) := p_source_34;
36065 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
36066 l_rec_acct_attrs.array_char_value(29) := p_source_53;
36067 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
36068 l_rec_acct_attrs.array_num_value(30) := p_source_2;
36069 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
36070 l_rec_acct_attrs.array_num_value(31) := p_source_46;
36071 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
36072 l_rec_acct_attrs.array_char_value(32) :=
36073 xla_ae_sources_pkg.GetSystemSourceChar(
36074 p_source_code => 'XLA_CURRENCY_CODE'
36075 , p_source_type_code => 'Y'
36076 , p_source_application_id => 602
36077 );
36078 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
36079 l_rec_acct_attrs.array_num_value(33) := p_source_46;
36080 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
36081 l_rec_acct_attrs.array_char_value(34) := p_source_54;
36082 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
36083 l_rec_acct_attrs.array_num_value(35) := p_source_2;
36084 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
36085 l_rec_acct_attrs.array_num_value(36) := p_source_46;
36086 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
36087 l_rec_acct_attrs.array_char_value(37) :=
36088 xla_ae_sources_pkg.GetSystemSourceChar(
36089 p_source_code => 'XLA_CURRENCY_CODE'
36090 , p_source_type_code => 'Y'
36091 , p_source_application_id => 602
36092 );
36093 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
36094 l_rec_acct_attrs.array_num_value(38) := p_source_46;
36095 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
36096 l_rec_acct_attrs.array_char_value(39) := p_source_55;
36097 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
36098 l_rec_acct_attrs.array_num_value(40) := p_source_44;
36099 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
36100 l_rec_acct_attrs.array_char_value(41) := p_source_25;
36101 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
36102 l_rec_acct_attrs.array_date_value(42) := p_source_27;
36103 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
36104 l_rec_acct_attrs.array_num_value(43) := p_source_28;
36105 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
36106 l_rec_acct_attrs.array_char_value(44) := p_source_29;
36107 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
36108 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_32);
36109 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
36110 l_rec_acct_attrs.array_num_value(46) := p_source_45;
36111 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
36112 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_32);
36113 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
36114 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_35);
36115 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
36116 l_rec_acct_attrs.array_char_value(49) := p_source_34;
36117 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
36118 l_rec_acct_attrs.array_num_value(50) := p_source_56;
36119 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
36120 l_rec_acct_attrs.array_num_value(51) := p_source_57;
36121
36122 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36123 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36124
36128 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36125 ---------------------------------------------------------------------------------------------------------------
36126 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36127 ---------------------------------------------------------------------------------------------------------------
36129
36130 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36131 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36132
36133 IF xla_accounting_cache_pkg.GetValueChar
36134 (p_source_code => 'LEDGER_CATEGORY_CODE'
36135 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36136 AND l_bflow_method_code = 'PRIOR_ENTRY'
36137 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36138 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36139 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36140 )
36141 THEN
36142 xla_ae_lines_pkg.BflowUpgEntry
36143 (p_business_method_code => l_bflow_method_code
36144 ,p_business_class_code => l_bflow_class_code
36145 ,p_balance_type => l_balance_type_code);
36146 ELSE
36147 NULL;
36148 -- No business flow processing for business flow method of NONE.
36149 END IF;
36150
36151 --
36152 -- call analytical criteria
36153 --
36154
36155 --
36156 -- call description
36157 --
36158 -- No description or it is inherited.
36159 --
36160 -- call ADRs
36161 -- Bug 4922099
36162 --
36163 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36164 (NVL(l_actual_upg_option, 'N') = 'O') OR
36165 (NVL(l_enc_upg_option, 'N') = 'O')
36166 )
36167 THEN
36168 NULL;
36169 --
36170 --
36171
36172 l_ccid := AcctDerRule_3(
36173 p_application_id => p_application_id
36174 , p_ae_header_id => l_ae_header_id
36175 , p_source_3 => p_source_3
36176 , p_source_4 => p_source_4
36177 , p_source_5 => p_source_5
36178 , x_transaction_coa_id => l_adr_transaction_coa_id
36179 , x_accounting_coa_id => l_adr_accounting_coa_id
36180 , x_value_type_code => l_adr_value_type_code
36181 , p_side => 'NA'
36182 );
36183
36184 xla_ae_lines_pkg.set_ccid(
36185 p_code_combination_id => l_ccid
36186 , p_value_type_code => l_adr_value_type_code
36187 , p_transaction_coa_id => l_adr_transaction_coa_id
36188 , p_accounting_coa_id => l_adr_accounting_coa_id
36189 , p_adr_code => 'PA_COST_ACCT_RULE'
36190 , p_adr_type_code => 'S'
36191 , p_component_type => l_component_type
36192 , p_component_code => l_component_code
36193 , p_component_type_code => l_component_type_code
36194 , p_component_appl_id => l_component_appl_id
36195 , p_amb_context_code => l_amb_context_code
36196 , p_side => 'NA'
36197 );
36198
36199
36200 --
36201 --
36202 END IF;
36203 --
36204 -- Bug 4922099
36205 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36206 (NVL(l_enc_upg_option, 'N') = 'O')
36207 ) AND
36208 (l_bflow_method_code = 'PRIOR_ENTRY')
36209 )
36210 THEN
36211 IF
36212 --
36213 1 = 2
36214 --
36215 THEN
36216 xla_accounting_err_pkg.build_message
36217 (p_appli_s_name => 'XLA'
36218 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36219 ,p_token_1 => 'LINE_NUMBER'
36220 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36221 ,p_token_2 => 'LINE_TYPE_NAME'
36222 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36223 l_component_type
36224 ,l_component_code
36225 ,l_component_type_code
36226 ,l_component_appl_id
36227 ,l_amb_context_code
36228 ,l_entity_code
36229 ,l_event_class_code
36230 )
36231 ,p_token_3 => 'OWNER'
36232 ,p_value_3 => xla_lookups_pkg.get_meaning(
36233 p_lookup_type => 'XLA_OWNER_TYPE'
36234 ,p_lookup_code => l_component_type_code
36235 )
36236 ,p_token_4 => 'PRODUCT_NAME'
36237 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36238 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36242 );
36239 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36240 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36241 ,p_ae_header_id => NULL
36243
36244 IF (C_LEVEL_ERROR>= g_log_level) THEN
36245 trace
36246 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36247 ,p_level => C_LEVEL_ERROR
36248 ,p_module => l_log_module);
36249 END IF;
36250 END IF;
36251 END IF;
36252 --
36253 --
36254 ------------------------------------------------------------------------------------------------
36255 -- 4219869 Business Flow
36256 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36257 -- Prior Entry. Currently, the following code is always generated.
36258 ------------------------------------------------------------------------------------------------
36259 XLA_AE_LINES_PKG.ValidateCurrentLine;
36260
36261 ------------------------------------------------------------------------------------
36262 -- 4219869 Business Flow
36263 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36264 ------------------------------------------------------------------------------------
36265 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36266
36267 ----------------------------------------------------------------------------------
36268 -- 4219869 Business Flow
36269 -- Update journal entry status -- Need to generate this within IF <condition>
36270 ----------------------------------------------------------------------------------
36271 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36272 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36273 ,p_balance_type_code => l_balance_type_code
36274 );
36275
36276 -------------------------------------------------------------------------------------------
36277 -- 4262811 - Generate the Accrual Reversal lines
36278 -------------------------------------------------------------------------------------------
36279 BEGIN
36280 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36281 (g_array_event(p_event_id).array_value_num('header_index'));
36282 IF l_acc_rev_flag IS NULL THEN
36283 l_acc_rev_flag := 'N';
36284 END IF;
36285 EXCEPTION
36286 WHEN OTHERS THEN
36287 l_acc_rev_flag := 'N';
36288 END;
36289 --
36290 IF (l_acc_rev_flag = 'Y') THEN
36291
36292 -- 4645092 ------------------------------------------------------------------------------
36293 -- To allow MPA report to determine if it should generate report process
36294 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36295 ------------------------------------------------------------------------------------------
36296
36297 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36298 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36299
36300 --
36301 -- Update the line information that should be overwritten
36302 --
36303 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36304 p_header_num => 1);
36305 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36306
36307 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36308
36309 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36310 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36311 END IF;
36312
36313 --
36314 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36315 --
36316 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36317 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36318 ELSE
36319 ---------------------------------------------------------------------------------------------------
36320 -- 4262811a Switch Sign
36321 ---------------------------------------------------------------------------------------------------
36322 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36323 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36324 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36325 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36326 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36327 -- 5132302
36328 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36329 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36330
36331 END IF;
36332
36333 -- 4955764
36334 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36335 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36336
36337
36338 XLA_AE_LINES_PKG.ValidateCurrentLine;
36339 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36340
36341 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36342 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36343 ,p_balance_type_code => l_balance_type_code);
36344
36345 END IF;
36346
36350 -- No MPA option is assigned.
36347 -----------------------------------------------------------------------------------------
36348 -- 4262811 Multiperiod Accounting
36349 -----------------------------------------------------------------------------------------
36351
36352
36353 END IF;
36354 END IF;
36355 --
36356
36357 --
36358 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36359 trace
36360 (p_msg => 'END of AcctLineType_78'
36361 ,p_level => C_LEVEL_PROCEDURE
36362 ,p_module => l_log_module);
36363 END IF;
36364 --
36365 EXCEPTION
36366 WHEN xla_exceptions_pkg.application_exception THEN
36367 RAISE;
36368 WHEN OTHERS THEN
36369 xla_exceptions_pkg.raise_message
36370 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_78');
36371 END AcctLineType_78;
36372 --
36373
36374 ---------------------------------------
36375 --
36376 -- PRIVATE FUNCTION
36377 -- AcctLineType_79
36378 --
36379 ---------------------------------------
36380 PROCEDURE AcctLineType_79 (
36381 p_application_id IN NUMBER
36382 ,p_event_id IN NUMBER
36383 ,p_calculate_acctd_flag IN VARCHAR2
36384 ,p_calculate_g_l_flag IN VARCHAR2
36385 ,p_actual_flag IN OUT VARCHAR2
36386 ,p_balance_type_code OUT VARCHAR2
36387 ,p_gain_or_loss_ref OUT VARCHAR2
36388
36389 --Budget Code Combination ID
36390 , p_source_2 IN NUMBER
36391 --Cost CCID
36392 , p_source_3 IN NUMBER
36393 --Allow Account Override Flag
36394 , p_source_4 IN VARCHAR2
36395 --Adjustment Cost CCID
36396 , p_source_5 IN NUMBER
36397 --Cost Clearing CCID
36398 , p_source_6 IN NUMBER
36399 --Reversing Line Flag
36400 , p_source_22 IN VARCHAR2
36401 --Actual Upgrade Credit Accounting Class
36402 , p_source_23 IN VARCHAR2
36403 --Entered Currency Code
36404 , p_source_25 IN VARCHAR2
36405 --Exchange Rate Date
36406 , p_source_27 IN DATE
36407 --Exchange Rate
36408 , p_source_28 IN NUMBER
36409 --Exchange Rate Type
36410 , p_source_29 IN VARCHAR2
36411 --Actual Upgrade Debit Accounting Class
36412 , p_source_30 IN VARCHAR2
36413 --Use Actuals Upgrade Attributes Flag
36414 , p_source_31 IN VARCHAR2
36415 --Expenditure Item ID
36416 , p_source_32 IN NUMBER
36417 --Cost Distribution Line Number
36418 , p_source_33 IN NUMBER
36419 --Line Type
36420 , p_source_34 IN VARCHAR2
36421 , p_source_34_meaning IN VARCHAR2
36422 --Reversed Line Number
36423 , p_source_35 IN NUMBER
36424 --Entered Burdened Cost
36425 , p_source_44 IN NUMBER
36426 --Accounted Burdened Cost
36427 , p_source_45 IN NUMBER
36428 --Encumbrance Amount
36429 , p_source_46 IN NUMBER
36430 --Project Encumbrance Applied to Application Identifier
36431 , p_source_47 IN NUMBER
36432 --Project Encumbrance Applied to Distribution Type
36433 , p_source_48 IN VARCHAR2
36434 --Project Encumbrance Applied to Entity Code
36435 , p_source_49 IN VARCHAR2
36436 --Project Encumbrance Applied to First Distribution ID
36437 , p_source_50 IN NUMBER
36438 --Project Encumbrance Applied to First System Transaction ID
36439 , p_source_51 IN NUMBER
36440 --Project Encumbrance Applied to Second Distribution ID
36441 , p_source_52 IN VARCHAR2
36442 --Encumbrance Upgrade Debit Accounting Class
36443 , p_source_54 IN VARCHAR2
36444 --Use Encumbrance Upgrade Attributes Flag
36445 , p_source_55 IN VARCHAR2
36446 --Encumbrance Type ID
36447 , p_source_56 IN NUMBER
36448 --Project Encumbrance Type ID
36449 , p_source_57 IN NUMBER
36450 )
36451 IS
36452
36453 l_component_type VARCHAR2(80);
36454 l_component_code VARCHAR2(30);
36455 l_component_type_code VARCHAR2(1);
36456 l_component_appl_id INTEGER;
36457 l_amb_context_code VARCHAR2(30);
36458 l_entity_code VARCHAR2(30);
36459 l_event_class_code VARCHAR2(30);
36460 l_ae_header_id NUMBER;
36461 l_event_type_code VARCHAR2(30);
36462 l_line_definition_code VARCHAR2(30);
36463 l_line_definition_owner_code VARCHAR2(1);
36464 --
36465 -- adr variables
36466 l_segment VARCHAR2(30);
36467 l_ccid NUMBER;
36468 l_adr_transaction_coa_id NUMBER;
36469 l_adr_accounting_coa_id NUMBER;
36470 l_adr_flexfield_segment_code VARCHAR2(30);
36471 l_adr_flex_value_set_id NUMBER;
36472 l_adr_value_type_code VARCHAR2(30);
36473 l_adr_value_combination_id NUMBER;
36474 l_adr_value_segment_code VARCHAR2(30);
36475
36476 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36477 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36478 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36479 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36480
36481 -- 4262811 Variables ------------------------------------------------------------------------------------------
36482 l_entered_amt_idx NUMBER;
36483 l_accted_amt_idx NUMBER;
36484 l_acc_rev_flag VARCHAR2(1);
36485 l_accrual_line_num NUMBER;
36486 l_tmp_amt NUMBER;
36487 l_acc_rev_natural_side_code VARCHAR2(1);
36488
36489 l_num_entries NUMBER;
36490 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36491 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36495 l_recog_line_2 NUMBER;
36492 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36493 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36494 l_recog_line_1 NUMBER;
36496
36497 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36498 l_bflow_applied_to_amt NUMBER; -- 5132302
36499 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36500
36501 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36502
36503 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36504 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36505
36506 ---------------------------------------------------------------------------------------------------------------
36507
36508
36509 --
36510 -- bulk performance
36511 --
36512 l_balance_type_code VARCHAR2(1);
36513 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36514 l_log_module VARCHAR2(240);
36515
36516 --
36517 -- Upgrade strategy
36518 --
36519 l_actual_upg_option VARCHAR2(1);
36520 l_enc_upg_option VARCHAR2(1);
36521
36522 --
36523 BEGIN
36524 --
36525 IF g_log_enabled THEN
36526 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
36527 END IF;
36528 --
36529 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36530
36531 trace
36532 (p_msg => 'BEGIN of AcctLineType_79'
36533 ,p_level => C_LEVEL_PROCEDURE
36534 ,p_module => l_log_module);
36535
36536 END IF;
36537 --
36538 l_component_type := 'AMB_JLT';
36539 l_component_code := 'PA_TOT_BURDENED_COST_ADJ';
36540 l_component_type_code := 'S';
36541 l_component_appl_id := 275;
36542 l_amb_context_code := 'DEFAULT';
36543 l_entity_code := 'EXPENDITURES';
36544 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
36545 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
36546 l_line_definition_owner_code := 'S';
36547 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
36548 --
36549 l_balance_type_code := 'A';
36550 l_segment := NULL;
36551 l_ccid := NULL;
36552 l_adr_transaction_coa_id := NULL;
36553 l_adr_accounting_coa_id := NULL;
36554 l_adr_flexfield_segment_code := NULL;
36555 l_adr_flex_value_set_id := NULL;
36556 l_adr_value_type_code := NULL;
36557 l_adr_value_combination_id := NULL;
36558 l_adr_value_segment_code := NULL;
36559
36560 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36561 l_bflow_class_code := ''; -- 4219869 Business Flow
36562 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36563 l_budgetary_control_flag := 'N';
36564
36565 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36566 l_bflow_applied_to_amt := NULL; -- 5132302
36567 l_entered_amt_idx := NULL; -- 4262811
36568 l_accted_amt_idx := NULL; -- 4262811
36569 l_acc_rev_flag := NULL; -- 4262811
36570 l_accrual_line_num := NULL; -- 4262811
36571 l_tmp_amt := NULL; -- 4262811
36572 --
36573
36574 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36575 l_balance_type_code <> 'B' THEN
36576 IF NVL(p_source_34,'
36577 ') = 'D'
36578 THEN
36579
36580 --
36581 XLA_AE_LINES_PKG.SetNewLine;
36582
36583 p_balance_type_code := l_balance_type_code;
36584 -- set the flag so later we will know whether the gain loss line needs to be created
36585
36586 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36587 p_actual_flag :='A';
36588 END IF;
36589
36590 --
36591 -- bulk performance
36592 --
36593 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36594 p_header_num => 0); -- 4262811
36595 --
36596 -- set accounting line options
36597 --
36598 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36599 p_natural_side_code => 'D'
36600 , p_gain_or_loss_flag => 'N'
36601 , p_gl_transfer_mode_code => 'S'
36602 , p_acct_entry_type_code => 'A'
36603 , p_switch_side_flag => 'Y'
36604 , p_merge_duplicate_code => 'N'
36605 );
36606 --
36607 l_acc_rev_natural_side_code := 'C'; -- 4262811
36608 --
36609 --
36610 -- set accounting line type info
36611 --
36612 xla_ae_lines_pkg.SetAcctLineType
36613 (p_component_type => l_component_type
36614 ,p_event_type_code => l_event_type_code
36615 ,p_line_definition_owner_code => l_line_definition_owner_code
36616 ,p_line_definition_code => l_line_definition_code
36617 ,p_accounting_line_code => l_component_code
36618 ,p_accounting_line_type_code => l_component_type_code
36619 ,p_accounting_line_appl_id => l_component_appl_id
36620 ,p_amb_context_code => l_amb_context_code
36621 ,p_entity_code => l_entity_code
36622 ,p_event_class_code => l_event_class_code);
36623 --
36624 -- set accounting class
36625 --
36626 xla_ae_lines_pkg.SetAcctClass(
36627 p_accounting_class_code => 'COST'
36628 , p_ae_header_id => l_ae_header_id
36629 );
36630
36631 --
36632 -- set rounding class
36633 --
36637 --
36634 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36635 'COST';
36636
36638 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36639 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36640 --
36641 -- bulk performance
36642 --
36643 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36644
36645 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36646 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36647
36648 -- 4955764
36649 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36650 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36651
36652 -- 4458381 Public Sector Enh
36653
36654 --
36655 -- set accounting attributes for the line type
36656 --
36657 l_entered_amt_idx := 35;
36658 l_accted_amt_idx := 40;
36659 l_bflow_applied_to_amt_idx := 19; -- 5132302
36660 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36661 l_rec_acct_attrs.array_char_value(1) := p_source_22;
36662 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
36663 l_rec_acct_attrs.array_char_value(2) := p_source_23;
36664 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
36665 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
36666 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
36667 l_rec_acct_attrs.array_num_value(4) := p_source_44;
36668 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
36669 l_rec_acct_attrs.array_char_value(5) := p_source_25;
36670 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
36671 l_rec_acct_attrs.array_num_value(6) := p_source_45;
36672 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
36673 l_rec_acct_attrs.array_date_value(7) := p_source_27;
36674 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
36675 l_rec_acct_attrs.array_num_value(8) := p_source_28;
36676 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
36677 l_rec_acct_attrs.array_char_value(9) := p_source_29;
36678 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
36679 l_rec_acct_attrs.array_char_value(10) := p_source_30;
36680 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
36681 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
36682 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
36683 l_rec_acct_attrs.array_num_value(12) := p_source_44;
36684 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
36685 l_rec_acct_attrs.array_char_value(13) := p_source_25;
36686 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
36687 l_rec_acct_attrs.array_num_value(14) := p_source_45;
36688 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
36689 l_rec_acct_attrs.array_date_value(15) := p_source_27;
36690 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
36691 l_rec_acct_attrs.array_num_value(16) := p_source_28;
36692 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
36693 l_rec_acct_attrs.array_char_value(17) := p_source_29;
36694 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
36695 l_rec_acct_attrs.array_char_value(18) := p_source_31;
36696 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
36697 l_rec_acct_attrs.array_num_value(19) := p_source_46;
36698 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
36699 l_rec_acct_attrs.array_num_value(20) := p_source_47;
36700 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36701 l_rec_acct_attrs.array_char_value(21) := p_source_48;
36702 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
36703 l_rec_acct_attrs.array_char_value(22) := p_source_49;
36704 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
36705 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
36706 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36707 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
36708 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
36709 l_rec_acct_attrs.array_char_value(25) := p_source_52;
36710 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
36711 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
36712 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
36713 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
36714 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
36715 l_rec_acct_attrs.array_char_value(28) := p_source_34;
36716 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
36717 l_rec_acct_attrs.array_char_value(29) := p_source_54;
36718 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
36719 l_rec_acct_attrs.array_num_value(30) := p_source_2;
36720 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
36721 l_rec_acct_attrs.array_num_value(31) := p_source_46;
36722 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
36723 l_rec_acct_attrs.array_char_value(32) :=
36724 xla_ae_sources_pkg.GetSystemSourceChar(
36725 p_source_code => 'XLA_CURRENCY_CODE'
36726 , p_source_type_code => 'Y'
36727 , p_source_application_id => 602
36728 );
36729 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
36730 l_rec_acct_attrs.array_num_value(33) := p_source_46;
36731 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
36735 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
36732 l_rec_acct_attrs.array_char_value(34) := p_source_55;
36733 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
36734 l_rec_acct_attrs.array_num_value(35) := p_source_44;
36736 l_rec_acct_attrs.array_char_value(36) := p_source_25;
36737 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
36738 l_rec_acct_attrs.array_date_value(37) := p_source_27;
36739 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
36740 l_rec_acct_attrs.array_num_value(38) := p_source_28;
36741 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
36742 l_rec_acct_attrs.array_char_value(39) := p_source_29;
36743 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
36744 l_rec_acct_attrs.array_num_value(40) := p_source_45;
36745 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
36746 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_32);
36747 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
36748 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_35);
36749 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
36750 l_rec_acct_attrs.array_char_value(43) := p_source_34;
36751 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
36752 l_rec_acct_attrs.array_num_value(44) := p_source_56;
36753 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
36754 l_rec_acct_attrs.array_num_value(45) := p_source_57;
36755
36756 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36757 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36758
36759 ---------------------------------------------------------------------------------------------------------------
36760 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36761 ---------------------------------------------------------------------------------------------------------------
36762 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36763
36764 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36765 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36766
36767 IF xla_accounting_cache_pkg.GetValueChar
36768 (p_source_code => 'LEDGER_CATEGORY_CODE'
36769 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36770 AND l_bflow_method_code = 'PRIOR_ENTRY'
36771 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36772 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36773 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36774 )
36775 THEN
36776 xla_ae_lines_pkg.BflowUpgEntry
36777 (p_business_method_code => l_bflow_method_code
36778 ,p_business_class_code => l_bflow_class_code
36779 ,p_balance_type => l_balance_type_code);
36780 ELSE
36781 NULL;
36782 -- No business flow processing for business flow method of NONE.
36783 END IF;
36784
36785 --
36786 -- call analytical criteria
36787 --
36788
36789 --
36790 -- call description
36791 --
36792 -- No description or it is inherited.
36793 --
36794 -- call ADRs
36795 -- Bug 4922099
36796 --
36797 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36798 (NVL(l_actual_upg_option, 'N') = 'O') OR
36799 (NVL(l_enc_upg_option, 'N') = 'O')
36800 )
36801 THEN
36802 NULL;
36803 --
36804 --
36805
36806 l_ccid := AcctDerRule_4(
36807 p_application_id => p_application_id
36808 , p_ae_header_id => l_ae_header_id
36809 , p_source_4 => p_source_4
36810 , p_source_5 => p_source_5
36811 , x_transaction_coa_id => l_adr_transaction_coa_id
36812 , x_accounting_coa_id => l_adr_accounting_coa_id
36813 , x_value_type_code => l_adr_value_type_code
36814 , p_side => 'NA'
36815 );
36816
36817 xla_ae_lines_pkg.set_ccid(
36818 p_code_combination_id => l_ccid
36819 , p_value_type_code => l_adr_value_type_code
36820 , p_transaction_coa_id => l_adr_transaction_coa_id
36821 , p_accounting_coa_id => l_adr_accounting_coa_id
36822 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
36823 , p_adr_type_code => 'S'
36824 , p_component_type => l_component_type
36825 , p_component_code => l_component_code
36826 , p_component_type_code => l_component_type_code
36827 , p_component_appl_id => l_component_appl_id
36828 , p_amb_context_code => l_amb_context_code
36829 , p_side => 'NA'
36830 );
36831
36832
36833 --
36834 --
36835 END IF;
36836 --
36837 -- Bug 4922099
36838 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36839 (NVL(l_enc_upg_option, 'N') = 'O')
36840 ) AND
36841 (l_bflow_method_code = 'PRIOR_ENTRY')
36842 )
36843 THEN
36844 IF
36845 --
36846 1 = 2
36847 --
36848 THEN
36849 xla_accounting_err_pkg.build_message
36850 (p_appli_s_name => 'XLA'
36851 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36852 ,p_token_1 => 'LINE_NUMBER'
36853 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36857 ,l_component_code
36854 ,p_token_2 => 'LINE_TYPE_NAME'
36855 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36856 l_component_type
36858 ,l_component_type_code
36859 ,l_component_appl_id
36860 ,l_amb_context_code
36861 ,l_entity_code
36862 ,l_event_class_code
36863 )
36864 ,p_token_3 => 'OWNER'
36865 ,p_value_3 => xla_lookups_pkg.get_meaning(
36866 p_lookup_type => 'XLA_OWNER_TYPE'
36867 ,p_lookup_code => l_component_type_code
36868 )
36869 ,p_token_4 => 'PRODUCT_NAME'
36870 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36871 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36872 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36873 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36874 ,p_ae_header_id => NULL
36875 );
36876
36877 IF (C_LEVEL_ERROR>= g_log_level) THEN
36878 trace
36879 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36880 ,p_level => C_LEVEL_ERROR
36881 ,p_module => l_log_module);
36882 END IF;
36883 END IF;
36884 END IF;
36885 --
36886 --
36887 ------------------------------------------------------------------------------------------------
36888 -- 4219869 Business Flow
36889 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36890 -- Prior Entry. Currently, the following code is always generated.
36891 ------------------------------------------------------------------------------------------------
36892 XLA_AE_LINES_PKG.ValidateCurrentLine;
36893
36894 ------------------------------------------------------------------------------------
36895 -- 4219869 Business Flow
36896 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36897 ------------------------------------------------------------------------------------
36898 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36899
36900 ----------------------------------------------------------------------------------
36901 -- 4219869 Business Flow
36902 -- Update journal entry status -- Need to generate this within IF <condition>
36903 ----------------------------------------------------------------------------------
36904 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36905 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36906 ,p_balance_type_code => l_balance_type_code
36907 );
36908
36909 -------------------------------------------------------------------------------------------
36910 -- 4262811 - Generate the Accrual Reversal lines
36911 -------------------------------------------------------------------------------------------
36912 BEGIN
36913 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36914 (g_array_event(p_event_id).array_value_num('header_index'));
36915 IF l_acc_rev_flag IS NULL THEN
36916 l_acc_rev_flag := 'N';
36917 END IF;
36918 EXCEPTION
36919 WHEN OTHERS THEN
36920 l_acc_rev_flag := 'N';
36921 END;
36922 --
36923 IF (l_acc_rev_flag = 'Y') THEN
36924
36925 -- 4645092 ------------------------------------------------------------------------------
36926 -- To allow MPA report to determine if it should generate report process
36927 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36928 ------------------------------------------------------------------------------------------
36929
36930 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36931 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36932
36933 --
36934 -- Update the line information that should be overwritten
36935 --
36936 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36937 p_header_num => 1);
36938 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36939
36940 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36941
36942 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36943 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36944 END IF;
36945
36946 --
36947 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36948 --
36949 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36950 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36951 ELSE
36955 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36952 ---------------------------------------------------------------------------------------------------
36953 -- 4262811a Switch Sign
36954 ---------------------------------------------------------------------------------------------------
36956 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36957 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36958 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36959 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36960 -- 5132302
36961 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36962 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36963
36964 END IF;
36965
36966 -- 4955764
36967 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36968 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36969
36970
36971 XLA_AE_LINES_PKG.ValidateCurrentLine;
36972 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36973
36974 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36975 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36976 ,p_balance_type_code => l_balance_type_code);
36977
36978 END IF;
36979
36980 -----------------------------------------------------------------------------------------
36981 -- 4262811 Multiperiod Accounting
36982 -----------------------------------------------------------------------------------------
36983 -- No MPA option is assigned.
36984
36985
36986 END IF;
36987 END IF;
36988 --
36989
36990 --
36991 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36992 trace
36993 (p_msg => 'END of AcctLineType_79'
36994 ,p_level => C_LEVEL_PROCEDURE
36995 ,p_module => l_log_module);
36996 END IF;
36997 --
36998 EXCEPTION
36999 WHEN xla_exceptions_pkg.application_exception THEN
37000 RAISE;
37001 WHEN OTHERS THEN
37002 xla_exceptions_pkg.raise_message
37003 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_79');
37004 END AcctLineType_79;
37005 --
37006
37007 ---------------------------------------
37008 --
37009 -- PRIVATE FUNCTION
37010 -- AcctLineType_80
37011 --
37012 ---------------------------------------
37013 PROCEDURE AcctLineType_80 (
37014 p_application_id IN NUMBER
37015 ,p_event_id IN NUMBER
37016 ,p_calculate_acctd_flag IN VARCHAR2
37017 ,p_calculate_g_l_flag IN VARCHAR2
37018 ,p_actual_flag IN OUT VARCHAR2
37019 ,p_balance_type_code OUT VARCHAR2
37020 ,p_gain_or_loss_ref OUT VARCHAR2
37021
37022 --Budget Code Combination ID
37023 , p_source_2 IN NUMBER
37024 --Cost CCID
37025 , p_source_3 IN NUMBER
37026 --Allow Account Override Flag
37027 , p_source_4 IN VARCHAR2
37028 --Cost Clearing CCID
37029 , p_source_6 IN NUMBER
37030 --Adjustment Cost Clearing CCID
37031 , p_source_7 IN NUMBER
37032 --Reversing Line Flag
37033 , p_source_22 IN VARCHAR2
37034 --Actual Upgrade Credit Accounting Class
37035 , p_source_23 IN VARCHAR2
37036 --Entered Currency Code
37037 , p_source_25 IN VARCHAR2
37038 --Exchange Rate Date
37039 , p_source_27 IN DATE
37040 --Exchange Rate
37041 , p_source_28 IN NUMBER
37042 --Exchange Rate Type
37043 , p_source_29 IN VARCHAR2
37044 --Actual Upgrade Debit Accounting Class
37045 , p_source_30 IN VARCHAR2
37046 --Use Actuals Upgrade Attributes Flag
37047 , p_source_31 IN VARCHAR2
37048 --Expenditure Item ID
37049 , p_source_32 IN NUMBER
37050 --Cost Distribution Line Number
37051 , p_source_33 IN NUMBER
37052 --Line Type
37053 , p_source_34 IN VARCHAR2
37054 , p_source_34_meaning IN VARCHAR2
37055 --Reversed Line Number
37056 , p_source_35 IN NUMBER
37057 --Entered Burdened Cost
37058 , p_source_44 IN NUMBER
37059 --Accounted Burdened Cost
37060 , p_source_45 IN NUMBER
37061 --Encumbrance Amount
37062 , p_source_46 IN NUMBER
37063 --Project Encumbrance Applied to Application Identifier
37064 , p_source_47 IN NUMBER
37065 --Project Encumbrance Applied to Distribution Type
37066 , p_source_48 IN VARCHAR2
37067 --Project Encumbrance Applied to Entity Code
37068 , p_source_49 IN VARCHAR2
37069 --Project Encumbrance Applied to First Distribution ID
37070 , p_source_50 IN NUMBER
37071 --Project Encumbrance Applied to First System Transaction ID
37072 , p_source_51 IN NUMBER
37073 --Project Encumbrance Applied to Second Distribution ID
37074 , p_source_52 IN VARCHAR2
37075 --Encumbrance Upgrade Credit Accounting Class
37076 , p_source_53 IN VARCHAR2
37077 --Encumbrance Upgrade Debit Accounting Class
37078 , p_source_54 IN VARCHAR2
37079 --Use Encumbrance Upgrade Attributes Flag
37080 , p_source_55 IN VARCHAR2
37081 --Encumbrance Type ID
37082 , p_source_56 IN NUMBER
37083 --Project Encumbrance Type ID
37084 , p_source_57 IN NUMBER
37085 )
37086 IS
37087
37088 l_component_type VARCHAR2(80);
37089 l_component_code VARCHAR2(30);
37090 l_component_type_code VARCHAR2(1);
37094 l_event_class_code VARCHAR2(30);
37091 l_component_appl_id INTEGER;
37092 l_amb_context_code VARCHAR2(30);
37093 l_entity_code VARCHAR2(30);
37095 l_ae_header_id NUMBER;
37096 l_event_type_code VARCHAR2(30);
37097 l_line_definition_code VARCHAR2(30);
37098 l_line_definition_owner_code VARCHAR2(1);
37099 --
37100 -- adr variables
37101 l_segment VARCHAR2(30);
37102 l_ccid NUMBER;
37103 l_adr_transaction_coa_id NUMBER;
37104 l_adr_accounting_coa_id NUMBER;
37105 l_adr_flexfield_segment_code VARCHAR2(30);
37106 l_adr_flex_value_set_id NUMBER;
37107 l_adr_value_type_code VARCHAR2(30);
37108 l_adr_value_combination_id NUMBER;
37109 l_adr_value_segment_code VARCHAR2(30);
37110
37111 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37112 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37113 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37114 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37115
37116 -- 4262811 Variables ------------------------------------------------------------------------------------------
37117 l_entered_amt_idx NUMBER;
37118 l_accted_amt_idx NUMBER;
37119 l_acc_rev_flag VARCHAR2(1);
37120 l_accrual_line_num NUMBER;
37121 l_tmp_amt NUMBER;
37122 l_acc_rev_natural_side_code VARCHAR2(1);
37123
37124 l_num_entries NUMBER;
37125 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37126 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37127 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37128 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37129 l_recog_line_1 NUMBER;
37130 l_recog_line_2 NUMBER;
37131
37132 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37133 l_bflow_applied_to_amt NUMBER; -- 5132302
37134 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37135
37136 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37137
37138 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37139 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37140
37141 ---------------------------------------------------------------------------------------------------------------
37142
37143
37144 --
37145 -- bulk performance
37146 --
37147 l_balance_type_code VARCHAR2(1);
37148 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37149 l_log_module VARCHAR2(240);
37150
37151 --
37152 -- Upgrade strategy
37153 --
37154 l_actual_upg_option VARCHAR2(1);
37155 l_enc_upg_option VARCHAR2(1);
37156
37157 --
37158 BEGIN
37159 --
37160 IF g_log_enabled THEN
37161 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
37162 END IF;
37163 --
37164 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37165
37166 trace
37167 (p_msg => 'BEGIN of AcctLineType_80'
37168 ,p_level => C_LEVEL_PROCEDURE
37169 ,p_module => l_log_module);
37170
37171 END IF;
37172 --
37173 l_component_type := 'AMB_JLT';
37174 l_component_code := 'PA_TOT_BURDENED_COST_CLEARING';
37175 l_component_type_code := 'S';
37176 l_component_appl_id := 275;
37177 l_amb_context_code := 'DEFAULT';
37178 l_entity_code := 'EXPENDITURES';
37179 l_event_class_code := 'TOT_BURDENED_COST';
37180 l_event_type_code := 'TOT_BURDENED_COST_ALL';
37181 l_line_definition_owner_code := 'S';
37182 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
37183 --
37184 l_balance_type_code := 'A';
37185 l_segment := NULL;
37186 l_ccid := NULL;
37187 l_adr_transaction_coa_id := NULL;
37188 l_adr_accounting_coa_id := NULL;
37189 l_adr_flexfield_segment_code := NULL;
37190 l_adr_flex_value_set_id := NULL;
37191 l_adr_value_type_code := NULL;
37192 l_adr_value_combination_id := NULL;
37193 l_adr_value_segment_code := NULL;
37194
37195 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37196 l_bflow_class_code := ''; -- 4219869 Business Flow
37197 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37198 l_budgetary_control_flag := 'N';
37199
37200 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37201 l_bflow_applied_to_amt := NULL; -- 5132302
37202 l_entered_amt_idx := NULL; -- 4262811
37203 l_accted_amt_idx := NULL; -- 4262811
37204 l_acc_rev_flag := NULL; -- 4262811
37205 l_accrual_line_num := NULL; -- 4262811
37206 l_tmp_amt := NULL; -- 4262811
37207 --
37208
37209 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37210 l_balance_type_code <> 'B' THEN
37211 IF NVL(p_source_34,'
37212 ') = 'C'
37213 THEN
37214
37215 --
37216 XLA_AE_LINES_PKG.SetNewLine;
37217
37218 p_balance_type_code := l_balance_type_code;
37219 -- set the flag so later we will know whether the gain loss line needs to be created
37220
37221 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37222 p_actual_flag :='A';
37223 END IF;
37224
37225 --
37226 -- bulk performance
37227 --
37228 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37232 --
37229 p_header_num => 0); -- 4262811
37230 --
37231 -- set accounting line options
37233 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37234 p_natural_side_code => 'C'
37235 , p_gain_or_loss_flag => 'N'
37236 , p_gl_transfer_mode_code => 'S'
37237 , p_acct_entry_type_code => 'A'
37238 , p_switch_side_flag => 'Y'
37239 , p_merge_duplicate_code => 'N'
37240 );
37241 --
37242 l_acc_rev_natural_side_code := 'D'; -- 4262811
37243 --
37244 --
37245 -- set accounting line type info
37246 --
37247 xla_ae_lines_pkg.SetAcctLineType
37248 (p_component_type => l_component_type
37249 ,p_event_type_code => l_event_type_code
37250 ,p_line_definition_owner_code => l_line_definition_owner_code
37251 ,p_line_definition_code => l_line_definition_code
37252 ,p_accounting_line_code => l_component_code
37253 ,p_accounting_line_type_code => l_component_type_code
37254 ,p_accounting_line_appl_id => l_component_appl_id
37255 ,p_amb_context_code => l_amb_context_code
37256 ,p_entity_code => l_entity_code
37257 ,p_event_class_code => l_event_class_code);
37258 --
37259 -- set accounting class
37260 --
37261 xla_ae_lines_pkg.SetAcctClass(
37262 p_accounting_class_code => 'COST_CLEARING'
37263 , p_ae_header_id => l_ae_header_id
37264 );
37265
37266 --
37267 -- set rounding class
37268 --
37269 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37270 'COST_CLEARING';
37271
37272 --
37273 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37274 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37275 --
37276 -- bulk performance
37277 --
37278 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37279
37280 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37281 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37282
37283 -- 4955764
37284 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37285 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37286
37287 -- 4458381 Public Sector Enh
37288
37289 --
37290 -- set accounting attributes for the line type
37291 --
37292 l_entered_amt_idx := 40;
37293 l_accted_amt_idx := 46;
37294 l_bflow_applied_to_amt_idx := 19; -- 5132302
37295 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37296 l_rec_acct_attrs.array_char_value(1) := p_source_22;
37297 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
37298 l_rec_acct_attrs.array_char_value(2) := p_source_23;
37299 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
37300 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
37301 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
37302 l_rec_acct_attrs.array_num_value(4) := p_source_44;
37303 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
37304 l_rec_acct_attrs.array_char_value(5) := p_source_25;
37305 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
37306 l_rec_acct_attrs.array_num_value(6) := p_source_45;
37307 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
37308 l_rec_acct_attrs.array_date_value(7) := p_source_27;
37309 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
37310 l_rec_acct_attrs.array_num_value(8) := p_source_28;
37311 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
37312 l_rec_acct_attrs.array_char_value(9) := p_source_29;
37313 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
37314 l_rec_acct_attrs.array_char_value(10) := p_source_30;
37315 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
37316 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
37317 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
37318 l_rec_acct_attrs.array_num_value(12) := p_source_44;
37319 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
37320 l_rec_acct_attrs.array_char_value(13) := p_source_25;
37321 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
37322 l_rec_acct_attrs.array_num_value(14) := p_source_45;
37323 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
37324 l_rec_acct_attrs.array_date_value(15) := p_source_27;
37325 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
37326 l_rec_acct_attrs.array_num_value(16) := p_source_28;
37327 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
37328 l_rec_acct_attrs.array_char_value(17) := p_source_29;
37329 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
37330 l_rec_acct_attrs.array_char_value(18) := p_source_31;
37331 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
37332 l_rec_acct_attrs.array_num_value(19) := p_source_46;
37333 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
37334 l_rec_acct_attrs.array_num_value(20) := p_source_47;
37335 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37336 l_rec_acct_attrs.array_char_value(21) := p_source_48;
37337 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
37338 l_rec_acct_attrs.array_char_value(22) := p_source_49;
37339 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
37343 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
37340 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
37341 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37342 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
37344 l_rec_acct_attrs.array_char_value(25) := p_source_52;
37345 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
37346 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
37347 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
37348 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
37349 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
37350 l_rec_acct_attrs.array_char_value(28) := p_source_34;
37351 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
37352 l_rec_acct_attrs.array_char_value(29) := p_source_53;
37353 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
37354 l_rec_acct_attrs.array_num_value(30) := p_source_2;
37355 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
37356 l_rec_acct_attrs.array_num_value(31) := p_source_46;
37357 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
37358 l_rec_acct_attrs.array_char_value(32) :=
37359 xla_ae_sources_pkg.GetSystemSourceChar(
37360 p_source_code => 'XLA_CURRENCY_CODE'
37361 , p_source_type_code => 'Y'
37362 , p_source_application_id => 602
37363 );
37364 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
37365 l_rec_acct_attrs.array_num_value(33) := p_source_46;
37366 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
37367 l_rec_acct_attrs.array_char_value(34) := p_source_54;
37368 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
37369 l_rec_acct_attrs.array_num_value(35) := p_source_2;
37370 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
37371 l_rec_acct_attrs.array_num_value(36) := p_source_46;
37372 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
37373 l_rec_acct_attrs.array_char_value(37) :=
37374 xla_ae_sources_pkg.GetSystemSourceChar(
37375 p_source_code => 'XLA_CURRENCY_CODE'
37376 , p_source_type_code => 'Y'
37377 , p_source_application_id => 602
37378 );
37379 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
37380 l_rec_acct_attrs.array_num_value(38) := p_source_46;
37381 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
37382 l_rec_acct_attrs.array_char_value(39) := p_source_55;
37383 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
37384 l_rec_acct_attrs.array_num_value(40) := p_source_44;
37385 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
37386 l_rec_acct_attrs.array_char_value(41) := p_source_25;
37387 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
37388 l_rec_acct_attrs.array_date_value(42) := p_source_27;
37389 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
37390 l_rec_acct_attrs.array_num_value(43) := p_source_28;
37391 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
37392 l_rec_acct_attrs.array_char_value(44) := p_source_29;
37393 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
37394 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_32);
37395 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
37396 l_rec_acct_attrs.array_num_value(46) := p_source_45;
37397 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
37398 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_32);
37399 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
37400 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_35);
37401 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
37402 l_rec_acct_attrs.array_char_value(49) := p_source_34;
37403 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
37404 l_rec_acct_attrs.array_num_value(50) := p_source_56;
37405 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
37406 l_rec_acct_attrs.array_num_value(51) := p_source_57;
37407
37408 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37409 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37410
37411 ---------------------------------------------------------------------------------------------------------------
37412 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37413 ---------------------------------------------------------------------------------------------------------------
37414 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37415
37416 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37417 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37418
37419 IF xla_accounting_cache_pkg.GetValueChar
37420 (p_source_code => 'LEDGER_CATEGORY_CODE'
37421 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37422 AND l_bflow_method_code = 'PRIOR_ENTRY'
37423 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37424 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37425 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37426 )
37427 THEN
37428 xla_ae_lines_pkg.BflowUpgEntry
37429 (p_business_method_code => l_bflow_method_code
37430 ,p_business_class_code => l_bflow_class_code
37431 ,p_balance_type => l_balance_type_code);
37432 ELSE
37433 NULL;
37434 -- No business flow processing for business flow method of NONE.
37435 END IF;
37436
37437 --
37441 --
37438 -- call analytical criteria
37439 --
37440
37442 -- call description
37443 --
37444 -- No description or it is inherited.
37445 --
37446 -- call ADRs
37447 -- Bug 4922099
37448 --
37449 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37450 (NVL(l_actual_upg_option, 'N') = 'O') OR
37451 (NVL(l_enc_upg_option, 'N') = 'O')
37452 )
37453 THEN
37454 NULL;
37455 --
37456 --
37457
37458 l_ccid := AcctDerRule_5(
37459 p_application_id => p_application_id
37460 , p_ae_header_id => l_ae_header_id
37461 , p_source_4 => p_source_4
37462 , p_source_6 => p_source_6
37463 , p_source_7 => p_source_7
37464 , x_transaction_coa_id => l_adr_transaction_coa_id
37465 , x_accounting_coa_id => l_adr_accounting_coa_id
37466 , x_value_type_code => l_adr_value_type_code
37467 , p_side => 'NA'
37468 );
37469
37470 xla_ae_lines_pkg.set_ccid(
37471 p_code_combination_id => l_ccid
37472 , p_value_type_code => l_adr_value_type_code
37473 , p_transaction_coa_id => l_adr_transaction_coa_id
37474 , p_accounting_coa_id => l_adr_accounting_coa_id
37475 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
37476 , p_adr_type_code => 'S'
37477 , p_component_type => l_component_type
37478 , p_component_code => l_component_code
37479 , p_component_type_code => l_component_type_code
37480 , p_component_appl_id => l_component_appl_id
37481 , p_amb_context_code => l_amb_context_code
37482 , p_side => 'NA'
37483 );
37484
37485
37486 --
37487 --
37488 END IF;
37489 --
37490 -- Bug 4922099
37491 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37492 (NVL(l_enc_upg_option, 'N') = 'O')
37493 ) AND
37494 (l_bflow_method_code = 'PRIOR_ENTRY')
37495 )
37496 THEN
37497 IF
37498 --
37499 1 = 2
37500 --
37501 THEN
37502 xla_accounting_err_pkg.build_message
37503 (p_appli_s_name => 'XLA'
37504 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37505 ,p_token_1 => 'LINE_NUMBER'
37506 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37507 ,p_token_2 => 'LINE_TYPE_NAME'
37508 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37509 l_component_type
37510 ,l_component_code
37511 ,l_component_type_code
37512 ,l_component_appl_id
37513 ,l_amb_context_code
37514 ,l_entity_code
37515 ,l_event_class_code
37516 )
37517 ,p_token_3 => 'OWNER'
37518 ,p_value_3 => xla_lookups_pkg.get_meaning(
37519 p_lookup_type => 'XLA_OWNER_TYPE'
37520 ,p_lookup_code => l_component_type_code
37521 )
37522 ,p_token_4 => 'PRODUCT_NAME'
37523 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37524 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37525 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37526 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37527 ,p_ae_header_id => NULL
37528 );
37529
37530 IF (C_LEVEL_ERROR>= g_log_level) THEN
37531 trace
37532 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37533 ,p_level => C_LEVEL_ERROR
37534 ,p_module => l_log_module);
37535 END IF;
37536 END IF;
37537 END IF;
37538 --
37539 --
37540 ------------------------------------------------------------------------------------------------
37541 -- 4219869 Business Flow
37542 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37543 -- Prior Entry. Currently, the following code is always generated.
37544 ------------------------------------------------------------------------------------------------
37545 XLA_AE_LINES_PKG.ValidateCurrentLine;
37546
37547 ------------------------------------------------------------------------------------
37548 -- 4219869 Business Flow
37549 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37550 ------------------------------------------------------------------------------------
37551 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37552
37553 ----------------------------------------------------------------------------------
37557 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37554 -- 4219869 Business Flow
37555 -- Update journal entry status -- Need to generate this within IF <condition>
37556 ----------------------------------------------------------------------------------
37558 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37559 ,p_balance_type_code => l_balance_type_code
37560 );
37561
37562 -------------------------------------------------------------------------------------------
37563 -- 4262811 - Generate the Accrual Reversal lines
37564 -------------------------------------------------------------------------------------------
37565 BEGIN
37566 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37567 (g_array_event(p_event_id).array_value_num('header_index'));
37568 IF l_acc_rev_flag IS NULL THEN
37569 l_acc_rev_flag := 'N';
37570 END IF;
37571 EXCEPTION
37572 WHEN OTHERS THEN
37573 l_acc_rev_flag := 'N';
37574 END;
37575 --
37576 IF (l_acc_rev_flag = 'Y') THEN
37577
37578 -- 4645092 ------------------------------------------------------------------------------
37579 -- To allow MPA report to determine if it should generate report process
37580 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37581 ------------------------------------------------------------------------------------------
37582
37583 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37584 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37585
37586 --
37587 -- Update the line information that should be overwritten
37588 --
37589 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37590 p_header_num => 1);
37591 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37592
37593 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37594
37595 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37596 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37597 END IF;
37598
37599 --
37600 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37601 --
37602 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37603 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37604 ELSE
37605 ---------------------------------------------------------------------------------------------------
37606 -- 4262811a Switch Sign
37607 ---------------------------------------------------------------------------------------------------
37608 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37609 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37610 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37611 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37612 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37613 -- 5132302
37614 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37615 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37616
37617 END IF;
37618
37619 -- 4955764
37620 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37621 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37622
37623
37624 XLA_AE_LINES_PKG.ValidateCurrentLine;
37625 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37626
37627 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37628 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37629 ,p_balance_type_code => l_balance_type_code);
37630
37631 END IF;
37632
37633 -----------------------------------------------------------------------------------------
37634 -- 4262811 Multiperiod Accounting
37635 -----------------------------------------------------------------------------------------
37636 -- No MPA option is assigned.
37637
37638
37639 END IF;
37640 END IF;
37641 --
37642
37643 --
37644 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37645 trace
37646 (p_msg => 'END of AcctLineType_80'
37647 ,p_level => C_LEVEL_PROCEDURE
37648 ,p_module => l_log_module);
37649 END IF;
37650 --
37651 EXCEPTION
37652 WHEN xla_exceptions_pkg.application_exception THEN
37653 RAISE;
37654 WHEN OTHERS THEN
37655 xla_exceptions_pkg.raise_message
37656 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_80');
37657 END AcctLineType_80;
37658 --
37659
37660 ---------------------------------------
37661 --
37662 -- PRIVATE FUNCTION
37663 -- AcctLineType_81
37664 --
37665 ---------------------------------------
37666 PROCEDURE AcctLineType_81 (
37667 p_application_id IN NUMBER
37668 ,p_event_id IN NUMBER
37669 ,p_calculate_acctd_flag IN VARCHAR2
37670 ,p_calculate_g_l_flag IN VARCHAR2
37671 ,p_actual_flag IN OUT VARCHAR2
37672 ,p_balance_type_code OUT VARCHAR2
37673 ,p_gain_or_loss_ref OUT VARCHAR2
37674
37675 --Budget Code Combination ID
37676 , p_source_2 IN NUMBER
37677 --Cost CCID
37678 , p_source_3 IN NUMBER
37682 , p_source_6 IN NUMBER
37679 --Allow Account Override Flag
37680 , p_source_4 IN VARCHAR2
37681 --Cost Clearing CCID
37683 --Adjustment Cost Clearing CCID
37684 , p_source_7 IN NUMBER
37685 --Reversing Line Flag
37686 , p_source_22 IN VARCHAR2
37687 --Actual Upgrade Credit Accounting Class
37688 , p_source_23 IN VARCHAR2
37689 --Entered Currency Code
37690 , p_source_25 IN VARCHAR2
37691 --Exchange Rate Date
37692 , p_source_27 IN DATE
37693 --Exchange Rate
37694 , p_source_28 IN NUMBER
37695 --Exchange Rate Type
37696 , p_source_29 IN VARCHAR2
37697 --Actual Upgrade Debit Accounting Class
37698 , p_source_30 IN VARCHAR2
37699 --Use Actuals Upgrade Attributes Flag
37700 , p_source_31 IN VARCHAR2
37701 --Expenditure Item ID
37702 , p_source_32 IN NUMBER
37703 --Cost Distribution Line Number
37704 , p_source_33 IN NUMBER
37705 --Line Type
37706 , p_source_34 IN VARCHAR2
37707 , p_source_34_meaning IN VARCHAR2
37708 --Reversed Line Number
37709 , p_source_35 IN NUMBER
37710 --Entered Burdened Cost
37711 , p_source_44 IN NUMBER
37712 --Accounted Burdened Cost
37713 , p_source_45 IN NUMBER
37714 --Encumbrance Amount
37715 , p_source_46 IN NUMBER
37716 --Project Encumbrance Applied to Application Identifier
37717 , p_source_47 IN NUMBER
37718 --Project Encumbrance Applied to Distribution Type
37719 , p_source_48 IN VARCHAR2
37720 --Project Encumbrance Applied to Entity Code
37721 , p_source_49 IN VARCHAR2
37722 --Project Encumbrance Applied to First Distribution ID
37723 , p_source_50 IN NUMBER
37724 --Project Encumbrance Applied to First System Transaction ID
37725 , p_source_51 IN NUMBER
37726 --Project Encumbrance Applied to Second Distribution ID
37727 , p_source_52 IN VARCHAR2
37728 --Encumbrance Upgrade Debit Accounting Class
37729 , p_source_54 IN VARCHAR2
37730 --Use Encumbrance Upgrade Attributes Flag
37731 , p_source_55 IN VARCHAR2
37732 --Encumbrance Type ID
37733 , p_source_56 IN NUMBER
37734 --Project Encumbrance Type ID
37735 , p_source_57 IN NUMBER
37736 )
37737 IS
37738
37739 l_component_type VARCHAR2(80);
37740 l_component_code VARCHAR2(30);
37741 l_component_type_code VARCHAR2(1);
37742 l_component_appl_id INTEGER;
37743 l_amb_context_code VARCHAR2(30);
37744 l_entity_code VARCHAR2(30);
37745 l_event_class_code VARCHAR2(30);
37746 l_ae_header_id NUMBER;
37747 l_event_type_code VARCHAR2(30);
37748 l_line_definition_code VARCHAR2(30);
37749 l_line_definition_owner_code VARCHAR2(1);
37750 --
37751 -- adr variables
37752 l_segment VARCHAR2(30);
37753 l_ccid NUMBER;
37754 l_adr_transaction_coa_id NUMBER;
37755 l_adr_accounting_coa_id NUMBER;
37756 l_adr_flexfield_segment_code VARCHAR2(30);
37757 l_adr_flex_value_set_id NUMBER;
37758 l_adr_value_type_code VARCHAR2(30);
37759 l_adr_value_combination_id NUMBER;
37760 l_adr_value_segment_code VARCHAR2(30);
37761
37762 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37763 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37764 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37765 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37766
37767 -- 4262811 Variables ------------------------------------------------------------------------------------------
37768 l_entered_amt_idx NUMBER;
37769 l_accted_amt_idx NUMBER;
37770 l_acc_rev_flag VARCHAR2(1);
37771 l_accrual_line_num NUMBER;
37772 l_tmp_amt NUMBER;
37773 l_acc_rev_natural_side_code VARCHAR2(1);
37774
37775 l_num_entries NUMBER;
37776 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37777 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37778 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37779 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37780 l_recog_line_1 NUMBER;
37781 l_recog_line_2 NUMBER;
37782
37783 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37784 l_bflow_applied_to_amt NUMBER; -- 5132302
37785 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37786
37787 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37788
37789 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37790 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37791
37792 ---------------------------------------------------------------------------------------------------------------
37793
37794
37795 --
37796 -- bulk performance
37797 --
37798 l_balance_type_code VARCHAR2(1);
37799 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37800 l_log_module VARCHAR2(240);
37801
37802 --
37803 -- Upgrade strategy
37804 --
37805 l_actual_upg_option VARCHAR2(1);
37806 l_enc_upg_option VARCHAR2(1);
37807
37808 --
37809 BEGIN
37810 --
37811 IF g_log_enabled THEN
37812 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
37813 END IF;
37814 --
37815 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37816
37817 trace
37818 (p_msg => 'BEGIN of AcctLineType_81'
37822 END IF;
37819 ,p_level => C_LEVEL_PROCEDURE
37820 ,p_module => l_log_module);
37821
37823 --
37824 l_component_type := 'AMB_JLT';
37825 l_component_code := 'PA_TOT_BURDENED_COST_CLEAR_ADJ';
37826 l_component_type_code := 'S';
37827 l_component_appl_id := 275;
37828 l_amb_context_code := 'DEFAULT';
37829 l_entity_code := 'EXPENDITURES';
37830 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
37831 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
37832 l_line_definition_owner_code := 'S';
37833 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
37834 --
37835 l_balance_type_code := 'A';
37836 l_segment := NULL;
37837 l_ccid := NULL;
37838 l_adr_transaction_coa_id := NULL;
37839 l_adr_accounting_coa_id := NULL;
37840 l_adr_flexfield_segment_code := NULL;
37841 l_adr_flex_value_set_id := NULL;
37842 l_adr_value_type_code := NULL;
37843 l_adr_value_combination_id := NULL;
37844 l_adr_value_segment_code := NULL;
37845
37846 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37847 l_bflow_class_code := ''; -- 4219869 Business Flow
37848 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37849 l_budgetary_control_flag := 'N';
37850
37851 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37852 l_bflow_applied_to_amt := NULL; -- 5132302
37853 l_entered_amt_idx := NULL; -- 4262811
37854 l_accted_amt_idx := NULL; -- 4262811
37855 l_acc_rev_flag := NULL; -- 4262811
37856 l_accrual_line_num := NULL; -- 4262811
37857 l_tmp_amt := NULL; -- 4262811
37858 --
37859
37860 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37861 l_balance_type_code <> 'B' THEN
37862 IF NVL(p_source_34,'
37863 ') = 'C'
37864 THEN
37865
37866 --
37867 XLA_AE_LINES_PKG.SetNewLine;
37868
37869 p_balance_type_code := l_balance_type_code;
37870 -- set the flag so later we will know whether the gain loss line needs to be created
37871
37872 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37873 p_actual_flag :='A';
37874 END IF;
37875
37876 --
37877 -- bulk performance
37878 --
37879 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37880 p_header_num => 0); -- 4262811
37881 --
37882 -- set accounting line options
37883 --
37884 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37885 p_natural_side_code => 'C'
37886 , p_gain_or_loss_flag => 'N'
37887 , p_gl_transfer_mode_code => 'S'
37888 , p_acct_entry_type_code => 'A'
37889 , p_switch_side_flag => 'Y'
37890 , p_merge_duplicate_code => 'N'
37891 );
37892 --
37893 l_acc_rev_natural_side_code := 'D'; -- 4262811
37894 --
37895 --
37896 -- set accounting line type info
37897 --
37898 xla_ae_lines_pkg.SetAcctLineType
37899 (p_component_type => l_component_type
37900 ,p_event_type_code => l_event_type_code
37901 ,p_line_definition_owner_code => l_line_definition_owner_code
37902 ,p_line_definition_code => l_line_definition_code
37903 ,p_accounting_line_code => l_component_code
37904 ,p_accounting_line_type_code => l_component_type_code
37905 ,p_accounting_line_appl_id => l_component_appl_id
37906 ,p_amb_context_code => l_amb_context_code
37907 ,p_entity_code => l_entity_code
37908 ,p_event_class_code => l_event_class_code);
37909 --
37910 -- set accounting class
37911 --
37912 xla_ae_lines_pkg.SetAcctClass(
37913 p_accounting_class_code => 'COST_CLEARING'
37914 , p_ae_header_id => l_ae_header_id
37915 );
37916
37917 --
37918 -- set rounding class
37919 --
37920 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37921 'COST_CLEARING';
37922
37923 --
37924 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37925 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37926 --
37927 -- bulk performance
37928 --
37929 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37930
37931 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37932 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37933
37934 -- 4955764
37935 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37936 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37937
37938 -- 4458381 Public Sector Enh
37939
37940 --
37941 -- set accounting attributes for the line type
37942 --
37943 l_entered_amt_idx := 35;
37944 l_accted_amt_idx := 40;
37945 l_bflow_applied_to_amt_idx := 19; -- 5132302
37946 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37947 l_rec_acct_attrs.array_char_value(1) := p_source_22;
37948 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
37949 l_rec_acct_attrs.array_char_value(2) := p_source_23;
37950 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
37951 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
37955 l_rec_acct_attrs.array_char_value(5) := p_source_25;
37952 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
37953 l_rec_acct_attrs.array_num_value(4) := p_source_44;
37954 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
37956 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
37957 l_rec_acct_attrs.array_num_value(6) := p_source_45;
37958 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
37959 l_rec_acct_attrs.array_date_value(7) := p_source_27;
37960 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
37961 l_rec_acct_attrs.array_num_value(8) := p_source_28;
37962 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
37963 l_rec_acct_attrs.array_char_value(9) := p_source_29;
37964 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
37965 l_rec_acct_attrs.array_char_value(10) := p_source_30;
37966 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
37967 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
37968 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
37969 l_rec_acct_attrs.array_num_value(12) := p_source_44;
37970 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
37971 l_rec_acct_attrs.array_char_value(13) := p_source_25;
37972 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
37973 l_rec_acct_attrs.array_num_value(14) := p_source_45;
37974 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
37975 l_rec_acct_attrs.array_date_value(15) := p_source_27;
37976 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
37977 l_rec_acct_attrs.array_num_value(16) := p_source_28;
37978 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
37979 l_rec_acct_attrs.array_char_value(17) := p_source_29;
37980 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
37981 l_rec_acct_attrs.array_char_value(18) := p_source_31;
37982 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
37983 l_rec_acct_attrs.array_num_value(19) := p_source_46;
37984 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
37985 l_rec_acct_attrs.array_num_value(20) := p_source_47;
37986 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37987 l_rec_acct_attrs.array_char_value(21) := p_source_48;
37988 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
37989 l_rec_acct_attrs.array_char_value(22) := p_source_49;
37990 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
37991 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
37992 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37993 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
37994 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
37995 l_rec_acct_attrs.array_char_value(25) := p_source_52;
37996 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
37997 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
37998 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
37999 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
38000 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
38001 l_rec_acct_attrs.array_char_value(28) := p_source_34;
38002 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
38003 l_rec_acct_attrs.array_char_value(29) := p_source_54;
38004 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
38005 l_rec_acct_attrs.array_num_value(30) := p_source_2;
38006 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
38007 l_rec_acct_attrs.array_num_value(31) := p_source_46;
38008 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
38009 l_rec_acct_attrs.array_char_value(32) :=
38010 xla_ae_sources_pkg.GetSystemSourceChar(
38011 p_source_code => 'XLA_CURRENCY_CODE'
38012 , p_source_type_code => 'Y'
38013 , p_source_application_id => 602
38014 );
38015 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
38016 l_rec_acct_attrs.array_num_value(33) := p_source_46;
38017 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
38018 l_rec_acct_attrs.array_char_value(34) := p_source_55;
38019 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
38020 l_rec_acct_attrs.array_num_value(35) := p_source_44;
38021 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
38022 l_rec_acct_attrs.array_char_value(36) := p_source_25;
38023 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
38024 l_rec_acct_attrs.array_date_value(37) := p_source_27;
38025 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
38026 l_rec_acct_attrs.array_num_value(38) := p_source_28;
38027 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
38028 l_rec_acct_attrs.array_char_value(39) := p_source_29;
38029 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
38030 l_rec_acct_attrs.array_num_value(40) := p_source_45;
38031 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
38032 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_32);
38033 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
38034 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_35);
38035 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
38036 l_rec_acct_attrs.array_char_value(43) := p_source_34;
38037 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
38038 l_rec_acct_attrs.array_num_value(44) := p_source_56;
38039 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
38040 l_rec_acct_attrs.array_num_value(45) := p_source_57;
38041
38042 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38046 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38043 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38044
38045 ---------------------------------------------------------------------------------------------------------------
38047 ---------------------------------------------------------------------------------------------------------------
38048 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38049
38050 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38051 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38052
38053 IF xla_accounting_cache_pkg.GetValueChar
38054 (p_source_code => 'LEDGER_CATEGORY_CODE'
38055 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38056 AND l_bflow_method_code = 'PRIOR_ENTRY'
38057 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38058 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38059 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38060 )
38061 THEN
38062 xla_ae_lines_pkg.BflowUpgEntry
38063 (p_business_method_code => l_bflow_method_code
38064 ,p_business_class_code => l_bflow_class_code
38065 ,p_balance_type => l_balance_type_code);
38066 ELSE
38067 NULL;
38068 -- No business flow processing for business flow method of NONE.
38069 END IF;
38070
38071 --
38072 -- call analytical criteria
38073 --
38074
38075 --
38076 -- call description
38077 --
38078 -- No description or it is inherited.
38079 --
38080 -- call ADRs
38081 -- Bug 4922099
38082 --
38083 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38084 (NVL(l_actual_upg_option, 'N') = 'O') OR
38085 (NVL(l_enc_upg_option, 'N') = 'O')
38086 )
38087 THEN
38088 NULL;
38089 --
38090 --
38091
38092 l_ccid := AcctDerRule_6(
38093 p_application_id => p_application_id
38094 , p_ae_header_id => l_ae_header_id
38095 , p_source_4 => p_source_4
38096 , p_source_7 => p_source_7
38097 , x_transaction_coa_id => l_adr_transaction_coa_id
38098 , x_accounting_coa_id => l_adr_accounting_coa_id
38099 , x_value_type_code => l_adr_value_type_code
38100 , p_side => 'NA'
38101 );
38102
38103 xla_ae_lines_pkg.set_ccid(
38104 p_code_combination_id => l_ccid
38105 , p_value_type_code => l_adr_value_type_code
38106 , p_transaction_coa_id => l_adr_transaction_coa_id
38107 , p_accounting_coa_id => l_adr_accounting_coa_id
38108 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
38109 , p_adr_type_code => 'S'
38110 , p_component_type => l_component_type
38111 , p_component_code => l_component_code
38112 , p_component_type_code => l_component_type_code
38113 , p_component_appl_id => l_component_appl_id
38114 , p_amb_context_code => l_amb_context_code
38115 , p_side => 'NA'
38116 );
38117
38118
38119 --
38120 --
38121 END IF;
38122 --
38123 -- Bug 4922099
38124 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38125 (NVL(l_enc_upg_option, 'N') = 'O')
38126 ) AND
38127 (l_bflow_method_code = 'PRIOR_ENTRY')
38128 )
38129 THEN
38130 IF
38131 --
38132 1 = 2
38133 --
38134 THEN
38135 xla_accounting_err_pkg.build_message
38136 (p_appli_s_name => 'XLA'
38137 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38138 ,p_token_1 => 'LINE_NUMBER'
38139 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38140 ,p_token_2 => 'LINE_TYPE_NAME'
38141 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38142 l_component_type
38143 ,l_component_code
38144 ,l_component_type_code
38145 ,l_component_appl_id
38146 ,l_amb_context_code
38147 ,l_entity_code
38148 ,l_event_class_code
38149 )
38150 ,p_token_3 => 'OWNER'
38151 ,p_value_3 => xla_lookups_pkg.get_meaning(
38152 p_lookup_type => 'XLA_OWNER_TYPE'
38153 ,p_lookup_code => l_component_type_code
38154 )
38155 ,p_token_4 => 'PRODUCT_NAME'
38156 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38157 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38161 );
38158 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38159 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38160 ,p_ae_header_id => NULL
38162
38163 IF (C_LEVEL_ERROR>= g_log_level) THEN
38164 trace
38165 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38166 ,p_level => C_LEVEL_ERROR
38167 ,p_module => l_log_module);
38168 END IF;
38169 END IF;
38170 END IF;
38171 --
38172 --
38173 ------------------------------------------------------------------------------------------------
38174 -- 4219869 Business Flow
38175 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38176 -- Prior Entry. Currently, the following code is always generated.
38177 ------------------------------------------------------------------------------------------------
38178 XLA_AE_LINES_PKG.ValidateCurrentLine;
38179
38180 ------------------------------------------------------------------------------------
38181 -- 4219869 Business Flow
38182 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38183 ------------------------------------------------------------------------------------
38184 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38185
38186 ----------------------------------------------------------------------------------
38187 -- 4219869 Business Flow
38188 -- Update journal entry status -- Need to generate this within IF <condition>
38189 ----------------------------------------------------------------------------------
38190 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38191 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38192 ,p_balance_type_code => l_balance_type_code
38193 );
38194
38195 -------------------------------------------------------------------------------------------
38196 -- 4262811 - Generate the Accrual Reversal lines
38197 -------------------------------------------------------------------------------------------
38198 BEGIN
38199 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38200 (g_array_event(p_event_id).array_value_num('header_index'));
38201 IF l_acc_rev_flag IS NULL THEN
38202 l_acc_rev_flag := 'N';
38203 END IF;
38204 EXCEPTION
38205 WHEN OTHERS THEN
38206 l_acc_rev_flag := 'N';
38207 END;
38208 --
38209 IF (l_acc_rev_flag = 'Y') THEN
38210
38211 -- 4645092 ------------------------------------------------------------------------------
38212 -- To allow MPA report to determine if it should generate report process
38213 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38214 ------------------------------------------------------------------------------------------
38215
38216 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38217 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38218
38219 --
38220 -- Update the line information that should be overwritten
38221 --
38222 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38223 p_header_num => 1);
38224 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38225
38226 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38227
38228 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38229 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38230 END IF;
38231
38232 --
38233 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38234 --
38235 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38236 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38237 ELSE
38238 ---------------------------------------------------------------------------------------------------
38239 -- 4262811a Switch Sign
38240 ---------------------------------------------------------------------------------------------------
38241 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38242 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38243 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38244 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38245 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38246 -- 5132302
38247 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38248 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38249
38250 END IF;
38251
38252 -- 4955764
38253 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38254 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38255
38256
38257 XLA_AE_LINES_PKG.ValidateCurrentLine;
38258 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38259
38260 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38261 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38262 ,p_balance_type_code => l_balance_type_code);
38263
38264 END IF;
38265
38269 -- No MPA option is assigned.
38266 -----------------------------------------------------------------------------------------
38267 -- 4262811 Multiperiod Accounting
38268 -----------------------------------------------------------------------------------------
38270
38271
38272 END IF;
38273 END IF;
38274 --
38275
38276 --
38277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38278 trace
38279 (p_msg => 'END of AcctLineType_81'
38280 ,p_level => C_LEVEL_PROCEDURE
38281 ,p_module => l_log_module);
38282 END IF;
38283 --
38284 EXCEPTION
38285 WHEN xla_exceptions_pkg.application_exception THEN
38286 RAISE;
38287 WHEN OTHERS THEN
38288 xla_exceptions_pkg.raise_message
38289 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_81');
38290 END AcctLineType_81;
38291 --
38292
38293 ---------------------------------------
38294 --
38295 -- PRIVATE FUNCTION
38296 -- AcctLineType_82
38297 --
38298 ---------------------------------------
38299 PROCEDURE AcctLineType_82 (
38300 p_application_id IN NUMBER
38301 ,p_event_id IN NUMBER
38302 ,p_calculate_acctd_flag IN VARCHAR2
38303 ,p_calculate_g_l_flag IN VARCHAR2
38304 ,p_actual_flag IN OUT VARCHAR2
38305 ,p_balance_type_code OUT VARCHAR2
38306 ,p_gain_or_loss_ref OUT VARCHAR2
38307
38308 --Unbilled Receivables CCID
38309 , p_source_19 IN NUMBER
38310 --Entered Currency Code
38311 , p_source_25 IN VARCHAR2
38312 --Exchange Rate Date
38313 , p_source_27 IN DATE
38314 --Exchange Rate
38315 , p_source_28 IN NUMBER
38316 --Exchange Rate Type
38317 , p_source_29 IN VARCHAR2
38318 --Revenue Distribution Type
38319 , p_source_36 IN VARCHAR2
38320 --Crediting Revenue Flag
38321 , p_source_38 IN VARCHAR2
38322 --Revenue First Distribution ID
38323 , p_source_39 IN NUMBER
38324 --Revenue Second Distribution ID
38325 , p_source_40 IN NUMBER
38326 --Entered Amount
38327 , p_source_41 IN NUMBER
38328 --Event ID
38329 , p_source_42 IN NUMBER
38330 --Accounted Amount
38331 , p_source_43 IN NUMBER
38332 )
38333 IS
38334
38335 l_component_type VARCHAR2(80);
38336 l_component_code VARCHAR2(30);
38337 l_component_type_code VARCHAR2(1);
38338 l_component_appl_id INTEGER;
38339 l_amb_context_code VARCHAR2(30);
38340 l_entity_code VARCHAR2(30);
38341 l_event_class_code VARCHAR2(30);
38342 l_ae_header_id NUMBER;
38343 l_event_type_code VARCHAR2(30);
38344 l_line_definition_code VARCHAR2(30);
38345 l_line_definition_owner_code VARCHAR2(1);
38346 --
38347 -- adr variables
38348 l_segment VARCHAR2(30);
38349 l_ccid NUMBER;
38350 l_adr_transaction_coa_id NUMBER;
38351 l_adr_accounting_coa_id NUMBER;
38352 l_adr_flexfield_segment_code VARCHAR2(30);
38353 l_adr_flex_value_set_id NUMBER;
38354 l_adr_value_type_code VARCHAR2(30);
38355 l_adr_value_combination_id NUMBER;
38356 l_adr_value_segment_code VARCHAR2(30);
38357
38358 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38359 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38360 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38361 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38362
38363 -- 4262811 Variables ------------------------------------------------------------------------------------------
38364 l_entered_amt_idx NUMBER;
38365 l_accted_amt_idx NUMBER;
38366 l_acc_rev_flag VARCHAR2(1);
38367 l_accrual_line_num NUMBER;
38368 l_tmp_amt NUMBER;
38369 l_acc_rev_natural_side_code VARCHAR2(1);
38370
38371 l_num_entries NUMBER;
38372 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38373 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38374 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38375 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38376 l_recog_line_1 NUMBER;
38377 l_recog_line_2 NUMBER;
38378
38379 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38380 l_bflow_applied_to_amt NUMBER; -- 5132302
38381 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38382
38383 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38384
38385 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38386 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38387
38388 ---------------------------------------------------------------------------------------------------------------
38389
38390
38391 --
38392 -- bulk performance
38393 --
38394 l_balance_type_code VARCHAR2(1);
38395 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38396 l_log_module VARCHAR2(240);
38397
38398 --
38399 -- Upgrade strategy
38400 --
38401 l_actual_upg_option VARCHAR2(1);
38402 l_enc_upg_option VARCHAR2(1);
38403
38404 --
38405 BEGIN
38406 --
38407 IF g_log_enabled THEN
38408 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
38409 END IF;
38410 --
38411 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38412
38413 trace
38414 (p_msg => 'BEGIN of AcctLineType_82'
38418 END IF;
38415 ,p_level => C_LEVEL_PROCEDURE
38416 ,p_module => l_log_module);
38417
38419 --
38420 l_component_type := 'AMB_JLT';
38421 l_component_code := 'PA_UBR';
38422 l_component_type_code := 'S';
38423 l_component_appl_id := 275;
38424 l_amb_context_code := 'DEFAULT';
38425 l_entity_code := 'REVENUE';
38426 l_event_class_code := 'REVENUE';
38427 l_event_type_code := 'REVENUE_ALL';
38428 l_line_definition_owner_code := 'S';
38429 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
38430 --
38431 l_balance_type_code := 'A';
38432 l_segment := NULL;
38433 l_ccid := NULL;
38434 l_adr_transaction_coa_id := NULL;
38435 l_adr_accounting_coa_id := NULL;
38436 l_adr_flexfield_segment_code := NULL;
38437 l_adr_flex_value_set_id := NULL;
38438 l_adr_value_type_code := NULL;
38439 l_adr_value_combination_id := NULL;
38440 l_adr_value_segment_code := NULL;
38441
38442 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38443 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
38444 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38445 l_budgetary_control_flag := 'N';
38446
38447 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38448 l_bflow_applied_to_amt := NULL; -- 5132302
38449 l_entered_amt_idx := NULL; -- 4262811
38450 l_accted_amt_idx := NULL; -- 4262811
38451 l_acc_rev_flag := NULL; -- 4262811
38452 l_accrual_line_num := NULL; -- 4262811
38453 l_tmp_amt := NULL; -- 4262811
38454 --
38455
38456 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38457 l_balance_type_code <> 'B' THEN
38458 IF NVL(p_source_36,'
38459 ') = 'Revenue - UBR' AND
38460 NVL(p_source_38,'
38461 ') = 'N'
38462 THEN
38463
38464 --
38465 XLA_AE_LINES_PKG.SetNewLine;
38466
38467 p_balance_type_code := l_balance_type_code;
38468 -- set the flag so later we will know whether the gain loss line needs to be created
38469
38470 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38471 p_actual_flag :='A';
38472 END IF;
38473
38474 --
38475 -- bulk performance
38476 --
38477 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38478 p_header_num => 0); -- 4262811
38479 --
38480 -- set accounting line options
38481 --
38482 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38483 p_natural_side_code => 'D'
38484 , p_gain_or_loss_flag => 'N'
38485 , p_gl_transfer_mode_code => 'S'
38486 , p_acct_entry_type_code => 'A'
38487 , p_switch_side_flag => 'Y'
38488 , p_merge_duplicate_code => 'N'
38489 );
38490 --
38491 l_acc_rev_natural_side_code := 'C'; -- 4262811
38492 --
38493 --
38494 -- set accounting line type info
38495 --
38496 xla_ae_lines_pkg.SetAcctLineType
38497 (p_component_type => l_component_type
38498 ,p_event_type_code => l_event_type_code
38499 ,p_line_definition_owner_code => l_line_definition_owner_code
38500 ,p_line_definition_code => l_line_definition_code
38501 ,p_accounting_line_code => l_component_code
38502 ,p_accounting_line_type_code => l_component_type_code
38503 ,p_accounting_line_appl_id => l_component_appl_id
38504 ,p_amb_context_code => l_amb_context_code
38505 ,p_entity_code => l_entity_code
38506 ,p_event_class_code => l_event_class_code);
38507 --
38508 -- set accounting class
38509 --
38510 xla_ae_lines_pkg.SetAcctClass(
38511 p_accounting_class_code => 'UNBILL'
38512 , p_ae_header_id => l_ae_header_id
38513 );
38514
38515 --
38516 -- set rounding class
38517 --
38518 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38519 'UNBILL';
38520
38521 --
38522 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38523 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38524 --
38525 -- bulk performance
38526 --
38527 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38528
38529 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38530 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38531
38532 -- 4955764
38533 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38534 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38535
38536 -- 4458381 Public Sector Enh
38537
38538 --
38539 -- set accounting attributes for the line type
38540 --
38541 l_entered_amt_idx := 4;
38542 l_accted_amt_idx := 10;
38543 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38544 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
38545 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
38546 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
38547 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
38548 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
38549 l_rec_acct_attrs.array_char_value(3) := p_source_36;
38553 l_rec_acct_attrs.array_char_value(5) := p_source_25;
38550 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
38551 l_rec_acct_attrs.array_num_value(4) := p_source_41;
38552 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
38554 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
38555 l_rec_acct_attrs.array_date_value(6) := p_source_27;
38556 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
38557 l_rec_acct_attrs.array_num_value(7) := p_source_28;
38558 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
38559 l_rec_acct_attrs.array_char_value(8) := p_source_29;
38560 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
38561 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
38562 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
38563 l_rec_acct_attrs.array_num_value(10) := p_source_43;
38564
38565 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38566 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38567
38568 ---------------------------------------------------------------------------------------------------------------
38569 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38570 ---------------------------------------------------------------------------------------------------------------
38571 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38572
38573 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38574 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38575
38576 IF xla_accounting_cache_pkg.GetValueChar
38577 (p_source_code => 'LEDGER_CATEGORY_CODE'
38578 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38579 AND l_bflow_method_code = 'PRIOR_ENTRY'
38580 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38581 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38582 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38583 )
38584 THEN
38585 xla_ae_lines_pkg.BflowUpgEntry
38586 (p_business_method_code => l_bflow_method_code
38587 ,p_business_class_code => l_bflow_class_code
38588 ,p_balance_type => l_balance_type_code);
38589 ELSE
38590 NULL;
38591 -- No business flow processing for business flow method of NONE.
38592 END IF;
38593
38594 --
38595 -- call analytical criteria
38596 --
38597
38598 --
38599 -- call description
38600 --
38601 -- No description or it is inherited.
38602 --
38603 -- call ADRs
38604 -- Bug 4922099
38605 --
38606 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38607 (NVL(l_actual_upg_option, 'N') = 'O') OR
38608 (NVL(l_enc_upg_option, 'N') = 'O')
38609 )
38610 THEN
38611 NULL;
38612 --
38613 --
38614
38615 l_ccid := AcctDerRule_18(
38616 p_application_id => p_application_id
38617 , p_ae_header_id => l_ae_header_id
38618 , p_source_19 => p_source_19
38619 , x_transaction_coa_id => l_adr_transaction_coa_id
38620 , x_accounting_coa_id => l_adr_accounting_coa_id
38621 , x_value_type_code => l_adr_value_type_code
38622 , p_side => 'NA'
38623 );
38624
38625 xla_ae_lines_pkg.set_ccid(
38626 p_code_combination_id => l_ccid
38627 , p_value_type_code => l_adr_value_type_code
38628 , p_transaction_coa_id => l_adr_transaction_coa_id
38629 , p_accounting_coa_id => l_adr_accounting_coa_id
38630 , p_adr_code => 'UBR_RULE'
38631 , p_adr_type_code => 'S'
38632 , p_component_type => l_component_type
38633 , p_component_code => l_component_code
38634 , p_component_type_code => l_component_type_code
38635 , p_component_appl_id => l_component_appl_id
38636 , p_amb_context_code => l_amb_context_code
38637 , p_side => 'NA'
38638 );
38639
38640
38641 --
38642 --
38643 END IF;
38644 --
38645 -- Bug 4922099
38646 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38647 (NVL(l_enc_upg_option, 'N') = 'O')
38648 ) AND
38649 (l_bflow_method_code = 'PRIOR_ENTRY')
38650 )
38651 THEN
38652 IF
38653 --
38654 1 = 2
38655 --
38656 THEN
38657 xla_accounting_err_pkg.build_message
38658 (p_appli_s_name => 'XLA'
38659 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38660 ,p_token_1 => 'LINE_NUMBER'
38661 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38662 ,p_token_2 => 'LINE_TYPE_NAME'
38663 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38664 l_component_type
38665 ,l_component_code
38666 ,l_component_type_code
38667 ,l_component_appl_id
38668 ,l_amb_context_code
38672 ,p_token_3 => 'OWNER'
38669 ,l_entity_code
38670 ,l_event_class_code
38671 )
38673 ,p_value_3 => xla_lookups_pkg.get_meaning(
38674 p_lookup_type => 'XLA_OWNER_TYPE'
38675 ,p_lookup_code => l_component_type_code
38676 )
38677 ,p_token_4 => 'PRODUCT_NAME'
38678 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38679 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38680 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38681 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38682 ,p_ae_header_id => NULL
38683 );
38684
38685 IF (C_LEVEL_ERROR>= g_log_level) THEN
38686 trace
38687 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38688 ,p_level => C_LEVEL_ERROR
38689 ,p_module => l_log_module);
38690 END IF;
38691 END IF;
38692 END IF;
38693 --
38694 --
38695 ------------------------------------------------------------------------------------------------
38696 -- 4219869 Business Flow
38697 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38698 -- Prior Entry. Currently, the following code is always generated.
38699 ------------------------------------------------------------------------------------------------
38700 XLA_AE_LINES_PKG.ValidateCurrentLine;
38701
38702 ------------------------------------------------------------------------------------
38703 -- 4219869 Business Flow
38704 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38705 ------------------------------------------------------------------------------------
38706 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38707
38708 ----------------------------------------------------------------------------------
38709 -- 4219869 Business Flow
38710 -- Update journal entry status -- Need to generate this within IF <condition>
38711 ----------------------------------------------------------------------------------
38712 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38713 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38714 ,p_balance_type_code => l_balance_type_code
38715 );
38716
38717 -------------------------------------------------------------------------------------------
38718 -- 4262811 - Generate the Accrual Reversal lines
38719 -------------------------------------------------------------------------------------------
38720 BEGIN
38721 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38722 (g_array_event(p_event_id).array_value_num('header_index'));
38723 IF l_acc_rev_flag IS NULL THEN
38724 l_acc_rev_flag := 'N';
38725 END IF;
38726 EXCEPTION
38727 WHEN OTHERS THEN
38728 l_acc_rev_flag := 'N';
38729 END;
38730 --
38731 IF (l_acc_rev_flag = 'Y') THEN
38732
38733 -- 4645092 ------------------------------------------------------------------------------
38734 -- To allow MPA report to determine if it should generate report process
38735 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38736 ------------------------------------------------------------------------------------------
38737
38738 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38739 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38740
38741 --
38742 -- Update the line information that should be overwritten
38743 --
38744 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38745 p_header_num => 1);
38746 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38747
38748 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38749
38750 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38751 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38752 END IF;
38753
38754 --
38755 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38756 --
38757 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38758 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38759 ELSE
38760 ---------------------------------------------------------------------------------------------------
38761 -- 4262811a Switch Sign
38762 ---------------------------------------------------------------------------------------------------
38763 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38764 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38765 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38766 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38770 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38767 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38768 -- 5132302
38769 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38771
38772 END IF;
38773
38774 -- 4955764
38775 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38776 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38777
38778
38779 XLA_AE_LINES_PKG.ValidateCurrentLine;
38780 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38781
38782 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38783 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38784 ,p_balance_type_code => l_balance_type_code);
38785
38786 END IF;
38787
38788 -----------------------------------------------------------------------------------------
38789 -- 4262811 Multiperiod Accounting
38790 -----------------------------------------------------------------------------------------
38791 -- No MPA option is assigned.
38792
38793
38794 END IF;
38795 END IF;
38796 --
38797
38798 --
38799 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38800 trace
38801 (p_msg => 'END of AcctLineType_82'
38802 ,p_level => C_LEVEL_PROCEDURE
38803 ,p_module => l_log_module);
38804 END IF;
38805 --
38806 EXCEPTION
38807 WHEN xla_exceptions_pkg.application_exception THEN
38808 RAISE;
38809 WHEN OTHERS THEN
38810 xla_exceptions_pkg.raise_message
38811 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_82');
38812 END AcctLineType_82;
38813 --
38814
38815 ---------------------------------------
38816 --
38817 -- PRIVATE FUNCTION
38818 -- AcctLineType_83
38819 --
38820 ---------------------------------------
38821 PROCEDURE AcctLineType_83 (
38822 p_application_id IN NUMBER
38823 ,p_event_id IN NUMBER
38824 ,p_calculate_acctd_flag IN VARCHAR2
38825 ,p_calculate_g_l_flag IN VARCHAR2
38826 ,p_actual_flag IN OUT VARCHAR2
38827 ,p_balance_type_code OUT VARCHAR2
38828 ,p_gain_or_loss_ref OUT VARCHAR2
38829
38830 --Unbilled Receivables CCID
38831 , p_source_19 IN NUMBER
38832 --Actual Upgrade Credit Accounting Class
38833 , p_source_23 IN VARCHAR2
38834 --Entered Currency Code
38835 , p_source_25 IN VARCHAR2
38836 --Exchange Rate Date
38837 , p_source_27 IN DATE
38838 --Exchange Rate
38839 , p_source_28 IN NUMBER
38840 --Exchange Rate Type
38841 , p_source_29 IN VARCHAR2
38842 --Actual Upgrade Debit Accounting Class
38843 , p_source_30 IN VARCHAR2
38844 --Use Actuals Upgrade Attributes Flag
38845 , p_source_31 IN VARCHAR2
38846 --Revenue Distribution Type
38847 , p_source_36 IN VARCHAR2
38848 --Crediting Revenue Flag
38849 , p_source_38 IN VARCHAR2
38850 --Revenue First Distribution ID
38851 , p_source_39 IN NUMBER
38852 --Revenue Second Distribution ID
38853 , p_source_40 IN NUMBER
38854 --Entered Amount
38855 , p_source_41 IN NUMBER
38856 --Event ID
38857 , p_source_42 IN NUMBER
38858 --Accounted Amount
38859 , p_source_43 IN NUMBER
38860 --Actual Upgrade Credit CCID
38861 , p_source_59 IN NUMBER
38862 --Actual Upgrade Debit CCID
38863 , p_source_60 IN NUMBER
38864 --Application ID
38865 , p_source_61 IN NUMBER
38866 --Revenue Entity Code
38867 , p_source_62 IN VARCHAR2
38868 --Crediting Revenue First Distribution ID
38869 , p_source_63 IN NUMBER
38870 --Project ID
38871 , p_source_64 IN NUMBER
38872 --Crediting Revenue Second Distribution ID
38873 , p_source_65 IN NUMBER
38874 --Draft Revenue Number Credited
38875 , p_source_66 IN NUMBER
38876 )
38877 IS
38878
38879 l_component_type VARCHAR2(80);
38880 l_component_code VARCHAR2(30);
38881 l_component_type_code VARCHAR2(1);
38882 l_component_appl_id INTEGER;
38883 l_amb_context_code VARCHAR2(30);
38884 l_entity_code VARCHAR2(30);
38885 l_event_class_code VARCHAR2(30);
38886 l_ae_header_id NUMBER;
38887 l_event_type_code VARCHAR2(30);
38888 l_line_definition_code VARCHAR2(30);
38889 l_line_definition_owner_code VARCHAR2(1);
38890 --
38891 -- adr variables
38892 l_segment VARCHAR2(30);
38893 l_ccid NUMBER;
38894 l_adr_transaction_coa_id NUMBER;
38895 l_adr_accounting_coa_id NUMBER;
38896 l_adr_flexfield_segment_code VARCHAR2(30);
38897 l_adr_flex_value_set_id NUMBER;
38898 l_adr_value_type_code VARCHAR2(30);
38899 l_adr_value_combination_id NUMBER;
38900 l_adr_value_segment_code VARCHAR2(30);
38901
38902 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38903 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38904 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38905 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38906
38907 -- 4262811 Variables ------------------------------------------------------------------------------------------
38908 l_entered_amt_idx NUMBER;
38909 l_accted_amt_idx NUMBER;
38910 l_acc_rev_flag VARCHAR2(1);
38911 l_accrual_line_num NUMBER;
38915 l_num_entries NUMBER;
38912 l_tmp_amt NUMBER;
38913 l_acc_rev_natural_side_code VARCHAR2(1);
38914
38916 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38917 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38918 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38919 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38920 l_recog_line_1 NUMBER;
38921 l_recog_line_2 NUMBER;
38922
38923 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38924 l_bflow_applied_to_amt NUMBER; -- 5132302
38925 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38926
38927 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38928
38929 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38930 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38931
38932 ---------------------------------------------------------------------------------------------------------------
38933
38934
38935 --
38936 -- bulk performance
38937 --
38938 l_balance_type_code VARCHAR2(1);
38939 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38940 l_log_module VARCHAR2(240);
38941
38942 --
38943 -- Upgrade strategy
38944 --
38945 l_actual_upg_option VARCHAR2(1);
38946 l_enc_upg_option VARCHAR2(1);
38947
38948 --
38949 BEGIN
38950 --
38951 IF g_log_enabled THEN
38952 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
38953 END IF;
38954 --
38955 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38956
38957 trace
38958 (p_msg => 'BEGIN of AcctLineType_83'
38959 ,p_level => C_LEVEL_PROCEDURE
38960 ,p_module => l_log_module);
38961
38962 END IF;
38963 --
38964 l_component_type := 'AMB_JLT';
38965 l_component_code := 'PA_UBR_ADJ';
38966 l_component_type_code := 'S';
38967 l_component_appl_id := 275;
38968 l_amb_context_code := 'DEFAULT';
38969 l_entity_code := 'REVENUE';
38970 l_event_class_code := 'REVENUE_ADJ';
38971 l_event_type_code := 'REVENUE_ADJ_ALL';
38972 l_line_definition_owner_code := 'S';
38973 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
38974 --
38975 l_balance_type_code := 'A';
38976 l_segment := NULL;
38977 l_ccid := NULL;
38978 l_adr_transaction_coa_id := NULL;
38979 l_adr_accounting_coa_id := NULL;
38980 l_adr_flexfield_segment_code := NULL;
38981 l_adr_flex_value_set_id := NULL;
38982 l_adr_value_type_code := NULL;
38983 l_adr_value_combination_id := NULL;
38984 l_adr_value_segment_code := NULL;
38985
38986 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38987 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
38988 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38989 l_budgetary_control_flag := 'N';
38990
38991 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38992 l_bflow_applied_to_amt := NULL; -- 5132302
38993 l_entered_amt_idx := NULL; -- 4262811
38994 l_accted_amt_idx := NULL; -- 4262811
38995 l_acc_rev_flag := NULL; -- 4262811
38996 l_accrual_line_num := NULL; -- 4262811
38997 l_tmp_amt := NULL; -- 4262811
38998 --
38999
39000 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39001 l_balance_type_code <> 'B' THEN
39002 IF NVL(p_source_36,'
39003 ') = 'Revenue - UBR' AND
39004 NVL(p_source_38,'
39005 ') = 'Y'
39006 THEN
39007
39008 --
39009 XLA_AE_LINES_PKG.SetNewLine;
39010
39011 p_balance_type_code := l_balance_type_code;
39012 -- set the flag so later we will know whether the gain loss line needs to be created
39013
39014 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39015 p_actual_flag :='A';
39016 END IF;
39017
39018 --
39019 -- bulk performance
39020 --
39021 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39022 p_header_num => 0); -- 4262811
39023 --
39024 -- set accounting line options
39025 --
39026 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39027 p_natural_side_code => 'C'
39028 , p_gain_or_loss_flag => 'N'
39029 , p_gl_transfer_mode_code => 'S'
39030 , p_acct_entry_type_code => 'A'
39031 , p_switch_side_flag => 'Y'
39032 , p_merge_duplicate_code => 'N'
39033 );
39034 --
39035 l_acc_rev_natural_side_code := 'D'; -- 4262811
39036 --
39037 --
39038 -- set accounting line type info
39039 --
39040 xla_ae_lines_pkg.SetAcctLineType
39041 (p_component_type => l_component_type
39042 ,p_event_type_code => l_event_type_code
39043 ,p_line_definition_owner_code => l_line_definition_owner_code
39044 ,p_line_definition_code => l_line_definition_code
39045 ,p_accounting_line_code => l_component_code
39046 ,p_accounting_line_type_code => l_component_type_code
39047 ,p_accounting_line_appl_id => l_component_appl_id
39048 ,p_amb_context_code => l_amb_context_code
39049 ,p_entity_code => l_entity_code
39050 ,p_event_class_code => l_event_class_code);
39051 --
39052 -- set accounting class
39056 , p_ae_header_id => l_ae_header_id
39053 --
39054 xla_ae_lines_pkg.SetAcctClass(
39055 p_accounting_class_code => 'UNBILL'
39057 );
39058
39059 --
39060 -- set rounding class
39061 --
39062 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39063 'UNBILL';
39064
39065 --
39066 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39067 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39068 --
39069 -- bulk performance
39070 --
39071 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39072
39073 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39074 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39075
39076 -- 4955764
39077 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39078 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39079
39080 -- 4458381 Public Sector Enh
39081
39082 --
39083 -- set accounting attributes for the line type
39084 --
39085 l_entered_amt_idx := 28;
39086 l_accted_amt_idx := 34;
39087 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39088 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
39089 l_rec_acct_attrs.array_char_value(1) := p_source_23;
39090 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
39091 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
39092 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
39093 l_rec_acct_attrs.array_num_value(3) := p_source_41;
39094 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
39095 l_rec_acct_attrs.array_char_value(4) := p_source_25;
39096 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
39097 l_rec_acct_attrs.array_num_value(5) := p_source_43;
39098 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
39099 l_rec_acct_attrs.array_date_value(6) := p_source_27;
39100 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
39101 l_rec_acct_attrs.array_num_value(7) := p_source_28;
39102 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
39103 l_rec_acct_attrs.array_char_value(8) := p_source_29;
39104 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
39105 l_rec_acct_attrs.array_char_value(9) := p_source_30;
39106 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
39107 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
39108 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
39109 l_rec_acct_attrs.array_num_value(11) := p_source_41;
39110 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
39111 l_rec_acct_attrs.array_char_value(12) := p_source_25;
39112 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
39113 l_rec_acct_attrs.array_num_value(13) := p_source_43;
39114 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
39115 l_rec_acct_attrs.array_date_value(14) := p_source_27;
39116 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
39117 l_rec_acct_attrs.array_num_value(15) := p_source_28;
39118 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
39119 l_rec_acct_attrs.array_char_value(16) := p_source_29;
39120 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
39121 l_rec_acct_attrs.array_char_value(17) := p_source_31;
39122 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
39123 l_rec_acct_attrs.array_num_value(18) := p_source_61;
39124 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39125 l_rec_acct_attrs.array_char_value(19) := p_source_36;
39126 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
39127 l_rec_acct_attrs.array_char_value(20) := p_source_62;
39128 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
39129 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
39130 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39131 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
39132 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
39133 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
39134 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
39135 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
39136 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
39137 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
39138 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
39139 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
39140 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
39141 l_rec_acct_attrs.array_char_value(27) := p_source_36;
39142 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
39143 l_rec_acct_attrs.array_num_value(28) := p_source_41;
39144 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
39145 l_rec_acct_attrs.array_char_value(29) := p_source_25;
39146 l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_DATE';
39147 l_rec_acct_attrs.array_date_value(30) := p_source_27;
39148 l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE';
39149 l_rec_acct_attrs.array_num_value(31) := p_source_28;
39150 l_rec_acct_attrs.array_acct_attr_code(32) := 'EXCHANGE_RATE_TYPE';
39151 l_rec_acct_attrs.array_char_value(32) := p_source_29;
39152 l_rec_acct_attrs.array_acct_attr_code(33) := 'GAIN_LOSS_REFERENCE';
39153 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_42);
39157 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39154 l_rec_acct_attrs.array_acct_attr_code(34) := 'LEDGER_AMOUNT';
39155 l_rec_acct_attrs.array_num_value(34) := p_source_43;
39156
39158 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39159
39160 ---------------------------------------------------------------------------------------------------------------
39161 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39162 ---------------------------------------------------------------------------------------------------------------
39163 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39164
39165 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39166 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39167
39168 IF xla_accounting_cache_pkg.GetValueChar
39169 (p_source_code => 'LEDGER_CATEGORY_CODE'
39170 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39171 AND l_bflow_method_code = 'PRIOR_ENTRY'
39172 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39173 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39174 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39175 )
39176 THEN
39177 xla_ae_lines_pkg.BflowUpgEntry
39178 (p_business_method_code => l_bflow_method_code
39179 ,p_business_class_code => l_bflow_class_code
39180 ,p_balance_type => l_balance_type_code);
39181 ELSE
39182 NULL;
39183 -- No business flow processing for business flow method of NONE.
39184 END IF;
39185
39186 --
39187 -- call analytical criteria
39188 --
39189
39190 --
39191 -- call description
39192 --
39193 -- No description or it is inherited.
39194 --
39195 -- call ADRs
39196 -- Bug 4922099
39197 --
39198 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39199 (NVL(l_actual_upg_option, 'N') = 'O') OR
39200 (NVL(l_enc_upg_option, 'N') = 'O')
39201 )
39202 THEN
39203 NULL;
39204 --
39205 --
39206
39207 l_ccid := AcctDerRule_18(
39208 p_application_id => p_application_id
39209 , p_ae_header_id => l_ae_header_id
39210 , p_source_19 => p_source_19
39211 , x_transaction_coa_id => l_adr_transaction_coa_id
39212 , x_accounting_coa_id => l_adr_accounting_coa_id
39213 , x_value_type_code => l_adr_value_type_code
39214 , p_side => 'NA'
39215 );
39216
39217 xla_ae_lines_pkg.set_ccid(
39218 p_code_combination_id => l_ccid
39219 , p_value_type_code => l_adr_value_type_code
39220 , p_transaction_coa_id => l_adr_transaction_coa_id
39221 , p_accounting_coa_id => l_adr_accounting_coa_id
39222 , p_adr_code => 'UBR_RULE'
39223 , p_adr_type_code => 'S'
39224 , p_component_type => l_component_type
39225 , p_component_code => l_component_code
39226 , p_component_type_code => l_component_type_code
39227 , p_component_appl_id => l_component_appl_id
39228 , p_amb_context_code => l_amb_context_code
39229 , p_side => 'NA'
39230 );
39231
39232
39233 --
39234 --
39235 END IF;
39236 --
39237 -- Bug 4922099
39238 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39239 (NVL(l_enc_upg_option, 'N') = 'O')
39240 ) AND
39241 (l_bflow_method_code = 'PRIOR_ENTRY')
39242 )
39243 THEN
39244 IF
39245 --
39246 1 = 2
39247 --
39248 THEN
39249 xla_accounting_err_pkg.build_message
39250 (p_appli_s_name => 'XLA'
39251 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39252 ,p_token_1 => 'LINE_NUMBER'
39253 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39254 ,p_token_2 => 'LINE_TYPE_NAME'
39255 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39256 l_component_type
39257 ,l_component_code
39258 ,l_component_type_code
39259 ,l_component_appl_id
39260 ,l_amb_context_code
39261 ,l_entity_code
39262 ,l_event_class_code
39263 )
39264 ,p_token_3 => 'OWNER'
39265 ,p_value_3 => xla_lookups_pkg.get_meaning(
39266 p_lookup_type => 'XLA_OWNER_TYPE'
39267 ,p_lookup_code => l_component_type_code
39268 )
39269 ,p_token_4 => 'PRODUCT_NAME'
39273 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39270 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39271 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39272 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39274 ,p_ae_header_id => NULL
39275 );
39276
39277 IF (C_LEVEL_ERROR>= g_log_level) THEN
39278 trace
39279 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39280 ,p_level => C_LEVEL_ERROR
39281 ,p_module => l_log_module);
39282 END IF;
39283 END IF;
39284 END IF;
39285 --
39286 --
39287 ------------------------------------------------------------------------------------------------
39288 -- 4219869 Business Flow
39289 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39290 -- Prior Entry. Currently, the following code is always generated.
39291 ------------------------------------------------------------------------------------------------
39292 XLA_AE_LINES_PKG.ValidateCurrentLine;
39293
39294 ------------------------------------------------------------------------------------
39295 -- 4219869 Business Flow
39296 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39297 ------------------------------------------------------------------------------------
39298 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39299
39300 ----------------------------------------------------------------------------------
39301 -- 4219869 Business Flow
39302 -- Update journal entry status -- Need to generate this within IF <condition>
39303 ----------------------------------------------------------------------------------
39304 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39305 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39306 ,p_balance_type_code => l_balance_type_code
39307 );
39308
39309 -------------------------------------------------------------------------------------------
39310 -- 4262811 - Generate the Accrual Reversal lines
39311 -------------------------------------------------------------------------------------------
39312 BEGIN
39313 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39314 (g_array_event(p_event_id).array_value_num('header_index'));
39315 IF l_acc_rev_flag IS NULL THEN
39316 l_acc_rev_flag := 'N';
39317 END IF;
39318 EXCEPTION
39319 WHEN OTHERS THEN
39320 l_acc_rev_flag := 'N';
39321 END;
39322 --
39323 IF (l_acc_rev_flag = 'Y') THEN
39324
39325 -- 4645092 ------------------------------------------------------------------------------
39326 -- To allow MPA report to determine if it should generate report process
39327 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39328 ------------------------------------------------------------------------------------------
39329
39330 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39331 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39332
39333 --
39334 -- Update the line information that should be overwritten
39335 --
39336 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39337 p_header_num => 1);
39338 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39339
39340 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39341
39342 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39343 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39344 END IF;
39345
39346 --
39347 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39348 --
39349 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39350 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39351 ELSE
39352 ---------------------------------------------------------------------------------------------------
39353 -- 4262811a Switch Sign
39354 ---------------------------------------------------------------------------------------------------
39355 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39356 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39357 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39358 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39359 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39360 -- 5132302
39361 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39362 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39363
39364 END IF;
39365
39366 -- 4955764
39367 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39368 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39369
39370
39371 XLA_AE_LINES_PKG.ValidateCurrentLine;
39372 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39373
39374 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39378 END IF;
39375 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39376 ,p_balance_type_code => l_balance_type_code);
39377
39379
39380 -----------------------------------------------------------------------------------------
39381 -- 4262811 Multiperiod Accounting
39382 -----------------------------------------------------------------------------------------
39383 -- No MPA option is assigned.
39384
39385
39386 END IF;
39387 END IF;
39388 --
39389
39390 --
39391 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39392 trace
39393 (p_msg => 'END of AcctLineType_83'
39394 ,p_level => C_LEVEL_PROCEDURE
39395 ,p_module => l_log_module);
39396 END IF;
39397 --
39398 EXCEPTION
39399 WHEN xla_exceptions_pkg.application_exception THEN
39400 RAISE;
39401 WHEN OTHERS THEN
39402 xla_exceptions_pkg.raise_message
39403 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_83');
39404 END AcctLineType_83;
39405 --
39406
39407 ---------------------------------------
39408 --
39409 -- PRIVATE FUNCTION
39410 -- AcctLineType_84
39411 --
39412 ---------------------------------------
39413 PROCEDURE AcctLineType_84 (
39414 p_application_id IN NUMBER
39415 ,p_event_id IN NUMBER
39416 ,p_calculate_acctd_flag IN VARCHAR2
39417 ,p_calculate_g_l_flag IN VARCHAR2
39418 ,p_actual_flag IN OUT VARCHAR2
39419 ,p_balance_type_code OUT VARCHAR2
39420 ,p_gain_or_loss_ref OUT VARCHAR2
39421
39422 --Unearned Revenue CCID
39423 , p_source_20 IN NUMBER
39424 --Entered Currency Code
39425 , p_source_25 IN VARCHAR2
39426 --Exchange Rate Date
39427 , p_source_27 IN DATE
39428 --Exchange Rate
39429 , p_source_28 IN NUMBER
39430 --Exchange Rate Type
39431 , p_source_29 IN VARCHAR2
39432 --Revenue Distribution Type
39433 , p_source_36 IN VARCHAR2
39434 --Crediting Revenue Flag
39435 , p_source_38 IN VARCHAR2
39436 --Revenue First Distribution ID
39437 , p_source_39 IN NUMBER
39438 --Revenue Second Distribution ID
39439 , p_source_40 IN NUMBER
39440 --Entered Amount
39441 , p_source_41 IN NUMBER
39442 --Event ID
39443 , p_source_42 IN NUMBER
39444 --Accounted Amount
39445 , p_source_43 IN NUMBER
39446 )
39447 IS
39448
39449 l_component_type VARCHAR2(80);
39450 l_component_code VARCHAR2(30);
39451 l_component_type_code VARCHAR2(1);
39452 l_component_appl_id INTEGER;
39453 l_amb_context_code VARCHAR2(30);
39454 l_entity_code VARCHAR2(30);
39455 l_event_class_code VARCHAR2(30);
39456 l_ae_header_id NUMBER;
39457 l_event_type_code VARCHAR2(30);
39458 l_line_definition_code VARCHAR2(30);
39459 l_line_definition_owner_code VARCHAR2(1);
39460 --
39461 -- adr variables
39462 l_segment VARCHAR2(30);
39463 l_ccid NUMBER;
39464 l_adr_transaction_coa_id NUMBER;
39465 l_adr_accounting_coa_id NUMBER;
39466 l_adr_flexfield_segment_code VARCHAR2(30);
39467 l_adr_flex_value_set_id NUMBER;
39468 l_adr_value_type_code VARCHAR2(30);
39469 l_adr_value_combination_id NUMBER;
39470 l_adr_value_segment_code VARCHAR2(30);
39471
39472 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39473 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39474 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39475 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39476
39477 -- 4262811 Variables ------------------------------------------------------------------------------------------
39478 l_entered_amt_idx NUMBER;
39479 l_accted_amt_idx NUMBER;
39480 l_acc_rev_flag VARCHAR2(1);
39481 l_accrual_line_num NUMBER;
39482 l_tmp_amt NUMBER;
39483 l_acc_rev_natural_side_code VARCHAR2(1);
39484
39485 l_num_entries NUMBER;
39486 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39487 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39488 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39489 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39490 l_recog_line_1 NUMBER;
39491 l_recog_line_2 NUMBER;
39492
39493 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39494 l_bflow_applied_to_amt NUMBER; -- 5132302
39495 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39496
39497 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39498
39499 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39500 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39501
39502 ---------------------------------------------------------------------------------------------------------------
39503
39504
39505 --
39506 -- bulk performance
39507 --
39508 l_balance_type_code VARCHAR2(1);
39509 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39510 l_log_module VARCHAR2(240);
39511
39512 --
39513 -- Upgrade strategy
39514 --
39515 l_actual_upg_option VARCHAR2(1);
39516 l_enc_upg_option VARCHAR2(1);
39517
39518 --
39519 BEGIN
39520 --
39521 IF g_log_enabled THEN
39522 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
39526
39523 END IF;
39524 --
39525 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39527 trace
39528 (p_msg => 'BEGIN of AcctLineType_84'
39529 ,p_level => C_LEVEL_PROCEDURE
39530 ,p_module => l_log_module);
39531
39532 END IF;
39533 --
39534 l_component_type := 'AMB_JLT';
39535 l_component_code := 'PA_UER';
39536 l_component_type_code := 'S';
39537 l_component_appl_id := 275;
39538 l_amb_context_code := 'DEFAULT';
39539 l_entity_code := 'REVENUE';
39540 l_event_class_code := 'REVENUE';
39541 l_event_type_code := 'REVENUE_ALL';
39542 l_line_definition_owner_code := 'S';
39543 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
39544 --
39545 l_balance_type_code := 'A';
39546 l_segment := NULL;
39547 l_ccid := NULL;
39548 l_adr_transaction_coa_id := NULL;
39549 l_adr_accounting_coa_id := NULL;
39550 l_adr_flexfield_segment_code := NULL;
39551 l_adr_flex_value_set_id := NULL;
39552 l_adr_value_type_code := NULL;
39553 l_adr_value_combination_id := NULL;
39554 l_adr_value_segment_code := NULL;
39555
39556 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39557 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
39558 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39559 l_budgetary_control_flag := 'N';
39560
39561 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39562 l_bflow_applied_to_amt := NULL; -- 5132302
39563 l_entered_amt_idx := NULL; -- 4262811
39564 l_accted_amt_idx := NULL; -- 4262811
39565 l_acc_rev_flag := NULL; -- 4262811
39566 l_accrual_line_num := NULL; -- 4262811
39567 l_tmp_amt := NULL; -- 4262811
39568 --
39569
39570 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39571 l_balance_type_code <> 'B' THEN
39572 IF NVL(p_source_36,'
39573 ') = 'Revenue - UER' AND
39574 NVL(p_source_38,'
39575 ') = 'N'
39576 THEN
39577
39578 --
39579 XLA_AE_LINES_PKG.SetNewLine;
39580
39581 p_balance_type_code := l_balance_type_code;
39582 -- set the flag so later we will know whether the gain loss line needs to be created
39583
39584 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39585 p_actual_flag :='A';
39586 END IF;
39587
39588 --
39589 -- bulk performance
39590 --
39591 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39592 p_header_num => 0); -- 4262811
39593 --
39594 -- set accounting line options
39595 --
39596 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39597 p_natural_side_code => 'D'
39598 , p_gain_or_loss_flag => 'N'
39599 , p_gl_transfer_mode_code => 'S'
39600 , p_acct_entry_type_code => 'A'
39601 , p_switch_side_flag => 'Y'
39602 , p_merge_duplicate_code => 'N'
39603 );
39604 --
39605 l_acc_rev_natural_side_code := 'C'; -- 4262811
39606 --
39607 --
39608 -- set accounting line type info
39609 --
39610 xla_ae_lines_pkg.SetAcctLineType
39611 (p_component_type => l_component_type
39612 ,p_event_type_code => l_event_type_code
39613 ,p_line_definition_owner_code => l_line_definition_owner_code
39614 ,p_line_definition_code => l_line_definition_code
39615 ,p_accounting_line_code => l_component_code
39616 ,p_accounting_line_type_code => l_component_type_code
39617 ,p_accounting_line_appl_id => l_component_appl_id
39618 ,p_amb_context_code => l_amb_context_code
39619 ,p_entity_code => l_entity_code
39620 ,p_event_class_code => l_event_class_code);
39621 --
39622 -- set accounting class
39623 --
39624 xla_ae_lines_pkg.SetAcctClass(
39625 p_accounting_class_code => 'UNEARNED_REVENUE'
39626 , p_ae_header_id => l_ae_header_id
39627 );
39628
39629 --
39630 -- set rounding class
39631 --
39632 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39633 'UNEARNED_REVENUE';
39634
39635 --
39636 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39637 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39638 --
39639 -- bulk performance
39640 --
39641 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39642
39643 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39644 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39645
39646 -- 4955764
39647 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39648 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39649
39650 -- 4458381 Public Sector Enh
39651
39652 --
39653 -- set accounting attributes for the line type
39654 --
39655 l_entered_amt_idx := 4;
39656 l_accted_amt_idx := 10;
39657 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39658 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
39659 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
39660 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
39664 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
39661 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
39662 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
39663 l_rec_acct_attrs.array_char_value(3) := p_source_36;
39665 l_rec_acct_attrs.array_num_value(4) := p_source_41;
39666 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
39667 l_rec_acct_attrs.array_char_value(5) := p_source_25;
39668 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
39669 l_rec_acct_attrs.array_date_value(6) := p_source_27;
39670 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
39671 l_rec_acct_attrs.array_num_value(7) := p_source_28;
39672 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
39673 l_rec_acct_attrs.array_char_value(8) := p_source_29;
39674 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
39675 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
39676 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
39677 l_rec_acct_attrs.array_num_value(10) := p_source_43;
39678
39679 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39680 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39681
39682 ---------------------------------------------------------------------------------------------------------------
39683 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39684 ---------------------------------------------------------------------------------------------------------------
39685 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39686
39687 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39688 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39689
39690 IF xla_accounting_cache_pkg.GetValueChar
39691 (p_source_code => 'LEDGER_CATEGORY_CODE'
39692 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39693 AND l_bflow_method_code = 'PRIOR_ENTRY'
39694 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39695 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39696 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39697 )
39698 THEN
39699 xla_ae_lines_pkg.BflowUpgEntry
39700 (p_business_method_code => l_bflow_method_code
39701 ,p_business_class_code => l_bflow_class_code
39702 ,p_balance_type => l_balance_type_code);
39703 ELSE
39704 NULL;
39705 -- No business flow processing for business flow method of NONE.
39706 END IF;
39707
39708 --
39709 -- call analytical criteria
39710 --
39711
39712 --
39713 -- call description
39714 --
39715 -- No description or it is inherited.
39716 --
39717 -- call ADRs
39718 -- Bug 4922099
39719 --
39720 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39721 (NVL(l_actual_upg_option, 'N') = 'O') OR
39722 (NVL(l_enc_upg_option, 'N') = 'O')
39723 )
39724 THEN
39725 NULL;
39726 --
39727 --
39728
39729 l_ccid := AcctDerRule_19(
39730 p_application_id => p_application_id
39731 , p_ae_header_id => l_ae_header_id
39732 , p_source_20 => p_source_20
39733 , x_transaction_coa_id => l_adr_transaction_coa_id
39734 , x_accounting_coa_id => l_adr_accounting_coa_id
39735 , x_value_type_code => l_adr_value_type_code
39736 , p_side => 'NA'
39737 );
39738
39739 xla_ae_lines_pkg.set_ccid(
39740 p_code_combination_id => l_ccid
39741 , p_value_type_code => l_adr_value_type_code
39742 , p_transaction_coa_id => l_adr_transaction_coa_id
39743 , p_accounting_coa_id => l_adr_accounting_coa_id
39744 , p_adr_code => 'UER_RULE'
39745 , p_adr_type_code => 'S'
39746 , p_component_type => l_component_type
39747 , p_component_code => l_component_code
39748 , p_component_type_code => l_component_type_code
39749 , p_component_appl_id => l_component_appl_id
39750 , p_amb_context_code => l_amb_context_code
39751 , p_side => 'NA'
39752 );
39753
39754
39755 --
39756 --
39757 END IF;
39758 --
39759 -- Bug 4922099
39760 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39761 (NVL(l_enc_upg_option, 'N') = 'O')
39762 ) AND
39763 (l_bflow_method_code = 'PRIOR_ENTRY')
39764 )
39765 THEN
39766 IF
39767 --
39768 1 = 2
39769 --
39770 THEN
39771 xla_accounting_err_pkg.build_message
39772 (p_appli_s_name => 'XLA'
39773 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39774 ,p_token_1 => 'LINE_NUMBER'
39775 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39776 ,p_token_2 => 'LINE_TYPE_NAME'
39777 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39778 l_component_type
39779 ,l_component_code
39780 ,l_component_type_code
39784 ,l_event_class_code
39781 ,l_component_appl_id
39782 ,l_amb_context_code
39783 ,l_entity_code
39785 )
39786 ,p_token_3 => 'OWNER'
39787 ,p_value_3 => xla_lookups_pkg.get_meaning(
39788 p_lookup_type => 'XLA_OWNER_TYPE'
39789 ,p_lookup_code => l_component_type_code
39790 )
39791 ,p_token_4 => 'PRODUCT_NAME'
39792 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39793 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39794 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39795 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39796 ,p_ae_header_id => NULL
39797 );
39798
39799 IF (C_LEVEL_ERROR>= g_log_level) THEN
39800 trace
39801 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39802 ,p_level => C_LEVEL_ERROR
39803 ,p_module => l_log_module);
39804 END IF;
39805 END IF;
39806 END IF;
39807 --
39808 --
39809 ------------------------------------------------------------------------------------------------
39810 -- 4219869 Business Flow
39811 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39812 -- Prior Entry. Currently, the following code is always generated.
39813 ------------------------------------------------------------------------------------------------
39814 XLA_AE_LINES_PKG.ValidateCurrentLine;
39815
39816 ------------------------------------------------------------------------------------
39817 -- 4219869 Business Flow
39818 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39819 ------------------------------------------------------------------------------------
39820 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39821
39822 ----------------------------------------------------------------------------------
39823 -- 4219869 Business Flow
39824 -- Update journal entry status -- Need to generate this within IF <condition>
39825 ----------------------------------------------------------------------------------
39826 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39827 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39828 ,p_balance_type_code => l_balance_type_code
39829 );
39830
39831 -------------------------------------------------------------------------------------------
39832 -- 4262811 - Generate the Accrual Reversal lines
39833 -------------------------------------------------------------------------------------------
39834 BEGIN
39835 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39836 (g_array_event(p_event_id).array_value_num('header_index'));
39837 IF l_acc_rev_flag IS NULL THEN
39838 l_acc_rev_flag := 'N';
39839 END IF;
39840 EXCEPTION
39841 WHEN OTHERS THEN
39842 l_acc_rev_flag := 'N';
39843 END;
39844 --
39845 IF (l_acc_rev_flag = 'Y') THEN
39846
39847 -- 4645092 ------------------------------------------------------------------------------
39848 -- To allow MPA report to determine if it should generate report process
39849 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39850 ------------------------------------------------------------------------------------------
39851
39852 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39853 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39854
39855 --
39856 -- Update the line information that should be overwritten
39857 --
39858 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39859 p_header_num => 1);
39860 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39861
39862 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39863
39864 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39865 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39866 END IF;
39867
39868 --
39869 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39870 --
39871 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39872 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39873 ELSE
39874 ---------------------------------------------------------------------------------------------------
39875 -- 4262811a Switch Sign
39876 ---------------------------------------------------------------------------------------------------
39877 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39878 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39882 -- 5132302
39879 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39880 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39881 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39883 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39884 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39885
39886 END IF;
39887
39888 -- 4955764
39889 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39890 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39891
39892
39893 XLA_AE_LINES_PKG.ValidateCurrentLine;
39894 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39895
39896 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39897 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39898 ,p_balance_type_code => l_balance_type_code);
39899
39900 END IF;
39901
39902 -----------------------------------------------------------------------------------------
39903 -- 4262811 Multiperiod Accounting
39904 -----------------------------------------------------------------------------------------
39905 -- No MPA option is assigned.
39906
39907
39908 END IF;
39909 END IF;
39910 --
39911
39912 --
39913 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39914 trace
39915 (p_msg => 'END of AcctLineType_84'
39916 ,p_level => C_LEVEL_PROCEDURE
39917 ,p_module => l_log_module);
39918 END IF;
39919 --
39920 EXCEPTION
39921 WHEN xla_exceptions_pkg.application_exception THEN
39922 RAISE;
39923 WHEN OTHERS THEN
39924 xla_exceptions_pkg.raise_message
39925 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_84');
39926 END AcctLineType_84;
39927 --
39928
39929 ---------------------------------------
39930 --
39931 -- PRIVATE FUNCTION
39932 -- AcctLineType_85
39933 --
39934 ---------------------------------------
39935 PROCEDURE AcctLineType_85 (
39936 p_application_id IN NUMBER
39937 ,p_event_id IN NUMBER
39938 ,p_calculate_acctd_flag IN VARCHAR2
39939 ,p_calculate_g_l_flag IN VARCHAR2
39940 ,p_actual_flag IN OUT VARCHAR2
39941 ,p_balance_type_code OUT VARCHAR2
39942 ,p_gain_or_loss_ref OUT VARCHAR2
39943
39944 --Unearned Revenue CCID
39945 , p_source_20 IN NUMBER
39946 --Actual Upgrade Credit Accounting Class
39947 , p_source_23 IN VARCHAR2
39948 --Entered Currency Code
39949 , p_source_25 IN VARCHAR2
39950 --Exchange Rate Date
39951 , p_source_27 IN DATE
39952 --Exchange Rate
39953 , p_source_28 IN NUMBER
39954 --Exchange Rate Type
39955 , p_source_29 IN VARCHAR2
39956 --Actual Upgrade Debit Accounting Class
39957 , p_source_30 IN VARCHAR2
39958 --Use Actuals Upgrade Attributes Flag
39959 , p_source_31 IN VARCHAR2
39960 --Revenue Distribution Type
39961 , p_source_36 IN VARCHAR2
39962 --Crediting Revenue Flag
39963 , p_source_38 IN VARCHAR2
39964 --Revenue First Distribution ID
39965 , p_source_39 IN NUMBER
39966 --Revenue Second Distribution ID
39967 , p_source_40 IN NUMBER
39968 --Entered Amount
39969 , p_source_41 IN NUMBER
39970 --Event ID
39971 , p_source_42 IN NUMBER
39972 --Accounted Amount
39973 , p_source_43 IN NUMBER
39974 --Actual Upgrade Credit CCID
39975 , p_source_59 IN NUMBER
39976 --Actual Upgrade Debit CCID
39977 , p_source_60 IN NUMBER
39978 --Application ID
39979 , p_source_61 IN NUMBER
39980 --Revenue Entity Code
39981 , p_source_62 IN VARCHAR2
39982 --Crediting Revenue First Distribution ID
39983 , p_source_63 IN NUMBER
39984 --Project ID
39985 , p_source_64 IN NUMBER
39986 --Crediting Revenue Second Distribution ID
39987 , p_source_65 IN NUMBER
39988 --Draft Revenue Number Credited
39989 , p_source_66 IN NUMBER
39990 )
39991 IS
39992
39993 l_component_type VARCHAR2(80);
39994 l_component_code VARCHAR2(30);
39995 l_component_type_code VARCHAR2(1);
39996 l_component_appl_id INTEGER;
39997 l_amb_context_code VARCHAR2(30);
39998 l_entity_code VARCHAR2(30);
39999 l_event_class_code VARCHAR2(30);
40000 l_ae_header_id NUMBER;
40001 l_event_type_code VARCHAR2(30);
40002 l_line_definition_code VARCHAR2(30);
40003 l_line_definition_owner_code VARCHAR2(1);
40004 --
40005 -- adr variables
40006 l_segment VARCHAR2(30);
40007 l_ccid NUMBER;
40008 l_adr_transaction_coa_id NUMBER;
40009 l_adr_accounting_coa_id NUMBER;
40010 l_adr_flexfield_segment_code VARCHAR2(30);
40011 l_adr_flex_value_set_id NUMBER;
40012 l_adr_value_type_code VARCHAR2(30);
40013 l_adr_value_combination_id NUMBER;
40014 l_adr_value_segment_code VARCHAR2(30);
40015
40016 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40017 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40018 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40019 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40020
40021 -- 4262811 Variables ------------------------------------------------------------------------------------------
40025 l_accrual_line_num NUMBER;
40022 l_entered_amt_idx NUMBER;
40023 l_accted_amt_idx NUMBER;
40024 l_acc_rev_flag VARCHAR2(1);
40026 l_tmp_amt NUMBER;
40027 l_acc_rev_natural_side_code VARCHAR2(1);
40028
40029 l_num_entries NUMBER;
40030 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40031 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40032 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40033 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40034 l_recog_line_1 NUMBER;
40035 l_recog_line_2 NUMBER;
40036
40037 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40038 l_bflow_applied_to_amt NUMBER; -- 5132302
40039 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40040
40041 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40042
40043 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40044 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40045
40046 ---------------------------------------------------------------------------------------------------------------
40047
40048
40049 --
40050 -- bulk performance
40051 --
40052 l_balance_type_code VARCHAR2(1);
40053 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40054 l_log_module VARCHAR2(240);
40055
40056 --
40057 -- Upgrade strategy
40058 --
40059 l_actual_upg_option VARCHAR2(1);
40060 l_enc_upg_option VARCHAR2(1);
40061
40062 --
40063 BEGIN
40064 --
40065 IF g_log_enabled THEN
40066 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
40067 END IF;
40068 --
40069 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40070
40071 trace
40072 (p_msg => 'BEGIN of AcctLineType_85'
40073 ,p_level => C_LEVEL_PROCEDURE
40074 ,p_module => l_log_module);
40075
40076 END IF;
40077 --
40078 l_component_type := 'AMB_JLT';
40079 l_component_code := 'PA_UER_ADJ';
40080 l_component_type_code := 'S';
40081 l_component_appl_id := 275;
40082 l_amb_context_code := 'DEFAULT';
40083 l_entity_code := 'REVENUE';
40084 l_event_class_code := 'REVENUE_ADJ';
40085 l_event_type_code := 'REVENUE_ADJ_ALL';
40086 l_line_definition_owner_code := 'S';
40087 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
40088 --
40089 l_balance_type_code := 'A';
40090 l_segment := NULL;
40091 l_ccid := NULL;
40092 l_adr_transaction_coa_id := NULL;
40093 l_adr_accounting_coa_id := NULL;
40094 l_adr_flexfield_segment_code := NULL;
40095 l_adr_flex_value_set_id := NULL;
40096 l_adr_value_type_code := NULL;
40097 l_adr_value_combination_id := NULL;
40098 l_adr_value_segment_code := NULL;
40099
40100 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40101 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
40102 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40103 l_budgetary_control_flag := 'N';
40104
40105 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40106 l_bflow_applied_to_amt := NULL; -- 5132302
40107 l_entered_amt_idx := NULL; -- 4262811
40108 l_accted_amt_idx := NULL; -- 4262811
40109 l_acc_rev_flag := NULL; -- 4262811
40110 l_accrual_line_num := NULL; -- 4262811
40111 l_tmp_amt := NULL; -- 4262811
40112 --
40113
40114 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40115 l_balance_type_code <> 'B' THEN
40116 IF NVL(p_source_36,'
40117 ') = 'Revenue - UER' AND
40118 NVL(p_source_38,'
40119 ') = 'Y'
40120 THEN
40121
40122 --
40123 XLA_AE_LINES_PKG.SetNewLine;
40124
40125 p_balance_type_code := l_balance_type_code;
40126 -- set the flag so later we will know whether the gain loss line needs to be created
40127
40128 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40129 p_actual_flag :='A';
40130 END IF;
40131
40132 --
40133 -- bulk performance
40134 --
40135 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40136 p_header_num => 0); -- 4262811
40137 --
40138 -- set accounting line options
40139 --
40140 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40141 p_natural_side_code => 'C'
40142 , p_gain_or_loss_flag => 'N'
40143 , p_gl_transfer_mode_code => 'S'
40144 , p_acct_entry_type_code => 'A'
40145 , p_switch_side_flag => 'Y'
40146 , p_merge_duplicate_code => 'N'
40147 );
40148 --
40149 l_acc_rev_natural_side_code := 'D'; -- 4262811
40150 --
40151 --
40152 -- set accounting line type info
40153 --
40154 xla_ae_lines_pkg.SetAcctLineType
40155 (p_component_type => l_component_type
40156 ,p_event_type_code => l_event_type_code
40157 ,p_line_definition_owner_code => l_line_definition_owner_code
40158 ,p_line_definition_code => l_line_definition_code
40159 ,p_accounting_line_code => l_component_code
40160 ,p_accounting_line_type_code => l_component_type_code
40161 ,p_accounting_line_appl_id => l_component_appl_id
40165 --
40162 ,p_amb_context_code => l_amb_context_code
40163 ,p_entity_code => l_entity_code
40164 ,p_event_class_code => l_event_class_code);
40166 -- set accounting class
40167 --
40168 xla_ae_lines_pkg.SetAcctClass(
40169 p_accounting_class_code => 'UNEARNED_REVENUE'
40170 , p_ae_header_id => l_ae_header_id
40171 );
40172
40173 --
40174 -- set rounding class
40175 --
40176 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40177 'UNEARNED_REVENUE';
40178
40179 --
40180 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40181 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40182 --
40183 -- bulk performance
40184 --
40185 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40186
40187 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40188 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40189
40190 -- 4955764
40191 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40192 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40193
40194 -- 4458381 Public Sector Enh
40195
40196 --
40197 -- set accounting attributes for the line type
40198 --
40199 l_entered_amt_idx := 28;
40200 l_accted_amt_idx := 34;
40201 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40202 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
40203 l_rec_acct_attrs.array_char_value(1) := p_source_23;
40204 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
40205 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
40206 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
40207 l_rec_acct_attrs.array_num_value(3) := p_source_41;
40208 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
40209 l_rec_acct_attrs.array_char_value(4) := p_source_25;
40210 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
40211 l_rec_acct_attrs.array_num_value(5) := p_source_43;
40212 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
40213 l_rec_acct_attrs.array_date_value(6) := p_source_27;
40214 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
40215 l_rec_acct_attrs.array_num_value(7) := p_source_28;
40216 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
40217 l_rec_acct_attrs.array_char_value(8) := p_source_29;
40218 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
40219 l_rec_acct_attrs.array_char_value(9) := p_source_30;
40220 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
40221 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
40222 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
40223 l_rec_acct_attrs.array_num_value(11) := p_source_41;
40224 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
40225 l_rec_acct_attrs.array_char_value(12) := p_source_25;
40226 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
40227 l_rec_acct_attrs.array_num_value(13) := p_source_43;
40228 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
40229 l_rec_acct_attrs.array_date_value(14) := p_source_27;
40230 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
40231 l_rec_acct_attrs.array_num_value(15) := p_source_28;
40232 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
40233 l_rec_acct_attrs.array_char_value(16) := p_source_29;
40234 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
40235 l_rec_acct_attrs.array_char_value(17) := p_source_31;
40236 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
40237 l_rec_acct_attrs.array_num_value(18) := p_source_61;
40238 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40239 l_rec_acct_attrs.array_char_value(19) := p_source_36;
40240 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
40241 l_rec_acct_attrs.array_char_value(20) := p_source_62;
40242 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
40243 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
40244 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40245 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
40246 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
40247 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
40248 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
40249 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
40250 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
40251 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
40252 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
40253 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
40254 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
40255 l_rec_acct_attrs.array_char_value(27) := p_source_36;
40256 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
40257 l_rec_acct_attrs.array_num_value(28) := p_source_41;
40258 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
40259 l_rec_acct_attrs.array_char_value(29) := p_source_25;
40260 l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_DATE';
40261 l_rec_acct_attrs.array_date_value(30) := p_source_27;
40262 l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE';
40263 l_rec_acct_attrs.array_num_value(31) := p_source_28;
40267 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_42);
40264 l_rec_acct_attrs.array_acct_attr_code(32) := 'EXCHANGE_RATE_TYPE';
40265 l_rec_acct_attrs.array_char_value(32) := p_source_29;
40266 l_rec_acct_attrs.array_acct_attr_code(33) := 'GAIN_LOSS_REFERENCE';
40268 l_rec_acct_attrs.array_acct_attr_code(34) := 'LEDGER_AMOUNT';
40269 l_rec_acct_attrs.array_num_value(34) := p_source_43;
40270
40271 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40272 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40273
40274 ---------------------------------------------------------------------------------------------------------------
40275 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40276 ---------------------------------------------------------------------------------------------------------------
40277 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40278
40279 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40280 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40281
40282 IF xla_accounting_cache_pkg.GetValueChar
40283 (p_source_code => 'LEDGER_CATEGORY_CODE'
40284 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40285 AND l_bflow_method_code = 'PRIOR_ENTRY'
40286 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40287 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40288 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40289 )
40290 THEN
40291 xla_ae_lines_pkg.BflowUpgEntry
40292 (p_business_method_code => l_bflow_method_code
40293 ,p_business_class_code => l_bflow_class_code
40294 ,p_balance_type => l_balance_type_code);
40295 ELSE
40296 NULL;
40297 -- No business flow processing for business flow method of NONE.
40298 END IF;
40299
40300 --
40301 -- call analytical criteria
40302 --
40303
40304 --
40305 -- call description
40306 --
40307 -- No description or it is inherited.
40308 --
40309 -- call ADRs
40310 -- Bug 4922099
40311 --
40312 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40313 (NVL(l_actual_upg_option, 'N') = 'O') OR
40314 (NVL(l_enc_upg_option, 'N') = 'O')
40315 )
40316 THEN
40317 NULL;
40318 --
40319 --
40320
40321 l_ccid := AcctDerRule_19(
40322 p_application_id => p_application_id
40323 , p_ae_header_id => l_ae_header_id
40324 , p_source_20 => p_source_20
40325 , x_transaction_coa_id => l_adr_transaction_coa_id
40326 , x_accounting_coa_id => l_adr_accounting_coa_id
40327 , x_value_type_code => l_adr_value_type_code
40328 , p_side => 'NA'
40329 );
40330
40331 xla_ae_lines_pkg.set_ccid(
40332 p_code_combination_id => l_ccid
40333 , p_value_type_code => l_adr_value_type_code
40334 , p_transaction_coa_id => l_adr_transaction_coa_id
40335 , p_accounting_coa_id => l_adr_accounting_coa_id
40336 , p_adr_code => 'UER_RULE'
40337 , p_adr_type_code => 'S'
40338 , p_component_type => l_component_type
40339 , p_component_code => l_component_code
40340 , p_component_type_code => l_component_type_code
40341 , p_component_appl_id => l_component_appl_id
40342 , p_amb_context_code => l_amb_context_code
40343 , p_side => 'NA'
40344 );
40345
40346
40347 --
40348 --
40349 END IF;
40350 --
40351 -- Bug 4922099
40352 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40353 (NVL(l_enc_upg_option, 'N') = 'O')
40354 ) AND
40355 (l_bflow_method_code = 'PRIOR_ENTRY')
40356 )
40357 THEN
40358 IF
40359 --
40360 1 = 2
40361 --
40362 THEN
40363 xla_accounting_err_pkg.build_message
40364 (p_appli_s_name => 'XLA'
40365 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40366 ,p_token_1 => 'LINE_NUMBER'
40367 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40368 ,p_token_2 => 'LINE_TYPE_NAME'
40369 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40370 l_component_type
40371 ,l_component_code
40372 ,l_component_type_code
40373 ,l_component_appl_id
40374 ,l_amb_context_code
40375 ,l_entity_code
40376 ,l_event_class_code
40377 )
40378 ,p_token_3 => 'OWNER'
40379 ,p_value_3 => xla_lookups_pkg.get_meaning(
40380 p_lookup_type => 'XLA_OWNER_TYPE'
40384 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40381 ,p_lookup_code => l_component_type_code
40382 )
40383 ,p_token_4 => 'PRODUCT_NAME'
40385 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40386 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40387 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40388 ,p_ae_header_id => NULL
40389 );
40390
40391 IF (C_LEVEL_ERROR>= g_log_level) THEN
40392 trace
40393 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40394 ,p_level => C_LEVEL_ERROR
40395 ,p_module => l_log_module);
40396 END IF;
40397 END IF;
40398 END IF;
40399 --
40400 --
40401 ------------------------------------------------------------------------------------------------
40402 -- 4219869 Business Flow
40403 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40404 -- Prior Entry. Currently, the following code is always generated.
40405 ------------------------------------------------------------------------------------------------
40406 XLA_AE_LINES_PKG.ValidateCurrentLine;
40407
40408 ------------------------------------------------------------------------------------
40409 -- 4219869 Business Flow
40410 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40411 ------------------------------------------------------------------------------------
40412 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40413
40414 ----------------------------------------------------------------------------------
40415 -- 4219869 Business Flow
40416 -- Update journal entry status -- Need to generate this within IF <condition>
40417 ----------------------------------------------------------------------------------
40418 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40419 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40420 ,p_balance_type_code => l_balance_type_code
40421 );
40422
40423 -------------------------------------------------------------------------------------------
40424 -- 4262811 - Generate the Accrual Reversal lines
40425 -------------------------------------------------------------------------------------------
40426 BEGIN
40427 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40428 (g_array_event(p_event_id).array_value_num('header_index'));
40429 IF l_acc_rev_flag IS NULL THEN
40430 l_acc_rev_flag := 'N';
40431 END IF;
40432 EXCEPTION
40433 WHEN OTHERS THEN
40434 l_acc_rev_flag := 'N';
40435 END;
40436 --
40437 IF (l_acc_rev_flag = 'Y') THEN
40438
40439 -- 4645092 ------------------------------------------------------------------------------
40440 -- To allow MPA report to determine if it should generate report process
40441 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40442 ------------------------------------------------------------------------------------------
40443
40444 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40445 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40446
40447 --
40448 -- Update the line information that should be overwritten
40449 --
40450 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40451 p_header_num => 1);
40452 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40453
40454 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40455
40456 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40457 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40458 END IF;
40459
40460 --
40461 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40462 --
40463 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40464 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40465 ELSE
40466 ---------------------------------------------------------------------------------------------------
40467 -- 4262811a Switch Sign
40468 ---------------------------------------------------------------------------------------------------
40469 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40470 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40471 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40472 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40473 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40474 -- 5132302
40475 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40476 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40477
40478 END IF;
40479
40480 -- 4955764
40481 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40485 XLA_AE_LINES_PKG.ValidateCurrentLine;
40482 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40483
40484
40486 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40487
40488 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40489 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40490 ,p_balance_type_code => l_balance_type_code);
40491
40492 END IF;
40493
40494 -----------------------------------------------------------------------------------------
40495 -- 4262811 Multiperiod Accounting
40496 -----------------------------------------------------------------------------------------
40497 -- No MPA option is assigned.
40498
40499
40500 END IF;
40501 END IF;
40502 --
40503
40504 --
40505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40506 trace
40507 (p_msg => 'END of AcctLineType_85'
40508 ,p_level => C_LEVEL_PROCEDURE
40509 ,p_module => l_log_module);
40510 END IF;
40511 --
40512 EXCEPTION
40513 WHEN xla_exceptions_pkg.application_exception THEN
40514 RAISE;
40515 WHEN OTHERS THEN
40516 xla_exceptions_pkg.raise_message
40517 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_85');
40518 END AcctLineType_85;
40519 --
40520
40521 ---------------------------------------
40522 --
40523 -- PRIVATE FUNCTION
40524 -- AcctLineType_86
40525 --
40526 ---------------------------------------
40527 PROCEDURE AcctLineType_86 (
40528 p_application_id IN NUMBER
40529 ,p_event_id IN NUMBER
40530 ,p_calculate_acctd_flag IN VARCHAR2
40531 ,p_calculate_g_l_flag IN VARCHAR2
40532 ,p_actual_flag IN OUT VARCHAR2
40533 ,p_balance_type_code OUT VARCHAR2
40534 ,p_gain_or_loss_ref OUT VARCHAR2
40535
40536 --Revenue CCID
40537 , p_source_18 IN NUMBER
40538 --Entered Currency Code
40539 , p_source_25 IN VARCHAR2
40540 --Exchange Rate Date
40541 , p_source_27 IN DATE
40542 --Exchange Rate
40543 , p_source_28 IN NUMBER
40544 --Exchange Rate Type
40545 , p_source_29 IN VARCHAR2
40546 --Revenue Distribution Type
40547 , p_source_36 IN VARCHAR2
40548 --System Linkage Function
40549 , p_source_37 IN VARCHAR2
40550 --Crediting Revenue Flag
40551 , p_source_38 IN VARCHAR2
40552 --Revenue First Distribution ID
40553 , p_source_39 IN NUMBER
40554 --Revenue Second Distribution ID
40555 , p_source_40 IN NUMBER
40556 --Entered Amount
40557 , p_source_41 IN NUMBER
40558 --Event ID
40559 , p_source_42 IN NUMBER
40560 --Accounted Amount
40561 , p_source_43 IN NUMBER
40562 )
40563 IS
40564
40565 l_component_type VARCHAR2(80);
40566 l_component_code VARCHAR2(30);
40567 l_component_type_code VARCHAR2(1);
40568 l_component_appl_id INTEGER;
40569 l_amb_context_code VARCHAR2(30);
40570 l_entity_code VARCHAR2(30);
40571 l_event_class_code VARCHAR2(30);
40572 l_ae_header_id NUMBER;
40573 l_event_type_code VARCHAR2(30);
40574 l_line_definition_code VARCHAR2(30);
40575 l_line_definition_owner_code VARCHAR2(1);
40576 --
40577 -- adr variables
40578 l_segment VARCHAR2(30);
40579 l_ccid NUMBER;
40580 l_adr_transaction_coa_id NUMBER;
40581 l_adr_accounting_coa_id NUMBER;
40582 l_adr_flexfield_segment_code VARCHAR2(30);
40583 l_adr_flex_value_set_id NUMBER;
40584 l_adr_value_type_code VARCHAR2(30);
40585 l_adr_value_combination_id NUMBER;
40586 l_adr_value_segment_code VARCHAR2(30);
40587
40588 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40589 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40590 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40591 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40592
40593 -- 4262811 Variables ------------------------------------------------------------------------------------------
40594 l_entered_amt_idx NUMBER;
40595 l_accted_amt_idx NUMBER;
40596 l_acc_rev_flag VARCHAR2(1);
40597 l_accrual_line_num NUMBER;
40598 l_tmp_amt NUMBER;
40599 l_acc_rev_natural_side_code VARCHAR2(1);
40600
40601 l_num_entries NUMBER;
40602 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40603 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40604 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40605 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40606 l_recog_line_1 NUMBER;
40607 l_recog_line_2 NUMBER;
40608
40609 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40610 l_bflow_applied_to_amt NUMBER; -- 5132302
40611 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40612
40613 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40614
40615 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40616 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40617
40618 ---------------------------------------------------------------------------------------------------------------
40619
40620
40621 --
40622 -- bulk performance
40623 --
40624 l_balance_type_code VARCHAR2(1);
40628 --
40625 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40626 l_log_module VARCHAR2(240);
40627
40629 -- Upgrade strategy
40630 --
40631 l_actual_upg_option VARCHAR2(1);
40632 l_enc_upg_option VARCHAR2(1);
40633
40634 --
40635 BEGIN
40636 --
40637 IF g_log_enabled THEN
40638 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
40639 END IF;
40640 --
40641 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40642
40643 trace
40644 (p_msg => 'BEGIN of AcctLineType_86'
40645 ,p_level => C_LEVEL_PROCEDURE
40646 ,p_module => l_log_module);
40647
40648 END IF;
40649 --
40650 l_component_type := 'AMB_JLT';
40651 l_component_code := 'PA_USG_REV';
40652 l_component_type_code := 'S';
40653 l_component_appl_id := 275;
40654 l_amb_context_code := 'DEFAULT';
40655 l_entity_code := 'REVENUE';
40656 l_event_class_code := 'REVENUE';
40657 l_event_type_code := 'REVENUE_ALL';
40658 l_line_definition_owner_code := 'S';
40659 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
40660 --
40661 l_balance_type_code := 'A';
40662 l_segment := NULL;
40663 l_ccid := NULL;
40664 l_adr_transaction_coa_id := NULL;
40665 l_adr_accounting_coa_id := NULL;
40666 l_adr_flexfield_segment_code := NULL;
40667 l_adr_flex_value_set_id := NULL;
40668 l_adr_value_type_code := NULL;
40669 l_adr_value_combination_id := NULL;
40670 l_adr_value_segment_code := NULL;
40671
40672 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40673 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
40674 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40675 l_budgetary_control_flag := 'N';
40676
40677 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40678 l_bflow_applied_to_amt := NULL; -- 5132302
40679 l_entered_amt_idx := NULL; -- 4262811
40680 l_accted_amt_idx := NULL; -- 4262811
40681 l_acc_rev_flag := NULL; -- 4262811
40682 l_accrual_line_num := NULL; -- 4262811
40683 l_tmp_amt := NULL; -- 4262811
40684 --
40685
40686 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40687 l_balance_type_code <> 'B' THEN
40688 IF NVL(p_source_36,'
40689 ') = 'Revenue - Normal Revenue' AND
40690 NVL(p_source_37,'
40691 ') = 'USG' AND
40692 NVL(p_source_38,'
40693 ') = 'N'
40694 THEN
40695
40696 --
40697 XLA_AE_LINES_PKG.SetNewLine;
40698
40699 p_balance_type_code := l_balance_type_code;
40700 -- set the flag so later we will know whether the gain loss line needs to be created
40701
40702 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40703 p_actual_flag :='A';
40704 END IF;
40705
40706 --
40707 -- bulk performance
40708 --
40709 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40710 p_header_num => 0); -- 4262811
40711 --
40712 -- set accounting line options
40713 --
40714 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40715 p_natural_side_code => 'C'
40716 , p_gain_or_loss_flag => 'N'
40717 , p_gl_transfer_mode_code => 'S'
40718 , p_acct_entry_type_code => 'A'
40719 , p_switch_side_flag => 'Y'
40720 , p_merge_duplicate_code => 'N'
40721 );
40722 --
40723 l_acc_rev_natural_side_code := 'D'; -- 4262811
40724 --
40725 --
40726 -- set accounting line type info
40727 --
40728 xla_ae_lines_pkg.SetAcctLineType
40729 (p_component_type => l_component_type
40730 ,p_event_type_code => l_event_type_code
40731 ,p_line_definition_owner_code => l_line_definition_owner_code
40732 ,p_line_definition_code => l_line_definition_code
40733 ,p_accounting_line_code => l_component_code
40734 ,p_accounting_line_type_code => l_component_type_code
40735 ,p_accounting_line_appl_id => l_component_appl_id
40736 ,p_amb_context_code => l_amb_context_code
40737 ,p_entity_code => l_entity_code
40738 ,p_event_class_code => l_event_class_code);
40739 --
40740 -- set accounting class
40741 --
40742 xla_ae_lines_pkg.SetAcctClass(
40743 p_accounting_class_code => 'REVENUE'
40744 , p_ae_header_id => l_ae_header_id
40745 );
40746
40747 --
40748 -- set rounding class
40749 --
40750 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40751 'REVENUE';
40752
40753 --
40754 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40755 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40756 --
40757 -- bulk performance
40758 --
40759 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40760
40761 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40762 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40763
40764 -- 4955764
40765 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40766 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40767
40768 -- 4458381 Public Sector Enh
40772 --
40769
40770 --
40771 -- set accounting attributes for the line type
40773 l_entered_amt_idx := 4;
40774 l_accted_amt_idx := 10;
40775 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40776 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
40777 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
40778 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
40779 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
40780 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
40781 l_rec_acct_attrs.array_char_value(3) := p_source_36;
40782 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
40783 l_rec_acct_attrs.array_num_value(4) := p_source_41;
40784 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
40785 l_rec_acct_attrs.array_char_value(5) := p_source_25;
40786 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
40787 l_rec_acct_attrs.array_date_value(6) := p_source_27;
40788 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
40789 l_rec_acct_attrs.array_num_value(7) := p_source_28;
40790 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
40791 l_rec_acct_attrs.array_char_value(8) := p_source_29;
40792 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
40793 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
40794 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
40795 l_rec_acct_attrs.array_num_value(10) := p_source_43;
40796
40797 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40798 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40799
40800 ---------------------------------------------------------------------------------------------------------------
40801 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40802 ---------------------------------------------------------------------------------------------------------------
40803 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40804
40805 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40806 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40807
40808 IF xla_accounting_cache_pkg.GetValueChar
40809 (p_source_code => 'LEDGER_CATEGORY_CODE'
40810 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40811 AND l_bflow_method_code = 'PRIOR_ENTRY'
40812 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40813 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40814 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40815 )
40816 THEN
40817 xla_ae_lines_pkg.BflowUpgEntry
40818 (p_business_method_code => l_bflow_method_code
40819 ,p_business_class_code => l_bflow_class_code
40820 ,p_balance_type => l_balance_type_code);
40821 ELSE
40822 NULL;
40823 -- No business flow processing for business flow method of NONE.
40824 END IF;
40825
40826 --
40827 -- call analytical criteria
40828 --
40829
40830 --
40831 -- call description
40832 --
40833 -- No description or it is inherited.
40834 --
40835 -- call ADRs
40836 -- Bug 4922099
40837 --
40838 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40839 (NVL(l_actual_upg_option, 'N') = 'O') OR
40840 (NVL(l_enc_upg_option, 'N') = 'O')
40841 )
40842 THEN
40843 NULL;
40844 --
40845 --
40846
40847 l_ccid := AcctDerRule_17(
40848 p_application_id => p_application_id
40849 , p_ae_header_id => l_ae_header_id
40850 , p_source_18 => p_source_18
40851 , x_transaction_coa_id => l_adr_transaction_coa_id
40852 , x_accounting_coa_id => l_adr_accounting_coa_id
40853 , x_value_type_code => l_adr_value_type_code
40854 , p_side => 'NA'
40855 );
40856
40857 xla_ae_lines_pkg.set_ccid(
40858 p_code_combination_id => l_ccid
40859 , p_value_type_code => l_adr_value_type_code
40860 , p_transaction_coa_id => l_adr_transaction_coa_id
40861 , p_accounting_coa_id => l_adr_accounting_coa_id
40862 , p_adr_code => 'REVENUE_RULE'
40863 , p_adr_type_code => 'S'
40864 , p_component_type => l_component_type
40865 , p_component_code => l_component_code
40866 , p_component_type_code => l_component_type_code
40867 , p_component_appl_id => l_component_appl_id
40868 , p_amb_context_code => l_amb_context_code
40869 , p_side => 'NA'
40870 );
40871
40872
40873 --
40874 --
40875 END IF;
40876 --
40877 -- Bug 4922099
40878 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40879 (NVL(l_enc_upg_option, 'N') = 'O')
40880 ) AND
40881 (l_bflow_method_code = 'PRIOR_ENTRY')
40882 )
40883 THEN
40884 IF
40885 --
40886 1 = 2
40887 --
40888 THEN
40889 xla_accounting_err_pkg.build_message
40890 (p_appli_s_name => 'XLA'
40891 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40892 ,p_token_1 => 'LINE_NUMBER'
40893 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40897 ,l_component_code
40894 ,p_token_2 => 'LINE_TYPE_NAME'
40895 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40896 l_component_type
40898 ,l_component_type_code
40899 ,l_component_appl_id
40900 ,l_amb_context_code
40901 ,l_entity_code
40902 ,l_event_class_code
40903 )
40904 ,p_token_3 => 'OWNER'
40905 ,p_value_3 => xla_lookups_pkg.get_meaning(
40906 p_lookup_type => 'XLA_OWNER_TYPE'
40907 ,p_lookup_code => l_component_type_code
40908 )
40909 ,p_token_4 => 'PRODUCT_NAME'
40910 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40911 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40912 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40913 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40914 ,p_ae_header_id => NULL
40915 );
40916
40917 IF (C_LEVEL_ERROR>= g_log_level) THEN
40918 trace
40919 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40920 ,p_level => C_LEVEL_ERROR
40921 ,p_module => l_log_module);
40922 END IF;
40923 END IF;
40924 END IF;
40925 --
40926 --
40927 ------------------------------------------------------------------------------------------------
40928 -- 4219869 Business Flow
40929 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40930 -- Prior Entry. Currently, the following code is always generated.
40931 ------------------------------------------------------------------------------------------------
40932 XLA_AE_LINES_PKG.ValidateCurrentLine;
40933
40934 ------------------------------------------------------------------------------------
40935 -- 4219869 Business Flow
40936 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40937 ------------------------------------------------------------------------------------
40938 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40939
40940 ----------------------------------------------------------------------------------
40941 -- 4219869 Business Flow
40942 -- Update journal entry status -- Need to generate this within IF <condition>
40943 ----------------------------------------------------------------------------------
40944 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40945 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40946 ,p_balance_type_code => l_balance_type_code
40947 );
40948
40949 -------------------------------------------------------------------------------------------
40950 -- 4262811 - Generate the Accrual Reversal lines
40951 -------------------------------------------------------------------------------------------
40952 BEGIN
40953 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40954 (g_array_event(p_event_id).array_value_num('header_index'));
40955 IF l_acc_rev_flag IS NULL THEN
40956 l_acc_rev_flag := 'N';
40957 END IF;
40958 EXCEPTION
40959 WHEN OTHERS THEN
40960 l_acc_rev_flag := 'N';
40961 END;
40962 --
40963 IF (l_acc_rev_flag = 'Y') THEN
40964
40965 -- 4645092 ------------------------------------------------------------------------------
40966 -- To allow MPA report to determine if it should generate report process
40967 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40968 ------------------------------------------------------------------------------------------
40969
40970 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40971 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40972
40973 --
40974 -- Update the line information that should be overwritten
40975 --
40976 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40977 p_header_num => 1);
40978 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40979
40980 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40981
40982 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40983 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40984 END IF;
40985
40986 --
40987 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40988 --
40989 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40990 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40991 ELSE
40995 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40992 ---------------------------------------------------------------------------------------------------
40993 -- 4262811a Switch Sign
40994 ---------------------------------------------------------------------------------------------------
40996 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40997 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40998 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40999 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41000 -- 5132302
41001 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41002 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41003
41004 END IF;
41005
41006 -- 4955764
41007 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41008 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41009
41010
41011 XLA_AE_LINES_PKG.ValidateCurrentLine;
41012 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41013
41014 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41015 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41016 ,p_balance_type_code => l_balance_type_code);
41017
41018 END IF;
41019
41020 -----------------------------------------------------------------------------------------
41021 -- 4262811 Multiperiod Accounting
41022 -----------------------------------------------------------------------------------------
41023 -- No MPA option is assigned.
41024
41025
41026 END IF;
41027 END IF;
41028 --
41029
41030 --
41031 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41032 trace
41033 (p_msg => 'END of AcctLineType_86'
41034 ,p_level => C_LEVEL_PROCEDURE
41035 ,p_module => l_log_module);
41036 END IF;
41037 --
41038 EXCEPTION
41039 WHEN xla_exceptions_pkg.application_exception THEN
41040 RAISE;
41041 WHEN OTHERS THEN
41042 xla_exceptions_pkg.raise_message
41043 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_86');
41044 END AcctLineType_86;
41045 --
41046
41047 ---------------------------------------
41048 --
41049 -- PRIVATE FUNCTION
41050 -- AcctLineType_87
41051 --
41052 ---------------------------------------
41053 PROCEDURE AcctLineType_87 (
41054 p_application_id IN NUMBER
41055 ,p_event_id IN NUMBER
41056 ,p_calculate_acctd_flag IN VARCHAR2
41057 ,p_calculate_g_l_flag IN VARCHAR2
41058 ,p_actual_flag IN OUT VARCHAR2
41059 ,p_balance_type_code OUT VARCHAR2
41060 ,p_gain_or_loss_ref OUT VARCHAR2
41061
41062 --Revenue CCID
41063 , p_source_18 IN NUMBER
41064 --Entered Currency Code
41065 , p_source_25 IN VARCHAR2
41066 --Exchange Rate Date
41067 , p_source_27 IN DATE
41068 --Exchange Rate
41069 , p_source_28 IN NUMBER
41070 --Exchange Rate Type
41071 , p_source_29 IN VARCHAR2
41072 --Revenue Distribution Type
41073 , p_source_36 IN VARCHAR2
41074 --System Linkage Function
41075 , p_source_37 IN VARCHAR2
41076 --Crediting Revenue Flag
41077 , p_source_38 IN VARCHAR2
41078 --Revenue First Distribution ID
41079 , p_source_39 IN NUMBER
41080 --Revenue Second Distribution ID
41081 , p_source_40 IN NUMBER
41082 --Entered Amount
41083 , p_source_41 IN NUMBER
41084 --Event ID
41085 , p_source_42 IN NUMBER
41086 --Accounted Amount
41087 , p_source_43 IN NUMBER
41088 )
41089 IS
41090
41091 l_component_type VARCHAR2(80);
41092 l_component_code VARCHAR2(30);
41093 l_component_type_code VARCHAR2(1);
41094 l_component_appl_id INTEGER;
41095 l_amb_context_code VARCHAR2(30);
41096 l_entity_code VARCHAR2(30);
41097 l_event_class_code VARCHAR2(30);
41098 l_ae_header_id NUMBER;
41099 l_event_type_code VARCHAR2(30);
41100 l_line_definition_code VARCHAR2(30);
41101 l_line_definition_owner_code VARCHAR2(1);
41102 --
41103 -- adr variables
41104 l_segment VARCHAR2(30);
41105 l_ccid NUMBER;
41106 l_adr_transaction_coa_id NUMBER;
41107 l_adr_accounting_coa_id NUMBER;
41108 l_adr_flexfield_segment_code VARCHAR2(30);
41109 l_adr_flex_value_set_id NUMBER;
41110 l_adr_value_type_code VARCHAR2(30);
41111 l_adr_value_combination_id NUMBER;
41112 l_adr_value_segment_code VARCHAR2(30);
41113
41114 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41115 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41116 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41117 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41118
41119 -- 4262811 Variables ------------------------------------------------------------------------------------------
41120 l_entered_amt_idx NUMBER;
41121 l_accted_amt_idx NUMBER;
41122 l_acc_rev_flag VARCHAR2(1);
41123 l_accrual_line_num NUMBER;
41124 l_tmp_amt NUMBER;
41125 l_acc_rev_natural_side_code VARCHAR2(1);
41126
41127 l_num_entries NUMBER;
41128 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41132 l_recog_line_1 NUMBER;
41129 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41130 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41131 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41133 l_recog_line_2 NUMBER;
41134
41135 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41136 l_bflow_applied_to_amt NUMBER; -- 5132302
41137 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41138
41139 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41140
41141 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41142 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41143
41144 ---------------------------------------------------------------------------------------------------------------
41145
41146
41147 --
41148 -- bulk performance
41149 --
41150 l_balance_type_code VARCHAR2(1);
41151 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41152 l_log_module VARCHAR2(240);
41153
41154 --
41155 -- Upgrade strategy
41156 --
41157 l_actual_upg_option VARCHAR2(1);
41158 l_enc_upg_option VARCHAR2(1);
41159
41160 --
41161 BEGIN
41162 --
41163 IF g_log_enabled THEN
41164 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
41165 END IF;
41166 --
41167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41168
41169 trace
41170 (p_msg => 'BEGIN of AcctLineType_87'
41171 ,p_level => C_LEVEL_PROCEDURE
41172 ,p_module => l_log_module);
41173
41174 END IF;
41175 --
41176 l_component_type := 'AMB_JLT';
41177 l_component_code := 'PA_VI_REV';
41178 l_component_type_code := 'S';
41179 l_component_appl_id := 275;
41180 l_amb_context_code := 'DEFAULT';
41181 l_entity_code := 'REVENUE';
41182 l_event_class_code := 'REVENUE';
41183 l_event_type_code := 'REVENUE_ALL';
41184 l_line_definition_owner_code := 'S';
41185 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
41186 --
41187 l_balance_type_code := 'A';
41188 l_segment := NULL;
41189 l_ccid := NULL;
41190 l_adr_transaction_coa_id := NULL;
41191 l_adr_accounting_coa_id := NULL;
41192 l_adr_flexfield_segment_code := NULL;
41193 l_adr_flex_value_set_id := NULL;
41194 l_adr_value_type_code := NULL;
41195 l_adr_value_combination_id := NULL;
41196 l_adr_value_segment_code := NULL;
41197
41198 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41199 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
41200 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41201 l_budgetary_control_flag := 'N';
41202
41203 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41204 l_bflow_applied_to_amt := NULL; -- 5132302
41205 l_entered_amt_idx := NULL; -- 4262811
41206 l_accted_amt_idx := NULL; -- 4262811
41207 l_acc_rev_flag := NULL; -- 4262811
41208 l_accrual_line_num := NULL; -- 4262811
41209 l_tmp_amt := NULL; -- 4262811
41210 --
41211
41212 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41213 l_balance_type_code <> 'B' THEN
41214 IF NVL(p_source_36,'
41215 ') = 'Revenue - Normal Revenue' AND
41216 NVL(p_source_37,'
41217 ') = 'VI' AND
41218 NVL(p_source_38,'
41219 ') = 'N'
41220 THEN
41221
41222 --
41223 XLA_AE_LINES_PKG.SetNewLine;
41224
41225 p_balance_type_code := l_balance_type_code;
41226 -- set the flag so later we will know whether the gain loss line needs to be created
41227
41228 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41229 p_actual_flag :='A';
41230 END IF;
41231
41232 --
41233 -- bulk performance
41234 --
41235 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41236 p_header_num => 0); -- 4262811
41237 --
41238 -- set accounting line options
41239 --
41240 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41241 p_natural_side_code => 'C'
41242 , p_gain_or_loss_flag => 'N'
41243 , p_gl_transfer_mode_code => 'S'
41244 , p_acct_entry_type_code => 'A'
41245 , p_switch_side_flag => 'Y'
41246 , p_merge_duplicate_code => 'N'
41247 );
41248 --
41249 l_acc_rev_natural_side_code := 'D'; -- 4262811
41250 --
41251 --
41252 -- set accounting line type info
41253 --
41254 xla_ae_lines_pkg.SetAcctLineType
41255 (p_component_type => l_component_type
41256 ,p_event_type_code => l_event_type_code
41257 ,p_line_definition_owner_code => l_line_definition_owner_code
41258 ,p_line_definition_code => l_line_definition_code
41259 ,p_accounting_line_code => l_component_code
41260 ,p_accounting_line_type_code => l_component_type_code
41261 ,p_accounting_line_appl_id => l_component_appl_id
41262 ,p_amb_context_code => l_amb_context_code
41263 ,p_entity_code => l_entity_code
41264 ,p_event_class_code => l_event_class_code);
41265 --
41266 -- set accounting class
41267 --
41268 xla_ae_lines_pkg.SetAcctClass(
41269 p_accounting_class_code => 'REVENUE'
41273 --
41270 , p_ae_header_id => l_ae_header_id
41271 );
41272
41274 -- set rounding class
41275 --
41276 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41277 'REVENUE';
41278
41279 --
41280 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41281 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41282 --
41283 -- bulk performance
41284 --
41285 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41286
41287 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41288 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41289
41290 -- 4955764
41291 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41292 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41293
41294 -- 4458381 Public Sector Enh
41295
41296 --
41297 -- set accounting attributes for the line type
41298 --
41299 l_entered_amt_idx := 4;
41300 l_accted_amt_idx := 10;
41301 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41302 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
41303 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
41304 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
41305 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
41306 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
41307 l_rec_acct_attrs.array_char_value(3) := p_source_36;
41308 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
41309 l_rec_acct_attrs.array_num_value(4) := p_source_41;
41310 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
41311 l_rec_acct_attrs.array_char_value(5) := p_source_25;
41312 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
41313 l_rec_acct_attrs.array_date_value(6) := p_source_27;
41314 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
41315 l_rec_acct_attrs.array_num_value(7) := p_source_28;
41316 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
41317 l_rec_acct_attrs.array_char_value(8) := p_source_29;
41318 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
41319 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
41320 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
41321 l_rec_acct_attrs.array_num_value(10) := p_source_43;
41322
41323 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41324 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41325
41326 ---------------------------------------------------------------------------------------------------------------
41327 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41328 ---------------------------------------------------------------------------------------------------------------
41329 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41330
41331 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41332 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41333
41334 IF xla_accounting_cache_pkg.GetValueChar
41335 (p_source_code => 'LEDGER_CATEGORY_CODE'
41336 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41337 AND l_bflow_method_code = 'PRIOR_ENTRY'
41338 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41339 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41340 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41341 )
41342 THEN
41343 xla_ae_lines_pkg.BflowUpgEntry
41344 (p_business_method_code => l_bflow_method_code
41345 ,p_business_class_code => l_bflow_class_code
41346 ,p_balance_type => l_balance_type_code);
41347 ELSE
41348 NULL;
41349 -- No business flow processing for business flow method of NONE.
41350 END IF;
41351
41352 --
41353 -- call analytical criteria
41354 --
41355
41356 --
41357 -- call description
41358 --
41359 -- No description or it is inherited.
41360 --
41361 -- call ADRs
41362 -- Bug 4922099
41363 --
41364 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41365 (NVL(l_actual_upg_option, 'N') = 'O') OR
41366 (NVL(l_enc_upg_option, 'N') = 'O')
41367 )
41368 THEN
41369 NULL;
41370 --
41371 --
41372
41373 l_ccid := AcctDerRule_17(
41374 p_application_id => p_application_id
41375 , p_ae_header_id => l_ae_header_id
41376 , p_source_18 => p_source_18
41377 , x_transaction_coa_id => l_adr_transaction_coa_id
41378 , x_accounting_coa_id => l_adr_accounting_coa_id
41379 , x_value_type_code => l_adr_value_type_code
41380 , p_side => 'NA'
41381 );
41382
41383 xla_ae_lines_pkg.set_ccid(
41384 p_code_combination_id => l_ccid
41385 , p_value_type_code => l_adr_value_type_code
41386 , p_transaction_coa_id => l_adr_transaction_coa_id
41387 , p_accounting_coa_id => l_adr_accounting_coa_id
41388 , p_adr_code => 'REVENUE_RULE'
41389 , p_adr_type_code => 'S'
41390 , p_component_type => l_component_type
41391 , p_component_code => l_component_code
41395 , p_side => 'NA'
41392 , p_component_type_code => l_component_type_code
41393 , p_component_appl_id => l_component_appl_id
41394 , p_amb_context_code => l_amb_context_code
41396 );
41397
41398
41399 --
41400 --
41401 END IF;
41402 --
41403 -- Bug 4922099
41404 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41405 (NVL(l_enc_upg_option, 'N') = 'O')
41406 ) AND
41407 (l_bflow_method_code = 'PRIOR_ENTRY')
41408 )
41409 THEN
41410 IF
41411 --
41412 1 = 2
41413 --
41414 THEN
41415 xla_accounting_err_pkg.build_message
41416 (p_appli_s_name => 'XLA'
41417 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41418 ,p_token_1 => 'LINE_NUMBER'
41419 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41420 ,p_token_2 => 'LINE_TYPE_NAME'
41421 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41422 l_component_type
41423 ,l_component_code
41424 ,l_component_type_code
41425 ,l_component_appl_id
41426 ,l_amb_context_code
41427 ,l_entity_code
41428 ,l_event_class_code
41429 )
41430 ,p_token_3 => 'OWNER'
41431 ,p_value_3 => xla_lookups_pkg.get_meaning(
41432 p_lookup_type => 'XLA_OWNER_TYPE'
41433 ,p_lookup_code => l_component_type_code
41434 )
41435 ,p_token_4 => 'PRODUCT_NAME'
41436 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41437 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41438 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41439 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41440 ,p_ae_header_id => NULL
41441 );
41442
41443 IF (C_LEVEL_ERROR>= g_log_level) THEN
41444 trace
41445 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41446 ,p_level => C_LEVEL_ERROR
41447 ,p_module => l_log_module);
41448 END IF;
41449 END IF;
41450 END IF;
41451 --
41452 --
41453 ------------------------------------------------------------------------------------------------
41454 -- 4219869 Business Flow
41455 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41456 -- Prior Entry. Currently, the following code is always generated.
41457 ------------------------------------------------------------------------------------------------
41458 XLA_AE_LINES_PKG.ValidateCurrentLine;
41459
41460 ------------------------------------------------------------------------------------
41461 -- 4219869 Business Flow
41462 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41463 ------------------------------------------------------------------------------------
41464 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41465
41466 ----------------------------------------------------------------------------------
41467 -- 4219869 Business Flow
41468 -- Update journal entry status -- Need to generate this within IF <condition>
41469 ----------------------------------------------------------------------------------
41470 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41471 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41472 ,p_balance_type_code => l_balance_type_code
41473 );
41474
41475 -------------------------------------------------------------------------------------------
41476 -- 4262811 - Generate the Accrual Reversal lines
41477 -------------------------------------------------------------------------------------------
41478 BEGIN
41479 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41480 (g_array_event(p_event_id).array_value_num('header_index'));
41481 IF l_acc_rev_flag IS NULL THEN
41482 l_acc_rev_flag := 'N';
41483 END IF;
41484 EXCEPTION
41485 WHEN OTHERS THEN
41486 l_acc_rev_flag := 'N';
41487 END;
41488 --
41489 IF (l_acc_rev_flag = 'Y') THEN
41490
41491 -- 4645092 ------------------------------------------------------------------------------
41492 -- To allow MPA report to determine if it should generate report process
41493 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41494 ------------------------------------------------------------------------------------------
41495
41496 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41497 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41501 --
41498
41499 --
41500 -- Update the line information that should be overwritten
41502 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41503 p_header_num => 1);
41504 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41505
41506 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41507
41508 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41509 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41510 END IF;
41511
41512 --
41513 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41514 --
41515 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41516 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41517 ELSE
41518 ---------------------------------------------------------------------------------------------------
41519 -- 4262811a Switch Sign
41520 ---------------------------------------------------------------------------------------------------
41521 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41522 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41523 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41524 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41525 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41526 -- 5132302
41527 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41528 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41529
41530 END IF;
41531
41532 -- 4955764
41533 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41534 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41535
41536
41537 XLA_AE_LINES_PKG.ValidateCurrentLine;
41538 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41539
41540 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41541 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41542 ,p_balance_type_code => l_balance_type_code);
41543
41544 END IF;
41545
41546 -----------------------------------------------------------------------------------------
41547 -- 4262811 Multiperiod Accounting
41548 -----------------------------------------------------------------------------------------
41549 -- No MPA option is assigned.
41550
41551
41552 END IF;
41553 END IF;
41554 --
41555
41556 --
41557 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41558 trace
41559 (p_msg => 'END of AcctLineType_87'
41560 ,p_level => C_LEVEL_PROCEDURE
41561 ,p_module => l_log_module);
41562 END IF;
41563 --
41564 EXCEPTION
41565 WHEN xla_exceptions_pkg.application_exception THEN
41566 RAISE;
41567 WHEN OTHERS THEN
41568 xla_exceptions_pkg.raise_message
41569 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_87');
41570 END AcctLineType_87;
41571 --
41572
41573 ---------------------------------------
41574 --
41575 -- PRIVATE FUNCTION
41576 -- AcctLineType_88
41577 --
41578 ---------------------------------------
41579 PROCEDURE AcctLineType_88 (
41580 p_application_id IN NUMBER
41581 ,p_event_id IN NUMBER
41582 ,p_calculate_acctd_flag IN VARCHAR2
41583 ,p_calculate_g_l_flag IN VARCHAR2
41584 ,p_actual_flag IN OUT VARCHAR2
41585 ,p_balance_type_code OUT VARCHAR2
41586 ,p_gain_or_loss_ref OUT VARCHAR2
41587
41588 --Revenue CCID
41589 , p_source_18 IN NUMBER
41590 --Entered Currency Code
41591 , p_source_25 IN VARCHAR2
41592 --Exchange Rate Date
41593 , p_source_27 IN DATE
41594 --Exchange Rate
41595 , p_source_28 IN NUMBER
41596 --Exchange Rate Type
41597 , p_source_29 IN VARCHAR2
41598 --Revenue Distribution Type
41599 , p_source_36 IN VARCHAR2
41600 --System Linkage Function
41601 , p_source_37 IN VARCHAR2
41602 --Crediting Revenue Flag
41603 , p_source_38 IN VARCHAR2
41604 --Revenue First Distribution ID
41605 , p_source_39 IN NUMBER
41606 --Revenue Second Distribution ID
41607 , p_source_40 IN NUMBER
41608 --Entered Amount
41609 , p_source_41 IN NUMBER
41610 --Event ID
41611 , p_source_42 IN NUMBER
41612 --Accounted Amount
41613 , p_source_43 IN NUMBER
41614 )
41615 IS
41616
41617 l_component_type VARCHAR2(80);
41618 l_component_code VARCHAR2(30);
41619 l_component_type_code VARCHAR2(1);
41620 l_component_appl_id INTEGER;
41621 l_amb_context_code VARCHAR2(30);
41622 l_entity_code VARCHAR2(30);
41623 l_event_class_code VARCHAR2(30);
41624 l_ae_header_id NUMBER;
41625 l_event_type_code VARCHAR2(30);
41626 l_line_definition_code VARCHAR2(30);
41627 l_line_definition_owner_code VARCHAR2(1);
41628 --
41629 -- adr variables
41630 l_segment VARCHAR2(30);
41631 l_ccid NUMBER;
41632 l_adr_transaction_coa_id NUMBER;
41633 l_adr_accounting_coa_id NUMBER;
41637 l_adr_value_combination_id NUMBER;
41634 l_adr_flexfield_segment_code VARCHAR2(30);
41635 l_adr_flex_value_set_id NUMBER;
41636 l_adr_value_type_code VARCHAR2(30);
41638 l_adr_value_segment_code VARCHAR2(30);
41639
41640 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41641 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41642 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41643 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41644
41645 -- 4262811 Variables ------------------------------------------------------------------------------------------
41646 l_entered_amt_idx NUMBER;
41647 l_accted_amt_idx NUMBER;
41648 l_acc_rev_flag VARCHAR2(1);
41649 l_accrual_line_num NUMBER;
41650 l_tmp_amt NUMBER;
41651 l_acc_rev_natural_side_code VARCHAR2(1);
41652
41653 l_num_entries NUMBER;
41654 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41655 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41656 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41657 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41658 l_recog_line_1 NUMBER;
41659 l_recog_line_2 NUMBER;
41660
41661 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41662 l_bflow_applied_to_amt NUMBER; -- 5132302
41663 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41664
41665 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41666
41667 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41668 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41669
41670 ---------------------------------------------------------------------------------------------------------------
41671
41672
41673 --
41674 -- bulk performance
41675 --
41676 l_balance_type_code VARCHAR2(1);
41677 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41678 l_log_module VARCHAR2(240);
41679
41680 --
41681 -- Upgrade strategy
41682 --
41683 l_actual_upg_option VARCHAR2(1);
41684 l_enc_upg_option VARCHAR2(1);
41685
41686 --
41687 BEGIN
41688 --
41689 IF g_log_enabled THEN
41690 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
41691 END IF;
41692 --
41693 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41694
41695 trace
41696 (p_msg => 'BEGIN of AcctLineType_88'
41697 ,p_level => C_LEVEL_PROCEDURE
41698 ,p_module => l_log_module);
41699
41700 END IF;
41701 --
41702 l_component_type := 'AMB_JLT';
41703 l_component_code := 'PA_WIP_REV';
41704 l_component_type_code := 'S';
41705 l_component_appl_id := 275;
41706 l_amb_context_code := 'DEFAULT';
41707 l_entity_code := 'REVENUE';
41708 l_event_class_code := 'REVENUE';
41709 l_event_type_code := 'REVENUE_ALL';
41710 l_line_definition_owner_code := 'S';
41711 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
41712 --
41713 l_balance_type_code := 'A';
41714 l_segment := NULL;
41715 l_ccid := NULL;
41716 l_adr_transaction_coa_id := NULL;
41717 l_adr_accounting_coa_id := NULL;
41718 l_adr_flexfield_segment_code := NULL;
41719 l_adr_flex_value_set_id := NULL;
41720 l_adr_value_type_code := NULL;
41721 l_adr_value_combination_id := NULL;
41722 l_adr_value_segment_code := NULL;
41723
41724 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41725 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
41726 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41727 l_budgetary_control_flag := 'N';
41728
41729 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41730 l_bflow_applied_to_amt := NULL; -- 5132302
41731 l_entered_amt_idx := NULL; -- 4262811
41732 l_accted_amt_idx := NULL; -- 4262811
41733 l_acc_rev_flag := NULL; -- 4262811
41734 l_accrual_line_num := NULL; -- 4262811
41735 l_tmp_amt := NULL; -- 4262811
41736 --
41737
41738 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41739 l_balance_type_code <> 'B' THEN
41740 IF NVL(p_source_36,'
41741 ') = 'Revenue - Normal Revenue' AND
41742 NVL(p_source_37,'
41743 ') = 'WIP' AND
41744 NVL(p_source_38,'
41745 ') = 'N'
41746 THEN
41747
41748 --
41749 XLA_AE_LINES_PKG.SetNewLine;
41750
41751 p_balance_type_code := l_balance_type_code;
41752 -- set the flag so later we will know whether the gain loss line needs to be created
41753
41754 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41755 p_actual_flag :='A';
41756 END IF;
41757
41758 --
41759 -- bulk performance
41760 --
41761 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41762 p_header_num => 0); -- 4262811
41763 --
41764 -- set accounting line options
41765 --
41766 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41767 p_natural_side_code => 'C'
41768 , p_gain_or_loss_flag => 'N'
41769 , p_gl_transfer_mode_code => 'S'
41770 , p_acct_entry_type_code => 'A'
41771 , p_switch_side_flag => 'Y'
41772 , p_merge_duplicate_code => 'N'
41776 --
41773 );
41774 --
41775 l_acc_rev_natural_side_code := 'D'; -- 4262811
41777 --
41778 -- set accounting line type info
41779 --
41780 xla_ae_lines_pkg.SetAcctLineType
41781 (p_component_type => l_component_type
41782 ,p_event_type_code => l_event_type_code
41783 ,p_line_definition_owner_code => l_line_definition_owner_code
41784 ,p_line_definition_code => l_line_definition_code
41785 ,p_accounting_line_code => l_component_code
41786 ,p_accounting_line_type_code => l_component_type_code
41787 ,p_accounting_line_appl_id => l_component_appl_id
41788 ,p_amb_context_code => l_amb_context_code
41789 ,p_entity_code => l_entity_code
41790 ,p_event_class_code => l_event_class_code);
41791 --
41792 -- set accounting class
41793 --
41794 xla_ae_lines_pkg.SetAcctClass(
41795 p_accounting_class_code => 'REVENUE'
41796 , p_ae_header_id => l_ae_header_id
41797 );
41798
41799 --
41800 -- set rounding class
41801 --
41802 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41803 'REVENUE';
41804
41805 --
41806 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41807 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41808 --
41809 -- bulk performance
41810 --
41811 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41812
41813 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41814 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41815
41816 -- 4955764
41817 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41818 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41819
41820 -- 4458381 Public Sector Enh
41821
41822 --
41823 -- set accounting attributes for the line type
41824 --
41825 l_entered_amt_idx := 4;
41826 l_accted_amt_idx := 10;
41827 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41828 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
41829 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
41830 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
41831 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
41832 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
41833 l_rec_acct_attrs.array_char_value(3) := p_source_36;
41834 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
41835 l_rec_acct_attrs.array_num_value(4) := p_source_41;
41836 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
41837 l_rec_acct_attrs.array_char_value(5) := p_source_25;
41838 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
41839 l_rec_acct_attrs.array_date_value(6) := p_source_27;
41840 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
41841 l_rec_acct_attrs.array_num_value(7) := p_source_28;
41842 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
41843 l_rec_acct_attrs.array_char_value(8) := p_source_29;
41844 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
41845 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
41846 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
41847 l_rec_acct_attrs.array_num_value(10) := p_source_43;
41848
41849 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41850 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41851
41852 ---------------------------------------------------------------------------------------------------------------
41853 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41854 ---------------------------------------------------------------------------------------------------------------
41855 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41856
41857 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41858 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41859
41860 IF xla_accounting_cache_pkg.GetValueChar
41861 (p_source_code => 'LEDGER_CATEGORY_CODE'
41862 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41863 AND l_bflow_method_code = 'PRIOR_ENTRY'
41864 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41865 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41866 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41867 )
41868 THEN
41869 xla_ae_lines_pkg.BflowUpgEntry
41870 (p_business_method_code => l_bflow_method_code
41871 ,p_business_class_code => l_bflow_class_code
41872 ,p_balance_type => l_balance_type_code);
41873 ELSE
41874 NULL;
41875 -- No business flow processing for business flow method of NONE.
41876 END IF;
41877
41878 --
41879 -- call analytical criteria
41880 --
41881
41882 --
41883 -- call description
41884 --
41885 -- No description or it is inherited.
41886 --
41887 -- call ADRs
41888 -- Bug 4922099
41889 --
41890 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41891 (NVL(l_actual_upg_option, 'N') = 'O') OR
41892 (NVL(l_enc_upg_option, 'N') = 'O')
41893 )
41894 THEN
41895 NULL;
41896 --
41900 p_application_id => p_application_id
41897 --
41898
41899 l_ccid := AcctDerRule_17(
41901 , p_ae_header_id => l_ae_header_id
41902 , p_source_18 => p_source_18
41903 , x_transaction_coa_id => l_adr_transaction_coa_id
41904 , x_accounting_coa_id => l_adr_accounting_coa_id
41905 , x_value_type_code => l_adr_value_type_code
41906 , p_side => 'NA'
41907 );
41908
41909 xla_ae_lines_pkg.set_ccid(
41910 p_code_combination_id => l_ccid
41911 , p_value_type_code => l_adr_value_type_code
41912 , p_transaction_coa_id => l_adr_transaction_coa_id
41913 , p_accounting_coa_id => l_adr_accounting_coa_id
41914 , p_adr_code => 'REVENUE_RULE'
41915 , p_adr_type_code => 'S'
41916 , p_component_type => l_component_type
41917 , p_component_code => l_component_code
41918 , p_component_type_code => l_component_type_code
41919 , p_component_appl_id => l_component_appl_id
41920 , p_amb_context_code => l_amb_context_code
41921 , p_side => 'NA'
41922 );
41923
41924
41925 --
41926 --
41927 END IF;
41928 --
41929 -- Bug 4922099
41930 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41931 (NVL(l_enc_upg_option, 'N') = 'O')
41932 ) AND
41933 (l_bflow_method_code = 'PRIOR_ENTRY')
41934 )
41935 THEN
41936 IF
41937 --
41938 1 = 2
41939 --
41940 THEN
41941 xla_accounting_err_pkg.build_message
41942 (p_appli_s_name => 'XLA'
41943 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41944 ,p_token_1 => 'LINE_NUMBER'
41945 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41946 ,p_token_2 => 'LINE_TYPE_NAME'
41947 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41948 l_component_type
41949 ,l_component_code
41950 ,l_component_type_code
41951 ,l_component_appl_id
41952 ,l_amb_context_code
41953 ,l_entity_code
41954 ,l_event_class_code
41955 )
41956 ,p_token_3 => 'OWNER'
41957 ,p_value_3 => xla_lookups_pkg.get_meaning(
41958 p_lookup_type => 'XLA_OWNER_TYPE'
41959 ,p_lookup_code => l_component_type_code
41960 )
41961 ,p_token_4 => 'PRODUCT_NAME'
41962 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41963 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41964 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41965 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41966 ,p_ae_header_id => NULL
41967 );
41968
41969 IF (C_LEVEL_ERROR>= g_log_level) THEN
41970 trace
41971 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41972 ,p_level => C_LEVEL_ERROR
41973 ,p_module => l_log_module);
41974 END IF;
41975 END IF;
41976 END IF;
41977 --
41978 --
41979 ------------------------------------------------------------------------------------------------
41980 -- 4219869 Business Flow
41981 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41982 -- Prior Entry. Currently, the following code is always generated.
41983 ------------------------------------------------------------------------------------------------
41984 XLA_AE_LINES_PKG.ValidateCurrentLine;
41985
41986 ------------------------------------------------------------------------------------
41987 -- 4219869 Business Flow
41988 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41989 ------------------------------------------------------------------------------------
41990 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41991
41992 ----------------------------------------------------------------------------------
41993 -- 4219869 Business Flow
41994 -- Update journal entry status -- Need to generate this within IF <condition>
41995 ----------------------------------------------------------------------------------
41996 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41997 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41998 ,p_balance_type_code => l_balance_type_code
41999 );
42000
42001 -------------------------------------------------------------------------------------------
42002 -- 4262811 - Generate the Accrual Reversal lines
42006 (g_array_event(p_event_id).array_value_num('header_index'));
42003 -------------------------------------------------------------------------------------------
42004 BEGIN
42005 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42007 IF l_acc_rev_flag IS NULL THEN
42008 l_acc_rev_flag := 'N';
42009 END IF;
42010 EXCEPTION
42011 WHEN OTHERS THEN
42012 l_acc_rev_flag := 'N';
42013 END;
42014 --
42015 IF (l_acc_rev_flag = 'Y') THEN
42016
42017 -- 4645092 ------------------------------------------------------------------------------
42018 -- To allow MPA report to determine if it should generate report process
42019 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42020 ------------------------------------------------------------------------------------------
42021
42022 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42023 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42024
42025 --
42026 -- Update the line information that should be overwritten
42027 --
42028 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42029 p_header_num => 1);
42030 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42031
42032 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42033
42034 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42035 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42036 END IF;
42037
42038 --
42039 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42040 --
42041 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42042 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42043 ELSE
42044 ---------------------------------------------------------------------------------------------------
42045 -- 4262811a Switch Sign
42046 ---------------------------------------------------------------------------------------------------
42047 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42048 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42049 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42050 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42051 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42052 -- 5132302
42053 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42054 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42055
42056 END IF;
42057
42058 -- 4955764
42059 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42060 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42061
42062
42063 XLA_AE_LINES_PKG.ValidateCurrentLine;
42064 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42065
42066 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42067 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42068 ,p_balance_type_code => l_balance_type_code);
42069
42070 END IF;
42071
42072 -----------------------------------------------------------------------------------------
42073 -- 4262811 Multiperiod Accounting
42074 -----------------------------------------------------------------------------------------
42075 -- No MPA option is assigned.
42076
42077
42078 END IF;
42079 END IF;
42080 --
42081
42082 --
42083 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42084 trace
42085 (p_msg => 'END of AcctLineType_88'
42086 ,p_level => C_LEVEL_PROCEDURE
42087 ,p_module => l_log_module);
42088 END IF;
42089 --
42090 EXCEPTION
42091 WHEN xla_exceptions_pkg.application_exception THEN
42092 RAISE;
42093 WHEN OTHERS THEN
42094 xla_exceptions_pkg.raise_message
42095 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_88');
42096 END AcctLineType_88;
42097 --
42098
42099 ---------------------------------------
42100 --
42101 -- PRIVATE FUNCTION
42102 -- AcctLineType_89
42103 --
42104 ---------------------------------------
42105 PROCEDURE AcctLineType_89 (
42106 p_application_id IN NUMBER
42107 ,p_event_id IN NUMBER
42108 ,p_calculate_acctd_flag IN VARCHAR2
42109 ,p_calculate_g_l_flag IN VARCHAR2
42110 ,p_actual_flag IN OUT VARCHAR2
42111 ,p_balance_type_code OUT VARCHAR2
42112 ,p_gain_or_loss_ref OUT VARCHAR2
42113
42114 --Budget Code Combination ID
42115 , p_source_2 IN NUMBER
42116 --Cost CCID
42117 , p_source_3 IN NUMBER
42118 --Cost Clearing CCID
42119 , p_source_6 IN NUMBER
42120 --Reversing Line Flag
42121 , p_source_22 IN VARCHAR2
42122 --Actual Upgrade Credit Accounting Class
42123 , p_source_23 IN VARCHAR2
42124 --Entered Currency Code
42125 , p_source_25 IN VARCHAR2
42126 --Exchange Rate Date
42127 , p_source_27 IN DATE
42128 --Exchange Rate
42129 , p_source_28 IN NUMBER
42130 --Exchange Rate Type
42131 , p_source_29 IN VARCHAR2
42132 --Actual Upgrade Debit Accounting Class
42136 --Expenditure Item ID
42133 , p_source_30 IN VARCHAR2
42134 --Use Actuals Upgrade Attributes Flag
42135 , p_source_31 IN VARCHAR2
42137 , p_source_32 IN NUMBER
42138 --Cost Distribution Line Number
42139 , p_source_33 IN NUMBER
42140 --Line Type
42141 , p_source_34 IN VARCHAR2
42142 , p_source_34_meaning IN VARCHAR2
42143 --Reversed Line Number
42144 , p_source_35 IN NUMBER
42145 --Entered Burdened Cost
42146 , p_source_44 IN NUMBER
42147 --Accounted Burdened Cost
42148 , p_source_45 IN NUMBER
42149 --Encumbrance Amount
42150 , p_source_46 IN NUMBER
42151 --Project Encumbrance Applied to Application Identifier
42152 , p_source_47 IN NUMBER
42153 --Project Encumbrance Applied to Distribution Type
42154 , p_source_48 IN VARCHAR2
42155 --Project Encumbrance Applied to Entity Code
42156 , p_source_49 IN VARCHAR2
42157 --Project Encumbrance Applied to First Distribution ID
42158 , p_source_50 IN NUMBER
42159 --Project Encumbrance Applied to First System Transaction ID
42160 , p_source_51 IN NUMBER
42161 --Project Encumbrance Applied to Second Distribution ID
42162 , p_source_52 IN VARCHAR2
42163 --Encumbrance Upgrade Debit Accounting Class
42164 , p_source_54 IN VARCHAR2
42165 --Use Encumbrance Upgrade Attributes Flag
42166 , p_source_55 IN VARCHAR2
42167 --Encumbrance Type ID
42168 , p_source_56 IN NUMBER
42169 --Project Encumbrance Type ID
42170 , p_source_57 IN NUMBER
42171 )
42172 IS
42173
42174 l_component_type VARCHAR2(80);
42175 l_component_code VARCHAR2(30);
42176 l_component_type_code VARCHAR2(1);
42177 l_component_appl_id INTEGER;
42178 l_amb_context_code VARCHAR2(30);
42179 l_entity_code VARCHAR2(30);
42180 l_event_class_code VARCHAR2(30);
42181 l_ae_header_id NUMBER;
42182 l_event_type_code VARCHAR2(30);
42183 l_line_definition_code VARCHAR2(30);
42184 l_line_definition_owner_code VARCHAR2(1);
42185 --
42186 -- adr variables
42187 l_segment VARCHAR2(30);
42188 l_ccid NUMBER;
42189 l_adr_transaction_coa_id NUMBER;
42190 l_adr_accounting_coa_id NUMBER;
42191 l_adr_flexfield_segment_code VARCHAR2(30);
42192 l_adr_flex_value_set_id NUMBER;
42193 l_adr_value_type_code VARCHAR2(30);
42194 l_adr_value_combination_id NUMBER;
42195 l_adr_value_segment_code VARCHAR2(30);
42196
42197 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42198 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42199 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42200 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42201
42202 -- 4262811 Variables ------------------------------------------------------------------------------------------
42203 l_entered_amt_idx NUMBER;
42204 l_accted_amt_idx NUMBER;
42205 l_acc_rev_flag VARCHAR2(1);
42206 l_accrual_line_num NUMBER;
42207 l_tmp_amt NUMBER;
42208 l_acc_rev_natural_side_code VARCHAR2(1);
42209
42210 l_num_entries NUMBER;
42211 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42212 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42213 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42214 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42215 l_recog_line_1 NUMBER;
42216 l_recog_line_2 NUMBER;
42217
42218 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42219 l_bflow_applied_to_amt NUMBER; -- 5132302
42220 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42221
42222 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42223
42224 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42225 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42226
42227 ---------------------------------------------------------------------------------------------------------------
42228
42229
42230 --
42231 -- bulk performance
42232 --
42233 l_balance_type_code VARCHAR2(1);
42234 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42235 l_log_module VARCHAR2(240);
42236
42237 --
42238 -- Upgrade strategy
42239 --
42240 l_actual_upg_option VARCHAR2(1);
42241 l_enc_upg_option VARCHAR2(1);
42242
42243 --
42244 BEGIN
42245 --
42246 IF g_log_enabled THEN
42247 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
42248 END IF;
42249 --
42250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42251
42252 trace
42253 (p_msg => 'BEGIN of AcctLineType_89'
42254 ,p_level => C_LEVEL_PROCEDURE
42255 ,p_module => l_log_module);
42256
42257 END IF;
42258 --
42259 l_component_type := 'AMB_JLT';
42260 l_component_code := 'REINSTATE_PROJ_ENC';
42261 l_component_type_code := 'S';
42262 l_component_appl_id := 275;
42263 l_amb_context_code := 'DEFAULT';
42264 l_entity_code := 'EXPENDITURES';
42265 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
42266 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
42267 l_line_definition_owner_code := 'S';
42268 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
42269 --
42270 l_balance_type_code := 'E';
42274 l_adr_accounting_coa_id := NULL;
42271 l_segment := NULL;
42272 l_ccid := NULL;
42273 l_adr_transaction_coa_id := NULL;
42275 l_adr_flexfield_segment_code := NULL;
42276 l_adr_flex_value_set_id := NULL;
42277 l_adr_value_type_code := NULL;
42278 l_adr_value_combination_id := NULL;
42279 l_adr_value_segment_code := NULL;
42280
42281 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
42282 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
42283 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42284 l_budgetary_control_flag := 'N';
42285
42286 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42287 l_bflow_applied_to_amt := NULL; -- 5132302
42288 l_entered_amt_idx := NULL; -- 4262811
42289 l_accted_amt_idx := NULL; -- 4262811
42290 l_acc_rev_flag := NULL; -- 4262811
42291 l_accrual_line_num := NULL; -- 4262811
42292 l_tmp_amt := NULL; -- 4262811
42293 --
42294
42295 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42296 l_balance_type_code <> 'B' THEN
42297 IF NVL(p_source_34,'
42298 ') = 'E'
42299 THEN
42300
42301 --
42302 XLA_AE_LINES_PKG.SetNewLine;
42303
42304 p_balance_type_code := l_balance_type_code;
42305 -- set the flag so later we will know whether the gain loss line needs to be created
42306
42307 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42308 p_actual_flag :='A';
42309 END IF;
42310
42311 --
42312 -- bulk performance
42313 --
42314 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42315 p_header_num => 0); -- 4262811
42316 --
42317 -- set accounting line options
42318 --
42319 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42320 p_natural_side_code => 'D'
42321 , p_gain_or_loss_flag => 'N'
42322 , p_gl_transfer_mode_code => 'S'
42323 , p_acct_entry_type_code => 'E'
42324 , p_switch_side_flag => 'N'
42325 , p_merge_duplicate_code => 'N'
42326 );
42327 --
42328 l_acc_rev_natural_side_code := 'C'; -- 4262811
42329 --
42330 --
42331 -- set accounting line type info
42332 --
42333 xla_ae_lines_pkg.SetAcctLineType
42334 (p_component_type => l_component_type
42335 ,p_event_type_code => l_event_type_code
42336 ,p_line_definition_owner_code => l_line_definition_owner_code
42337 ,p_line_definition_code => l_line_definition_code
42338 ,p_accounting_line_code => l_component_code
42339 ,p_accounting_line_type_code => l_component_type_code
42340 ,p_accounting_line_appl_id => l_component_appl_id
42341 ,p_amb_context_code => l_amb_context_code
42342 ,p_entity_code => l_entity_code
42343 ,p_event_class_code => l_event_class_code);
42344 --
42345 -- set accounting class
42346 --
42347 xla_ae_lines_pkg.SetAcctClass(
42348 p_accounting_class_code => 'PA_BUDGET_ENC'
42349 , p_ae_header_id => l_ae_header_id
42350 );
42351
42352 --
42353 -- set rounding class
42354 --
42355 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42356 'PA_BUDGET_ENC';
42357
42358 --
42359 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42360 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42361 --
42362 -- bulk performance
42363 --
42364 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42365
42366 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42367 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42368
42369 -- 4955764
42370 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42371 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42372
42373 -- 4458381 Public Sector Enh
42374
42375 --
42376 -- set accounting attributes for the line type
42377 --
42378 l_entered_amt_idx := 35;
42379 l_accted_amt_idx := 37;
42380 l_bflow_applied_to_amt_idx := 19; -- 5132302
42381 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42382 l_rec_acct_attrs.array_char_value(1) := p_source_22;
42383 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
42384 l_rec_acct_attrs.array_char_value(2) := p_source_23;
42385 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
42386 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
42387 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
42388 l_rec_acct_attrs.array_num_value(4) := p_source_44;
42389 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
42390 l_rec_acct_attrs.array_char_value(5) := p_source_25;
42391 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
42392 l_rec_acct_attrs.array_num_value(6) := p_source_45;
42393 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
42394 l_rec_acct_attrs.array_date_value(7) := p_source_27;
42395 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
42396 l_rec_acct_attrs.array_num_value(8) := p_source_28;
42397 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
42401 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
42398 l_rec_acct_attrs.array_char_value(9) := p_source_29;
42399 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
42400 l_rec_acct_attrs.array_char_value(10) := p_source_30;
42402 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
42403 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
42404 l_rec_acct_attrs.array_num_value(12) := p_source_44;
42405 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
42406 l_rec_acct_attrs.array_char_value(13) := p_source_25;
42407 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
42408 l_rec_acct_attrs.array_num_value(14) := p_source_45;
42409 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
42410 l_rec_acct_attrs.array_date_value(15) := p_source_27;
42411 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
42412 l_rec_acct_attrs.array_num_value(16) := p_source_28;
42413 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
42414 l_rec_acct_attrs.array_char_value(17) := p_source_29;
42415 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
42416 l_rec_acct_attrs.array_char_value(18) := p_source_31;
42417 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
42418 l_rec_acct_attrs.array_num_value(19) := p_source_46;
42419 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
42420 l_rec_acct_attrs.array_num_value(20) := p_source_47;
42421 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42422 l_rec_acct_attrs.array_char_value(21) := p_source_48;
42423 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
42424 l_rec_acct_attrs.array_char_value(22) := p_source_49;
42425 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
42426 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
42427 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42428 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
42429 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
42430 l_rec_acct_attrs.array_char_value(25) := p_source_52;
42431 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
42432 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
42433 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
42434 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
42435 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
42436 l_rec_acct_attrs.array_char_value(28) := p_source_34;
42437 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
42438 l_rec_acct_attrs.array_char_value(29) := p_source_54;
42439 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
42440 l_rec_acct_attrs.array_num_value(30) := p_source_2;
42441 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
42442 l_rec_acct_attrs.array_num_value(31) := p_source_46;
42443 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
42444 l_rec_acct_attrs.array_char_value(32) :=
42445 xla_ae_sources_pkg.GetSystemSourceChar(
42446 p_source_code => 'XLA_CURRENCY_CODE'
42447 , p_source_type_code => 'Y'
42448 , p_source_application_id => 602
42449 );
42450 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
42451 l_rec_acct_attrs.array_num_value(33) := p_source_46;
42452 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
42453 l_rec_acct_attrs.array_char_value(34) := p_source_55;
42454 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
42455 l_rec_acct_attrs.array_num_value(35) := p_source_46;
42456 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
42457 l_rec_acct_attrs.array_char_value(36) := p_source_25;
42458 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
42459 l_rec_acct_attrs.array_num_value(37) := p_source_46;
42460 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
42461 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
42462 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
42463 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
42464 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
42465 l_rec_acct_attrs.array_char_value(40) := p_source_34;
42466 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
42467 l_rec_acct_attrs.array_num_value(41) := p_source_56;
42468 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
42469 l_rec_acct_attrs.array_num_value(42) := p_source_57;
42470
42471 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42472 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42473
42474 ---------------------------------------------------------------------------------------------------------------
42475 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42476 ---------------------------------------------------------------------------------------------------------------
42477 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42478
42479 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42480 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42481
42482 IF xla_accounting_cache_pkg.GetValueChar
42483 (p_source_code => 'LEDGER_CATEGORY_CODE'
42484 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42485 AND l_bflow_method_code = 'PRIOR_ENTRY'
42486 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42487 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42491 xla_ae_lines_pkg.BflowUpgEntry
42488 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42489 )
42490 THEN
42492 (p_business_method_code => l_bflow_method_code
42493 ,p_business_class_code => l_bflow_class_code
42494 ,p_balance_type => l_balance_type_code);
42495 ELSE
42496 NULL;
42497 XLA_AE_LINES_PKG.business_flow_validation(
42498 p_business_method_code => l_bflow_method_code
42499 ,p_business_class_code => l_bflow_class_code
42500 ,p_inherit_description_flag => l_inherit_desc_flag);
42501 END IF;
42502
42503 --
42504 -- call analytical criteria
42505 --
42506 -- Inherited Analytical Criteria for business flow method of Prior Entry.
42507 --
42508 -- call description
42509 --
42510 -- No description or it is inherited.
42511 --
42512 -- call ADRs
42513 -- Bug 4922099
42514 --
42515 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42516 (NVL(l_actual_upg_option, 'N') = 'O') OR
42517 (NVL(l_enc_upg_option, 'N') = 'O')
42518 )
42519 THEN
42520 NULL;
42521 --
42522 --
42523
42524 --
42525 --
42526 END IF;
42527 --
42528 -- Bug 4922099
42529 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42530 (NVL(l_enc_upg_option, 'N') = 'O')
42531 ) AND
42532 (l_bflow_method_code = 'PRIOR_ENTRY')
42533 )
42534 THEN
42535 IF
42536 --
42537 1 = 1
42538 --
42539 THEN
42540 xla_accounting_err_pkg.build_message
42541 (p_appli_s_name => 'XLA'
42542 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42543 ,p_token_1 => 'LINE_NUMBER'
42544 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42545 ,p_token_2 => 'LINE_TYPE_NAME'
42546 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42547 l_component_type
42548 ,l_component_code
42549 ,l_component_type_code
42550 ,l_component_appl_id
42551 ,l_amb_context_code
42552 ,l_entity_code
42553 ,l_event_class_code
42554 )
42555 ,p_token_3 => 'OWNER'
42556 ,p_value_3 => xla_lookups_pkg.get_meaning(
42557 p_lookup_type => 'XLA_OWNER_TYPE'
42558 ,p_lookup_code => l_component_type_code
42559 )
42560 ,p_token_4 => 'PRODUCT_NAME'
42561 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42562 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42563 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42564 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42565 ,p_ae_header_id => NULL
42566 );
42567
42568 IF (C_LEVEL_ERROR>= g_log_level) THEN
42569 trace
42570 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42571 ,p_level => C_LEVEL_ERROR
42572 ,p_module => l_log_module);
42573 END IF;
42574 END IF;
42575 END IF;
42576 --
42577 --
42578 ------------------------------------------------------------------------------------------------
42579 -- 4219869 Business Flow
42580 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42581 -- Prior Entry. Currently, the following code is always generated.
42582 ------------------------------------------------------------------------------------------------
42583 -- No ValidateCurrentLine for business flow method of Prior Entry
42584
42585 ------------------------------------------------------------------------------------
42586 -- 4219869 Business Flow
42587 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42588 ------------------------------------------------------------------------------------
42589 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42590
42591 ----------------------------------------------------------------------------------
42592 -- 4219869 Business Flow
42593 -- Update journal entry status -- Need to generate this within IF <condition>
42594 ----------------------------------------------------------------------------------
42595 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42596 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42597 ,p_balance_type_code => l_balance_type_code
42598 );
42599
42600 -------------------------------------------------------------------------------------------
42604 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42601 -- 4262811 - Generate the Accrual Reversal lines
42602 -------------------------------------------------------------------------------------------
42603 BEGIN
42605 (g_array_event(p_event_id).array_value_num('header_index'));
42606 IF l_acc_rev_flag IS NULL THEN
42607 l_acc_rev_flag := 'N';
42608 END IF;
42609 EXCEPTION
42610 WHEN OTHERS THEN
42611 l_acc_rev_flag := 'N';
42612 END;
42613 --
42614 IF (l_acc_rev_flag = 'Y') THEN
42615
42616 -- 4645092 ------------------------------------------------------------------------------
42617 -- To allow MPA report to determine if it should generate report process
42618 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42619 ------------------------------------------------------------------------------------------
42620
42621 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42622 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42623
42624 --
42625 -- Update the line information that should be overwritten
42626 --
42627 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42628 p_header_num => 1);
42629 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42630
42631 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42632
42633 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42634 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42635 END IF;
42636
42637 --
42638 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42639 --
42640 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42641 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42642 ELSE
42643 ---------------------------------------------------------------------------------------------------
42644 -- 4262811a Switch Sign
42645 ---------------------------------------------------------------------------------------------------
42646 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42647 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42648 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42649 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42650 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42651 -- 5132302
42652 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42653 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42654
42655 END IF;
42656
42657 -- 4955764
42658 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42659 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42660
42661
42662 XLA_AE_LINES_PKG.ValidateCurrentLine;
42663 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42664
42665 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42666 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42667 ,p_balance_type_code => l_balance_type_code);
42668
42669 END IF;
42670
42671 -----------------------------------------------------------------------------------------
42672 -- 4262811 Multiperiod Accounting
42673 -----------------------------------------------------------------------------------------
42674 -- No MPA option is assigned.
42675
42676
42677 END IF;
42678 END IF;
42679 --
42680
42681 --
42682 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42683 trace
42684 (p_msg => 'END of AcctLineType_89'
42685 ,p_level => C_LEVEL_PROCEDURE
42686 ,p_module => l_log_module);
42687 END IF;
42688 --
42689 EXCEPTION
42690 WHEN xla_exceptions_pkg.application_exception THEN
42691 RAISE;
42692 WHEN OTHERS THEN
42693 xla_exceptions_pkg.raise_message
42694 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_89');
42695 END AcctLineType_89;
42696 --
42697
42698 ---------------------------------------
42699 --
42700 -- PRIVATE FUNCTION
42701 -- AcctLineType_90
42702 --
42703 ---------------------------------------
42704 PROCEDURE AcctLineType_90 (
42705 p_application_id IN NUMBER
42706 ,p_event_id IN NUMBER
42707 ,p_calculate_acctd_flag IN VARCHAR2
42708 ,p_calculate_g_l_flag IN VARCHAR2
42709 ,p_actual_flag IN OUT VARCHAR2
42710 ,p_balance_type_code OUT VARCHAR2
42711 ,p_gain_or_loss_ref OUT VARCHAR2
42712
42713 --Budget Code Combination ID
42714 , p_source_2 IN NUMBER
42715 --Cost CCID
42716 , p_source_3 IN NUMBER
42717 --Cost Clearing CCID
42718 , p_source_6 IN NUMBER
42719 --Reversing Line Flag
42720 , p_source_22 IN VARCHAR2
42721 --Actual Upgrade Credit Accounting Class
42722 , p_source_23 IN VARCHAR2
42723 --Entered Currency Code
42724 , p_source_25 IN VARCHAR2
42725 --Exchange Rate Date
42726 , p_source_27 IN DATE
42727 --Exchange Rate
42728 , p_source_28 IN NUMBER
42729 --Exchange Rate Type
42730 , p_source_29 IN VARCHAR2
42734 , p_source_31 IN VARCHAR2
42731 --Actual Upgrade Debit Accounting Class
42732 , p_source_30 IN VARCHAR2
42733 --Use Actuals Upgrade Attributes Flag
42735 --Expenditure Item ID
42736 , p_source_32 IN NUMBER
42737 --Cost Distribution Line Number
42738 , p_source_33 IN NUMBER
42739 --Line Type
42740 , p_source_34 IN VARCHAR2
42741 , p_source_34_meaning IN VARCHAR2
42742 --Reversed Line Number
42743 , p_source_35 IN NUMBER
42744 --Entered Burdened Cost
42745 , p_source_44 IN NUMBER
42746 --Accounted Burdened Cost
42747 , p_source_45 IN NUMBER
42748 --Encumbrance Amount
42749 , p_source_46 IN NUMBER
42750 --Project Encumbrance Applied to Application Identifier
42751 , p_source_47 IN NUMBER
42752 --Project Encumbrance Applied to Distribution Type
42753 , p_source_48 IN VARCHAR2
42754 --Project Encumbrance Applied to Entity Code
42755 , p_source_49 IN VARCHAR2
42756 --Project Encumbrance Applied to First Distribution ID
42757 , p_source_50 IN NUMBER
42758 --Project Encumbrance Applied to First System Transaction ID
42759 , p_source_51 IN NUMBER
42760 --Project Encumbrance Applied to Second Distribution ID
42761 , p_source_52 IN VARCHAR2
42762 --Encumbrance Upgrade Credit Accounting Class
42763 , p_source_53 IN VARCHAR2
42764 --Encumbrance Upgrade Debit Accounting Class
42765 , p_source_54 IN VARCHAR2
42766 --Use Encumbrance Upgrade Attributes Flag
42767 , p_source_55 IN VARCHAR2
42768 --Encumbrance Type ID
42769 , p_source_56 IN NUMBER
42770 --Project Encumbrance Type ID
42771 , p_source_57 IN NUMBER
42772 )
42773 IS
42774
42775 l_component_type VARCHAR2(80);
42776 l_component_code VARCHAR2(30);
42777 l_component_type_code VARCHAR2(1);
42778 l_component_appl_id INTEGER;
42779 l_amb_context_code VARCHAR2(30);
42780 l_entity_code VARCHAR2(30);
42781 l_event_class_code VARCHAR2(30);
42782 l_ae_header_id NUMBER;
42783 l_event_type_code VARCHAR2(30);
42784 l_line_definition_code VARCHAR2(30);
42785 l_line_definition_owner_code VARCHAR2(1);
42786 --
42787 -- adr variables
42788 l_segment VARCHAR2(30);
42789 l_ccid NUMBER;
42790 l_adr_transaction_coa_id NUMBER;
42791 l_adr_accounting_coa_id NUMBER;
42792 l_adr_flexfield_segment_code VARCHAR2(30);
42793 l_adr_flex_value_set_id NUMBER;
42794 l_adr_value_type_code VARCHAR2(30);
42795 l_adr_value_combination_id NUMBER;
42796 l_adr_value_segment_code VARCHAR2(30);
42797
42798 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42799 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42800 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42801 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42802
42803 -- 4262811 Variables ------------------------------------------------------------------------------------------
42804 l_entered_amt_idx NUMBER;
42805 l_accted_amt_idx NUMBER;
42806 l_acc_rev_flag VARCHAR2(1);
42807 l_accrual_line_num NUMBER;
42808 l_tmp_amt NUMBER;
42809 l_acc_rev_natural_side_code VARCHAR2(1);
42810
42811 l_num_entries NUMBER;
42812 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42813 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42814 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42815 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42816 l_recog_line_1 NUMBER;
42817 l_recog_line_2 NUMBER;
42818
42819 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42820 l_bflow_applied_to_amt NUMBER; -- 5132302
42821 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42822
42823 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42824
42825 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42826 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42827
42828 ---------------------------------------------------------------------------------------------------------------
42829
42830
42831 --
42832 -- bulk performance
42833 --
42834 l_balance_type_code VARCHAR2(1);
42835 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42836 l_log_module VARCHAR2(240);
42837
42838 --
42839 -- Upgrade strategy
42840 --
42841 l_actual_upg_option VARCHAR2(1);
42842 l_enc_upg_option VARCHAR2(1);
42843
42844 --
42845 BEGIN
42846 --
42847 IF g_log_enabled THEN
42848 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
42849 END IF;
42850 --
42851 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42852
42853 trace
42854 (p_msg => 'BEGIN of AcctLineType_90'
42855 ,p_level => C_LEVEL_PROCEDURE
42856 ,p_module => l_log_module);
42857
42858 END IF;
42859 --
42860 l_component_type := 'AMB_JLT';
42861 l_component_code := 'REINSTATE_PROJ_ENC';
42862 l_component_type_code := 'S';
42863 l_component_appl_id := 275;
42864 l_amb_context_code := 'DEFAULT';
42865 l_entity_code := 'EXPENDITURES';
42866 l_event_class_code := 'BURDEN_COST';
42867 l_event_type_code := 'BURDEN_COST_ALL';
42868 l_line_definition_owner_code := 'S';
42872 l_segment := NULL;
42869 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
42870 --
42871 l_balance_type_code := 'E';
42873 l_ccid := NULL;
42874 l_adr_transaction_coa_id := NULL;
42875 l_adr_accounting_coa_id := NULL;
42876 l_adr_flexfield_segment_code := NULL;
42877 l_adr_flex_value_set_id := NULL;
42878 l_adr_value_type_code := NULL;
42879 l_adr_value_combination_id := NULL;
42880 l_adr_value_segment_code := NULL;
42881
42882 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
42883 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
42884 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42885 l_budgetary_control_flag := 'N';
42886
42887 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42888 l_bflow_applied_to_amt := NULL; -- 5132302
42889 l_entered_amt_idx := NULL; -- 4262811
42890 l_accted_amt_idx := NULL; -- 4262811
42891 l_acc_rev_flag := NULL; -- 4262811
42892 l_accrual_line_num := NULL; -- 4262811
42893 l_tmp_amt := NULL; -- 4262811
42894 --
42895
42896 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42897 l_balance_type_code <> 'B' THEN
42898 IF NVL(p_source_34,'
42899 ') = 'E'
42900 THEN
42901
42902 --
42903 XLA_AE_LINES_PKG.SetNewLine;
42904
42905 p_balance_type_code := l_balance_type_code;
42906 -- set the flag so later we will know whether the gain loss line needs to be created
42907
42908 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42909 p_actual_flag :='A';
42910 END IF;
42911
42912 --
42913 -- bulk performance
42914 --
42915 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42916 p_header_num => 0); -- 4262811
42917 --
42918 -- set accounting line options
42919 --
42920 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42921 p_natural_side_code => 'D'
42922 , p_gain_or_loss_flag => 'N'
42923 , p_gl_transfer_mode_code => 'S'
42924 , p_acct_entry_type_code => 'E'
42925 , p_switch_side_flag => 'N'
42926 , p_merge_duplicate_code => 'N'
42927 );
42928 --
42929 l_acc_rev_natural_side_code := 'C'; -- 4262811
42930 --
42931 --
42932 -- set accounting line type info
42933 --
42934 xla_ae_lines_pkg.SetAcctLineType
42935 (p_component_type => l_component_type
42936 ,p_event_type_code => l_event_type_code
42937 ,p_line_definition_owner_code => l_line_definition_owner_code
42938 ,p_line_definition_code => l_line_definition_code
42939 ,p_accounting_line_code => l_component_code
42940 ,p_accounting_line_type_code => l_component_type_code
42941 ,p_accounting_line_appl_id => l_component_appl_id
42942 ,p_amb_context_code => l_amb_context_code
42943 ,p_entity_code => l_entity_code
42944 ,p_event_class_code => l_event_class_code);
42945 --
42946 -- set accounting class
42947 --
42948 xla_ae_lines_pkg.SetAcctClass(
42949 p_accounting_class_code => 'PA_BUDGET_ENC'
42950 , p_ae_header_id => l_ae_header_id
42951 );
42952
42953 --
42954 -- set rounding class
42955 --
42956 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42957 'PA_BUDGET_ENC';
42958
42959 --
42960 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42961 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42962 --
42963 -- bulk performance
42964 --
42965 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42966
42967 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42968 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42969
42970 -- 4955764
42971 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42972 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42973
42974 -- 4458381 Public Sector Enh
42975
42976 --
42977 -- set accounting attributes for the line type
42978 --
42979 l_entered_amt_idx := 40;
42980 l_accted_amt_idx := 42;
42981 l_bflow_applied_to_amt_idx := 19; -- 5132302
42982 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42983 l_rec_acct_attrs.array_char_value(1) := p_source_22;
42984 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
42985 l_rec_acct_attrs.array_char_value(2) := p_source_23;
42986 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
42987 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
42988 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
42989 l_rec_acct_attrs.array_num_value(4) := p_source_44;
42990 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
42991 l_rec_acct_attrs.array_char_value(5) := p_source_25;
42992 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
42993 l_rec_acct_attrs.array_num_value(6) := p_source_45;
42994 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
42995 l_rec_acct_attrs.array_date_value(7) := p_source_27;
42996 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
43000 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
42997 l_rec_acct_attrs.array_num_value(8) := p_source_28;
42998 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
42999 l_rec_acct_attrs.array_char_value(9) := p_source_29;
43001 l_rec_acct_attrs.array_char_value(10) := p_source_30;
43002 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
43003 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
43004 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
43005 l_rec_acct_attrs.array_num_value(12) := p_source_44;
43006 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
43007 l_rec_acct_attrs.array_char_value(13) := p_source_25;
43008 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
43009 l_rec_acct_attrs.array_num_value(14) := p_source_45;
43010 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
43011 l_rec_acct_attrs.array_date_value(15) := p_source_27;
43012 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
43013 l_rec_acct_attrs.array_num_value(16) := p_source_28;
43014 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
43015 l_rec_acct_attrs.array_char_value(17) := p_source_29;
43016 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
43017 l_rec_acct_attrs.array_char_value(18) := p_source_31;
43018 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
43019 l_rec_acct_attrs.array_num_value(19) := p_source_46;
43020 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
43021 l_rec_acct_attrs.array_num_value(20) := p_source_47;
43022 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43023 l_rec_acct_attrs.array_char_value(21) := p_source_48;
43024 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
43025 l_rec_acct_attrs.array_char_value(22) := p_source_49;
43026 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
43027 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
43028 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43029 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
43030 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
43031 l_rec_acct_attrs.array_char_value(25) := p_source_52;
43032 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
43033 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
43034 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
43035 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
43036 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
43037 l_rec_acct_attrs.array_char_value(28) := p_source_34;
43038 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
43039 l_rec_acct_attrs.array_char_value(29) := p_source_53;
43040 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
43041 l_rec_acct_attrs.array_num_value(30) := p_source_2;
43042 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
43043 l_rec_acct_attrs.array_num_value(31) := p_source_46;
43044 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
43045 l_rec_acct_attrs.array_char_value(32) := p_source_25;
43046 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
43047 l_rec_acct_attrs.array_num_value(33) := p_source_46;
43048 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
43049 l_rec_acct_attrs.array_char_value(34) := p_source_54;
43050 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
43051 l_rec_acct_attrs.array_num_value(35) := p_source_2;
43052 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
43053 l_rec_acct_attrs.array_num_value(36) := p_source_46;
43054 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
43055 l_rec_acct_attrs.array_char_value(37) := p_source_25;
43056 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
43057 l_rec_acct_attrs.array_num_value(38) := p_source_46;
43058 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
43059 l_rec_acct_attrs.array_char_value(39) := p_source_55;
43060 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
43061 l_rec_acct_attrs.array_num_value(40) := p_source_46;
43062 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
43063 l_rec_acct_attrs.array_char_value(41) := p_source_25;
43064 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
43065 l_rec_acct_attrs.array_num_value(42) := p_source_46;
43066 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
43067 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
43068 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
43069 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
43070 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
43071 l_rec_acct_attrs.array_char_value(45) := p_source_34;
43072 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
43073 l_rec_acct_attrs.array_num_value(46) := p_source_56;
43074 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
43075 l_rec_acct_attrs.array_num_value(47) := p_source_57;
43076
43077 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43078 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43079
43080 ---------------------------------------------------------------------------------------------------------------
43081 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43082 ---------------------------------------------------------------------------------------------------------------
43083 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43084
43088 IF xla_accounting_cache_pkg.GetValueChar
43085 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43086 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43087
43089 (p_source_code => 'LEDGER_CATEGORY_CODE'
43090 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43091 AND l_bflow_method_code = 'PRIOR_ENTRY'
43092 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43093 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43094 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43095 )
43096 THEN
43097 xla_ae_lines_pkg.BflowUpgEntry
43098 (p_business_method_code => l_bflow_method_code
43099 ,p_business_class_code => l_bflow_class_code
43100 ,p_balance_type => l_balance_type_code);
43101 ELSE
43102 NULL;
43103 XLA_AE_LINES_PKG.business_flow_validation(
43104 p_business_method_code => l_bflow_method_code
43105 ,p_business_class_code => l_bflow_class_code
43106 ,p_inherit_description_flag => l_inherit_desc_flag);
43107 END IF;
43108
43109 --
43110 -- call analytical criteria
43111 --
43112 -- Inherited Analytical Criteria for business flow method of Prior Entry.
43113 --
43114 -- call description
43115 --
43116 -- No description or it is inherited.
43117 --
43118 -- call ADRs
43119 -- Bug 4922099
43120 --
43121 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43122 (NVL(l_actual_upg_option, 'N') = 'O') OR
43123 (NVL(l_enc_upg_option, 'N') = 'O')
43124 )
43125 THEN
43126 NULL;
43127 --
43128 --
43129
43130 --
43131 --
43132 END IF;
43133 --
43134 -- Bug 4922099
43135 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43136 (NVL(l_enc_upg_option, 'N') = 'O')
43137 ) AND
43138 (l_bflow_method_code = 'PRIOR_ENTRY')
43139 )
43140 THEN
43141 IF
43142 --
43143 1 = 1
43144 --
43145 THEN
43146 xla_accounting_err_pkg.build_message
43147 (p_appli_s_name => 'XLA'
43148 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43149 ,p_token_1 => 'LINE_NUMBER'
43150 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43151 ,p_token_2 => 'LINE_TYPE_NAME'
43152 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43153 l_component_type
43154 ,l_component_code
43155 ,l_component_type_code
43156 ,l_component_appl_id
43157 ,l_amb_context_code
43158 ,l_entity_code
43159 ,l_event_class_code
43160 )
43161 ,p_token_3 => 'OWNER'
43162 ,p_value_3 => xla_lookups_pkg.get_meaning(
43163 p_lookup_type => 'XLA_OWNER_TYPE'
43164 ,p_lookup_code => l_component_type_code
43165 )
43166 ,p_token_4 => 'PRODUCT_NAME'
43167 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43168 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43169 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43170 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43171 ,p_ae_header_id => NULL
43172 );
43173
43174 IF (C_LEVEL_ERROR>= g_log_level) THEN
43175 trace
43176 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43177 ,p_level => C_LEVEL_ERROR
43178 ,p_module => l_log_module);
43179 END IF;
43180 END IF;
43181 END IF;
43182 --
43183 --
43184 ------------------------------------------------------------------------------------------------
43185 -- 4219869 Business Flow
43186 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43187 -- Prior Entry. Currently, the following code is always generated.
43188 ------------------------------------------------------------------------------------------------
43189 -- No ValidateCurrentLine for business flow method of Prior Entry
43190
43191 ------------------------------------------------------------------------------------
43192 -- 4219869 Business Flow
43193 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43194 ------------------------------------------------------------------------------------
43195 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43196
43200 ----------------------------------------------------------------------------------
43197 ----------------------------------------------------------------------------------
43198 -- 4219869 Business Flow
43199 -- Update journal entry status -- Need to generate this within IF <condition>
43201 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43202 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43203 ,p_balance_type_code => l_balance_type_code
43204 );
43205
43206 -------------------------------------------------------------------------------------------
43207 -- 4262811 - Generate the Accrual Reversal lines
43208 -------------------------------------------------------------------------------------------
43209 BEGIN
43210 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43211 (g_array_event(p_event_id).array_value_num('header_index'));
43212 IF l_acc_rev_flag IS NULL THEN
43213 l_acc_rev_flag := 'N';
43214 END IF;
43215 EXCEPTION
43216 WHEN OTHERS THEN
43217 l_acc_rev_flag := 'N';
43218 END;
43219 --
43220 IF (l_acc_rev_flag = 'Y') THEN
43221
43222 -- 4645092 ------------------------------------------------------------------------------
43223 -- To allow MPA report to determine if it should generate report process
43224 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43225 ------------------------------------------------------------------------------------------
43226
43227 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43228 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43229
43230 --
43231 -- Update the line information that should be overwritten
43232 --
43233 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43234 p_header_num => 1);
43235 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43236
43237 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43238
43239 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43240 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43241 END IF;
43242
43243 --
43244 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43245 --
43246 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43247 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43248 ELSE
43249 ---------------------------------------------------------------------------------------------------
43250 -- 4262811a Switch Sign
43251 ---------------------------------------------------------------------------------------------------
43252 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43253 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43254 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43255 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43256 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43257 -- 5132302
43258 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43259 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43260
43261 END IF;
43262
43263 -- 4955764
43264 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43265 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43266
43267
43268 XLA_AE_LINES_PKG.ValidateCurrentLine;
43269 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43270
43271 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43272 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43273 ,p_balance_type_code => l_balance_type_code);
43274
43275 END IF;
43276
43277 -----------------------------------------------------------------------------------------
43278 -- 4262811 Multiperiod Accounting
43279 -----------------------------------------------------------------------------------------
43280 -- No MPA option is assigned.
43281
43282
43283 END IF;
43284 END IF;
43285 --
43286
43287 --
43288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43289 trace
43290 (p_msg => 'END of AcctLineType_90'
43291 ,p_level => C_LEVEL_PROCEDURE
43292 ,p_module => l_log_module);
43293 END IF;
43294 --
43295 EXCEPTION
43296 WHEN xla_exceptions_pkg.application_exception THEN
43297 RAISE;
43298 WHEN OTHERS THEN
43299 xla_exceptions_pkg.raise_message
43300 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_90');
43301 END AcctLineType_90;
43302 --
43303
43304 ---------------------------------------
43305 --
43306 -- PRIVATE FUNCTION
43307 -- AcctLineType_91
43308 --
43309 ---------------------------------------
43310 PROCEDURE AcctLineType_91 (
43311 p_application_id IN NUMBER
43312 ,p_event_id IN NUMBER
43313 ,p_calculate_acctd_flag IN VARCHAR2
43314 ,p_calculate_g_l_flag IN VARCHAR2
43315 ,p_actual_flag IN OUT VARCHAR2
43316 ,p_balance_type_code OUT VARCHAR2
43317 ,p_gain_or_loss_ref OUT VARCHAR2
43318
43319 --Budget Code Combination ID
43320 , p_source_2 IN NUMBER
43324 , p_source_6 IN NUMBER
43321 --Cost CCID
43322 , p_source_3 IN NUMBER
43323 --Cost Clearing CCID
43325 --Reversing Line Flag
43326 , p_source_22 IN VARCHAR2
43327 --Actual Upgrade Credit Accounting Class
43328 , p_source_23 IN VARCHAR2
43329 --Entered Currency Code
43330 , p_source_25 IN VARCHAR2
43331 --Exchange Rate Date
43332 , p_source_27 IN DATE
43333 --Exchange Rate
43334 , p_source_28 IN NUMBER
43335 --Exchange Rate Type
43336 , p_source_29 IN VARCHAR2
43337 --Actual Upgrade Debit Accounting Class
43338 , p_source_30 IN VARCHAR2
43339 --Use Actuals Upgrade Attributes Flag
43340 , p_source_31 IN VARCHAR2
43341 --Expenditure Item ID
43342 , p_source_32 IN NUMBER
43343 --Cost Distribution Line Number
43344 , p_source_33 IN NUMBER
43345 --Line Type
43346 , p_source_34 IN VARCHAR2
43347 , p_source_34_meaning IN VARCHAR2
43348 --Reversed Line Number
43349 , p_source_35 IN NUMBER
43350 --Entered Burdened Cost
43351 , p_source_44 IN NUMBER
43352 --Accounted Burdened Cost
43353 , p_source_45 IN NUMBER
43354 --Encumbrance Amount
43355 , p_source_46 IN NUMBER
43356 --Project Encumbrance Applied to Application Identifier
43357 , p_source_47 IN NUMBER
43358 --Project Encumbrance Applied to Distribution Type
43359 , p_source_48 IN VARCHAR2
43360 --Project Encumbrance Applied to Entity Code
43361 , p_source_49 IN VARCHAR2
43362 --Project Encumbrance Applied to First Distribution ID
43363 , p_source_50 IN NUMBER
43364 --Project Encumbrance Applied to First System Transaction ID
43365 , p_source_51 IN NUMBER
43366 --Project Encumbrance Applied to Second Distribution ID
43367 , p_source_52 IN VARCHAR2
43368 --Encumbrance Upgrade Credit Accounting Class
43369 , p_source_53 IN VARCHAR2
43370 --Encumbrance Upgrade Debit Accounting Class
43371 , p_source_54 IN VARCHAR2
43372 --Use Encumbrance Upgrade Attributes Flag
43373 , p_source_55 IN VARCHAR2
43374 --Encumbrance Type ID
43375 , p_source_56 IN NUMBER
43376 --Project Encumbrance Type ID
43377 , p_source_57 IN NUMBER
43378 )
43379 IS
43380
43381 l_component_type VARCHAR2(80);
43382 l_component_code VARCHAR2(30);
43383 l_component_type_code VARCHAR2(1);
43384 l_component_appl_id INTEGER;
43385 l_amb_context_code VARCHAR2(30);
43386 l_entity_code VARCHAR2(30);
43387 l_event_class_code VARCHAR2(30);
43388 l_ae_header_id NUMBER;
43389 l_event_type_code VARCHAR2(30);
43390 l_line_definition_code VARCHAR2(30);
43391 l_line_definition_owner_code VARCHAR2(1);
43392 --
43393 -- adr variables
43394 l_segment VARCHAR2(30);
43395 l_ccid NUMBER;
43396 l_adr_transaction_coa_id NUMBER;
43397 l_adr_accounting_coa_id NUMBER;
43398 l_adr_flexfield_segment_code VARCHAR2(30);
43399 l_adr_flex_value_set_id NUMBER;
43400 l_adr_value_type_code VARCHAR2(30);
43401 l_adr_value_combination_id NUMBER;
43402 l_adr_value_segment_code VARCHAR2(30);
43403
43404 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43405 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43406 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43407 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43408
43409 -- 4262811 Variables ------------------------------------------------------------------------------------------
43410 l_entered_amt_idx NUMBER;
43411 l_accted_amt_idx NUMBER;
43412 l_acc_rev_flag VARCHAR2(1);
43413 l_accrual_line_num NUMBER;
43414 l_tmp_amt NUMBER;
43415 l_acc_rev_natural_side_code VARCHAR2(1);
43416
43417 l_num_entries NUMBER;
43418 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43419 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43420 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43421 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43422 l_recog_line_1 NUMBER;
43423 l_recog_line_2 NUMBER;
43424
43425 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43426 l_bflow_applied_to_amt NUMBER; -- 5132302
43427 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43428
43429 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43430
43431 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43432 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43433
43434 ---------------------------------------------------------------------------------------------------------------
43435
43436
43437 --
43438 -- bulk performance
43439 --
43440 l_balance_type_code VARCHAR2(1);
43441 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43442 l_log_module VARCHAR2(240);
43443
43444 --
43445 -- Upgrade strategy
43446 --
43447 l_actual_upg_option VARCHAR2(1);
43448 l_enc_upg_option VARCHAR2(1);
43449
43450 --
43451 BEGIN
43452 --
43453 IF g_log_enabled THEN
43454 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
43455 END IF;
43456 --
43457 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43458
43459 trace
43460 (p_msg => 'BEGIN of AcctLineType_91'
43464 END IF;
43461 ,p_level => C_LEVEL_PROCEDURE
43462 ,p_module => l_log_module);
43463
43465 --
43466 l_component_type := 'AMB_JLT';
43467 l_component_code := 'REINSTATE_PROJ_ENC';
43468 l_component_type_code := 'S';
43469 l_component_appl_id := 275;
43470 l_amb_context_code := 'DEFAULT';
43471 l_entity_code := 'EXPENDITURES';
43472 l_event_class_code := 'TOT_BURDENED_COST';
43473 l_event_type_code := 'TOT_BURDENED_COST_ALL';
43474 l_line_definition_owner_code := 'S';
43475 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
43476 --
43477 l_balance_type_code := 'E';
43478 l_segment := NULL;
43479 l_ccid := NULL;
43480 l_adr_transaction_coa_id := NULL;
43481 l_adr_accounting_coa_id := NULL;
43482 l_adr_flexfield_segment_code := NULL;
43483 l_adr_flex_value_set_id := NULL;
43484 l_adr_value_type_code := NULL;
43485 l_adr_value_combination_id := NULL;
43486 l_adr_value_segment_code := NULL;
43487
43488 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
43489 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
43490 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43491 l_budgetary_control_flag := 'N';
43492
43493 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43494 l_bflow_applied_to_amt := NULL; -- 5132302
43495 l_entered_amt_idx := NULL; -- 4262811
43496 l_accted_amt_idx := NULL; -- 4262811
43497 l_acc_rev_flag := NULL; -- 4262811
43498 l_accrual_line_num := NULL; -- 4262811
43499 l_tmp_amt := NULL; -- 4262811
43500 --
43501
43502 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43503 l_balance_type_code <> 'B' THEN
43504 IF NVL(p_source_34,'
43505 ') = 'E'
43506 THEN
43507
43508 --
43509 XLA_AE_LINES_PKG.SetNewLine;
43510
43511 p_balance_type_code := l_balance_type_code;
43512 -- set the flag so later we will know whether the gain loss line needs to be created
43513
43514 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43515 p_actual_flag :='A';
43516 END IF;
43517
43518 --
43519 -- bulk performance
43520 --
43521 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43522 p_header_num => 0); -- 4262811
43523 --
43524 -- set accounting line options
43525 --
43526 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43527 p_natural_side_code => 'D'
43528 , p_gain_or_loss_flag => 'N'
43529 , p_gl_transfer_mode_code => 'S'
43530 , p_acct_entry_type_code => 'E'
43531 , p_switch_side_flag => 'N'
43532 , p_merge_duplicate_code => 'N'
43533 );
43534 --
43535 l_acc_rev_natural_side_code := 'C'; -- 4262811
43536 --
43537 --
43538 -- set accounting line type info
43539 --
43540 xla_ae_lines_pkg.SetAcctLineType
43541 (p_component_type => l_component_type
43542 ,p_event_type_code => l_event_type_code
43543 ,p_line_definition_owner_code => l_line_definition_owner_code
43544 ,p_line_definition_code => l_line_definition_code
43545 ,p_accounting_line_code => l_component_code
43546 ,p_accounting_line_type_code => l_component_type_code
43547 ,p_accounting_line_appl_id => l_component_appl_id
43548 ,p_amb_context_code => l_amb_context_code
43549 ,p_entity_code => l_entity_code
43550 ,p_event_class_code => l_event_class_code);
43551 --
43552 -- set accounting class
43553 --
43554 xla_ae_lines_pkg.SetAcctClass(
43555 p_accounting_class_code => 'PA_BUDGET_ENC'
43556 , p_ae_header_id => l_ae_header_id
43557 );
43558
43559 --
43560 -- set rounding class
43561 --
43562 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43563 'PA_BUDGET_ENC';
43564
43565 --
43566 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43567 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43568 --
43569 -- bulk performance
43570 --
43571 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43572
43573 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43574 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43575
43576 -- 4955764
43577 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43578 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43579
43580 -- 4458381 Public Sector Enh
43581
43582 --
43583 -- set accounting attributes for the line type
43584 --
43585 l_entered_amt_idx := 40;
43586 l_accted_amt_idx := 43;
43587 l_bflow_applied_to_amt_idx := 19; -- 5132302
43588 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43589 l_rec_acct_attrs.array_char_value(1) := p_source_22;
43590 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
43591 l_rec_acct_attrs.array_char_value(2) := p_source_23;
43592 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
43593 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
43597 l_rec_acct_attrs.array_char_value(5) := p_source_25;
43594 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
43595 l_rec_acct_attrs.array_num_value(4) := p_source_44;
43596 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
43598 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
43599 l_rec_acct_attrs.array_num_value(6) := p_source_45;
43600 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
43601 l_rec_acct_attrs.array_date_value(7) := p_source_27;
43602 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
43603 l_rec_acct_attrs.array_num_value(8) := p_source_28;
43604 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
43605 l_rec_acct_attrs.array_char_value(9) := p_source_29;
43606 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
43607 l_rec_acct_attrs.array_char_value(10) := p_source_30;
43608 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
43609 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
43610 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
43611 l_rec_acct_attrs.array_num_value(12) := p_source_44;
43612 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
43613 l_rec_acct_attrs.array_char_value(13) := p_source_25;
43614 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
43615 l_rec_acct_attrs.array_num_value(14) := p_source_45;
43616 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
43617 l_rec_acct_attrs.array_date_value(15) := p_source_27;
43618 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
43619 l_rec_acct_attrs.array_num_value(16) := p_source_28;
43620 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
43621 l_rec_acct_attrs.array_char_value(17) := p_source_29;
43622 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
43623 l_rec_acct_attrs.array_char_value(18) := p_source_31;
43624 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
43625 l_rec_acct_attrs.array_num_value(19) := p_source_46;
43626 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
43627 l_rec_acct_attrs.array_num_value(20) := p_source_47;
43628 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43629 l_rec_acct_attrs.array_char_value(21) := p_source_48;
43630 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
43631 l_rec_acct_attrs.array_char_value(22) := p_source_49;
43632 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
43633 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
43634 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43635 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
43636 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
43637 l_rec_acct_attrs.array_char_value(25) := p_source_52;
43638 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
43639 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
43640 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
43641 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
43642 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
43643 l_rec_acct_attrs.array_char_value(28) := p_source_34;
43644 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
43645 l_rec_acct_attrs.array_char_value(29) := p_source_53;
43646 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
43647 l_rec_acct_attrs.array_num_value(30) := p_source_2;
43648 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
43649 l_rec_acct_attrs.array_num_value(31) := p_source_46;
43650 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
43651 l_rec_acct_attrs.array_char_value(32) :=
43652 xla_ae_sources_pkg.GetSystemSourceChar(
43653 p_source_code => 'XLA_CURRENCY_CODE'
43654 , p_source_type_code => 'Y'
43655 , p_source_application_id => 602
43656 );
43657 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
43658 l_rec_acct_attrs.array_num_value(33) := p_source_46;
43659 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
43660 l_rec_acct_attrs.array_char_value(34) := p_source_54;
43661 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
43662 l_rec_acct_attrs.array_num_value(35) := p_source_2;
43663 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
43664 l_rec_acct_attrs.array_num_value(36) := p_source_46;
43665 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
43666 l_rec_acct_attrs.array_char_value(37) :=
43667 xla_ae_sources_pkg.GetSystemSourceChar(
43668 p_source_code => 'XLA_CURRENCY_CODE'
43669 , p_source_type_code => 'Y'
43670 , p_source_application_id => 602
43671 );
43672 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
43673 l_rec_acct_attrs.array_num_value(38) := p_source_46;
43674 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
43675 l_rec_acct_attrs.array_char_value(39) := p_source_55;
43676 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
43677 l_rec_acct_attrs.array_num_value(40) := p_source_46;
43678 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
43679 l_rec_acct_attrs.array_char_value(41) := p_source_25;
43680 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
43681 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
43682 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
43683 l_rec_acct_attrs.array_num_value(43) := p_source_46;
43684 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
43685 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
43689 l_rec_acct_attrs.array_char_value(46) := p_source_34;
43686 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
43687 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
43688 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
43690 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
43691 l_rec_acct_attrs.array_num_value(47) := p_source_56;
43692 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
43693 l_rec_acct_attrs.array_num_value(48) := p_source_57;
43694
43695 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43696 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43697
43698 ---------------------------------------------------------------------------------------------------------------
43699 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43700 ---------------------------------------------------------------------------------------------------------------
43701 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43702
43703 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43704 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43705
43706 IF xla_accounting_cache_pkg.GetValueChar
43707 (p_source_code => 'LEDGER_CATEGORY_CODE'
43708 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43709 AND l_bflow_method_code = 'PRIOR_ENTRY'
43710 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43711 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43712 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43713 )
43714 THEN
43715 xla_ae_lines_pkg.BflowUpgEntry
43716 (p_business_method_code => l_bflow_method_code
43717 ,p_business_class_code => l_bflow_class_code
43718 ,p_balance_type => l_balance_type_code);
43719 ELSE
43720 NULL;
43721 XLA_AE_LINES_PKG.business_flow_validation(
43722 p_business_method_code => l_bflow_method_code
43723 ,p_business_class_code => l_bflow_class_code
43724 ,p_inherit_description_flag => l_inherit_desc_flag);
43725 END IF;
43726
43727 --
43728 -- call analytical criteria
43729 --
43730 -- Inherited Analytical Criteria for business flow method of Prior Entry.
43731 --
43732 -- call description
43733 --
43734 -- No description or it is inherited.
43735 --
43736 -- call ADRs
43737 -- Bug 4922099
43738 --
43739 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43740 (NVL(l_actual_upg_option, 'N') = 'O') OR
43741 (NVL(l_enc_upg_option, 'N') = 'O')
43742 )
43743 THEN
43744 NULL;
43745 --
43746 --
43747
43748 --
43749 --
43750 END IF;
43751 --
43752 -- Bug 4922099
43753 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43754 (NVL(l_enc_upg_option, 'N') = 'O')
43755 ) AND
43756 (l_bflow_method_code = 'PRIOR_ENTRY')
43757 )
43758 THEN
43759 IF
43760 --
43761 1 = 1
43762 --
43763 THEN
43764 xla_accounting_err_pkg.build_message
43765 (p_appli_s_name => 'XLA'
43766 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43767 ,p_token_1 => 'LINE_NUMBER'
43768 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43769 ,p_token_2 => 'LINE_TYPE_NAME'
43770 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43771 l_component_type
43772 ,l_component_code
43773 ,l_component_type_code
43774 ,l_component_appl_id
43775 ,l_amb_context_code
43776 ,l_entity_code
43777 ,l_event_class_code
43778 )
43779 ,p_token_3 => 'OWNER'
43780 ,p_value_3 => xla_lookups_pkg.get_meaning(
43781 p_lookup_type => 'XLA_OWNER_TYPE'
43782 ,p_lookup_code => l_component_type_code
43783 )
43784 ,p_token_4 => 'PRODUCT_NAME'
43785 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43786 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43787 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43788 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43789 ,p_ae_header_id => NULL
43790 );
43791
43792 IF (C_LEVEL_ERROR>= g_log_level) THEN
43796 ,p_module => l_log_module);
43793 trace
43794 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43795 ,p_level => C_LEVEL_ERROR
43797 END IF;
43798 END IF;
43799 END IF;
43800 --
43801 --
43802 ------------------------------------------------------------------------------------------------
43803 -- 4219869 Business Flow
43804 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43805 -- Prior Entry. Currently, the following code is always generated.
43806 ------------------------------------------------------------------------------------------------
43807 -- No ValidateCurrentLine for business flow method of Prior Entry
43808
43809 ------------------------------------------------------------------------------------
43810 -- 4219869 Business Flow
43811 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43812 ------------------------------------------------------------------------------------
43813 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43814
43815 ----------------------------------------------------------------------------------
43816 -- 4219869 Business Flow
43817 -- Update journal entry status -- Need to generate this within IF <condition>
43818 ----------------------------------------------------------------------------------
43819 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43820 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43821 ,p_balance_type_code => l_balance_type_code
43822 );
43823
43824 -------------------------------------------------------------------------------------------
43825 -- 4262811 - Generate the Accrual Reversal lines
43826 -------------------------------------------------------------------------------------------
43827 BEGIN
43828 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43829 (g_array_event(p_event_id).array_value_num('header_index'));
43830 IF l_acc_rev_flag IS NULL THEN
43831 l_acc_rev_flag := 'N';
43832 END IF;
43833 EXCEPTION
43834 WHEN OTHERS THEN
43835 l_acc_rev_flag := 'N';
43836 END;
43837 --
43838 IF (l_acc_rev_flag = 'Y') THEN
43839
43840 -- 4645092 ------------------------------------------------------------------------------
43841 -- To allow MPA report to determine if it should generate report process
43842 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43843 ------------------------------------------------------------------------------------------
43844
43845 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43846 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43847
43848 --
43849 -- Update the line information that should be overwritten
43850 --
43851 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43852 p_header_num => 1);
43853 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43854
43855 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43856
43857 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43858 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43859 END IF;
43860
43861 --
43862 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43863 --
43864 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43865 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43866 ELSE
43867 ---------------------------------------------------------------------------------------------------
43868 -- 4262811a Switch Sign
43869 ---------------------------------------------------------------------------------------------------
43870 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43871 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43872 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43873 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43874 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43875 -- 5132302
43876 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43877 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43878
43879 END IF;
43880
43881 -- 4955764
43882 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43883 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43884
43885
43886 XLA_AE_LINES_PKG.ValidateCurrentLine;
43887 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43888
43889 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43890 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43891 ,p_balance_type_code => l_balance_type_code);
43892
43893 END IF;
43894
43895 -----------------------------------------------------------------------------------------
43896 -- 4262811 Multiperiod Accounting
43897 -----------------------------------------------------------------------------------------
43898 -- No MPA option is assigned.
43899
43900
43901 END IF;
43902 END IF;
43903 --
43904
43905 --
43909 ,p_level => C_LEVEL_PROCEDURE
43906 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43907 trace
43908 (p_msg => 'END of AcctLineType_91'
43910 ,p_module => l_log_module);
43911 END IF;
43912 --
43913 EXCEPTION
43914 WHEN xla_exceptions_pkg.application_exception THEN
43915 RAISE;
43916 WHEN OTHERS THEN
43917 xla_exceptions_pkg.raise_message
43918 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_91');
43919 END AcctLineType_91;
43920 --
43921
43922 ---------------------------------------
43923 --
43924 -- PRIVATE FUNCTION
43925 -- AcctLineType_92
43926 --
43927 ---------------------------------------
43928 PROCEDURE AcctLineType_92 (
43929 p_application_id IN NUMBER
43930 ,p_event_id IN NUMBER
43931 ,p_calculate_acctd_flag IN VARCHAR2
43932 ,p_calculate_g_l_flag IN VARCHAR2
43933 ,p_actual_flag IN OUT VARCHAR2
43934 ,p_balance_type_code OUT VARCHAR2
43935 ,p_gain_or_loss_ref OUT VARCHAR2
43936
43937 --Budget Code Combination ID
43938 , p_source_2 IN NUMBER
43939 --Cost CCID
43940 , p_source_3 IN NUMBER
43941 --Cost Clearing CCID
43942 , p_source_6 IN NUMBER
43943 --Reversing Line Flag
43944 , p_source_22 IN VARCHAR2
43945 --Actual Upgrade Credit Accounting Class
43946 , p_source_23 IN VARCHAR2
43947 --Entered Currency Code
43948 , p_source_25 IN VARCHAR2
43949 --Exchange Rate Date
43950 , p_source_27 IN DATE
43951 --Exchange Rate
43952 , p_source_28 IN NUMBER
43953 --Exchange Rate Type
43954 , p_source_29 IN VARCHAR2
43955 --Actual Upgrade Debit Accounting Class
43956 , p_source_30 IN VARCHAR2
43957 --Use Actuals Upgrade Attributes Flag
43958 , p_source_31 IN VARCHAR2
43959 --Expenditure Item ID
43960 , p_source_32 IN NUMBER
43961 --Cost Distribution Line Number
43962 , p_source_33 IN NUMBER
43963 --Line Type
43964 , p_source_34 IN VARCHAR2
43965 , p_source_34_meaning IN VARCHAR2
43966 --Reversed Line Number
43967 , p_source_35 IN NUMBER
43968 --Entered Burdened Cost
43969 , p_source_44 IN NUMBER
43970 --Accounted Burdened Cost
43971 , p_source_45 IN NUMBER
43972 --Encumbrance Amount
43973 , p_source_46 IN NUMBER
43974 --Project Encumbrance Applied to Application Identifier
43975 , p_source_47 IN NUMBER
43976 --Project Encumbrance Applied to Distribution Type
43977 , p_source_48 IN VARCHAR2
43978 --Project Encumbrance Applied to Entity Code
43979 , p_source_49 IN VARCHAR2
43980 --Project Encumbrance Applied to First Distribution ID
43981 , p_source_50 IN NUMBER
43982 --Project Encumbrance Applied to First System Transaction ID
43983 , p_source_51 IN NUMBER
43984 --Project Encumbrance Applied to Second Distribution ID
43985 , p_source_52 IN VARCHAR2
43986 --Encumbrance Upgrade Debit Accounting Class
43987 , p_source_54 IN VARCHAR2
43988 --Use Encumbrance Upgrade Attributes Flag
43989 , p_source_55 IN VARCHAR2
43990 --Encumbrance Type ID
43991 , p_source_56 IN NUMBER
43992 --Project Encumbrance Type ID
43993 , p_source_57 IN NUMBER
43994 --Document Type
43995 , p_source_70 IN VARCHAR2
43996 , p_source_70_meaning IN VARCHAR2
43997 --Encumbrance Journal Lines Reversed Flag
43998 , p_source_71 IN VARCHAR2
43999 )
44000 IS
44001
44002 l_component_type VARCHAR2(80);
44003 l_component_code VARCHAR2(30);
44004 l_component_type_code VARCHAR2(1);
44005 l_component_appl_id INTEGER;
44006 l_amb_context_code VARCHAR2(30);
44007 l_entity_code VARCHAR2(30);
44008 l_event_class_code VARCHAR2(30);
44009 l_ae_header_id NUMBER;
44010 l_event_type_code VARCHAR2(30);
44011 l_line_definition_code VARCHAR2(30);
44012 l_line_definition_owner_code VARCHAR2(1);
44013 --
44014 -- adr variables
44015 l_segment VARCHAR2(30);
44016 l_ccid NUMBER;
44017 l_adr_transaction_coa_id NUMBER;
44018 l_adr_accounting_coa_id NUMBER;
44019 l_adr_flexfield_segment_code VARCHAR2(30);
44020 l_adr_flex_value_set_id NUMBER;
44021 l_adr_value_type_code VARCHAR2(30);
44022 l_adr_value_combination_id NUMBER;
44023 l_adr_value_segment_code VARCHAR2(30);
44024
44025 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44026 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44027 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44028 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44029
44030 -- 4262811 Variables ------------------------------------------------------------------------------------------
44031 l_entered_amt_idx NUMBER;
44032 l_accted_amt_idx NUMBER;
44033 l_acc_rev_flag VARCHAR2(1);
44034 l_accrual_line_num NUMBER;
44035 l_tmp_amt NUMBER;
44036 l_acc_rev_natural_side_code VARCHAR2(1);
44037
44038 l_num_entries NUMBER;
44039 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44040 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44041 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44042 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44043 l_recog_line_1 NUMBER;
44044 l_recog_line_2 NUMBER;
44045
44046 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44050 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44047 l_bflow_applied_to_amt NUMBER; -- 5132302
44048 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44049
44051
44052 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44053 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44054
44055 ---------------------------------------------------------------------------------------------------------------
44056
44057
44058 --
44059 -- bulk performance
44060 --
44061 l_balance_type_code VARCHAR2(1);
44062 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44063 l_log_module VARCHAR2(240);
44064
44065 --
44066 -- Upgrade strategy
44067 --
44068 l_actual_upg_option VARCHAR2(1);
44069 l_enc_upg_option VARCHAR2(1);
44070
44071 --
44072 BEGIN
44073 --
44074 IF g_log_enabled THEN
44075 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
44076 END IF;
44077 --
44078 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44079
44080 trace
44081 (p_msg => 'BEGIN of AcctLineType_92'
44082 ,p_level => C_LEVEL_PROCEDURE
44083 ,p_module => l_log_module);
44084
44085 END IF;
44086 --
44087 l_component_type := 'AMB_JLT';
44088 l_component_code := 'REL_CANCELLED_INV_BURDENED_ENC';
44089 l_component_type_code := 'S';
44090 l_component_appl_id := 275;
44091 l_amb_context_code := 'DEFAULT';
44092 l_entity_code := 'EXPENDITURES';
44093 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
44094 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
44095 l_line_definition_owner_code := 'S';
44096 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
44097 --
44098 l_balance_type_code := 'E';
44099 l_segment := NULL;
44100 l_ccid := NULL;
44101 l_adr_transaction_coa_id := NULL;
44102 l_adr_accounting_coa_id := NULL;
44103 l_adr_flexfield_segment_code := NULL;
44104 l_adr_flex_value_set_id := NULL;
44105 l_adr_value_type_code := NULL;
44106 l_adr_value_combination_id := NULL;
44107 l_adr_value_segment_code := NULL;
44108
44109 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44110 l_bflow_class_code := 'AP_INV_PA_BURDENED_ENC'; -- 4219869 Business Flow
44111 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44112 l_budgetary_control_flag := 'N';
44113
44114 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44115 l_bflow_applied_to_amt := NULL; -- 5132302
44116 l_entered_amt_idx := NULL; -- 4262811
44117 l_accted_amt_idx := NULL; -- 4262811
44118 l_acc_rev_flag := NULL; -- 4262811
44119 l_accrual_line_num := NULL; -- 4262811
44120 l_tmp_amt := NULL; -- 4262811
44121 --
44122
44123 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44124 l_balance_type_code <> 'B' THEN
44125 IF NVL(p_source_34,'
44126 ') = 'E' AND
44127 NVL(p_source_70,'
44128 ') = 'AP' AND
44129 NVL(p_source_71,'
44130 ') = 'Y'
44131 THEN
44132
44133 --
44134 XLA_AE_LINES_PKG.SetNewLine;
44135
44136 p_balance_type_code := l_balance_type_code;
44137 -- set the flag so later we will know whether the gain loss line needs to be created
44138
44139 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44140 p_actual_flag :='A';
44141 END IF;
44142
44143 --
44144 -- bulk performance
44145 --
44146 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44147 p_header_num => 0); -- 4262811
44148 --
44149 -- set accounting line options
44150 --
44151 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44152 p_natural_side_code => 'C'
44153 , p_gain_or_loss_flag => 'N'
44154 , p_gl_transfer_mode_code => 'S'
44155 , p_acct_entry_type_code => 'E'
44156 , p_switch_side_flag => 'N'
44157 , p_merge_duplicate_code => 'N'
44158 );
44159 --
44160 l_acc_rev_natural_side_code := 'D'; -- 4262811
44161 --
44162 --
44163 -- set accounting line type info
44164 --
44165 xla_ae_lines_pkg.SetAcctLineType
44166 (p_component_type => l_component_type
44167 ,p_event_type_code => l_event_type_code
44168 ,p_line_definition_owner_code => l_line_definition_owner_code
44169 ,p_line_definition_code => l_line_definition_code
44170 ,p_accounting_line_code => l_component_code
44171 ,p_accounting_line_type_code => l_component_type_code
44172 ,p_accounting_line_appl_id => l_component_appl_id
44173 ,p_amb_context_code => l_amb_context_code
44174 ,p_entity_code => l_entity_code
44175 ,p_event_class_code => l_event_class_code);
44176 --
44177 -- set accounting class
44178 --
44179 xla_ae_lines_pkg.SetAcctClass(
44180 p_accounting_class_code => 'AP_INV_PA_BURDENED'
44181 , p_ae_header_id => l_ae_header_id
44182 );
44183
44184 --
44185 -- set rounding class
44186 --
44187 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44188 'AP_INV_PA_BURDENED';
44189
44190 --
44194 -- bulk performance
44191 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44192 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44193 --
44195 --
44196 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44197
44198 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44199 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44200
44201 -- 4955764
44202 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44203 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44204
44205 -- 4458381 Public Sector Enh
44206 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
44207 --
44208 -- set accounting attributes for the line type
44209 --
44210 l_entered_amt_idx := 35;
44211 l_accted_amt_idx := 40;
44212 l_bflow_applied_to_amt_idx := 19; -- 5132302
44213 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44214 l_rec_acct_attrs.array_char_value(1) := p_source_22;
44215 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
44216 l_rec_acct_attrs.array_char_value(2) := p_source_23;
44217 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
44218 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
44219 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
44220 l_rec_acct_attrs.array_num_value(4) := p_source_44;
44221 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
44222 l_rec_acct_attrs.array_char_value(5) := p_source_25;
44223 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
44224 l_rec_acct_attrs.array_num_value(6) := p_source_45;
44225 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
44226 l_rec_acct_attrs.array_date_value(7) := p_source_27;
44227 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
44228 l_rec_acct_attrs.array_num_value(8) := p_source_28;
44229 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
44230 l_rec_acct_attrs.array_char_value(9) := p_source_29;
44231 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
44232 l_rec_acct_attrs.array_char_value(10) := p_source_30;
44233 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
44234 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
44235 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
44236 l_rec_acct_attrs.array_num_value(12) := p_source_44;
44237 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
44238 l_rec_acct_attrs.array_char_value(13) := p_source_25;
44239 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
44240 l_rec_acct_attrs.array_num_value(14) := p_source_45;
44241 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
44242 l_rec_acct_attrs.array_date_value(15) := p_source_27;
44243 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
44244 l_rec_acct_attrs.array_num_value(16) := p_source_28;
44245 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
44246 l_rec_acct_attrs.array_char_value(17) := p_source_29;
44247 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
44248 l_rec_acct_attrs.array_char_value(18) := p_source_31;
44249 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
44250 l_rec_acct_attrs.array_num_value(19) := p_source_46;
44251 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
44252 l_rec_acct_attrs.array_num_value(20) := p_source_47;
44253 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44254 l_rec_acct_attrs.array_char_value(21) := p_source_48;
44255 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
44256 l_rec_acct_attrs.array_char_value(22) := p_source_49;
44257 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
44258 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
44259 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44260 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
44261 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
44262 l_rec_acct_attrs.array_char_value(25) := p_source_52;
44263 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
44264 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
44265 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
44266 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
44267 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
44268 l_rec_acct_attrs.array_char_value(28) := p_source_34;
44269 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
44270 l_rec_acct_attrs.array_char_value(29) := p_source_54;
44271 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
44272 l_rec_acct_attrs.array_num_value(30) := p_source_2;
44273 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
44274 l_rec_acct_attrs.array_num_value(31) := p_source_46;
44275 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
44276 l_rec_acct_attrs.array_char_value(32) :=
44277 xla_ae_sources_pkg.GetSystemSourceChar(
44278 p_source_code => 'XLA_CURRENCY_CODE'
44279 , p_source_type_code => 'Y'
44280 , p_source_application_id => 602
44281 );
44282 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
44283 l_rec_acct_attrs.array_num_value(33) := p_source_46;
44284 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
44285 l_rec_acct_attrs.array_char_value(34) := p_source_55;
44289 l_rec_acct_attrs.array_char_value(36) := p_source_25;
44286 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
44287 l_rec_acct_attrs.array_num_value(35) := p_source_46;
44288 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
44290 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
44291 l_rec_acct_attrs.array_date_value(37) := p_source_27;
44292 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
44293 l_rec_acct_attrs.array_num_value(38) := p_source_28;
44294 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
44295 l_rec_acct_attrs.array_char_value(39) := p_source_29;
44296 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
44297 l_rec_acct_attrs.array_num_value(40) := p_source_46;
44298 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
44299 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_32);
44300 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
44301 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_35);
44302 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
44303 l_rec_acct_attrs.array_char_value(43) := p_source_34;
44304 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
44305 l_rec_acct_attrs.array_num_value(44) := p_source_56;
44306 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
44307 l_rec_acct_attrs.array_num_value(45) := p_source_57;
44308
44309 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44310 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44311
44312 ---------------------------------------------------------------------------------------------------------------
44313 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44314 ---------------------------------------------------------------------------------------------------------------
44315 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44316
44317 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44318 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44319
44320 IF xla_accounting_cache_pkg.GetValueChar
44321 (p_source_code => 'LEDGER_CATEGORY_CODE'
44322 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44323 AND l_bflow_method_code = 'PRIOR_ENTRY'
44324 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44325 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44326 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44327 )
44328 THEN
44329 xla_ae_lines_pkg.BflowUpgEntry
44330 (p_business_method_code => l_bflow_method_code
44331 ,p_business_class_code => l_bflow_class_code
44332 ,p_balance_type => l_balance_type_code);
44333 ELSE
44334 NULL;
44335 -- No business flow processing for business flow method of NONE.
44336 END IF;
44337
44338 --
44339 -- call analytical criteria
44340 --
44341
44342 --
44343 -- call description
44344 --
44345 -- No description or it is inherited.
44346 --
44347 -- call ADRs
44348 -- Bug 4922099
44349 --
44350 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44351 (NVL(l_actual_upg_option, 'N') = 'O') OR
44352 (NVL(l_enc_upg_option, 'N') = 'O')
44353 )
44354 THEN
44355 NULL;
44356 --
44357 --
44358
44359 l_ccid := AcctDerRule_2(
44360 p_application_id => p_application_id
44361 , p_ae_header_id => l_ae_header_id
44362 , p_source_2 => p_source_2
44363 , x_transaction_coa_id => l_adr_transaction_coa_id
44364 , x_accounting_coa_id => l_adr_accounting_coa_id
44365 , x_value_type_code => l_adr_value_type_code
44366 , p_side => 'NA'
44367 );
44368
44369 xla_ae_lines_pkg.set_ccid(
44370 p_code_combination_id => l_ccid
44371 , p_value_type_code => l_adr_value_type_code
44372 , p_transaction_coa_id => l_adr_transaction_coa_id
44373 , p_accounting_coa_id => l_adr_accounting_coa_id
44374 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
44375 , p_adr_type_code => 'S'
44376 , p_component_type => l_component_type
44377 , p_component_code => l_component_code
44378 , p_component_type_code => l_component_type_code
44379 , p_component_appl_id => l_component_appl_id
44380 , p_amb_context_code => l_amb_context_code
44381 , p_side => 'NA'
44382 );
44383
44384
44385 --
44386 --
44387 END IF;
44388 --
44389 -- Bug 4922099
44390 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44391 (NVL(l_enc_upg_option, 'N') = 'O')
44392 ) AND
44393 (l_bflow_method_code = 'PRIOR_ENTRY')
44394 )
44395 THEN
44396 IF
44397 --
44398 1 = 2
44399 --
44400 THEN
44401 xla_accounting_err_pkg.build_message
44402 (p_appli_s_name => 'XLA'
44403 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44404 ,p_token_1 => 'LINE_NUMBER'
44405 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44406 ,p_token_2 => 'LINE_TYPE_NAME'
44410 ,l_component_type_code
44407 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44408 l_component_type
44409 ,l_component_code
44411 ,l_component_appl_id
44412 ,l_amb_context_code
44413 ,l_entity_code
44414 ,l_event_class_code
44415 )
44416 ,p_token_3 => 'OWNER'
44417 ,p_value_3 => xla_lookups_pkg.get_meaning(
44418 p_lookup_type => 'XLA_OWNER_TYPE'
44419 ,p_lookup_code => l_component_type_code
44420 )
44421 ,p_token_4 => 'PRODUCT_NAME'
44422 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44423 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44424 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44425 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44426 ,p_ae_header_id => NULL
44427 );
44428
44429 IF (C_LEVEL_ERROR>= g_log_level) THEN
44430 trace
44431 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44432 ,p_level => C_LEVEL_ERROR
44433 ,p_module => l_log_module);
44434 END IF;
44435 END IF;
44436 END IF;
44437 --
44438 --
44439 ------------------------------------------------------------------------------------------------
44440 -- 4219869 Business Flow
44441 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44442 -- Prior Entry. Currently, the following code is always generated.
44443 ------------------------------------------------------------------------------------------------
44444 XLA_AE_LINES_PKG.ValidateCurrentLine;
44445
44446 ------------------------------------------------------------------------------------
44447 -- 4219869 Business Flow
44448 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44449 ------------------------------------------------------------------------------------
44450 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44451
44452 ----------------------------------------------------------------------------------
44453 -- 4219869 Business Flow
44454 -- Update journal entry status -- Need to generate this within IF <condition>
44455 ----------------------------------------------------------------------------------
44456 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44457 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44458 ,p_balance_type_code => l_balance_type_code
44459 );
44460
44461 -------------------------------------------------------------------------------------------
44462 -- 4262811 - Generate the Accrual Reversal lines
44463 -------------------------------------------------------------------------------------------
44464 BEGIN
44465 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44466 (g_array_event(p_event_id).array_value_num('header_index'));
44467 IF l_acc_rev_flag IS NULL THEN
44468 l_acc_rev_flag := 'N';
44469 END IF;
44470 EXCEPTION
44471 WHEN OTHERS THEN
44472 l_acc_rev_flag := 'N';
44473 END;
44474 --
44475 IF (l_acc_rev_flag = 'Y') THEN
44476
44477 -- 4645092 ------------------------------------------------------------------------------
44478 -- To allow MPA report to determine if it should generate report process
44479 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44480 ------------------------------------------------------------------------------------------
44481
44482 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44483 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44484
44485 --
44486 -- Update the line information that should be overwritten
44487 --
44488 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44489 p_header_num => 1);
44490 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44491
44492 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44493
44494 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44495 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44496 END IF;
44497
44498 --
44499 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44500 --
44501 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44502 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44503 ELSE
44504 ---------------------------------------------------------------------------------------------------
44508 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44505 -- 4262811a Switch Sign
44506 ---------------------------------------------------------------------------------------------------
44507 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44509 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44510 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44511 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44512 -- 5132302
44513 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44514 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44515
44516 END IF;
44517
44518 -- 4955764
44519 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44520 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44521
44522
44523 XLA_AE_LINES_PKG.ValidateCurrentLine;
44524 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44525
44526 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44527 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44528 ,p_balance_type_code => l_balance_type_code);
44529
44530 END IF;
44531
44532 -----------------------------------------------------------------------------------------
44533 -- 4262811 Multiperiod Accounting
44534 -----------------------------------------------------------------------------------------
44535 -- No MPA option is assigned.
44536
44537
44538 END IF;
44539 END IF;
44540 --
44541
44542 --
44543 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44544 trace
44545 (p_msg => 'END of AcctLineType_92'
44546 ,p_level => C_LEVEL_PROCEDURE
44547 ,p_module => l_log_module);
44548 END IF;
44549 --
44550 EXCEPTION
44551 WHEN xla_exceptions_pkg.application_exception THEN
44552 RAISE;
44553 WHEN OTHERS THEN
44554 xla_exceptions_pkg.raise_message
44555 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_92');
44556 END AcctLineType_92;
44557 --
44558
44559 ---------------------------------------
44560 --
44561 -- PRIVATE FUNCTION
44562 -- AcctLineType_93
44563 --
44564 ---------------------------------------
44565 PROCEDURE AcctLineType_93 (
44566 p_application_id IN NUMBER
44567 ,p_event_id IN NUMBER
44568 ,p_calculate_acctd_flag IN VARCHAR2
44569 ,p_calculate_g_l_flag IN VARCHAR2
44570 ,p_actual_flag IN OUT VARCHAR2
44571 ,p_balance_type_code OUT VARCHAR2
44572 ,p_gain_or_loss_ref OUT VARCHAR2
44573
44574 --Budget Code Combination ID
44575 , p_source_2 IN NUMBER
44576 --Cost CCID
44577 , p_source_3 IN NUMBER
44578 --Cost Clearing CCID
44579 , p_source_6 IN NUMBER
44580 --Reversing Line Flag
44581 , p_source_22 IN VARCHAR2
44582 --Actual Upgrade Credit Accounting Class
44583 , p_source_23 IN VARCHAR2
44584 --Entered Currency Code
44585 , p_source_25 IN VARCHAR2
44586 --Exchange Rate Date
44587 , p_source_27 IN DATE
44588 --Exchange Rate
44589 , p_source_28 IN NUMBER
44590 --Exchange Rate Type
44591 , p_source_29 IN VARCHAR2
44592 --Actual Upgrade Debit Accounting Class
44593 , p_source_30 IN VARCHAR2
44594 --Use Actuals Upgrade Attributes Flag
44595 , p_source_31 IN VARCHAR2
44596 --Expenditure Item ID
44597 , p_source_32 IN NUMBER
44598 --Cost Distribution Line Number
44599 , p_source_33 IN NUMBER
44600 --Line Type
44601 , p_source_34 IN VARCHAR2
44602 , p_source_34_meaning IN VARCHAR2
44603 --Reversed Line Number
44604 , p_source_35 IN NUMBER
44605 --Entered Burdened Cost
44606 , p_source_44 IN NUMBER
44607 --Accounted Burdened Cost
44608 , p_source_45 IN NUMBER
44609 --Encumbrance Amount
44610 , p_source_46 IN NUMBER
44611 --Project Encumbrance Applied to Application Identifier
44612 , p_source_47 IN NUMBER
44613 --Project Encumbrance Applied to Distribution Type
44614 , p_source_48 IN VARCHAR2
44615 --Project Encumbrance Applied to Entity Code
44616 , p_source_49 IN VARCHAR2
44617 --Project Encumbrance Applied to First Distribution ID
44618 , p_source_50 IN NUMBER
44619 --Project Encumbrance Applied to First System Transaction ID
44620 , p_source_51 IN NUMBER
44621 --Project Encumbrance Applied to Second Distribution ID
44622 , p_source_52 IN VARCHAR2
44623 --Encumbrance Upgrade Credit Accounting Class
44624 , p_source_53 IN VARCHAR2
44625 --Encumbrance Upgrade Debit Accounting Class
44626 , p_source_54 IN VARCHAR2
44627 --Use Encumbrance Upgrade Attributes Flag
44628 , p_source_55 IN VARCHAR2
44629 --Encumbrance Type ID
44630 , p_source_56 IN NUMBER
44631 --Project Encumbrance Type ID
44632 , p_source_57 IN NUMBER
44633 --Document Type
44634 , p_source_70 IN VARCHAR2
44635 , p_source_70_meaning IN VARCHAR2
44636 --Encumbrance Journal Lines Reversed Flag
44637 , p_source_71 IN VARCHAR2
44638 )
44639 IS
44640
44641 l_component_type VARCHAR2(80);
44642 l_component_code VARCHAR2(30);
44643 l_component_type_code VARCHAR2(1);
44644 l_component_appl_id INTEGER;
44648 l_ae_header_id NUMBER;
44645 l_amb_context_code VARCHAR2(30);
44646 l_entity_code VARCHAR2(30);
44647 l_event_class_code VARCHAR2(30);
44649 l_event_type_code VARCHAR2(30);
44650 l_line_definition_code VARCHAR2(30);
44651 l_line_definition_owner_code VARCHAR2(1);
44652 --
44653 -- adr variables
44654 l_segment VARCHAR2(30);
44655 l_ccid NUMBER;
44656 l_adr_transaction_coa_id NUMBER;
44657 l_adr_accounting_coa_id NUMBER;
44658 l_adr_flexfield_segment_code VARCHAR2(30);
44659 l_adr_flex_value_set_id NUMBER;
44660 l_adr_value_type_code VARCHAR2(30);
44661 l_adr_value_combination_id NUMBER;
44662 l_adr_value_segment_code VARCHAR2(30);
44663
44664 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44665 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44666 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44667 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44668
44669 -- 4262811 Variables ------------------------------------------------------------------------------------------
44670 l_entered_amt_idx NUMBER;
44671 l_accted_amt_idx NUMBER;
44672 l_acc_rev_flag VARCHAR2(1);
44673 l_accrual_line_num NUMBER;
44674 l_tmp_amt NUMBER;
44675 l_acc_rev_natural_side_code VARCHAR2(1);
44676
44677 l_num_entries NUMBER;
44678 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44679 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44680 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44681 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44682 l_recog_line_1 NUMBER;
44683 l_recog_line_2 NUMBER;
44684
44685 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44686 l_bflow_applied_to_amt NUMBER; -- 5132302
44687 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44688
44689 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44690
44691 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44692 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44693
44694 ---------------------------------------------------------------------------------------------------------------
44695
44696
44697 --
44698 -- bulk performance
44699 --
44700 l_balance_type_code VARCHAR2(1);
44701 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44702 l_log_module VARCHAR2(240);
44703
44704 --
44705 -- Upgrade strategy
44706 --
44707 l_actual_upg_option VARCHAR2(1);
44708 l_enc_upg_option VARCHAR2(1);
44709
44710 --
44711 BEGIN
44712 --
44713 IF g_log_enabled THEN
44714 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
44715 END IF;
44716 --
44717 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44718
44719 trace
44720 (p_msg => 'BEGIN of AcctLineType_93'
44721 ,p_level => C_LEVEL_PROCEDURE
44722 ,p_module => l_log_module);
44723
44724 END IF;
44725 --
44726 l_component_type := 'AMB_JLT';
44727 l_component_code := 'REL_CANCELLED_INV_BURDENED_ENC';
44728 l_component_type_code := 'S';
44729 l_component_appl_id := 275;
44730 l_amb_context_code := 'DEFAULT';
44731 l_entity_code := 'EXPENDITURES';
44732 l_event_class_code := 'TOT_BURDENED_COST';
44733 l_event_type_code := 'TOT_BURDENED_COST_ALL';
44734 l_line_definition_owner_code := 'S';
44735 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
44736 --
44737 l_balance_type_code := 'E';
44738 l_segment := NULL;
44739 l_ccid := NULL;
44740 l_adr_transaction_coa_id := NULL;
44741 l_adr_accounting_coa_id := NULL;
44742 l_adr_flexfield_segment_code := NULL;
44743 l_adr_flex_value_set_id := NULL;
44744 l_adr_value_type_code := NULL;
44745 l_adr_value_combination_id := NULL;
44746 l_adr_value_segment_code := NULL;
44747
44748 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44749 l_bflow_class_code := 'AP_INV_PA_BURDENED_ENC'; -- 4219869 Business Flow
44750 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44751 l_budgetary_control_flag := 'N';
44752
44753 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44754 l_bflow_applied_to_amt := NULL; -- 5132302
44755 l_entered_amt_idx := NULL; -- 4262811
44756 l_accted_amt_idx := NULL; -- 4262811
44757 l_acc_rev_flag := NULL; -- 4262811
44758 l_accrual_line_num := NULL; -- 4262811
44759 l_tmp_amt := NULL; -- 4262811
44760 --
44761
44762 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44763 l_balance_type_code <> 'B' THEN
44764 IF NVL(p_source_34,'
44765 ') = 'E' AND
44766 NVL(p_source_70,'
44767 ') = 'AP' AND
44768 NVL(p_source_71,'
44769 ') = 'Y'
44770 THEN
44771
44772 --
44773 XLA_AE_LINES_PKG.SetNewLine;
44774
44775 p_balance_type_code := l_balance_type_code;
44776 -- set the flag so later we will know whether the gain loss line needs to be created
44777
44778 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44779 p_actual_flag :='A';
44780 END IF;
44781
44782 --
44783 -- bulk performance
44784 --
44788 -- set accounting line options
44785 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44786 p_header_num => 0); -- 4262811
44787 --
44789 --
44790 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44791 p_natural_side_code => 'C'
44792 , p_gain_or_loss_flag => 'N'
44793 , p_gl_transfer_mode_code => 'S'
44794 , p_acct_entry_type_code => 'E'
44795 , p_switch_side_flag => 'N'
44796 , p_merge_duplicate_code => 'N'
44797 );
44798 --
44799 l_acc_rev_natural_side_code := 'D'; -- 4262811
44800 --
44801 --
44802 -- set accounting line type info
44803 --
44804 xla_ae_lines_pkg.SetAcctLineType
44805 (p_component_type => l_component_type
44806 ,p_event_type_code => l_event_type_code
44807 ,p_line_definition_owner_code => l_line_definition_owner_code
44808 ,p_line_definition_code => l_line_definition_code
44809 ,p_accounting_line_code => l_component_code
44810 ,p_accounting_line_type_code => l_component_type_code
44811 ,p_accounting_line_appl_id => l_component_appl_id
44812 ,p_amb_context_code => l_amb_context_code
44813 ,p_entity_code => l_entity_code
44814 ,p_event_class_code => l_event_class_code);
44815 --
44816 -- set accounting class
44817 --
44818 xla_ae_lines_pkg.SetAcctClass(
44819 p_accounting_class_code => 'AP_INV_PA_BURDENED'
44820 , p_ae_header_id => l_ae_header_id
44821 );
44822
44823 --
44824 -- set rounding class
44825 --
44826 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44827 'AP_INV_PA_BURDENED';
44828
44829 --
44830 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44831 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44832 --
44833 -- bulk performance
44834 --
44835 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44836
44837 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44838 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44839
44840 -- 4955764
44841 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44842 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44843
44844 -- 4458381 Public Sector Enh
44845 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
44846 --
44847 -- set accounting attributes for the line type
44848 --
44849 l_entered_amt_idx := 40;
44850 l_accted_amt_idx := 46;
44851 l_bflow_applied_to_amt_idx := 19; -- 5132302
44852 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44853 l_rec_acct_attrs.array_char_value(1) := p_source_22;
44854 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
44855 l_rec_acct_attrs.array_char_value(2) := p_source_23;
44856 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
44857 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
44858 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
44859 l_rec_acct_attrs.array_num_value(4) := p_source_44;
44860 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
44861 l_rec_acct_attrs.array_char_value(5) := p_source_25;
44862 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
44863 l_rec_acct_attrs.array_num_value(6) := p_source_45;
44864 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
44865 l_rec_acct_attrs.array_date_value(7) := p_source_27;
44866 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
44867 l_rec_acct_attrs.array_num_value(8) := p_source_28;
44868 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
44869 l_rec_acct_attrs.array_char_value(9) := p_source_29;
44870 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
44871 l_rec_acct_attrs.array_char_value(10) := p_source_30;
44872 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
44873 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
44874 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
44875 l_rec_acct_attrs.array_num_value(12) := p_source_44;
44876 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
44877 l_rec_acct_attrs.array_char_value(13) := p_source_25;
44878 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
44879 l_rec_acct_attrs.array_num_value(14) := p_source_45;
44880 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
44881 l_rec_acct_attrs.array_date_value(15) := p_source_27;
44882 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
44883 l_rec_acct_attrs.array_num_value(16) := p_source_28;
44884 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
44885 l_rec_acct_attrs.array_char_value(17) := p_source_29;
44886 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
44887 l_rec_acct_attrs.array_char_value(18) := p_source_31;
44888 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
44889 l_rec_acct_attrs.array_num_value(19) := p_source_46;
44890 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
44891 l_rec_acct_attrs.array_num_value(20) := p_source_47;
44892 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44893 l_rec_acct_attrs.array_char_value(21) := p_source_48;
44894 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
44898 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44895 l_rec_acct_attrs.array_char_value(22) := p_source_49;
44896 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
44897 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
44899 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
44900 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
44901 l_rec_acct_attrs.array_char_value(25) := p_source_52;
44902 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
44903 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
44904 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
44905 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
44906 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
44907 l_rec_acct_attrs.array_char_value(28) := p_source_34;
44908 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
44909 l_rec_acct_attrs.array_char_value(29) := p_source_53;
44910 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
44911 l_rec_acct_attrs.array_num_value(30) := p_source_2;
44912 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
44913 l_rec_acct_attrs.array_num_value(31) := p_source_46;
44914 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
44915 l_rec_acct_attrs.array_char_value(32) :=
44916 xla_ae_sources_pkg.GetSystemSourceChar(
44917 p_source_code => 'XLA_CURRENCY_CODE'
44918 , p_source_type_code => 'Y'
44919 , p_source_application_id => 602
44920 );
44921 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
44922 l_rec_acct_attrs.array_num_value(33) := p_source_46;
44923 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
44924 l_rec_acct_attrs.array_char_value(34) := p_source_54;
44925 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
44926 l_rec_acct_attrs.array_num_value(35) := p_source_2;
44927 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
44928 l_rec_acct_attrs.array_num_value(36) := p_source_46;
44929 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
44930 l_rec_acct_attrs.array_char_value(37) :=
44931 xla_ae_sources_pkg.GetSystemSourceChar(
44932 p_source_code => 'XLA_CURRENCY_CODE'
44933 , p_source_type_code => 'Y'
44934 , p_source_application_id => 602
44935 );
44936 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
44937 l_rec_acct_attrs.array_num_value(38) := p_source_46;
44938 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
44939 l_rec_acct_attrs.array_char_value(39) := p_source_55;
44940 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
44941 l_rec_acct_attrs.array_num_value(40) := p_source_46;
44942 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
44943 l_rec_acct_attrs.array_char_value(41) := p_source_25;
44944 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
44945 l_rec_acct_attrs.array_date_value(42) := p_source_27;
44946 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
44947 l_rec_acct_attrs.array_num_value(43) := p_source_28;
44948 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
44949 l_rec_acct_attrs.array_char_value(44) := p_source_29;
44950 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
44951 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_32);
44952 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
44953 l_rec_acct_attrs.array_num_value(46) := p_source_46;
44954 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
44955 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_32);
44956 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
44957 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_35);
44958 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
44959 l_rec_acct_attrs.array_char_value(49) := p_source_34;
44960 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
44961 l_rec_acct_attrs.array_num_value(50) := p_source_56;
44962 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
44963 l_rec_acct_attrs.array_num_value(51) := p_source_57;
44964
44965 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44966 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44967
44968 ---------------------------------------------------------------------------------------------------------------
44969 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44970 ---------------------------------------------------------------------------------------------------------------
44971 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44972
44973 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44974 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44975
44976 IF xla_accounting_cache_pkg.GetValueChar
44977 (p_source_code => 'LEDGER_CATEGORY_CODE'
44978 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44979 AND l_bflow_method_code = 'PRIOR_ENTRY'
44980 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44981 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44982 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44983 )
44984 THEN
44985 xla_ae_lines_pkg.BflowUpgEntry
44986 (p_business_method_code => l_bflow_method_code
44987 ,p_business_class_code => l_bflow_class_code
44988 ,p_balance_type => l_balance_type_code);
44989 ELSE
44990 NULL;
44994 --
44991 -- No business flow processing for business flow method of NONE.
44992 END IF;
44993
44995 -- call analytical criteria
44996 --
44997
44998 --
44999 -- call description
45000 --
45001 -- No description or it is inherited.
45002 --
45003 -- call ADRs
45004 -- Bug 4922099
45005 --
45006 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45007 (NVL(l_actual_upg_option, 'N') = 'O') OR
45008 (NVL(l_enc_upg_option, 'N') = 'O')
45009 )
45010 THEN
45011 NULL;
45012 --
45013 --
45014
45015 l_ccid := AcctDerRule_2(
45016 p_application_id => p_application_id
45017 , p_ae_header_id => l_ae_header_id
45018 , p_source_2 => p_source_2
45019 , x_transaction_coa_id => l_adr_transaction_coa_id
45020 , x_accounting_coa_id => l_adr_accounting_coa_id
45021 , x_value_type_code => l_adr_value_type_code
45022 , p_side => 'NA'
45023 );
45024
45025 xla_ae_lines_pkg.set_ccid(
45026 p_code_combination_id => l_ccid
45027 , p_value_type_code => l_adr_value_type_code
45028 , p_transaction_coa_id => l_adr_transaction_coa_id
45029 , p_accounting_coa_id => l_adr_accounting_coa_id
45030 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
45031 , p_adr_type_code => 'S'
45032 , p_component_type => l_component_type
45033 , p_component_code => l_component_code
45034 , p_component_type_code => l_component_type_code
45035 , p_component_appl_id => l_component_appl_id
45036 , p_amb_context_code => l_amb_context_code
45037 , p_side => 'NA'
45038 );
45039
45040
45041 --
45042 --
45043 END IF;
45044 --
45045 -- Bug 4922099
45046 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45047 (NVL(l_enc_upg_option, 'N') = 'O')
45048 ) AND
45049 (l_bflow_method_code = 'PRIOR_ENTRY')
45050 )
45051 THEN
45052 IF
45053 --
45054 1 = 2
45055 --
45056 THEN
45057 xla_accounting_err_pkg.build_message
45058 (p_appli_s_name => 'XLA'
45059 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45060 ,p_token_1 => 'LINE_NUMBER'
45061 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45062 ,p_token_2 => 'LINE_TYPE_NAME'
45063 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45064 l_component_type
45065 ,l_component_code
45066 ,l_component_type_code
45067 ,l_component_appl_id
45068 ,l_amb_context_code
45069 ,l_entity_code
45070 ,l_event_class_code
45071 )
45072 ,p_token_3 => 'OWNER'
45073 ,p_value_3 => xla_lookups_pkg.get_meaning(
45074 p_lookup_type => 'XLA_OWNER_TYPE'
45075 ,p_lookup_code => l_component_type_code
45076 )
45077 ,p_token_4 => 'PRODUCT_NAME'
45078 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45079 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45080 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45081 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45082 ,p_ae_header_id => NULL
45083 );
45084
45085 IF (C_LEVEL_ERROR>= g_log_level) THEN
45086 trace
45087 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45088 ,p_level => C_LEVEL_ERROR
45089 ,p_module => l_log_module);
45090 END IF;
45091 END IF;
45092 END IF;
45093 --
45094 --
45095 ------------------------------------------------------------------------------------------------
45096 -- 4219869 Business Flow
45097 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45098 -- Prior Entry. Currently, the following code is always generated.
45099 ------------------------------------------------------------------------------------------------
45100 XLA_AE_LINES_PKG.ValidateCurrentLine;
45101
45102 ------------------------------------------------------------------------------------
45103 -- 4219869 Business Flow
45104 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45105 ------------------------------------------------------------------------------------
45106 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45107
45111 ----------------------------------------------------------------------------------
45108 ----------------------------------------------------------------------------------
45109 -- 4219869 Business Flow
45110 -- Update journal entry status -- Need to generate this within IF <condition>
45112 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45113 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45114 ,p_balance_type_code => l_balance_type_code
45115 );
45116
45117 -------------------------------------------------------------------------------------------
45118 -- 4262811 - Generate the Accrual Reversal lines
45119 -------------------------------------------------------------------------------------------
45120 BEGIN
45121 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45122 (g_array_event(p_event_id).array_value_num('header_index'));
45123 IF l_acc_rev_flag IS NULL THEN
45124 l_acc_rev_flag := 'N';
45125 END IF;
45126 EXCEPTION
45127 WHEN OTHERS THEN
45128 l_acc_rev_flag := 'N';
45129 END;
45130 --
45131 IF (l_acc_rev_flag = 'Y') THEN
45132
45133 -- 4645092 ------------------------------------------------------------------------------
45134 -- To allow MPA report to determine if it should generate report process
45135 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45136 ------------------------------------------------------------------------------------------
45137
45138 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45139 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45140
45141 --
45142 -- Update the line information that should be overwritten
45143 --
45144 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45145 p_header_num => 1);
45146 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45147
45148 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45149
45150 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45151 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45152 END IF;
45153
45154 --
45155 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45156 --
45157 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45158 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45159 ELSE
45160 ---------------------------------------------------------------------------------------------------
45161 -- 4262811a Switch Sign
45162 ---------------------------------------------------------------------------------------------------
45163 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45164 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45165 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45166 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45167 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45168 -- 5132302
45169 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45170 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45171
45172 END IF;
45173
45174 -- 4955764
45175 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45176 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45177
45178
45179 XLA_AE_LINES_PKG.ValidateCurrentLine;
45180 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45181
45182 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45183 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45184 ,p_balance_type_code => l_balance_type_code);
45185
45186 END IF;
45187
45188 -----------------------------------------------------------------------------------------
45189 -- 4262811 Multiperiod Accounting
45190 -----------------------------------------------------------------------------------------
45191 -- No MPA option is assigned.
45192
45193
45194 END IF;
45195 END IF;
45196 --
45197
45198 --
45199 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45200 trace
45201 (p_msg => 'END of AcctLineType_93'
45202 ,p_level => C_LEVEL_PROCEDURE
45203 ,p_module => l_log_module);
45204 END IF;
45205 --
45206 EXCEPTION
45207 WHEN xla_exceptions_pkg.application_exception THEN
45208 RAISE;
45209 WHEN OTHERS THEN
45210 xla_exceptions_pkg.raise_message
45211 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_93');
45212 END AcctLineType_93;
45213 --
45214
45215 ---------------------------------------
45216 --
45217 -- PRIVATE FUNCTION
45218 -- AcctLineType_94
45219 --
45220 ---------------------------------------
45221 PROCEDURE AcctLineType_94 (
45222 p_application_id IN NUMBER
45223 ,p_event_id IN NUMBER
45224 ,p_calculate_acctd_flag IN VARCHAR2
45225 ,p_calculate_g_l_flag IN VARCHAR2
45226 ,p_actual_flag IN OUT VARCHAR2
45227 ,p_balance_type_code OUT VARCHAR2
45228 ,p_gain_or_loss_ref OUT VARCHAR2
45229
45230 --Budget Code Combination ID
45231 , p_source_2 IN NUMBER
45235 , p_source_6 IN NUMBER
45232 --Cost CCID
45233 , p_source_3 IN NUMBER
45234 --Cost Clearing CCID
45236 --Reversing Line Flag
45237 , p_source_22 IN VARCHAR2
45238 --Actual Upgrade Credit Accounting Class
45239 , p_source_23 IN VARCHAR2
45240 --Entered Currency Code
45241 , p_source_25 IN VARCHAR2
45242 --Exchange Rate Date
45243 , p_source_27 IN DATE
45244 --Exchange Rate
45245 , p_source_28 IN NUMBER
45246 --Exchange Rate Type
45247 , p_source_29 IN VARCHAR2
45248 --Actual Upgrade Debit Accounting Class
45249 , p_source_30 IN VARCHAR2
45250 --Use Actuals Upgrade Attributes Flag
45251 , p_source_31 IN VARCHAR2
45252 --Expenditure Item ID
45253 , p_source_32 IN NUMBER
45254 --Cost Distribution Line Number
45255 , p_source_33 IN NUMBER
45256 --Line Type
45257 , p_source_34 IN VARCHAR2
45258 , p_source_34_meaning IN VARCHAR2
45259 --Reversed Line Number
45260 , p_source_35 IN NUMBER
45261 --Entered Burdened Cost
45262 , p_source_44 IN NUMBER
45263 --Accounted Burdened Cost
45264 , p_source_45 IN NUMBER
45265 --Encumbrance Amount
45266 , p_source_46 IN NUMBER
45267 --Project Encumbrance Applied to Application Identifier
45268 , p_source_47 IN NUMBER
45269 --Project Encumbrance Applied to Distribution Type
45270 , p_source_48 IN VARCHAR2
45271 --Project Encumbrance Applied to Entity Code
45272 , p_source_49 IN VARCHAR2
45273 --Project Encumbrance Applied to First Distribution ID
45274 , p_source_50 IN NUMBER
45275 --Project Encumbrance Applied to First System Transaction ID
45276 , p_source_51 IN NUMBER
45277 --Project Encumbrance Applied to Second Distribution ID
45278 , p_source_52 IN VARCHAR2
45279 --Encumbrance Upgrade Credit Accounting Class
45280 , p_source_53 IN VARCHAR2
45281 --Encumbrance Upgrade Debit Accounting Class
45282 , p_source_54 IN VARCHAR2
45283 --Use Encumbrance Upgrade Attributes Flag
45284 , p_source_55 IN VARCHAR2
45285 --Encumbrance Type ID
45286 , p_source_56 IN NUMBER
45287 --Project Encumbrance Type ID
45288 , p_source_57 IN NUMBER
45289 --Document Type
45290 , p_source_70 IN VARCHAR2
45291 , p_source_70_meaning IN VARCHAR2
45292 --Encumbrance Journal Lines Reversed Flag
45293 , p_source_71 IN VARCHAR2
45294 )
45295 IS
45296
45297 l_component_type VARCHAR2(80);
45298 l_component_code VARCHAR2(30);
45299 l_component_type_code VARCHAR2(1);
45300 l_component_appl_id INTEGER;
45301 l_amb_context_code VARCHAR2(30);
45302 l_entity_code VARCHAR2(30);
45303 l_event_class_code VARCHAR2(30);
45304 l_ae_header_id NUMBER;
45305 l_event_type_code VARCHAR2(30);
45306 l_line_definition_code VARCHAR2(30);
45307 l_line_definition_owner_code VARCHAR2(1);
45308 --
45309 -- adr variables
45310 l_segment VARCHAR2(30);
45311 l_ccid NUMBER;
45312 l_adr_transaction_coa_id NUMBER;
45313 l_adr_accounting_coa_id NUMBER;
45314 l_adr_flexfield_segment_code VARCHAR2(30);
45315 l_adr_flex_value_set_id NUMBER;
45316 l_adr_value_type_code VARCHAR2(30);
45317 l_adr_value_combination_id NUMBER;
45318 l_adr_value_segment_code VARCHAR2(30);
45319
45320 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45321 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45322 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45323 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45324
45325 -- 4262811 Variables ------------------------------------------------------------------------------------------
45326 l_entered_amt_idx NUMBER;
45327 l_accted_amt_idx NUMBER;
45328 l_acc_rev_flag VARCHAR2(1);
45329 l_accrual_line_num NUMBER;
45330 l_tmp_amt NUMBER;
45331 l_acc_rev_natural_side_code VARCHAR2(1);
45332
45333 l_num_entries NUMBER;
45334 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45335 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45336 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45337 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45338 l_recog_line_1 NUMBER;
45339 l_recog_line_2 NUMBER;
45340
45341 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45342 l_bflow_applied_to_amt NUMBER; -- 5132302
45343 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45344
45345 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45346
45347 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45348 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45349
45350 ---------------------------------------------------------------------------------------------------------------
45351
45352
45353 --
45354 -- bulk performance
45355 --
45356 l_balance_type_code VARCHAR2(1);
45357 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45358 l_log_module VARCHAR2(240);
45359
45360 --
45361 -- Upgrade strategy
45362 --
45363 l_actual_upg_option VARCHAR2(1);
45364 l_enc_upg_option VARCHAR2(1);
45365
45366 --
45367 BEGIN
45368 --
45369 IF g_log_enabled THEN
45373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45370 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
45371 END IF;
45372 --
45374
45375 trace
45376 (p_msg => 'BEGIN of AcctLineType_94'
45377 ,p_level => C_LEVEL_PROCEDURE
45378 ,p_module => l_log_module);
45379
45380 END IF;
45381 --
45382 l_component_type := 'AMB_JLT';
45383 l_component_code := 'REL_CANCELLED_INV_BURDEN_ENC';
45384 l_component_type_code := 'S';
45385 l_component_appl_id := 275;
45386 l_amb_context_code := 'DEFAULT';
45387 l_entity_code := 'EXPENDITURES';
45388 l_event_class_code := 'BURDEN_COST';
45389 l_event_type_code := 'BURDEN_COST_ALL';
45390 l_line_definition_owner_code := 'S';
45391 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
45392 --
45393 l_balance_type_code := 'E';
45394 l_segment := NULL;
45395 l_ccid := NULL;
45396 l_adr_transaction_coa_id := NULL;
45397 l_adr_accounting_coa_id := NULL;
45398 l_adr_flexfield_segment_code := NULL;
45399 l_adr_flex_value_set_id := NULL;
45400 l_adr_value_type_code := NULL;
45401 l_adr_value_combination_id := NULL;
45402 l_adr_value_segment_code := NULL;
45403
45404 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45405 l_bflow_class_code := 'AP_INV_PA_BURDEN_ENC'; -- 4219869 Business Flow
45406 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45407 l_budgetary_control_flag := 'N';
45408
45409 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45410 l_bflow_applied_to_amt := NULL; -- 5132302
45411 l_entered_amt_idx := NULL; -- 4262811
45412 l_accted_amt_idx := NULL; -- 4262811
45413 l_acc_rev_flag := NULL; -- 4262811
45414 l_accrual_line_num := NULL; -- 4262811
45415 l_tmp_amt := NULL; -- 4262811
45416 --
45417
45418 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45419 l_balance_type_code <> 'B' THEN
45420 IF NVL(p_source_34,'
45421 ') = 'E' AND
45422 NVL(p_source_70,'
45423 ') = 'AP' AND
45424 NVL(p_source_71,'
45425 ') = 'Y'
45426 THEN
45427
45428 --
45429 XLA_AE_LINES_PKG.SetNewLine;
45430
45431 p_balance_type_code := l_balance_type_code;
45432 -- set the flag so later we will know whether the gain loss line needs to be created
45433
45434 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45435 p_actual_flag :='A';
45436 END IF;
45437
45438 --
45439 -- bulk performance
45440 --
45441 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45442 p_header_num => 0); -- 4262811
45443 --
45444 -- set accounting line options
45445 --
45446 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45447 p_natural_side_code => 'C'
45448 , p_gain_or_loss_flag => 'N'
45449 , p_gl_transfer_mode_code => 'S'
45450 , p_acct_entry_type_code => 'E'
45451 , p_switch_side_flag => 'N'
45452 , p_merge_duplicate_code => 'N'
45453 );
45454 --
45455 l_acc_rev_natural_side_code := 'D'; -- 4262811
45456 --
45457 --
45458 -- set accounting line type info
45459 --
45460 xla_ae_lines_pkg.SetAcctLineType
45461 (p_component_type => l_component_type
45462 ,p_event_type_code => l_event_type_code
45463 ,p_line_definition_owner_code => l_line_definition_owner_code
45464 ,p_line_definition_code => l_line_definition_code
45465 ,p_accounting_line_code => l_component_code
45466 ,p_accounting_line_type_code => l_component_type_code
45467 ,p_accounting_line_appl_id => l_component_appl_id
45468 ,p_amb_context_code => l_amb_context_code
45469 ,p_entity_code => l_entity_code
45470 ,p_event_class_code => l_event_class_code);
45471 --
45472 -- set accounting class
45473 --
45474 xla_ae_lines_pkg.SetAcctClass(
45475 p_accounting_class_code => 'AP_INV_PA_BURDEN'
45476 , p_ae_header_id => l_ae_header_id
45477 );
45478
45479 --
45480 -- set rounding class
45481 --
45482 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45483 'AP_INV_PA_BURDEN';
45484
45485 --
45486 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45487 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45488 --
45489 -- bulk performance
45490 --
45491 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45492
45493 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45494 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45495
45496 -- 4955764
45497 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45498 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45499
45500 -- 4458381 Public Sector Enh
45501 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
45502 --
45503 -- set accounting attributes for the line type
45504 --
45505 l_entered_amt_idx := 40;
45506 l_accted_amt_idx := 45;
45507 l_bflow_applied_to_amt_idx := 19; -- 5132302
45511 l_rec_acct_attrs.array_char_value(2) := p_source_23;
45508 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45509 l_rec_acct_attrs.array_char_value(1) := p_source_22;
45510 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
45512 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
45513 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
45514 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
45515 l_rec_acct_attrs.array_num_value(4) := p_source_44;
45516 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
45517 l_rec_acct_attrs.array_char_value(5) := p_source_25;
45518 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
45519 l_rec_acct_attrs.array_num_value(6) := p_source_45;
45520 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
45521 l_rec_acct_attrs.array_date_value(7) := p_source_27;
45522 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
45523 l_rec_acct_attrs.array_num_value(8) := p_source_28;
45524 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
45525 l_rec_acct_attrs.array_char_value(9) := p_source_29;
45526 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
45527 l_rec_acct_attrs.array_char_value(10) := p_source_30;
45528 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
45529 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
45530 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
45531 l_rec_acct_attrs.array_num_value(12) := p_source_44;
45532 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
45533 l_rec_acct_attrs.array_char_value(13) := p_source_25;
45534 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
45535 l_rec_acct_attrs.array_num_value(14) := p_source_45;
45536 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
45537 l_rec_acct_attrs.array_date_value(15) := p_source_27;
45538 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
45539 l_rec_acct_attrs.array_num_value(16) := p_source_28;
45540 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
45541 l_rec_acct_attrs.array_char_value(17) := p_source_29;
45542 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
45543 l_rec_acct_attrs.array_char_value(18) := p_source_31;
45544 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
45545 l_rec_acct_attrs.array_num_value(19) := p_source_46;
45546 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
45547 l_rec_acct_attrs.array_num_value(20) := p_source_47;
45548 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45549 l_rec_acct_attrs.array_char_value(21) := p_source_48;
45550 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
45551 l_rec_acct_attrs.array_char_value(22) := p_source_49;
45552 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
45553 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
45554 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45555 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
45556 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
45557 l_rec_acct_attrs.array_char_value(25) := p_source_52;
45558 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
45559 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
45560 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
45561 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
45562 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
45563 l_rec_acct_attrs.array_char_value(28) := p_source_34;
45564 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
45565 l_rec_acct_attrs.array_char_value(29) := p_source_53;
45566 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
45567 l_rec_acct_attrs.array_num_value(30) := p_source_2;
45568 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
45569 l_rec_acct_attrs.array_num_value(31) := p_source_46;
45570 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
45571 l_rec_acct_attrs.array_char_value(32) := p_source_25;
45572 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
45573 l_rec_acct_attrs.array_num_value(33) := p_source_46;
45574 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
45575 l_rec_acct_attrs.array_char_value(34) := p_source_54;
45576 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
45577 l_rec_acct_attrs.array_num_value(35) := p_source_2;
45578 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
45579 l_rec_acct_attrs.array_num_value(36) := p_source_46;
45580 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
45581 l_rec_acct_attrs.array_char_value(37) := p_source_25;
45582 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
45583 l_rec_acct_attrs.array_num_value(38) := p_source_46;
45584 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
45585 l_rec_acct_attrs.array_char_value(39) := p_source_55;
45586 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
45587 l_rec_acct_attrs.array_num_value(40) := p_source_46;
45588 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
45589 l_rec_acct_attrs.array_char_value(41) := p_source_25;
45590 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
45591 l_rec_acct_attrs.array_date_value(42) := p_source_27;
45592 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
45593 l_rec_acct_attrs.array_num_value(43) := p_source_28;
45594 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
45595 l_rec_acct_attrs.array_char_value(44) := p_source_29;
45596 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
45600 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
45597 l_rec_acct_attrs.array_num_value(45) := p_source_46;
45598 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
45599 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_32);
45601 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_35);
45602 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
45603 l_rec_acct_attrs.array_char_value(48) := p_source_34;
45604 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
45605 l_rec_acct_attrs.array_num_value(49) := p_source_56;
45606 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
45607 l_rec_acct_attrs.array_num_value(50) := p_source_57;
45608
45609 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45610 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45611
45612 ---------------------------------------------------------------------------------------------------------------
45613 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45614 ---------------------------------------------------------------------------------------------------------------
45615 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45616
45617 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45618 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45619
45620 IF xla_accounting_cache_pkg.GetValueChar
45621 (p_source_code => 'LEDGER_CATEGORY_CODE'
45622 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45623 AND l_bflow_method_code = 'PRIOR_ENTRY'
45624 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45625 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45626 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45627 )
45628 THEN
45629 xla_ae_lines_pkg.BflowUpgEntry
45630 (p_business_method_code => l_bflow_method_code
45631 ,p_business_class_code => l_bflow_class_code
45632 ,p_balance_type => l_balance_type_code);
45633 ELSE
45634 NULL;
45635 -- No business flow processing for business flow method of NONE.
45636 END IF;
45637
45638 --
45639 -- call analytical criteria
45640 --
45641
45642 --
45643 -- call description
45644 --
45645 -- No description or it is inherited.
45646 --
45647 -- call ADRs
45648 -- Bug 4922099
45649 --
45650 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45651 (NVL(l_actual_upg_option, 'N') = 'O') OR
45652 (NVL(l_enc_upg_option, 'N') = 'O')
45653 )
45654 THEN
45655 NULL;
45656 --
45657 --
45658
45659 l_ccid := AcctDerRule_2(
45660 p_application_id => p_application_id
45661 , p_ae_header_id => l_ae_header_id
45662 , p_source_2 => p_source_2
45663 , x_transaction_coa_id => l_adr_transaction_coa_id
45664 , x_accounting_coa_id => l_adr_accounting_coa_id
45665 , x_value_type_code => l_adr_value_type_code
45666 , p_side => 'NA'
45667 );
45668
45669 xla_ae_lines_pkg.set_ccid(
45670 p_code_combination_id => l_ccid
45671 , p_value_type_code => l_adr_value_type_code
45672 , p_transaction_coa_id => l_adr_transaction_coa_id
45673 , p_accounting_coa_id => l_adr_accounting_coa_id
45674 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
45675 , p_adr_type_code => 'S'
45676 , p_component_type => l_component_type
45677 , p_component_code => l_component_code
45678 , p_component_type_code => l_component_type_code
45679 , p_component_appl_id => l_component_appl_id
45680 , p_amb_context_code => l_amb_context_code
45681 , p_side => 'NA'
45682 );
45683
45684
45685 --
45686 --
45687 END IF;
45688 --
45689 -- Bug 4922099
45690 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45691 (NVL(l_enc_upg_option, 'N') = 'O')
45692 ) AND
45693 (l_bflow_method_code = 'PRIOR_ENTRY')
45694 )
45695 THEN
45696 IF
45697 --
45698 1 = 2
45699 --
45700 THEN
45701 xla_accounting_err_pkg.build_message
45702 (p_appli_s_name => 'XLA'
45703 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45704 ,p_token_1 => 'LINE_NUMBER'
45705 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45706 ,p_token_2 => 'LINE_TYPE_NAME'
45707 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45708 l_component_type
45709 ,l_component_code
45710 ,l_component_type_code
45711 ,l_component_appl_id
45712 ,l_amb_context_code
45713 ,l_entity_code
45714 ,l_event_class_code
45718 p_lookup_type => 'XLA_OWNER_TYPE'
45715 )
45716 ,p_token_3 => 'OWNER'
45717 ,p_value_3 => xla_lookups_pkg.get_meaning(
45719 ,p_lookup_code => l_component_type_code
45720 )
45721 ,p_token_4 => 'PRODUCT_NAME'
45722 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45723 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45724 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45725 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45726 ,p_ae_header_id => NULL
45727 );
45728
45729 IF (C_LEVEL_ERROR>= g_log_level) THEN
45730 trace
45731 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45732 ,p_level => C_LEVEL_ERROR
45733 ,p_module => l_log_module);
45734 END IF;
45735 END IF;
45736 END IF;
45737 --
45738 --
45739 ------------------------------------------------------------------------------------------------
45740 -- 4219869 Business Flow
45741 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45742 -- Prior Entry. Currently, the following code is always generated.
45743 ------------------------------------------------------------------------------------------------
45744 XLA_AE_LINES_PKG.ValidateCurrentLine;
45745
45746 ------------------------------------------------------------------------------------
45747 -- 4219869 Business Flow
45748 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45749 ------------------------------------------------------------------------------------
45750 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45751
45752 ----------------------------------------------------------------------------------
45753 -- 4219869 Business Flow
45754 -- Update journal entry status -- Need to generate this within IF <condition>
45755 ----------------------------------------------------------------------------------
45756 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45757 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45758 ,p_balance_type_code => l_balance_type_code
45759 );
45760
45761 -------------------------------------------------------------------------------------------
45762 -- 4262811 - Generate the Accrual Reversal lines
45763 -------------------------------------------------------------------------------------------
45764 BEGIN
45765 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45766 (g_array_event(p_event_id).array_value_num('header_index'));
45767 IF l_acc_rev_flag IS NULL THEN
45768 l_acc_rev_flag := 'N';
45769 END IF;
45770 EXCEPTION
45771 WHEN OTHERS THEN
45772 l_acc_rev_flag := 'N';
45773 END;
45774 --
45775 IF (l_acc_rev_flag = 'Y') THEN
45776
45777 -- 4645092 ------------------------------------------------------------------------------
45778 -- To allow MPA report to determine if it should generate report process
45779 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45780 ------------------------------------------------------------------------------------------
45781
45782 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45783 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45784
45785 --
45786 -- Update the line information that should be overwritten
45787 --
45788 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45789 p_header_num => 1);
45790 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45791
45792 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45793
45794 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45795 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45796 END IF;
45797
45798 --
45799 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45800 --
45801 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45802 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45803 ELSE
45804 ---------------------------------------------------------------------------------------------------
45805 -- 4262811a Switch Sign
45806 ---------------------------------------------------------------------------------------------------
45807 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45808 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45809 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45810 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45811 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45812 -- 5132302
45816 END IF;
45813 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45814 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45815
45817
45818 -- 4955764
45819 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45820 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45821
45822
45823 XLA_AE_LINES_PKG.ValidateCurrentLine;
45824 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45825
45826 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45827 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45828 ,p_balance_type_code => l_balance_type_code);
45829
45830 END IF;
45831
45832 -----------------------------------------------------------------------------------------
45833 -- 4262811 Multiperiod Accounting
45834 -----------------------------------------------------------------------------------------
45835 -- No MPA option is assigned.
45836
45837
45838 END IF;
45839 END IF;
45840 --
45841
45842 --
45843 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45844 trace
45845 (p_msg => 'END of AcctLineType_94'
45846 ,p_level => C_LEVEL_PROCEDURE
45847 ,p_module => l_log_module);
45848 END IF;
45849 --
45850 EXCEPTION
45851 WHEN xla_exceptions_pkg.application_exception THEN
45852 RAISE;
45853 WHEN OTHERS THEN
45854 xla_exceptions_pkg.raise_message
45855 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_94');
45856 END AcctLineType_94;
45857 --
45858
45859 ---------------------------------------
45860 --
45861 -- PRIVATE FUNCTION
45862 -- AcctLineType_95
45863 --
45864 ---------------------------------------
45865 PROCEDURE AcctLineType_95 (
45866 p_application_id IN NUMBER
45867 ,p_event_id IN NUMBER
45868 ,p_calculate_acctd_flag IN VARCHAR2
45869 ,p_calculate_g_l_flag IN VARCHAR2
45870 ,p_actual_flag IN OUT VARCHAR2
45871 ,p_balance_type_code OUT VARCHAR2
45872 ,p_gain_or_loss_ref OUT VARCHAR2
45873
45874 --Budget Code Combination ID
45875 , p_source_2 IN NUMBER
45876 --Cost CCID
45877 , p_source_3 IN NUMBER
45878 --Cost Clearing CCID
45879 , p_source_6 IN NUMBER
45880 --Reversing Line Flag
45881 , p_source_22 IN VARCHAR2
45882 --Actual Upgrade Credit Accounting Class
45883 , p_source_23 IN VARCHAR2
45884 --Entered Currency Code
45885 , p_source_25 IN VARCHAR2
45886 --Exchange Rate Date
45887 , p_source_27 IN DATE
45888 --Exchange Rate
45889 , p_source_28 IN NUMBER
45890 --Exchange Rate Type
45891 , p_source_29 IN VARCHAR2
45892 --Actual Upgrade Debit Accounting Class
45893 , p_source_30 IN VARCHAR2
45894 --Use Actuals Upgrade Attributes Flag
45895 , p_source_31 IN VARCHAR2
45896 --Expenditure Item ID
45897 , p_source_32 IN NUMBER
45898 --Cost Distribution Line Number
45899 , p_source_33 IN NUMBER
45900 --Line Type
45901 , p_source_34 IN VARCHAR2
45902 , p_source_34_meaning IN VARCHAR2
45903 --Reversed Line Number
45904 , p_source_35 IN NUMBER
45905 --Entered Burdened Cost
45906 , p_source_44 IN NUMBER
45907 --Accounted Burdened Cost
45908 , p_source_45 IN NUMBER
45909 --Encumbrance Amount
45910 , p_source_46 IN NUMBER
45911 --Project Encumbrance Applied to Application Identifier
45912 , p_source_47 IN NUMBER
45913 --Project Encumbrance Applied to Distribution Type
45914 , p_source_48 IN VARCHAR2
45915 --Project Encumbrance Applied to Entity Code
45916 , p_source_49 IN VARCHAR2
45917 --Project Encumbrance Applied to First Distribution ID
45918 , p_source_50 IN NUMBER
45919 --Project Encumbrance Applied to First System Transaction ID
45920 , p_source_51 IN NUMBER
45921 --Project Encumbrance Applied to Second Distribution ID
45922 , p_source_52 IN VARCHAR2
45923 --Encumbrance Upgrade Debit Accounting Class
45924 , p_source_54 IN VARCHAR2
45925 --Use Encumbrance Upgrade Attributes Flag
45926 , p_source_55 IN VARCHAR2
45927 --Encumbrance Type ID
45928 , p_source_56 IN NUMBER
45929 --Project Encumbrance Type ID
45930 , p_source_57 IN NUMBER
45931 --Document Type
45932 , p_source_70 IN VARCHAR2
45933 , p_source_70_meaning IN VARCHAR2
45934 --Release ID
45935 , p_source_72 IN NUMBER
45936 --Contingent Worker Timecard Flag
45937 , p_source_73 IN VARCHAR2
45938 )
45939 IS
45940
45941 l_component_type VARCHAR2(80);
45942 l_component_code VARCHAR2(30);
45943 l_component_type_code VARCHAR2(1);
45944 l_component_appl_id INTEGER;
45945 l_amb_context_code VARCHAR2(30);
45946 l_entity_code VARCHAR2(30);
45947 l_event_class_code VARCHAR2(30);
45948 l_ae_header_id NUMBER;
45949 l_event_type_code VARCHAR2(30);
45950 l_line_definition_code VARCHAR2(30);
45951 l_line_definition_owner_code VARCHAR2(1);
45952 --
45953 -- adr variables
45954 l_segment VARCHAR2(30);
45955 l_ccid NUMBER;
45956 l_adr_transaction_coa_id NUMBER;
45957 l_adr_accounting_coa_id NUMBER;
45958 l_adr_flexfield_segment_code VARCHAR2(30);
45959 l_adr_flex_value_set_id NUMBER;
45960 l_adr_value_type_code VARCHAR2(30);
45964 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45961 l_adr_value_combination_id NUMBER;
45962 l_adr_value_segment_code VARCHAR2(30);
45963
45965 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45966 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45967 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45968
45969 -- 4262811 Variables ------------------------------------------------------------------------------------------
45970 l_entered_amt_idx NUMBER;
45971 l_accted_amt_idx NUMBER;
45972 l_acc_rev_flag VARCHAR2(1);
45973 l_accrual_line_num NUMBER;
45974 l_tmp_amt NUMBER;
45975 l_acc_rev_natural_side_code VARCHAR2(1);
45976
45977 l_num_entries NUMBER;
45978 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45979 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45980 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45981 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45982 l_recog_line_1 NUMBER;
45983 l_recog_line_2 NUMBER;
45984
45985 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45986 l_bflow_applied_to_amt NUMBER; -- 5132302
45987 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45988
45989 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45990
45991 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45992 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45993
45994 ---------------------------------------------------------------------------------------------------------------
45995
45996
45997 --
45998 -- bulk performance
45999 --
46000 l_balance_type_code VARCHAR2(1);
46001 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46002 l_log_module VARCHAR2(240);
46003
46004 --
46005 -- Upgrade strategy
46006 --
46007 l_actual_upg_option VARCHAR2(1);
46008 l_enc_upg_option VARCHAR2(1);
46009
46010 --
46011 BEGIN
46012 --
46013 IF g_log_enabled THEN
46014 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
46015 END IF;
46016 --
46017 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46018
46019 trace
46020 (p_msg => 'BEGIN of AcctLineType_95'
46021 ,p_level => C_LEVEL_PROCEDURE
46022 ,p_module => l_log_module);
46023
46024 END IF;
46025 --
46026 l_component_type := 'AMB_JLT';
46027 l_component_code := 'REL_CWK_PO_BURDENED_ENC';
46028 l_component_type_code := 'S';
46029 l_component_appl_id := 275;
46030 l_amb_context_code := 'DEFAULT';
46031 l_entity_code := 'EXPENDITURES';
46032 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
46033 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
46034 l_line_definition_owner_code := 'S';
46035 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
46036 --
46037 l_balance_type_code := 'E';
46038 l_segment := NULL;
46039 l_ccid := NULL;
46040 l_adr_transaction_coa_id := NULL;
46041 l_adr_accounting_coa_id := NULL;
46042 l_adr_flexfield_segment_code := NULL;
46043 l_adr_flex_value_set_id := NULL;
46044 l_adr_value_type_code := NULL;
46045 l_adr_value_combination_id := NULL;
46046 l_adr_value_segment_code := NULL;
46047
46048 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46049 l_bflow_class_code := ''; -- 4219869 Business Flow
46050 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46051 l_budgetary_control_flag := 'N';
46052
46053 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46054 l_bflow_applied_to_amt := NULL; -- 5132302
46055 l_entered_amt_idx := NULL; -- 4262811
46056 l_accted_amt_idx := NULL; -- 4262811
46057 l_acc_rev_flag := NULL; -- 4262811
46058 l_accrual_line_num := NULL; -- 4262811
46059 l_tmp_amt := NULL; -- 4262811
46060 --
46061
46062 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46063 l_balance_type_code <> 'B' THEN
46064 IF NVL(p_source_34,'
46065 ') = 'E' AND
46066 NVL(p_source_70,'
46067 ') = 'PO' AND
46068 p_source_72 IS NULL AND
46069 NVL(p_source_73,'
46070 ') = 'Y'
46071 THEN
46072
46073 --
46074 XLA_AE_LINES_PKG.SetNewLine;
46075
46076 p_balance_type_code := l_balance_type_code;
46077 -- set the flag so later we will know whether the gain loss line needs to be created
46078
46079 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46080 p_actual_flag :='A';
46081 END IF;
46082
46083 --
46084 -- bulk performance
46085 --
46086 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46087 p_header_num => 0); -- 4262811
46088 --
46089 -- set accounting line options
46090 --
46091 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46092 p_natural_side_code => 'C'
46093 , p_gain_or_loss_flag => 'N'
46094 , p_gl_transfer_mode_code => 'S'
46095 , p_acct_entry_type_code => 'E'
46096 , p_switch_side_flag => 'N'
46097 , p_merge_duplicate_code => 'N'
46098 );
46099 --
46100 l_acc_rev_natural_side_code := 'D'; -- 4262811
46104 --
46101 --
46102 --
46103 -- set accounting line type info
46105 xla_ae_lines_pkg.SetAcctLineType
46106 (p_component_type => l_component_type
46107 ,p_event_type_code => l_event_type_code
46108 ,p_line_definition_owner_code => l_line_definition_owner_code
46109 ,p_line_definition_code => l_line_definition_code
46110 ,p_accounting_line_code => l_component_code
46111 ,p_accounting_line_type_code => l_component_type_code
46112 ,p_accounting_line_appl_id => l_component_appl_id
46113 ,p_amb_context_code => l_amb_context_code
46114 ,p_entity_code => l_entity_code
46115 ,p_event_class_code => l_event_class_code);
46116 --
46117 -- set accounting class
46118 --
46119 xla_ae_lines_pkg.SetAcctClass(
46120 p_accounting_class_code => 'PO_PA_BURDENED'
46121 , p_ae_header_id => l_ae_header_id
46122 );
46123
46124 --
46125 -- set rounding class
46126 --
46127 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46128 'PO_PA_BURDENED';
46129
46130 --
46131 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46132 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46133 --
46134 -- bulk performance
46135 --
46136 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46137
46138 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46139 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46140
46141 -- 4955764
46142 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46143 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46144
46145 -- 4458381 Public Sector Enh
46146 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
46147 --
46148 -- set accounting attributes for the line type
46149 --
46150 l_entered_amt_idx := 35;
46151 l_accted_amt_idx := 40;
46152 l_bflow_applied_to_amt_idx := 19; -- 5132302
46153 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46154 l_rec_acct_attrs.array_char_value(1) := p_source_22;
46155 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
46156 l_rec_acct_attrs.array_char_value(2) := p_source_23;
46157 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
46158 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
46159 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
46160 l_rec_acct_attrs.array_num_value(4) := p_source_44;
46161 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
46162 l_rec_acct_attrs.array_char_value(5) := p_source_25;
46163 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
46164 l_rec_acct_attrs.array_num_value(6) := p_source_45;
46165 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
46166 l_rec_acct_attrs.array_date_value(7) := p_source_27;
46167 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
46168 l_rec_acct_attrs.array_num_value(8) := p_source_28;
46169 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
46170 l_rec_acct_attrs.array_char_value(9) := p_source_29;
46171 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
46172 l_rec_acct_attrs.array_char_value(10) := p_source_30;
46173 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
46174 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
46175 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
46176 l_rec_acct_attrs.array_num_value(12) := p_source_44;
46177 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
46178 l_rec_acct_attrs.array_char_value(13) := p_source_25;
46179 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
46180 l_rec_acct_attrs.array_num_value(14) := p_source_45;
46181 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
46182 l_rec_acct_attrs.array_date_value(15) := p_source_27;
46183 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
46184 l_rec_acct_attrs.array_num_value(16) := p_source_28;
46185 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
46186 l_rec_acct_attrs.array_char_value(17) := p_source_29;
46187 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
46188 l_rec_acct_attrs.array_char_value(18) := p_source_31;
46189 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
46190 l_rec_acct_attrs.array_num_value(19) := p_source_46;
46191 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
46192 l_rec_acct_attrs.array_num_value(20) := p_source_47;
46193 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46194 l_rec_acct_attrs.array_char_value(21) := p_source_48;
46195 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
46196 l_rec_acct_attrs.array_char_value(22) := p_source_49;
46197 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
46198 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
46199 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46200 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
46201 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
46202 l_rec_acct_attrs.array_char_value(25) := p_source_52;
46203 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
46204 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
46208 l_rec_acct_attrs.array_char_value(28) := p_source_34;
46205 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
46206 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
46207 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
46209 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
46210 l_rec_acct_attrs.array_char_value(29) := p_source_54;
46211 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
46212 l_rec_acct_attrs.array_num_value(30) := p_source_2;
46213 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
46214 l_rec_acct_attrs.array_num_value(31) := p_source_46;
46215 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
46216 l_rec_acct_attrs.array_char_value(32) :=
46217 xla_ae_sources_pkg.GetSystemSourceChar(
46218 p_source_code => 'XLA_CURRENCY_CODE'
46219 , p_source_type_code => 'Y'
46220 , p_source_application_id => 602
46221 );
46222 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
46223 l_rec_acct_attrs.array_num_value(33) := p_source_46;
46224 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
46225 l_rec_acct_attrs.array_char_value(34) := p_source_55;
46226 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
46227 l_rec_acct_attrs.array_num_value(35) := p_source_46;
46228 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
46229 l_rec_acct_attrs.array_char_value(36) := p_source_25;
46230 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
46231 l_rec_acct_attrs.array_date_value(37) := p_source_27;
46232 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
46233 l_rec_acct_attrs.array_num_value(38) := p_source_28;
46234 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
46235 l_rec_acct_attrs.array_char_value(39) := p_source_29;
46236 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
46237 l_rec_acct_attrs.array_num_value(40) := p_source_46;
46238 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
46239 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_32);
46240 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
46241 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_35);
46242 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
46243 l_rec_acct_attrs.array_char_value(43) := p_source_34;
46244 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
46245 l_rec_acct_attrs.array_num_value(44) := p_source_56;
46246 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
46247 l_rec_acct_attrs.array_num_value(45) := p_source_57;
46248
46249 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46250 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46251
46252 ---------------------------------------------------------------------------------------------------------------
46253 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46254 ---------------------------------------------------------------------------------------------------------------
46255 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46256
46257 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46258 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46259
46260 IF xla_accounting_cache_pkg.GetValueChar
46261 (p_source_code => 'LEDGER_CATEGORY_CODE'
46262 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46263 AND l_bflow_method_code = 'PRIOR_ENTRY'
46264 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46265 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46266 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46267 )
46268 THEN
46269 xla_ae_lines_pkg.BflowUpgEntry
46270 (p_business_method_code => l_bflow_method_code
46271 ,p_business_class_code => l_bflow_class_code
46272 ,p_balance_type => l_balance_type_code);
46273 ELSE
46274 NULL;
46275 -- No business flow processing for business flow method of NONE.
46276 END IF;
46277
46278 --
46279 -- call analytical criteria
46280 --
46281
46282 --
46283 -- call description
46284 --
46285 -- No description or it is inherited.
46286 --
46287 -- call ADRs
46288 -- Bug 4922099
46289 --
46290 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46291 (NVL(l_actual_upg_option, 'N') = 'O') OR
46292 (NVL(l_enc_upg_option, 'N') = 'O')
46293 )
46294 THEN
46295 NULL;
46296 --
46297 --
46298
46299 l_ccid := AcctDerRule_2(
46300 p_application_id => p_application_id
46301 , p_ae_header_id => l_ae_header_id
46302 , p_source_2 => p_source_2
46303 , x_transaction_coa_id => l_adr_transaction_coa_id
46304 , x_accounting_coa_id => l_adr_accounting_coa_id
46305 , x_value_type_code => l_adr_value_type_code
46306 , p_side => 'NA'
46307 );
46308
46309 xla_ae_lines_pkg.set_ccid(
46310 p_code_combination_id => l_ccid
46311 , p_value_type_code => l_adr_value_type_code
46312 , p_transaction_coa_id => l_adr_transaction_coa_id
46313 , p_accounting_coa_id => l_adr_accounting_coa_id
46314 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
46315 , p_adr_type_code => 'S'
46316 , p_component_type => l_component_type
46320 , p_amb_context_code => l_amb_context_code
46317 , p_component_code => l_component_code
46318 , p_component_type_code => l_component_type_code
46319 , p_component_appl_id => l_component_appl_id
46321 , p_side => 'NA'
46322 );
46323
46324
46325 --
46326 --
46327 END IF;
46328 --
46329 -- Bug 4922099
46330 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46331 (NVL(l_enc_upg_option, 'N') = 'O')
46332 ) AND
46333 (l_bflow_method_code = 'PRIOR_ENTRY')
46334 )
46335 THEN
46336 IF
46337 --
46338 1 = 2
46339 --
46340 THEN
46341 xla_accounting_err_pkg.build_message
46342 (p_appli_s_name => 'XLA'
46343 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46344 ,p_token_1 => 'LINE_NUMBER'
46345 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46346 ,p_token_2 => 'LINE_TYPE_NAME'
46347 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46348 l_component_type
46349 ,l_component_code
46350 ,l_component_type_code
46351 ,l_component_appl_id
46352 ,l_amb_context_code
46353 ,l_entity_code
46354 ,l_event_class_code
46355 )
46356 ,p_token_3 => 'OWNER'
46357 ,p_value_3 => xla_lookups_pkg.get_meaning(
46358 p_lookup_type => 'XLA_OWNER_TYPE'
46359 ,p_lookup_code => l_component_type_code
46360 )
46361 ,p_token_4 => 'PRODUCT_NAME'
46362 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46363 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46364 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46365 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46366 ,p_ae_header_id => NULL
46367 );
46368
46369 IF (C_LEVEL_ERROR>= g_log_level) THEN
46370 trace
46371 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46372 ,p_level => C_LEVEL_ERROR
46373 ,p_module => l_log_module);
46374 END IF;
46375 END IF;
46376 END IF;
46377 --
46378 --
46379 ------------------------------------------------------------------------------------------------
46380 -- 4219869 Business Flow
46381 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46382 -- Prior Entry. Currently, the following code is always generated.
46383 ------------------------------------------------------------------------------------------------
46384 XLA_AE_LINES_PKG.ValidateCurrentLine;
46385
46386 ------------------------------------------------------------------------------------
46387 -- 4219869 Business Flow
46388 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46389 ------------------------------------------------------------------------------------
46390 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46391
46392 ----------------------------------------------------------------------------------
46393 -- 4219869 Business Flow
46394 -- Update journal entry status -- Need to generate this within IF <condition>
46395 ----------------------------------------------------------------------------------
46396 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46397 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46398 ,p_balance_type_code => l_balance_type_code
46399 );
46400
46401 -------------------------------------------------------------------------------------------
46402 -- 4262811 - Generate the Accrual Reversal lines
46403 -------------------------------------------------------------------------------------------
46404 BEGIN
46405 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46406 (g_array_event(p_event_id).array_value_num('header_index'));
46407 IF l_acc_rev_flag IS NULL THEN
46408 l_acc_rev_flag := 'N';
46409 END IF;
46410 EXCEPTION
46411 WHEN OTHERS THEN
46412 l_acc_rev_flag := 'N';
46413 END;
46414 --
46415 IF (l_acc_rev_flag = 'Y') THEN
46416
46417 -- 4645092 ------------------------------------------------------------------------------
46418 -- To allow MPA report to determine if it should generate report process
46419 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46420 ------------------------------------------------------------------------------------------
46421
46422 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46426 -- Update the line information that should be overwritten
46423 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46424
46425 --
46427 --
46428 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46429 p_header_num => 1);
46430 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46431
46432 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46433
46434 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46435 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46436 END IF;
46437
46438 --
46439 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46440 --
46441 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46442 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46443 ELSE
46444 ---------------------------------------------------------------------------------------------------
46445 -- 4262811a Switch Sign
46446 ---------------------------------------------------------------------------------------------------
46447 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46448 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46449 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46450 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46451 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46452 -- 5132302
46453 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46454 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46455
46456 END IF;
46457
46458 -- 4955764
46459 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46460 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46461
46462
46463 XLA_AE_LINES_PKG.ValidateCurrentLine;
46464 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46465
46466 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46467 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46468 ,p_balance_type_code => l_balance_type_code);
46469
46470 END IF;
46471
46472 -----------------------------------------------------------------------------------------
46473 -- 4262811 Multiperiod Accounting
46474 -----------------------------------------------------------------------------------------
46475 -- No MPA option is assigned.
46476
46477
46478 END IF;
46479 END IF;
46480 --
46481
46482 --
46483 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46484 trace
46485 (p_msg => 'END of AcctLineType_95'
46486 ,p_level => C_LEVEL_PROCEDURE
46487 ,p_module => l_log_module);
46488 END IF;
46489 --
46490 EXCEPTION
46491 WHEN xla_exceptions_pkg.application_exception THEN
46492 RAISE;
46493 WHEN OTHERS THEN
46494 xla_exceptions_pkg.raise_message
46495 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_95');
46496 END AcctLineType_95;
46497 --
46498
46499 ---------------------------------------
46500 --
46501 -- PRIVATE FUNCTION
46502 -- AcctLineType_96
46503 --
46504 ---------------------------------------
46505 PROCEDURE AcctLineType_96 (
46506 p_application_id IN NUMBER
46507 ,p_event_id IN NUMBER
46508 ,p_calculate_acctd_flag IN VARCHAR2
46509 ,p_calculate_g_l_flag IN VARCHAR2
46510 ,p_actual_flag IN OUT VARCHAR2
46511 ,p_balance_type_code OUT VARCHAR2
46512 ,p_gain_or_loss_ref OUT VARCHAR2
46513
46514 --Budget Code Combination ID
46515 , p_source_2 IN NUMBER
46516 --Cost CCID
46517 , p_source_3 IN NUMBER
46518 --Cost Clearing CCID
46519 , p_source_6 IN NUMBER
46520 --Reversing Line Flag
46521 , p_source_22 IN VARCHAR2
46522 --Actual Upgrade Credit Accounting Class
46523 , p_source_23 IN VARCHAR2
46524 --Entered Currency Code
46525 , p_source_25 IN VARCHAR2
46526 --Exchange Rate Date
46527 , p_source_27 IN DATE
46528 --Exchange Rate
46529 , p_source_28 IN NUMBER
46530 --Exchange Rate Type
46531 , p_source_29 IN VARCHAR2
46532 --Actual Upgrade Debit Accounting Class
46533 , p_source_30 IN VARCHAR2
46534 --Use Actuals Upgrade Attributes Flag
46535 , p_source_31 IN VARCHAR2
46536 --Expenditure Item ID
46537 , p_source_32 IN NUMBER
46538 --Cost Distribution Line Number
46539 , p_source_33 IN NUMBER
46540 --Line Type
46541 , p_source_34 IN VARCHAR2
46542 , p_source_34_meaning IN VARCHAR2
46543 --Reversed Line Number
46544 , p_source_35 IN NUMBER
46545 --Entered Burdened Cost
46546 , p_source_44 IN NUMBER
46547 --Accounted Burdened Cost
46548 , p_source_45 IN NUMBER
46549 --Encumbrance Amount
46550 , p_source_46 IN NUMBER
46551 --Project Encumbrance Applied to Application Identifier
46552 , p_source_47 IN NUMBER
46553 --Project Encumbrance Applied to Distribution Type
46554 , p_source_48 IN VARCHAR2
46555 --Project Encumbrance Applied to Entity Code
46556 , p_source_49 IN VARCHAR2
46560 , p_source_51 IN NUMBER
46557 --Project Encumbrance Applied to First Distribution ID
46558 , p_source_50 IN NUMBER
46559 --Project Encumbrance Applied to First System Transaction ID
46561 --Project Encumbrance Applied to Second Distribution ID
46562 , p_source_52 IN VARCHAR2
46563 --Encumbrance Upgrade Credit Accounting Class
46564 , p_source_53 IN VARCHAR2
46565 --Encumbrance Upgrade Debit Accounting Class
46566 , p_source_54 IN VARCHAR2
46567 --Use Encumbrance Upgrade Attributes Flag
46568 , p_source_55 IN VARCHAR2
46569 --Encumbrance Type ID
46570 , p_source_56 IN NUMBER
46571 --Project Encumbrance Type ID
46572 , p_source_57 IN NUMBER
46573 --Document Type
46574 , p_source_70 IN VARCHAR2
46575 , p_source_70_meaning IN VARCHAR2
46576 --Release ID
46577 , p_source_72 IN NUMBER
46578 --Contingent Worker Timecard Flag
46579 , p_source_73 IN VARCHAR2
46580 )
46581 IS
46582
46583 l_component_type VARCHAR2(80);
46584 l_component_code VARCHAR2(30);
46585 l_component_type_code VARCHAR2(1);
46586 l_component_appl_id INTEGER;
46587 l_amb_context_code VARCHAR2(30);
46588 l_entity_code VARCHAR2(30);
46589 l_event_class_code VARCHAR2(30);
46590 l_ae_header_id NUMBER;
46591 l_event_type_code VARCHAR2(30);
46592 l_line_definition_code VARCHAR2(30);
46593 l_line_definition_owner_code VARCHAR2(1);
46594 --
46595 -- adr variables
46596 l_segment VARCHAR2(30);
46597 l_ccid NUMBER;
46598 l_adr_transaction_coa_id NUMBER;
46599 l_adr_accounting_coa_id NUMBER;
46600 l_adr_flexfield_segment_code VARCHAR2(30);
46601 l_adr_flex_value_set_id NUMBER;
46602 l_adr_value_type_code VARCHAR2(30);
46603 l_adr_value_combination_id NUMBER;
46604 l_adr_value_segment_code VARCHAR2(30);
46605
46606 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46607 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46608 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46609 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46610
46611 -- 4262811 Variables ------------------------------------------------------------------------------------------
46612 l_entered_amt_idx NUMBER;
46613 l_accted_amt_idx NUMBER;
46614 l_acc_rev_flag VARCHAR2(1);
46615 l_accrual_line_num NUMBER;
46616 l_tmp_amt NUMBER;
46617 l_acc_rev_natural_side_code VARCHAR2(1);
46618
46619 l_num_entries NUMBER;
46620 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46621 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46622 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46623 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46624 l_recog_line_1 NUMBER;
46625 l_recog_line_2 NUMBER;
46626
46627 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46628 l_bflow_applied_to_amt NUMBER; -- 5132302
46629 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46630
46631 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46632
46633 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46634 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46635
46636 ---------------------------------------------------------------------------------------------------------------
46637
46638
46639 --
46640 -- bulk performance
46641 --
46642 l_balance_type_code VARCHAR2(1);
46643 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46644 l_log_module VARCHAR2(240);
46645
46646 --
46647 -- Upgrade strategy
46648 --
46649 l_actual_upg_option VARCHAR2(1);
46650 l_enc_upg_option VARCHAR2(1);
46651
46652 --
46653 BEGIN
46654 --
46655 IF g_log_enabled THEN
46656 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
46657 END IF;
46658 --
46659 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46660
46661 trace
46662 (p_msg => 'BEGIN of AcctLineType_96'
46663 ,p_level => C_LEVEL_PROCEDURE
46664 ,p_module => l_log_module);
46665
46666 END IF;
46667 --
46668 l_component_type := 'AMB_JLT';
46669 l_component_code := 'REL_CWK_PO_BURDENED_ENC';
46670 l_component_type_code := 'S';
46671 l_component_appl_id := 275;
46672 l_amb_context_code := 'DEFAULT';
46673 l_entity_code := 'EXPENDITURES';
46674 l_event_class_code := 'TOT_BURDENED_COST';
46675 l_event_type_code := 'TOT_BURDENED_COST_ALL';
46676 l_line_definition_owner_code := 'S';
46677 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
46678 --
46679 l_balance_type_code := 'E';
46680 l_segment := NULL;
46681 l_ccid := NULL;
46682 l_adr_transaction_coa_id := NULL;
46683 l_adr_accounting_coa_id := NULL;
46684 l_adr_flexfield_segment_code := NULL;
46685 l_adr_flex_value_set_id := NULL;
46686 l_adr_value_type_code := NULL;
46687 l_adr_value_combination_id := NULL;
46688 l_adr_value_segment_code := NULL;
46689
46690 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46691 l_bflow_class_code := ''; -- 4219869 Business Flow
46692 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46693 l_budgetary_control_flag := 'N';
46694
46698 l_accted_amt_idx := NULL; -- 4262811
46695 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46696 l_bflow_applied_to_amt := NULL; -- 5132302
46697 l_entered_amt_idx := NULL; -- 4262811
46699 l_acc_rev_flag := NULL; -- 4262811
46700 l_accrual_line_num := NULL; -- 4262811
46701 l_tmp_amt := NULL; -- 4262811
46702 --
46703
46704 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46705 l_balance_type_code <> 'B' THEN
46706 IF NVL(p_source_34,'
46707 ') = 'E' AND
46708 NVL(p_source_70,'
46709 ') = 'PO' AND
46710 p_source_72 IS NULL AND
46711 NVL(p_source_73,'
46712 ') = 'Y'
46713 THEN
46714
46715 --
46716 XLA_AE_LINES_PKG.SetNewLine;
46717
46718 p_balance_type_code := l_balance_type_code;
46719 -- set the flag so later we will know whether the gain loss line needs to be created
46720
46721 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46722 p_actual_flag :='A';
46723 END IF;
46724
46725 --
46726 -- bulk performance
46727 --
46728 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46729 p_header_num => 0); -- 4262811
46730 --
46731 -- set accounting line options
46732 --
46733 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46734 p_natural_side_code => 'C'
46735 , p_gain_or_loss_flag => 'N'
46736 , p_gl_transfer_mode_code => 'S'
46737 , p_acct_entry_type_code => 'E'
46738 , p_switch_side_flag => 'N'
46739 , p_merge_duplicate_code => 'N'
46740 );
46741 --
46742 l_acc_rev_natural_side_code := 'D'; -- 4262811
46743 --
46744 --
46745 -- set accounting line type info
46746 --
46747 xla_ae_lines_pkg.SetAcctLineType
46748 (p_component_type => l_component_type
46749 ,p_event_type_code => l_event_type_code
46750 ,p_line_definition_owner_code => l_line_definition_owner_code
46751 ,p_line_definition_code => l_line_definition_code
46752 ,p_accounting_line_code => l_component_code
46753 ,p_accounting_line_type_code => l_component_type_code
46754 ,p_accounting_line_appl_id => l_component_appl_id
46755 ,p_amb_context_code => l_amb_context_code
46756 ,p_entity_code => l_entity_code
46757 ,p_event_class_code => l_event_class_code);
46758 --
46759 -- set accounting class
46760 --
46761 xla_ae_lines_pkg.SetAcctClass(
46762 p_accounting_class_code => 'PO_PA_BURDENED'
46763 , p_ae_header_id => l_ae_header_id
46764 );
46765
46766 --
46767 -- set rounding class
46768 --
46769 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46770 'PO_PA_BURDENED';
46771
46772 --
46773 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46774 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46775 --
46776 -- bulk performance
46777 --
46778 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46779
46780 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46781 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46782
46783 -- 4955764
46784 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46785 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46786
46787 -- 4458381 Public Sector Enh
46788 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
46789 --
46790 -- set accounting attributes for the line type
46791 --
46792 l_entered_amt_idx := 40;
46793 l_accted_amt_idx := 46;
46794 l_bflow_applied_to_amt_idx := 19; -- 5132302
46795 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46796 l_rec_acct_attrs.array_char_value(1) := p_source_22;
46797 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
46798 l_rec_acct_attrs.array_char_value(2) := p_source_23;
46799 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
46800 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
46801 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
46802 l_rec_acct_attrs.array_num_value(4) := p_source_44;
46803 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
46804 l_rec_acct_attrs.array_char_value(5) := p_source_25;
46805 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
46806 l_rec_acct_attrs.array_num_value(6) := p_source_45;
46807 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
46808 l_rec_acct_attrs.array_date_value(7) := p_source_27;
46809 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
46810 l_rec_acct_attrs.array_num_value(8) := p_source_28;
46811 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
46812 l_rec_acct_attrs.array_char_value(9) := p_source_29;
46813 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
46814 l_rec_acct_attrs.array_char_value(10) := p_source_30;
46815 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
46816 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
46817 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
46818 l_rec_acct_attrs.array_num_value(12) := p_source_44;
46822 l_rec_acct_attrs.array_num_value(14) := p_source_45;
46819 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
46820 l_rec_acct_attrs.array_char_value(13) := p_source_25;
46821 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
46823 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
46824 l_rec_acct_attrs.array_date_value(15) := p_source_27;
46825 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
46826 l_rec_acct_attrs.array_num_value(16) := p_source_28;
46827 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
46828 l_rec_acct_attrs.array_char_value(17) := p_source_29;
46829 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
46830 l_rec_acct_attrs.array_char_value(18) := p_source_31;
46831 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
46832 l_rec_acct_attrs.array_num_value(19) := p_source_46;
46833 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
46834 l_rec_acct_attrs.array_num_value(20) := p_source_47;
46835 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46836 l_rec_acct_attrs.array_char_value(21) := p_source_48;
46837 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
46838 l_rec_acct_attrs.array_char_value(22) := p_source_49;
46839 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
46840 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
46841 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46842 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
46843 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
46844 l_rec_acct_attrs.array_char_value(25) := p_source_52;
46845 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
46846 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
46847 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
46848 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
46849 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
46850 l_rec_acct_attrs.array_char_value(28) := p_source_34;
46851 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
46852 l_rec_acct_attrs.array_char_value(29) := p_source_53;
46853 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
46854 l_rec_acct_attrs.array_num_value(30) := p_source_2;
46855 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
46856 l_rec_acct_attrs.array_num_value(31) := p_source_46;
46857 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
46858 l_rec_acct_attrs.array_char_value(32) :=
46859 xla_ae_sources_pkg.GetSystemSourceChar(
46860 p_source_code => 'XLA_CURRENCY_CODE'
46861 , p_source_type_code => 'Y'
46862 , p_source_application_id => 602
46863 );
46864 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
46865 l_rec_acct_attrs.array_num_value(33) := p_source_46;
46866 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
46867 l_rec_acct_attrs.array_char_value(34) := p_source_54;
46868 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
46869 l_rec_acct_attrs.array_num_value(35) := p_source_2;
46870 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
46871 l_rec_acct_attrs.array_num_value(36) := p_source_46;
46872 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
46873 l_rec_acct_attrs.array_char_value(37) :=
46874 xla_ae_sources_pkg.GetSystemSourceChar(
46875 p_source_code => 'XLA_CURRENCY_CODE'
46876 , p_source_type_code => 'Y'
46877 , p_source_application_id => 602
46878 );
46879 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
46880 l_rec_acct_attrs.array_num_value(38) := p_source_46;
46881 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
46882 l_rec_acct_attrs.array_char_value(39) := p_source_55;
46883 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
46884 l_rec_acct_attrs.array_num_value(40) := p_source_46;
46885 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
46886 l_rec_acct_attrs.array_char_value(41) := p_source_25;
46887 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
46888 l_rec_acct_attrs.array_date_value(42) := p_source_27;
46889 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
46890 l_rec_acct_attrs.array_num_value(43) := p_source_28;
46891 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
46892 l_rec_acct_attrs.array_char_value(44) := p_source_29;
46893 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
46894 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_32);
46895 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
46896 l_rec_acct_attrs.array_num_value(46) := p_source_46;
46897 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
46898 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_32);
46899 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
46900 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_35);
46901 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
46902 l_rec_acct_attrs.array_char_value(49) := p_source_34;
46903 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
46904 l_rec_acct_attrs.array_num_value(50) := p_source_56;
46905 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
46906 l_rec_acct_attrs.array_num_value(51) := p_source_57;
46907
46908 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46909 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46910
46911 ---------------------------------------------------------------------------------------------------------------
46915
46912 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46913 ---------------------------------------------------------------------------------------------------------------
46914 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46916 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46917 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46918
46919 IF xla_accounting_cache_pkg.GetValueChar
46920 (p_source_code => 'LEDGER_CATEGORY_CODE'
46921 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46922 AND l_bflow_method_code = 'PRIOR_ENTRY'
46923 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46924 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46925 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46926 )
46927 THEN
46928 xla_ae_lines_pkg.BflowUpgEntry
46929 (p_business_method_code => l_bflow_method_code
46930 ,p_business_class_code => l_bflow_class_code
46931 ,p_balance_type => l_balance_type_code);
46932 ELSE
46933 NULL;
46934 -- No business flow processing for business flow method of NONE.
46935 END IF;
46936
46937 --
46938 -- call analytical criteria
46939 --
46940
46941 --
46942 -- call description
46943 --
46944 -- No description or it is inherited.
46945 --
46946 -- call ADRs
46947 -- Bug 4922099
46948 --
46949 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46950 (NVL(l_actual_upg_option, 'N') = 'O') OR
46951 (NVL(l_enc_upg_option, 'N') = 'O')
46952 )
46953 THEN
46954 NULL;
46955 --
46956 --
46957
46958 l_ccid := AcctDerRule_2(
46959 p_application_id => p_application_id
46960 , p_ae_header_id => l_ae_header_id
46961 , p_source_2 => p_source_2
46962 , x_transaction_coa_id => l_adr_transaction_coa_id
46963 , x_accounting_coa_id => l_adr_accounting_coa_id
46964 , x_value_type_code => l_adr_value_type_code
46965 , p_side => 'NA'
46966 );
46967
46968 xla_ae_lines_pkg.set_ccid(
46969 p_code_combination_id => l_ccid
46970 , p_value_type_code => l_adr_value_type_code
46971 , p_transaction_coa_id => l_adr_transaction_coa_id
46972 , p_accounting_coa_id => l_adr_accounting_coa_id
46973 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
46974 , p_adr_type_code => 'S'
46975 , p_component_type => l_component_type
46976 , p_component_code => l_component_code
46977 , p_component_type_code => l_component_type_code
46978 , p_component_appl_id => l_component_appl_id
46979 , p_amb_context_code => l_amb_context_code
46980 , p_side => 'NA'
46981 );
46982
46983
46984 --
46985 --
46986 END IF;
46987 --
46988 -- Bug 4922099
46989 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46990 (NVL(l_enc_upg_option, 'N') = 'O')
46991 ) AND
46992 (l_bflow_method_code = 'PRIOR_ENTRY')
46993 )
46994 THEN
46995 IF
46996 --
46997 1 = 2
46998 --
46999 THEN
47000 xla_accounting_err_pkg.build_message
47001 (p_appli_s_name => 'XLA'
47002 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47003 ,p_token_1 => 'LINE_NUMBER'
47004 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47005 ,p_token_2 => 'LINE_TYPE_NAME'
47006 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47007 l_component_type
47008 ,l_component_code
47009 ,l_component_type_code
47010 ,l_component_appl_id
47011 ,l_amb_context_code
47012 ,l_entity_code
47013 ,l_event_class_code
47014 )
47015 ,p_token_3 => 'OWNER'
47016 ,p_value_3 => xla_lookups_pkg.get_meaning(
47017 p_lookup_type => 'XLA_OWNER_TYPE'
47018 ,p_lookup_code => l_component_type_code
47019 )
47020 ,p_token_4 => 'PRODUCT_NAME'
47021 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47022 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47023 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47024 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47028 IF (C_LEVEL_ERROR>= g_log_level) THEN
47025 ,p_ae_header_id => NULL
47026 );
47027
47029 trace
47030 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47031 ,p_level => C_LEVEL_ERROR
47032 ,p_module => l_log_module);
47033 END IF;
47034 END IF;
47035 END IF;
47036 --
47037 --
47038 ------------------------------------------------------------------------------------------------
47039 -- 4219869 Business Flow
47040 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47041 -- Prior Entry. Currently, the following code is always generated.
47042 ------------------------------------------------------------------------------------------------
47043 XLA_AE_LINES_PKG.ValidateCurrentLine;
47044
47045 ------------------------------------------------------------------------------------
47046 -- 4219869 Business Flow
47047 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47048 ------------------------------------------------------------------------------------
47049 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47050
47051 ----------------------------------------------------------------------------------
47052 -- 4219869 Business Flow
47053 -- Update journal entry status -- Need to generate this within IF <condition>
47054 ----------------------------------------------------------------------------------
47055 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47056 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47057 ,p_balance_type_code => l_balance_type_code
47058 );
47059
47060 -------------------------------------------------------------------------------------------
47061 -- 4262811 - Generate the Accrual Reversal lines
47062 -------------------------------------------------------------------------------------------
47063 BEGIN
47064 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47065 (g_array_event(p_event_id).array_value_num('header_index'));
47066 IF l_acc_rev_flag IS NULL THEN
47067 l_acc_rev_flag := 'N';
47068 END IF;
47069 EXCEPTION
47070 WHEN OTHERS THEN
47071 l_acc_rev_flag := 'N';
47072 END;
47073 --
47074 IF (l_acc_rev_flag = 'Y') THEN
47075
47076 -- 4645092 ------------------------------------------------------------------------------
47077 -- To allow MPA report to determine if it should generate report process
47078 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47079 ------------------------------------------------------------------------------------------
47080
47081 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47082 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47083
47084 --
47085 -- Update the line information that should be overwritten
47086 --
47087 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47088 p_header_num => 1);
47089 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47090
47091 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47092
47093 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47094 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47095 END IF;
47096
47097 --
47098 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47099 --
47100 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47101 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47102 ELSE
47103 ---------------------------------------------------------------------------------------------------
47104 -- 4262811a Switch Sign
47105 ---------------------------------------------------------------------------------------------------
47106 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47107 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47108 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47109 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47110 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47111 -- 5132302
47112 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47113 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47114
47115 END IF;
47116
47117 -- 4955764
47118 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47119 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47120
47121
47122 XLA_AE_LINES_PKG.ValidateCurrentLine;
47123 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47124
47125 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47126 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47127 ,p_balance_type_code => l_balance_type_code);
47128
47129 END IF;
47130
47131 -----------------------------------------------------------------------------------------
47132 -- 4262811 Multiperiod Accounting
47133 -----------------------------------------------------------------------------------------
47137 END IF;
47134 -- No MPA option is assigned.
47135
47136
47138 END IF;
47139 --
47140
47141 --
47142 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47143 trace
47144 (p_msg => 'END of AcctLineType_96'
47145 ,p_level => C_LEVEL_PROCEDURE
47146 ,p_module => l_log_module);
47147 END IF;
47148 --
47149 EXCEPTION
47150 WHEN xla_exceptions_pkg.application_exception THEN
47151 RAISE;
47152 WHEN OTHERS THEN
47153 xla_exceptions_pkg.raise_message
47154 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_96');
47155 END AcctLineType_96;
47156 --
47157
47158 ---------------------------------------
47159 --
47160 -- PRIVATE FUNCTION
47161 -- AcctLineType_97
47162 --
47163 ---------------------------------------
47164 PROCEDURE AcctLineType_97 (
47165 p_application_id IN NUMBER
47166 ,p_event_id IN NUMBER
47167 ,p_calculate_acctd_flag IN VARCHAR2
47168 ,p_calculate_g_l_flag IN VARCHAR2
47169 ,p_actual_flag IN OUT VARCHAR2
47170 ,p_balance_type_code OUT VARCHAR2
47171 ,p_gain_or_loss_ref OUT VARCHAR2
47172
47173 --Budget Code Combination ID
47174 , p_source_2 IN NUMBER
47175 --Cost CCID
47176 , p_source_3 IN NUMBER
47177 --Cost Clearing CCID
47178 , p_source_6 IN NUMBER
47179 --Reversing Line Flag
47180 , p_source_22 IN VARCHAR2
47181 --Actual Upgrade Credit Accounting Class
47182 , p_source_23 IN VARCHAR2
47183 --Entered Currency Code
47184 , p_source_25 IN VARCHAR2
47185 --Exchange Rate Date
47186 , p_source_27 IN DATE
47187 --Exchange Rate
47188 , p_source_28 IN NUMBER
47189 --Exchange Rate Type
47190 , p_source_29 IN VARCHAR2
47191 --Actual Upgrade Debit Accounting Class
47192 , p_source_30 IN VARCHAR2
47193 --Use Actuals Upgrade Attributes Flag
47194 , p_source_31 IN VARCHAR2
47195 --Expenditure Item ID
47196 , p_source_32 IN NUMBER
47197 --Cost Distribution Line Number
47198 , p_source_33 IN NUMBER
47199 --Line Type
47200 , p_source_34 IN VARCHAR2
47201 , p_source_34_meaning IN VARCHAR2
47202 --Reversed Line Number
47203 , p_source_35 IN NUMBER
47204 --Entered Burdened Cost
47205 , p_source_44 IN NUMBER
47206 --Accounted Burdened Cost
47207 , p_source_45 IN NUMBER
47208 --Encumbrance Amount
47209 , p_source_46 IN NUMBER
47210 --Project Encumbrance Applied to Application Identifier
47211 , p_source_47 IN NUMBER
47212 --Project Encumbrance Applied to Distribution Type
47213 , p_source_48 IN VARCHAR2
47214 --Project Encumbrance Applied to Entity Code
47215 , p_source_49 IN VARCHAR2
47216 --Project Encumbrance Applied to First Distribution ID
47217 , p_source_50 IN NUMBER
47218 --Project Encumbrance Applied to First System Transaction ID
47219 , p_source_51 IN NUMBER
47220 --Project Encumbrance Applied to Second Distribution ID
47221 , p_source_52 IN VARCHAR2
47222 --Encumbrance Upgrade Credit Accounting Class
47223 , p_source_53 IN VARCHAR2
47224 --Encumbrance Upgrade Debit Accounting Class
47225 , p_source_54 IN VARCHAR2
47226 --Use Encumbrance Upgrade Attributes Flag
47227 , p_source_55 IN VARCHAR2
47228 --Encumbrance Type ID
47229 , p_source_56 IN NUMBER
47230 --Project Encumbrance Type ID
47231 , p_source_57 IN NUMBER
47232 --Document Type
47233 , p_source_70 IN VARCHAR2
47234 , p_source_70_meaning IN VARCHAR2
47235 --Release ID
47236 , p_source_72 IN NUMBER
47237 --Contingent Worker Timecard Flag
47238 , p_source_73 IN VARCHAR2
47239 )
47240 IS
47241
47242 l_component_type VARCHAR2(80);
47243 l_component_code VARCHAR2(30);
47244 l_component_type_code VARCHAR2(1);
47245 l_component_appl_id INTEGER;
47246 l_amb_context_code VARCHAR2(30);
47247 l_entity_code VARCHAR2(30);
47248 l_event_class_code VARCHAR2(30);
47249 l_ae_header_id NUMBER;
47250 l_event_type_code VARCHAR2(30);
47251 l_line_definition_code VARCHAR2(30);
47252 l_line_definition_owner_code VARCHAR2(1);
47253 --
47254 -- adr variables
47255 l_segment VARCHAR2(30);
47256 l_ccid NUMBER;
47257 l_adr_transaction_coa_id NUMBER;
47258 l_adr_accounting_coa_id NUMBER;
47259 l_adr_flexfield_segment_code VARCHAR2(30);
47260 l_adr_flex_value_set_id NUMBER;
47261 l_adr_value_type_code VARCHAR2(30);
47262 l_adr_value_combination_id NUMBER;
47263 l_adr_value_segment_code VARCHAR2(30);
47264
47265 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47266 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47267 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47268 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47269
47270 -- 4262811 Variables ------------------------------------------------------------------------------------------
47271 l_entered_amt_idx NUMBER;
47272 l_accted_amt_idx NUMBER;
47273 l_acc_rev_flag VARCHAR2(1);
47274 l_accrual_line_num NUMBER;
47275 l_tmp_amt NUMBER;
47276 l_acc_rev_natural_side_code VARCHAR2(1);
47277
47278 l_num_entries NUMBER;
47279 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47280 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47281 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47285
47282 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47283 l_recog_line_1 NUMBER;
47284 l_recog_line_2 NUMBER;
47286 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47287 l_bflow_applied_to_amt NUMBER; -- 5132302
47288 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47289
47290 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47291
47292 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47293 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47294
47295 ---------------------------------------------------------------------------------------------------------------
47296
47297
47298 --
47299 -- bulk performance
47300 --
47301 l_balance_type_code VARCHAR2(1);
47302 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47303 l_log_module VARCHAR2(240);
47304
47305 --
47306 -- Upgrade strategy
47307 --
47308 l_actual_upg_option VARCHAR2(1);
47309 l_enc_upg_option VARCHAR2(1);
47310
47311 --
47312 BEGIN
47313 --
47314 IF g_log_enabled THEN
47315 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
47316 END IF;
47317 --
47318 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47319
47320 trace
47321 (p_msg => 'BEGIN of AcctLineType_97'
47322 ,p_level => C_LEVEL_PROCEDURE
47323 ,p_module => l_log_module);
47324
47325 END IF;
47326 --
47327 l_component_type := 'AMB_JLT';
47328 l_component_code := 'REL_CWK_PO_BURDEN_ENC';
47329 l_component_type_code := 'S';
47330 l_component_appl_id := 275;
47331 l_amb_context_code := 'DEFAULT';
47332 l_entity_code := 'EXPENDITURES';
47333 l_event_class_code := 'BURDEN_COST';
47334 l_event_type_code := 'BURDEN_COST_ALL';
47335 l_line_definition_owner_code := 'S';
47336 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
47337 --
47338 l_balance_type_code := 'E';
47339 l_segment := NULL;
47340 l_ccid := NULL;
47341 l_adr_transaction_coa_id := NULL;
47342 l_adr_accounting_coa_id := NULL;
47343 l_adr_flexfield_segment_code := NULL;
47344 l_adr_flex_value_set_id := NULL;
47345 l_adr_value_type_code := NULL;
47346 l_adr_value_combination_id := NULL;
47347 l_adr_value_segment_code := NULL;
47348
47349 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
47350 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
47351 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47352 l_budgetary_control_flag := 'N';
47353
47354 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47355 l_bflow_applied_to_amt := NULL; -- 5132302
47356 l_entered_amt_idx := NULL; -- 4262811
47357 l_accted_amt_idx := NULL; -- 4262811
47358 l_acc_rev_flag := NULL; -- 4262811
47359 l_accrual_line_num := NULL; -- 4262811
47360 l_tmp_amt := NULL; -- 4262811
47361 --
47362
47363 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47364 l_balance_type_code <> 'B' THEN
47365 IF NVL(p_source_34,'
47366 ') = 'E' AND
47367 NVL(p_source_70,'
47368 ') = 'PO' AND
47369 p_source_72 IS NULL AND
47370 NVL(p_source_73,'
47371 ') = 'Y'
47372 THEN
47373
47374 --
47375 XLA_AE_LINES_PKG.SetNewLine;
47376
47377 p_balance_type_code := l_balance_type_code;
47378 -- set the flag so later we will know whether the gain loss line needs to be created
47379
47380 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47381 p_actual_flag :='A';
47382 END IF;
47383
47384 --
47385 -- bulk performance
47386 --
47387 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47388 p_header_num => 0); -- 4262811
47389 --
47390 -- set accounting line options
47391 --
47392 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47393 p_natural_side_code => 'C'
47394 , p_gain_or_loss_flag => 'N'
47395 , p_gl_transfer_mode_code => 'S'
47396 , p_acct_entry_type_code => 'E'
47397 , p_switch_side_flag => 'N'
47398 , p_merge_duplicate_code => 'N'
47399 );
47400 --
47401 l_acc_rev_natural_side_code := 'D'; -- 4262811
47402 --
47403 --
47404 -- set accounting line type info
47405 --
47406 xla_ae_lines_pkg.SetAcctLineType
47407 (p_component_type => l_component_type
47408 ,p_event_type_code => l_event_type_code
47409 ,p_line_definition_owner_code => l_line_definition_owner_code
47410 ,p_line_definition_code => l_line_definition_code
47411 ,p_accounting_line_code => l_component_code
47412 ,p_accounting_line_type_code => l_component_type_code
47413 ,p_accounting_line_appl_id => l_component_appl_id
47414 ,p_amb_context_code => l_amb_context_code
47415 ,p_entity_code => l_entity_code
47416 ,p_event_class_code => l_event_class_code);
47417 --
47418 -- set accounting class
47419 --
47420 xla_ae_lines_pkg.SetAcctClass(
47421 p_accounting_class_code => 'PO_PA_BURDEN'
47422 , p_ae_header_id => l_ae_header_id
47423 );
47424
47425 --
47426 -- set rounding class
47430
47427 --
47428 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47429 'PO_PA_BURDEN';
47431 --
47432 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47433 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47434 --
47435 -- bulk performance
47436 --
47437 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47438
47439 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47440 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47441
47442 -- 4955764
47443 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47444 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47445
47446 -- 4458381 Public Sector Enh
47447 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
47448 --
47449 -- set accounting attributes for the line type
47450 --
47451 l_entered_amt_idx := 40;
47452 l_accted_amt_idx := 45;
47453 l_bflow_applied_to_amt_idx := 19; -- 5132302
47454 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47455 l_rec_acct_attrs.array_char_value(1) := p_source_22;
47456 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
47457 l_rec_acct_attrs.array_char_value(2) := p_source_23;
47458 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
47459 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
47460 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
47461 l_rec_acct_attrs.array_num_value(4) := p_source_44;
47462 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
47463 l_rec_acct_attrs.array_char_value(5) := p_source_25;
47464 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
47465 l_rec_acct_attrs.array_num_value(6) := p_source_45;
47466 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
47467 l_rec_acct_attrs.array_date_value(7) := p_source_27;
47468 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
47469 l_rec_acct_attrs.array_num_value(8) := p_source_28;
47470 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
47471 l_rec_acct_attrs.array_char_value(9) := p_source_29;
47472 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
47473 l_rec_acct_attrs.array_char_value(10) := p_source_30;
47474 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
47475 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
47476 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
47477 l_rec_acct_attrs.array_num_value(12) := p_source_44;
47478 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
47479 l_rec_acct_attrs.array_char_value(13) := p_source_25;
47480 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
47481 l_rec_acct_attrs.array_num_value(14) := p_source_45;
47482 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
47483 l_rec_acct_attrs.array_date_value(15) := p_source_27;
47484 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
47485 l_rec_acct_attrs.array_num_value(16) := p_source_28;
47486 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
47487 l_rec_acct_attrs.array_char_value(17) := p_source_29;
47488 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
47489 l_rec_acct_attrs.array_char_value(18) := p_source_31;
47490 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
47491 l_rec_acct_attrs.array_num_value(19) := p_source_46;
47492 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
47493 l_rec_acct_attrs.array_num_value(20) := p_source_47;
47494 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47495 l_rec_acct_attrs.array_char_value(21) := p_source_48;
47496 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
47497 l_rec_acct_attrs.array_char_value(22) := p_source_49;
47498 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
47499 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
47500 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47501 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
47502 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
47503 l_rec_acct_attrs.array_char_value(25) := p_source_52;
47504 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
47505 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
47506 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
47507 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
47508 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
47509 l_rec_acct_attrs.array_char_value(28) := p_source_34;
47510 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
47511 l_rec_acct_attrs.array_char_value(29) := p_source_53;
47512 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
47513 l_rec_acct_attrs.array_num_value(30) := p_source_2;
47514 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
47515 l_rec_acct_attrs.array_num_value(31) := p_source_46;
47516 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
47517 l_rec_acct_attrs.array_char_value(32) := p_source_25;
47518 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
47519 l_rec_acct_attrs.array_num_value(33) := p_source_46;
47520 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
47521 l_rec_acct_attrs.array_char_value(34) := p_source_54;
47525 l_rec_acct_attrs.array_num_value(36) := p_source_46;
47522 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
47523 l_rec_acct_attrs.array_num_value(35) := p_source_2;
47524 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
47526 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
47527 l_rec_acct_attrs.array_char_value(37) := p_source_25;
47528 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
47529 l_rec_acct_attrs.array_num_value(38) := p_source_46;
47530 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
47531 l_rec_acct_attrs.array_char_value(39) := p_source_55;
47532 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
47533 l_rec_acct_attrs.array_num_value(40) := p_source_46;
47534 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
47535 l_rec_acct_attrs.array_char_value(41) := p_source_25;
47536 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
47537 l_rec_acct_attrs.array_date_value(42) := p_source_27;
47538 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
47539 l_rec_acct_attrs.array_num_value(43) := p_source_28;
47540 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
47541 l_rec_acct_attrs.array_char_value(44) := p_source_29;
47542 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
47543 l_rec_acct_attrs.array_num_value(45) := p_source_46;
47544 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
47545 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_32);
47546 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
47547 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_35);
47548 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
47549 l_rec_acct_attrs.array_char_value(48) := p_source_34;
47550 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
47551 l_rec_acct_attrs.array_num_value(49) := p_source_56;
47552 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
47553 l_rec_acct_attrs.array_num_value(50) := p_source_57;
47554
47555 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47556 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47557
47558 ---------------------------------------------------------------------------------------------------------------
47559 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47560 ---------------------------------------------------------------------------------------------------------------
47561 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47562
47563 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47564 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47565
47566 IF xla_accounting_cache_pkg.GetValueChar
47567 (p_source_code => 'LEDGER_CATEGORY_CODE'
47568 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47569 AND l_bflow_method_code = 'PRIOR_ENTRY'
47570 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47571 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47572 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47573 )
47574 THEN
47575 xla_ae_lines_pkg.BflowUpgEntry
47576 (p_business_method_code => l_bflow_method_code
47577 ,p_business_class_code => l_bflow_class_code
47578 ,p_balance_type => l_balance_type_code);
47579 ELSE
47580 NULL;
47581 -- No business flow processing for business flow method of NONE.
47582 END IF;
47583
47584 --
47585 -- call analytical criteria
47586 --
47587
47588 --
47589 -- call description
47590 --
47591 -- No description or it is inherited.
47592 --
47593 -- call ADRs
47594 -- Bug 4922099
47595 --
47596 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47597 (NVL(l_actual_upg_option, 'N') = 'O') OR
47598 (NVL(l_enc_upg_option, 'N') = 'O')
47599 )
47600 THEN
47601 NULL;
47602 --
47603 --
47604
47605 l_ccid := AcctDerRule_2(
47606 p_application_id => p_application_id
47607 , p_ae_header_id => l_ae_header_id
47608 , p_source_2 => p_source_2
47609 , x_transaction_coa_id => l_adr_transaction_coa_id
47610 , x_accounting_coa_id => l_adr_accounting_coa_id
47611 , x_value_type_code => l_adr_value_type_code
47612 , p_side => 'NA'
47613 );
47614
47615 xla_ae_lines_pkg.set_ccid(
47616 p_code_combination_id => l_ccid
47617 , p_value_type_code => l_adr_value_type_code
47618 , p_transaction_coa_id => l_adr_transaction_coa_id
47619 , p_accounting_coa_id => l_adr_accounting_coa_id
47620 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
47621 , p_adr_type_code => 'S'
47622 , p_component_type => l_component_type
47623 , p_component_code => l_component_code
47624 , p_component_type_code => l_component_type_code
47625 , p_component_appl_id => l_component_appl_id
47626 , p_amb_context_code => l_amb_context_code
47627 , p_side => 'NA'
47628 );
47629
47630
47631 --
47632 --
47633 END IF;
47634 --
47635 -- Bug 4922099
47636 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47637 (NVL(l_enc_upg_option, 'N') = 'O')
47638 ) AND
47639 (l_bflow_method_code = 'PRIOR_ENTRY')
47640 )
47644 1 = 2
47641 THEN
47642 IF
47643 --
47645 --
47646 THEN
47647 xla_accounting_err_pkg.build_message
47648 (p_appli_s_name => 'XLA'
47649 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47650 ,p_token_1 => 'LINE_NUMBER'
47651 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47652 ,p_token_2 => 'LINE_TYPE_NAME'
47653 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47654 l_component_type
47655 ,l_component_code
47656 ,l_component_type_code
47657 ,l_component_appl_id
47658 ,l_amb_context_code
47659 ,l_entity_code
47660 ,l_event_class_code
47661 )
47662 ,p_token_3 => 'OWNER'
47663 ,p_value_3 => xla_lookups_pkg.get_meaning(
47664 p_lookup_type => 'XLA_OWNER_TYPE'
47665 ,p_lookup_code => l_component_type_code
47666 )
47667 ,p_token_4 => 'PRODUCT_NAME'
47668 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47669 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47670 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47671 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47672 ,p_ae_header_id => NULL
47673 );
47674
47675 IF (C_LEVEL_ERROR>= g_log_level) THEN
47676 trace
47677 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47678 ,p_level => C_LEVEL_ERROR
47679 ,p_module => l_log_module);
47680 END IF;
47681 END IF;
47682 END IF;
47683 --
47684 --
47685 ------------------------------------------------------------------------------------------------
47686 -- 4219869 Business Flow
47687 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47688 -- Prior Entry. Currently, the following code is always generated.
47689 ------------------------------------------------------------------------------------------------
47690 XLA_AE_LINES_PKG.ValidateCurrentLine;
47691
47692 ------------------------------------------------------------------------------------
47693 -- 4219869 Business Flow
47694 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47695 ------------------------------------------------------------------------------------
47696 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47697
47698 ----------------------------------------------------------------------------------
47699 -- 4219869 Business Flow
47700 -- Update journal entry status -- Need to generate this within IF <condition>
47701 ----------------------------------------------------------------------------------
47702 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47703 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47704 ,p_balance_type_code => l_balance_type_code
47705 );
47706
47707 -------------------------------------------------------------------------------------------
47708 -- 4262811 - Generate the Accrual Reversal lines
47709 -------------------------------------------------------------------------------------------
47710 BEGIN
47711 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47712 (g_array_event(p_event_id).array_value_num('header_index'));
47713 IF l_acc_rev_flag IS NULL THEN
47714 l_acc_rev_flag := 'N';
47715 END IF;
47716 EXCEPTION
47717 WHEN OTHERS THEN
47718 l_acc_rev_flag := 'N';
47719 END;
47720 --
47721 IF (l_acc_rev_flag = 'Y') THEN
47722
47723 -- 4645092 ------------------------------------------------------------------------------
47724 -- To allow MPA report to determine if it should generate report process
47725 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47726 ------------------------------------------------------------------------------------------
47727
47728 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47729 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47730
47731 --
47732 -- Update the line information that should be overwritten
47733 --
47734 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47735 p_header_num => 1);
47736 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47737
47738 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47739
47740 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47744 --
47741 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47742 END IF;
47743
47745 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47746 --
47747 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47748 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47749 ELSE
47750 ---------------------------------------------------------------------------------------------------
47751 -- 4262811a Switch Sign
47752 ---------------------------------------------------------------------------------------------------
47753 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47754 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47755 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47756 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47757 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47758 -- 5132302
47759 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47760 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47761
47762 END IF;
47763
47764 -- 4955764
47765 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47766 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47767
47768
47769 XLA_AE_LINES_PKG.ValidateCurrentLine;
47770 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47771
47772 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47773 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47774 ,p_balance_type_code => l_balance_type_code);
47775
47776 END IF;
47777
47778 -----------------------------------------------------------------------------------------
47779 -- 4262811 Multiperiod Accounting
47780 -----------------------------------------------------------------------------------------
47781 -- No MPA option is assigned.
47782
47783
47784 END IF;
47785 END IF;
47786 --
47787
47788 --
47789 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47790 trace
47791 (p_msg => 'END of AcctLineType_97'
47792 ,p_level => C_LEVEL_PROCEDURE
47793 ,p_module => l_log_module);
47794 END IF;
47795 --
47796 EXCEPTION
47797 WHEN xla_exceptions_pkg.application_exception THEN
47798 RAISE;
47799 WHEN OTHERS THEN
47800 xla_exceptions_pkg.raise_message
47801 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_97');
47802 END AcctLineType_97;
47803 --
47804
47805 ---------------------------------------
47806 --
47807 -- PRIVATE FUNCTION
47808 -- AcctLineType_98
47809 --
47810 ---------------------------------------
47811 PROCEDURE AcctLineType_98 (
47812 p_application_id IN NUMBER
47813 ,p_event_id IN NUMBER
47814 ,p_calculate_acctd_flag IN VARCHAR2
47815 ,p_calculate_g_l_flag IN VARCHAR2
47816 ,p_actual_flag IN OUT VARCHAR2
47817 ,p_balance_type_code OUT VARCHAR2
47818 ,p_gain_or_loss_ref OUT VARCHAR2
47819
47820 --Budget Code Combination ID
47821 , p_source_2 IN NUMBER
47822 --Cost CCID
47823 , p_source_3 IN NUMBER
47824 --Cost Clearing CCID
47825 , p_source_6 IN NUMBER
47826 --Reversing Line Flag
47827 , p_source_22 IN VARCHAR2
47828 --Actual Upgrade Credit Accounting Class
47829 , p_source_23 IN VARCHAR2
47830 --Entered Currency Code
47831 , p_source_25 IN VARCHAR2
47832 --Exchange Rate Date
47833 , p_source_27 IN DATE
47834 --Exchange Rate
47835 , p_source_28 IN NUMBER
47836 --Exchange Rate Type
47837 , p_source_29 IN VARCHAR2
47838 --Actual Upgrade Debit Accounting Class
47839 , p_source_30 IN VARCHAR2
47840 --Use Actuals Upgrade Attributes Flag
47841 , p_source_31 IN VARCHAR2
47842 --Expenditure Item ID
47843 , p_source_32 IN NUMBER
47844 --Cost Distribution Line Number
47845 , p_source_33 IN NUMBER
47846 --Line Type
47847 , p_source_34 IN VARCHAR2
47848 , p_source_34_meaning IN VARCHAR2
47849 --Reversed Line Number
47850 , p_source_35 IN NUMBER
47851 --Entered Burdened Cost
47852 , p_source_44 IN NUMBER
47853 --Accounted Burdened Cost
47854 , p_source_45 IN NUMBER
47855 --Encumbrance Amount
47856 , p_source_46 IN NUMBER
47857 --Encumbrance Upgrade Credit Accounting Class
47858 , p_source_53 IN VARCHAR2
47859 --Encumbrance Upgrade Debit Accounting Class
47860 , p_source_54 IN VARCHAR2
47861 --Use Encumbrance Upgrade Attributes Flag
47862 , p_source_55 IN VARCHAR2
47863 --Encumbrance Type ID
47864 , p_source_56 IN NUMBER
47865 --Project Encumbrance Type ID
47866 , p_source_57 IN NUMBER
47867 --Document Type
47868 , p_source_70 IN VARCHAR2
47869 , p_source_70_meaning IN VARCHAR2
47870 --Encumbrance Journal Lines Reversed Flag
47871 , p_source_71 IN VARCHAR2
47872 --Invoice Burden Applied to Application Identifier
47873 , p_source_74 IN NUMBER
47874 --Invoice Burden Applied to Distribution Type
47875 , p_source_75 IN VARCHAR2
47876 --Invoice Burden Applied to Entity Code
47880 --Invoice Burden Applied to First System Transaction Identifier
47877 , p_source_76 IN VARCHAR2
47878 --Invoice Burden Applied to First Distribution Identifier
47879 , p_source_77 IN NUMBER
47881 , p_source_78 IN NUMBER
47882 --Invoice Burden Applied to Second Distribution Identifier
47883 , p_source_79 IN VARCHAR2
47884 )
47885 IS
47886
47887 l_component_type VARCHAR2(80);
47888 l_component_code VARCHAR2(30);
47889 l_component_type_code VARCHAR2(1);
47890 l_component_appl_id INTEGER;
47891 l_amb_context_code VARCHAR2(30);
47892 l_entity_code VARCHAR2(30);
47893 l_event_class_code VARCHAR2(30);
47894 l_ae_header_id NUMBER;
47895 l_event_type_code VARCHAR2(30);
47896 l_line_definition_code VARCHAR2(30);
47897 l_line_definition_owner_code VARCHAR2(1);
47898 --
47899 -- adr variables
47900 l_segment VARCHAR2(30);
47901 l_ccid NUMBER;
47902 l_adr_transaction_coa_id NUMBER;
47903 l_adr_accounting_coa_id NUMBER;
47904 l_adr_flexfield_segment_code VARCHAR2(30);
47905 l_adr_flex_value_set_id NUMBER;
47906 l_adr_value_type_code VARCHAR2(30);
47907 l_adr_value_combination_id NUMBER;
47908 l_adr_value_segment_code VARCHAR2(30);
47909
47910 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47911 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47912 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47913 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47914
47915 -- 4262811 Variables ------------------------------------------------------------------------------------------
47916 l_entered_amt_idx NUMBER;
47917 l_accted_amt_idx NUMBER;
47918 l_acc_rev_flag VARCHAR2(1);
47919 l_accrual_line_num NUMBER;
47920 l_tmp_amt NUMBER;
47921 l_acc_rev_natural_side_code VARCHAR2(1);
47922
47923 l_num_entries NUMBER;
47924 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47925 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47926 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47927 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47928 l_recog_line_1 NUMBER;
47929 l_recog_line_2 NUMBER;
47930
47931 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47932 l_bflow_applied_to_amt NUMBER; -- 5132302
47933 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47934
47935 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47936
47937 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47938 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47939
47940 ---------------------------------------------------------------------------------------------------------------
47941
47942
47943 --
47944 -- bulk performance
47945 --
47946 l_balance_type_code VARCHAR2(1);
47947 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47948 l_log_module VARCHAR2(240);
47949
47950 --
47951 -- Upgrade strategy
47952 --
47953 l_actual_upg_option VARCHAR2(1);
47954 l_enc_upg_option VARCHAR2(1);
47955
47956 --
47957 BEGIN
47958 --
47959 IF g_log_enabled THEN
47960 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
47961 END IF;
47962 --
47963 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47964
47965 trace
47966 (p_msg => 'BEGIN of AcctLineType_98'
47967 ,p_level => C_LEVEL_PROCEDURE
47968 ,p_module => l_log_module);
47969
47970 END IF;
47971 --
47972 l_component_type := 'AMB_JLT';
47973 l_component_code := 'REL_INV_BURDENED_ENC';
47974 l_component_type_code := 'S';
47975 l_component_appl_id := 275;
47976 l_amb_context_code := 'DEFAULT';
47977 l_entity_code := 'EXPENDITURES';
47978 l_event_class_code := 'TOT_BURDENED_COST';
47979 l_event_type_code := 'TOT_BURDENED_COST_ALL';
47980 l_line_definition_owner_code := 'S';
47981 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
47982 --
47983 l_balance_type_code := 'E';
47984 l_segment := NULL;
47985 l_ccid := NULL;
47986 l_adr_transaction_coa_id := NULL;
47987 l_adr_accounting_coa_id := NULL;
47988 l_adr_flexfield_segment_code := NULL;
47989 l_adr_flex_value_set_id := NULL;
47990 l_adr_value_type_code := NULL;
47991 l_adr_value_combination_id := NULL;
47992 l_adr_value_segment_code := NULL;
47993
47994 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
47995 l_bflow_class_code := 'AP_INV_PA_BURDENED_ENC'; -- 4219869 Business Flow
47996 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47997 l_budgetary_control_flag := 'N';
47998
47999 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48000 l_bflow_applied_to_amt := NULL; -- 5132302
48001 l_entered_amt_idx := NULL; -- 4262811
48002 l_accted_amt_idx := NULL; -- 4262811
48003 l_acc_rev_flag := NULL; -- 4262811
48004 l_accrual_line_num := NULL; -- 4262811
48005 l_tmp_amt := NULL; -- 4262811
48006 --
48007
48008 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48009 l_balance_type_code <> 'B' THEN
48010 IF NVL(p_source_34,'
48014 NVL(p_source_71,'
48011 ') = 'E' AND
48012 NVL(p_source_70,'
48013 ') = 'AP' AND
48015 ') <> 'Y'
48016 THEN
48017
48018 --
48019 XLA_AE_LINES_PKG.SetNewLine;
48020
48021 p_balance_type_code := l_balance_type_code;
48022 -- set the flag so later we will know whether the gain loss line needs to be created
48023
48024 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48025 p_actual_flag :='A';
48026 END IF;
48027
48028 --
48029 -- bulk performance
48030 --
48031 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48032 p_header_num => 0); -- 4262811
48033 --
48034 -- set accounting line options
48035 --
48036 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48037 p_natural_side_code => 'C'
48038 , p_gain_or_loss_flag => 'N'
48039 , p_gl_transfer_mode_code => 'S'
48040 , p_acct_entry_type_code => 'E'
48041 , p_switch_side_flag => 'N'
48042 , p_merge_duplicate_code => 'N'
48043 );
48044 --
48045 l_acc_rev_natural_side_code := 'D'; -- 4262811
48046 --
48047 --
48048 -- set accounting line type info
48049 --
48050 xla_ae_lines_pkg.SetAcctLineType
48051 (p_component_type => l_component_type
48052 ,p_event_type_code => l_event_type_code
48053 ,p_line_definition_owner_code => l_line_definition_owner_code
48054 ,p_line_definition_code => l_line_definition_code
48055 ,p_accounting_line_code => l_component_code
48056 ,p_accounting_line_type_code => l_component_type_code
48057 ,p_accounting_line_appl_id => l_component_appl_id
48058 ,p_amb_context_code => l_amb_context_code
48059 ,p_entity_code => l_entity_code
48060 ,p_event_class_code => l_event_class_code);
48061 --
48062 -- set accounting class
48063 --
48064 xla_ae_lines_pkg.SetAcctClass(
48065 p_accounting_class_code => 'AP_INV_PA_BURDENED'
48066 , p_ae_header_id => l_ae_header_id
48067 );
48068
48069 --
48070 -- set rounding class
48071 --
48072 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48073 'AP_INV_PA_BURDENED';
48074
48075 --
48076 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48077 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48078 --
48079 -- bulk performance
48080 --
48081 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48082
48083 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48084 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48085
48086 -- 4955764
48087 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48088 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48089
48090 -- 4458381 Public Sector Enh
48091
48092 --
48093 -- set accounting attributes for the line type
48094 --
48095 l_entered_amt_idx := 40;
48096 l_accted_amt_idx := 43;
48097 l_bflow_applied_to_amt_idx := 19; -- 5132302
48098 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48099 l_rec_acct_attrs.array_char_value(1) := p_source_22;
48100 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
48101 l_rec_acct_attrs.array_char_value(2) := p_source_23;
48102 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
48103 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
48104 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
48105 l_rec_acct_attrs.array_num_value(4) := p_source_44;
48106 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
48107 l_rec_acct_attrs.array_char_value(5) := p_source_25;
48108 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
48109 l_rec_acct_attrs.array_num_value(6) := p_source_45;
48110 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
48111 l_rec_acct_attrs.array_date_value(7) := p_source_27;
48112 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
48113 l_rec_acct_attrs.array_num_value(8) := p_source_28;
48114 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
48115 l_rec_acct_attrs.array_char_value(9) := p_source_29;
48116 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
48117 l_rec_acct_attrs.array_char_value(10) := p_source_30;
48118 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
48119 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
48120 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
48121 l_rec_acct_attrs.array_num_value(12) := p_source_44;
48122 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
48123 l_rec_acct_attrs.array_char_value(13) := p_source_25;
48124 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
48125 l_rec_acct_attrs.array_num_value(14) := p_source_45;
48126 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
48127 l_rec_acct_attrs.array_date_value(15) := p_source_27;
48128 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
48129 l_rec_acct_attrs.array_num_value(16) := p_source_28;
48130 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
48131 l_rec_acct_attrs.array_char_value(17) := p_source_29;
48132 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
48136 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
48133 l_rec_acct_attrs.array_char_value(18) := p_source_31;
48134 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
48135 l_rec_acct_attrs.array_num_value(19) := p_source_46;
48137 l_rec_acct_attrs.array_num_value(20) := p_source_74;
48138 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48139 l_rec_acct_attrs.array_char_value(21) := p_source_75;
48140 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
48141 l_rec_acct_attrs.array_char_value(22) := p_source_76;
48142 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
48143 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_77);
48144 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48145 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_78);
48146 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
48147 l_rec_acct_attrs.array_char_value(25) := p_source_79;
48148 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
48149 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
48150 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
48151 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
48152 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
48153 l_rec_acct_attrs.array_char_value(28) := p_source_34;
48154 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
48155 l_rec_acct_attrs.array_char_value(29) := p_source_53;
48156 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
48157 l_rec_acct_attrs.array_num_value(30) := p_source_2;
48158 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
48159 l_rec_acct_attrs.array_num_value(31) := p_source_46;
48160 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
48161 l_rec_acct_attrs.array_char_value(32) :=
48162 xla_ae_sources_pkg.GetSystemSourceChar(
48163 p_source_code => 'XLA_CURRENCY_CODE'
48164 , p_source_type_code => 'Y'
48165 , p_source_application_id => 602
48166 );
48167 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
48168 l_rec_acct_attrs.array_num_value(33) := p_source_46;
48169 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
48170 l_rec_acct_attrs.array_char_value(34) := p_source_54;
48171 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
48172 l_rec_acct_attrs.array_num_value(35) := p_source_2;
48173 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
48174 l_rec_acct_attrs.array_num_value(36) := p_source_46;
48175 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
48176 l_rec_acct_attrs.array_char_value(37) :=
48177 xla_ae_sources_pkg.GetSystemSourceChar(
48178 p_source_code => 'XLA_CURRENCY_CODE'
48179 , p_source_type_code => 'Y'
48180 , p_source_application_id => 602
48181 );
48182 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
48183 l_rec_acct_attrs.array_num_value(38) := p_source_46;
48184 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
48185 l_rec_acct_attrs.array_char_value(39) := p_source_55;
48186 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
48187 l_rec_acct_attrs.array_num_value(40) := p_source_46;
48188 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
48189 l_rec_acct_attrs.array_char_value(41) := p_source_25;
48190 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
48191 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
48192 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
48193 l_rec_acct_attrs.array_num_value(43) := p_source_46;
48194 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
48195 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
48196 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
48197 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
48198 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
48199 l_rec_acct_attrs.array_char_value(46) := p_source_34;
48200 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
48201 l_rec_acct_attrs.array_num_value(47) := p_source_56;
48202 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
48203 l_rec_acct_attrs.array_num_value(48) := p_source_57;
48204
48205 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48206 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48207
48208 ---------------------------------------------------------------------------------------------------------------
48209 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48210 ---------------------------------------------------------------------------------------------------------------
48211 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48212
48213 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48214 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48215
48216 IF xla_accounting_cache_pkg.GetValueChar
48217 (p_source_code => 'LEDGER_CATEGORY_CODE'
48218 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48219 AND l_bflow_method_code = 'PRIOR_ENTRY'
48220 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48221 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48222 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48223 )
48224 THEN
48225 xla_ae_lines_pkg.BflowUpgEntry
48226 (p_business_method_code => l_bflow_method_code
48230 NULL;
48227 ,p_business_class_code => l_bflow_class_code
48228 ,p_balance_type => l_balance_type_code);
48229 ELSE
48231 XLA_AE_LINES_PKG.business_flow_validation(
48232 p_business_method_code => l_bflow_method_code
48233 ,p_business_class_code => l_bflow_class_code
48234 ,p_inherit_description_flag => l_inherit_desc_flag);
48235 END IF;
48236
48237 --
48238 -- call analytical criteria
48239 --
48240 -- Inherited Analytical Criteria for business flow method of Prior Entry.
48241 --
48242 -- call description
48243 --
48244 -- No description or it is inherited.
48245 --
48246 -- call ADRs
48247 -- Bug 4922099
48248 --
48249 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48250 (NVL(l_actual_upg_option, 'N') = 'O') OR
48251 (NVL(l_enc_upg_option, 'N') = 'O')
48252 )
48253 THEN
48254 NULL;
48255 --
48256 --
48257
48258 --
48259 --
48260 END IF;
48261 --
48262 -- Bug 4922099
48263 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48264 (NVL(l_enc_upg_option, 'N') = 'O')
48265 ) AND
48266 (l_bflow_method_code = 'PRIOR_ENTRY')
48267 )
48268 THEN
48269 IF
48270 --
48271 1 = 1
48272 --
48273 THEN
48274 xla_accounting_err_pkg.build_message
48275 (p_appli_s_name => 'XLA'
48276 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48277 ,p_token_1 => 'LINE_NUMBER'
48278 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48279 ,p_token_2 => 'LINE_TYPE_NAME'
48280 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48281 l_component_type
48282 ,l_component_code
48283 ,l_component_type_code
48284 ,l_component_appl_id
48285 ,l_amb_context_code
48286 ,l_entity_code
48287 ,l_event_class_code
48288 )
48289 ,p_token_3 => 'OWNER'
48290 ,p_value_3 => xla_lookups_pkg.get_meaning(
48291 p_lookup_type => 'XLA_OWNER_TYPE'
48292 ,p_lookup_code => l_component_type_code
48293 )
48294 ,p_token_4 => 'PRODUCT_NAME'
48295 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48296 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48297 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48298 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48299 ,p_ae_header_id => NULL
48300 );
48301
48302 IF (C_LEVEL_ERROR>= g_log_level) THEN
48303 trace
48304 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48305 ,p_level => C_LEVEL_ERROR
48306 ,p_module => l_log_module);
48307 END IF;
48308 END IF;
48309 END IF;
48310 --
48311 --
48312 ------------------------------------------------------------------------------------------------
48313 -- 4219869 Business Flow
48314 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48315 -- Prior Entry. Currently, the following code is always generated.
48316 ------------------------------------------------------------------------------------------------
48317 -- No ValidateCurrentLine for business flow method of Prior Entry
48318
48319 ------------------------------------------------------------------------------------
48320 -- 4219869 Business Flow
48321 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48322 ------------------------------------------------------------------------------------
48323 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48324
48325 ----------------------------------------------------------------------------------
48326 -- 4219869 Business Flow
48327 -- Update journal entry status -- Need to generate this within IF <condition>
48328 ----------------------------------------------------------------------------------
48329 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48330 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48331 ,p_balance_type_code => l_balance_type_code
48332 );
48333
48334 -------------------------------------------------------------------------------------------
48335 -- 4262811 - Generate the Accrual Reversal lines
48336 -------------------------------------------------------------------------------------------
48337 BEGIN
48341 l_acc_rev_flag := 'N';
48338 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48339 (g_array_event(p_event_id).array_value_num('header_index'));
48340 IF l_acc_rev_flag IS NULL THEN
48342 END IF;
48343 EXCEPTION
48344 WHEN OTHERS THEN
48345 l_acc_rev_flag := 'N';
48346 END;
48347 --
48348 IF (l_acc_rev_flag = 'Y') THEN
48349
48350 -- 4645092 ------------------------------------------------------------------------------
48351 -- To allow MPA report to determine if it should generate report process
48352 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48353 ------------------------------------------------------------------------------------------
48354
48355 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48356 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48357
48358 --
48359 -- Update the line information that should be overwritten
48360 --
48361 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48362 p_header_num => 1);
48363 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48364
48365 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48366
48367 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48368 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48369 END IF;
48370
48371 --
48372 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48373 --
48374 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48375 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48376 ELSE
48377 ---------------------------------------------------------------------------------------------------
48378 -- 4262811a Switch Sign
48379 ---------------------------------------------------------------------------------------------------
48380 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48381 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48382 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48383 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48384 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48385 -- 5132302
48386 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48387 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48388
48389 END IF;
48390
48391 -- 4955764
48392 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48393 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48394
48395
48396 XLA_AE_LINES_PKG.ValidateCurrentLine;
48397 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48398
48399 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48400 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48401 ,p_balance_type_code => l_balance_type_code);
48402
48403 END IF;
48404
48405 -----------------------------------------------------------------------------------------
48406 -- 4262811 Multiperiod Accounting
48407 -----------------------------------------------------------------------------------------
48408 -- No MPA option is assigned.
48409
48410
48411 END IF;
48412 END IF;
48413 --
48414
48415 --
48416 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48417 trace
48418 (p_msg => 'END of AcctLineType_98'
48419 ,p_level => C_LEVEL_PROCEDURE
48420 ,p_module => l_log_module);
48421 END IF;
48422 --
48423 EXCEPTION
48424 WHEN xla_exceptions_pkg.application_exception THEN
48425 RAISE;
48426 WHEN OTHERS THEN
48427 xla_exceptions_pkg.raise_message
48428 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_98');
48429 END AcctLineType_98;
48430 --
48431
48432 ---------------------------------------
48433 --
48434 -- PRIVATE FUNCTION
48435 -- AcctLineType_99
48436 --
48437 ---------------------------------------
48438 PROCEDURE AcctLineType_99 (
48439 p_application_id IN NUMBER
48440 ,p_event_id IN NUMBER
48441 ,p_calculate_acctd_flag IN VARCHAR2
48442 ,p_calculate_g_l_flag IN VARCHAR2
48443 ,p_actual_flag IN OUT VARCHAR2
48444 ,p_balance_type_code OUT VARCHAR2
48445 ,p_gain_or_loss_ref OUT VARCHAR2
48446
48447 --Budget Code Combination ID
48448 , p_source_2 IN NUMBER
48449 --Cost CCID
48450 , p_source_3 IN NUMBER
48451 --Cost Clearing CCID
48452 , p_source_6 IN NUMBER
48453 --Reversing Line Flag
48454 , p_source_22 IN VARCHAR2
48455 --Actual Upgrade Credit Accounting Class
48456 , p_source_23 IN VARCHAR2
48457 --Entered Currency Code
48458 , p_source_25 IN VARCHAR2
48459 --Exchange Rate Date
48460 , p_source_27 IN DATE
48461 --Exchange Rate
48462 , p_source_28 IN NUMBER
48463 --Exchange Rate Type
48464 , p_source_29 IN VARCHAR2
48465 --Actual Upgrade Debit Accounting Class
48466 , p_source_30 IN VARCHAR2
48467 --Use Actuals Upgrade Attributes Flag
48471 --Cost Distribution Line Number
48468 , p_source_31 IN VARCHAR2
48469 --Expenditure Item ID
48470 , p_source_32 IN NUMBER
48472 , p_source_33 IN NUMBER
48473 --Line Type
48474 , p_source_34 IN VARCHAR2
48475 , p_source_34_meaning IN VARCHAR2
48476 --Reversed Line Number
48477 , p_source_35 IN NUMBER
48478 --Entered Burdened Cost
48479 , p_source_44 IN NUMBER
48480 --Accounted Burdened Cost
48481 , p_source_45 IN NUMBER
48482 --Encumbrance Amount
48483 , p_source_46 IN NUMBER
48484 --Encumbrance Upgrade Debit Accounting Class
48485 , p_source_54 IN VARCHAR2
48486 --Use Encumbrance Upgrade Attributes Flag
48487 , p_source_55 IN VARCHAR2
48488 --Encumbrance Type ID
48489 , p_source_56 IN NUMBER
48490 --Project Encumbrance Type ID
48491 , p_source_57 IN NUMBER
48492 --Document Type
48493 , p_source_70 IN VARCHAR2
48494 , p_source_70_meaning IN VARCHAR2
48495 --Encumbrance Journal Lines Reversed Flag
48496 , p_source_71 IN VARCHAR2
48497 --Invoice Burden Applied to Application Identifier
48498 , p_source_74 IN NUMBER
48499 --Invoice Burden Applied to Distribution Type
48500 , p_source_75 IN VARCHAR2
48501 --Invoice Burden Applied to Entity Code
48502 , p_source_76 IN VARCHAR2
48503 --Invoice Burden Applied to First Distribution Identifier
48504 , p_source_77 IN NUMBER
48505 --Invoice Burden Applied to First System Transaction Identifier
48506 , p_source_78 IN NUMBER
48507 --Invoice Burden Applied to Second Distribution Identifier
48508 , p_source_79 IN VARCHAR2
48509 )
48510 IS
48511
48512 l_component_type VARCHAR2(80);
48513 l_component_code VARCHAR2(30);
48514 l_component_type_code VARCHAR2(1);
48515 l_component_appl_id INTEGER;
48516 l_amb_context_code VARCHAR2(30);
48517 l_entity_code VARCHAR2(30);
48518 l_event_class_code VARCHAR2(30);
48519 l_ae_header_id NUMBER;
48520 l_event_type_code VARCHAR2(30);
48521 l_line_definition_code VARCHAR2(30);
48522 l_line_definition_owner_code VARCHAR2(1);
48523 --
48524 -- adr variables
48525 l_segment VARCHAR2(30);
48526 l_ccid NUMBER;
48527 l_adr_transaction_coa_id NUMBER;
48528 l_adr_accounting_coa_id NUMBER;
48529 l_adr_flexfield_segment_code VARCHAR2(30);
48530 l_adr_flex_value_set_id NUMBER;
48531 l_adr_value_type_code VARCHAR2(30);
48532 l_adr_value_combination_id NUMBER;
48533 l_adr_value_segment_code VARCHAR2(30);
48534
48535 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48536 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48537 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48538 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48539
48540 -- 4262811 Variables ------------------------------------------------------------------------------------------
48541 l_entered_amt_idx NUMBER;
48542 l_accted_amt_idx NUMBER;
48543 l_acc_rev_flag VARCHAR2(1);
48544 l_accrual_line_num NUMBER;
48545 l_tmp_amt NUMBER;
48546 l_acc_rev_natural_side_code VARCHAR2(1);
48547
48548 l_num_entries NUMBER;
48549 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48550 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48551 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48552 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48553 l_recog_line_1 NUMBER;
48554 l_recog_line_2 NUMBER;
48555
48556 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48557 l_bflow_applied_to_amt NUMBER; -- 5132302
48558 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48559
48560 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48561
48562 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48563 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48564
48565 ---------------------------------------------------------------------------------------------------------------
48566
48567
48568 --
48569 -- bulk performance
48570 --
48571 l_balance_type_code VARCHAR2(1);
48572 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48573 l_log_module VARCHAR2(240);
48574
48575 --
48576 -- Upgrade strategy
48577 --
48578 l_actual_upg_option VARCHAR2(1);
48579 l_enc_upg_option VARCHAR2(1);
48580
48581 --
48582 BEGIN
48583 --
48584 IF g_log_enabled THEN
48585 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
48586 END IF;
48587 --
48588 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48589
48590 trace
48591 (p_msg => 'BEGIN of AcctLineType_99'
48592 ,p_level => C_LEVEL_PROCEDURE
48593 ,p_module => l_log_module);
48594
48595 END IF;
48596 --
48597 l_component_type := 'AMB_JLT';
48598 l_component_code := 'REL_INV_BURDENED_ENC';
48599 l_component_type_code := 'S';
48600 l_component_appl_id := 275;
48601 l_amb_context_code := 'DEFAULT';
48602 l_entity_code := 'EXPENDITURES';
48603 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
48604 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
48605 l_line_definition_owner_code := 'S';
48609 l_segment := NULL;
48606 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
48607 --
48608 l_balance_type_code := 'E';
48610 l_ccid := NULL;
48611 l_adr_transaction_coa_id := NULL;
48612 l_adr_accounting_coa_id := NULL;
48613 l_adr_flexfield_segment_code := NULL;
48614 l_adr_flex_value_set_id := NULL;
48615 l_adr_value_type_code := NULL;
48616 l_adr_value_combination_id := NULL;
48617 l_adr_value_segment_code := NULL;
48618
48619 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
48620 l_bflow_class_code := 'AP_INV_PA_BURDENED_ENC'; -- 4219869 Business Flow
48621 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48622 l_budgetary_control_flag := 'N';
48623
48624 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48625 l_bflow_applied_to_amt := NULL; -- 5132302
48626 l_entered_amt_idx := NULL; -- 4262811
48627 l_accted_amt_idx := NULL; -- 4262811
48628 l_acc_rev_flag := NULL; -- 4262811
48629 l_accrual_line_num := NULL; -- 4262811
48630 l_tmp_amt := NULL; -- 4262811
48631 --
48632
48633 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48634 l_balance_type_code <> 'B' THEN
48635 IF NVL(p_source_34,'
48636 ') = 'E' AND
48637 NVL(p_source_70,'
48638 ') = 'AP' AND
48639 NVL(p_source_71,'
48640 ') <> 'Y'
48641 THEN
48642
48643 --
48644 XLA_AE_LINES_PKG.SetNewLine;
48645
48646 p_balance_type_code := l_balance_type_code;
48647 -- set the flag so later we will know whether the gain loss line needs to be created
48648
48649 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48650 p_actual_flag :='A';
48651 END IF;
48652
48653 --
48654 -- bulk performance
48655 --
48656 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48657 p_header_num => 0); -- 4262811
48658 --
48659 -- set accounting line options
48660 --
48661 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48662 p_natural_side_code => 'C'
48663 , p_gain_or_loss_flag => 'N'
48664 , p_gl_transfer_mode_code => 'S'
48665 , p_acct_entry_type_code => 'E'
48666 , p_switch_side_flag => 'N'
48667 , p_merge_duplicate_code => 'N'
48668 );
48669 --
48670 l_acc_rev_natural_side_code := 'D'; -- 4262811
48671 --
48672 --
48673 -- set accounting line type info
48674 --
48675 xla_ae_lines_pkg.SetAcctLineType
48676 (p_component_type => l_component_type
48677 ,p_event_type_code => l_event_type_code
48678 ,p_line_definition_owner_code => l_line_definition_owner_code
48679 ,p_line_definition_code => l_line_definition_code
48680 ,p_accounting_line_code => l_component_code
48681 ,p_accounting_line_type_code => l_component_type_code
48682 ,p_accounting_line_appl_id => l_component_appl_id
48683 ,p_amb_context_code => l_amb_context_code
48684 ,p_entity_code => l_entity_code
48685 ,p_event_class_code => l_event_class_code);
48686 --
48687 -- set accounting class
48688 --
48689 xla_ae_lines_pkg.SetAcctClass(
48690 p_accounting_class_code => 'AP_INV_PA_BURDENED'
48691 , p_ae_header_id => l_ae_header_id
48692 );
48693
48694 --
48695 -- set rounding class
48696 --
48697 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48698 'AP_INV_PA_BURDENED';
48699
48700 --
48701 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48702 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48703 --
48704 -- bulk performance
48705 --
48706 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48707
48708 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48709 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48710
48711 -- 4955764
48712 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48713 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48714
48715 -- 4458381 Public Sector Enh
48716
48717 --
48718 -- set accounting attributes for the line type
48719 --
48720 l_entered_amt_idx := 35;
48721 l_accted_amt_idx := 37;
48722 l_bflow_applied_to_amt_idx := 19; -- 5132302
48723 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48724 l_rec_acct_attrs.array_char_value(1) := p_source_22;
48725 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
48726 l_rec_acct_attrs.array_char_value(2) := p_source_23;
48727 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
48728 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
48729 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
48730 l_rec_acct_attrs.array_num_value(4) := p_source_44;
48731 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
48732 l_rec_acct_attrs.array_char_value(5) := p_source_25;
48733 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
48734 l_rec_acct_attrs.array_num_value(6) := p_source_45;
48735 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
48736 l_rec_acct_attrs.array_date_value(7) := p_source_27;
48740 l_rec_acct_attrs.array_char_value(9) := p_source_29;
48737 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
48738 l_rec_acct_attrs.array_num_value(8) := p_source_28;
48739 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
48741 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
48742 l_rec_acct_attrs.array_char_value(10) := p_source_30;
48743 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
48744 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
48745 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
48746 l_rec_acct_attrs.array_num_value(12) := p_source_44;
48747 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
48748 l_rec_acct_attrs.array_char_value(13) := p_source_25;
48749 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
48750 l_rec_acct_attrs.array_num_value(14) := p_source_45;
48751 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
48752 l_rec_acct_attrs.array_date_value(15) := p_source_27;
48753 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
48754 l_rec_acct_attrs.array_num_value(16) := p_source_28;
48755 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
48756 l_rec_acct_attrs.array_char_value(17) := p_source_29;
48757 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
48758 l_rec_acct_attrs.array_char_value(18) := p_source_31;
48759 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
48760 l_rec_acct_attrs.array_num_value(19) := p_source_46;
48761 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
48762 l_rec_acct_attrs.array_num_value(20) := p_source_74;
48763 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48764 l_rec_acct_attrs.array_char_value(21) := p_source_75;
48765 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
48766 l_rec_acct_attrs.array_char_value(22) := p_source_76;
48767 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
48768 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_77);
48769 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48770 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_78);
48771 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
48772 l_rec_acct_attrs.array_char_value(25) := p_source_79;
48773 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
48774 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
48775 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
48776 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
48777 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
48778 l_rec_acct_attrs.array_char_value(28) := p_source_34;
48779 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
48780 l_rec_acct_attrs.array_char_value(29) := p_source_54;
48781 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
48782 l_rec_acct_attrs.array_num_value(30) := p_source_2;
48783 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
48784 l_rec_acct_attrs.array_num_value(31) := p_source_46;
48785 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
48786 l_rec_acct_attrs.array_char_value(32) :=
48787 xla_ae_sources_pkg.GetSystemSourceChar(
48788 p_source_code => 'XLA_CURRENCY_CODE'
48789 , p_source_type_code => 'Y'
48790 , p_source_application_id => 602
48791 );
48792 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
48793 l_rec_acct_attrs.array_num_value(33) := p_source_46;
48794 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
48795 l_rec_acct_attrs.array_char_value(34) := p_source_55;
48796 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
48797 l_rec_acct_attrs.array_num_value(35) := p_source_46;
48798 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
48799 l_rec_acct_attrs.array_char_value(36) := p_source_25;
48800 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
48801 l_rec_acct_attrs.array_num_value(37) := p_source_46;
48802 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
48803 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
48804 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
48805 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
48806 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
48807 l_rec_acct_attrs.array_char_value(40) := p_source_34;
48808 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
48809 l_rec_acct_attrs.array_num_value(41) := p_source_56;
48810 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
48811 l_rec_acct_attrs.array_num_value(42) := p_source_57;
48812
48813 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48814 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48815
48816 ---------------------------------------------------------------------------------------------------------------
48817 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48818 ---------------------------------------------------------------------------------------------------------------
48819 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48820
48821 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48822 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48823
48824 IF xla_accounting_cache_pkg.GetValueChar
48825 (p_source_code => 'LEDGER_CATEGORY_CODE'
48829 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48826 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48827 AND l_bflow_method_code = 'PRIOR_ENTRY'
48828 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48830 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48831 )
48832 THEN
48833 xla_ae_lines_pkg.BflowUpgEntry
48834 (p_business_method_code => l_bflow_method_code
48835 ,p_business_class_code => l_bflow_class_code
48836 ,p_balance_type => l_balance_type_code);
48837 ELSE
48838 NULL;
48839 XLA_AE_LINES_PKG.business_flow_validation(
48840 p_business_method_code => l_bflow_method_code
48841 ,p_business_class_code => l_bflow_class_code
48842 ,p_inherit_description_flag => l_inherit_desc_flag);
48843 END IF;
48844
48845 --
48846 -- call analytical criteria
48847 --
48848 -- Inherited Analytical Criteria for business flow method of Prior Entry.
48849 --
48850 -- call description
48851 --
48852 -- No description or it is inherited.
48853 --
48854 -- call ADRs
48855 -- Bug 4922099
48856 --
48857 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48858 (NVL(l_actual_upg_option, 'N') = 'O') OR
48859 (NVL(l_enc_upg_option, 'N') = 'O')
48860 )
48861 THEN
48862 NULL;
48863 --
48864 --
48865
48866 --
48867 --
48868 END IF;
48869 --
48870 -- Bug 4922099
48871 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48872 (NVL(l_enc_upg_option, 'N') = 'O')
48873 ) AND
48874 (l_bflow_method_code = 'PRIOR_ENTRY')
48875 )
48876 THEN
48877 IF
48878 --
48879 1 = 1
48880 --
48881 THEN
48882 xla_accounting_err_pkg.build_message
48883 (p_appli_s_name => 'XLA'
48884 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48885 ,p_token_1 => 'LINE_NUMBER'
48886 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48887 ,p_token_2 => 'LINE_TYPE_NAME'
48888 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48889 l_component_type
48890 ,l_component_code
48891 ,l_component_type_code
48892 ,l_component_appl_id
48893 ,l_amb_context_code
48894 ,l_entity_code
48895 ,l_event_class_code
48896 )
48897 ,p_token_3 => 'OWNER'
48898 ,p_value_3 => xla_lookups_pkg.get_meaning(
48899 p_lookup_type => 'XLA_OWNER_TYPE'
48900 ,p_lookup_code => l_component_type_code
48901 )
48902 ,p_token_4 => 'PRODUCT_NAME'
48903 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48904 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48905 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48906 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48907 ,p_ae_header_id => NULL
48908 );
48909
48910 IF (C_LEVEL_ERROR>= g_log_level) THEN
48911 trace
48912 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48913 ,p_level => C_LEVEL_ERROR
48914 ,p_module => l_log_module);
48915 END IF;
48916 END IF;
48917 END IF;
48918 --
48919 --
48920 ------------------------------------------------------------------------------------------------
48921 -- 4219869 Business Flow
48922 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48923 -- Prior Entry. Currently, the following code is always generated.
48924 ------------------------------------------------------------------------------------------------
48925 -- No ValidateCurrentLine for business flow method of Prior Entry
48926
48927 ------------------------------------------------------------------------------------
48928 -- 4219869 Business Flow
48929 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48930 ------------------------------------------------------------------------------------
48931 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48932
48933 ----------------------------------------------------------------------------------
48934 -- 4219869 Business Flow
48935 -- Update journal entry status -- Need to generate this within IF <condition>
48936 ----------------------------------------------------------------------------------
48940 );
48937 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48938 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48939 ,p_balance_type_code => l_balance_type_code
48941
48942 -------------------------------------------------------------------------------------------
48943 -- 4262811 - Generate the Accrual Reversal lines
48944 -------------------------------------------------------------------------------------------
48945 BEGIN
48946 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48947 (g_array_event(p_event_id).array_value_num('header_index'));
48948 IF l_acc_rev_flag IS NULL THEN
48949 l_acc_rev_flag := 'N';
48950 END IF;
48951 EXCEPTION
48952 WHEN OTHERS THEN
48953 l_acc_rev_flag := 'N';
48954 END;
48955 --
48956 IF (l_acc_rev_flag = 'Y') THEN
48957
48958 -- 4645092 ------------------------------------------------------------------------------
48959 -- To allow MPA report to determine if it should generate report process
48960 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48961 ------------------------------------------------------------------------------------------
48962
48963 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48964 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48965
48966 --
48967 -- Update the line information that should be overwritten
48968 --
48969 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48970 p_header_num => 1);
48971 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48972
48973 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48974
48975 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48976 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48977 END IF;
48978
48979 --
48980 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48981 --
48982 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48983 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48984 ELSE
48985 ---------------------------------------------------------------------------------------------------
48986 -- 4262811a Switch Sign
48987 ---------------------------------------------------------------------------------------------------
48988 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48989 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48990 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48991 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48992 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48993 -- 5132302
48994 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48995 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48996
48997 END IF;
48998
48999 -- 4955764
49000 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49001 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49002
49003
49004 XLA_AE_LINES_PKG.ValidateCurrentLine;
49005 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49006
49007 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49008 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49009 ,p_balance_type_code => l_balance_type_code);
49010
49011 END IF;
49012
49013 -----------------------------------------------------------------------------------------
49014 -- 4262811 Multiperiod Accounting
49015 -----------------------------------------------------------------------------------------
49016 -- No MPA option is assigned.
49017
49018
49019 END IF;
49020 END IF;
49021 --
49022
49023 --
49024 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49025 trace
49026 (p_msg => 'END of AcctLineType_99'
49027 ,p_level => C_LEVEL_PROCEDURE
49028 ,p_module => l_log_module);
49029 END IF;
49030 --
49031 EXCEPTION
49032 WHEN xla_exceptions_pkg.application_exception THEN
49033 RAISE;
49034 WHEN OTHERS THEN
49035 xla_exceptions_pkg.raise_message
49036 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_99');
49037 END AcctLineType_99;
49038 --
49039
49040 ---------------------------------------
49041 --
49042 -- PRIVATE FUNCTION
49043 -- AcctLineType_100
49044 --
49045 ---------------------------------------
49046 PROCEDURE AcctLineType_100 (
49047 p_application_id IN NUMBER
49048 ,p_event_id IN NUMBER
49049 ,p_calculate_acctd_flag IN VARCHAR2
49050 ,p_calculate_g_l_flag IN VARCHAR2
49051 ,p_actual_flag IN OUT VARCHAR2
49052 ,p_balance_type_code OUT VARCHAR2
49053 ,p_gain_or_loss_ref OUT VARCHAR2
49054
49055 --Budget Code Combination ID
49056 , p_source_2 IN NUMBER
49057 --Cost CCID
49058 , p_source_3 IN NUMBER
49059 --Cost Clearing CCID
49060 , p_source_6 IN NUMBER
49061 --Reversing Line Flag
49062 , p_source_22 IN VARCHAR2
49063 --Actual Upgrade Credit Accounting Class
49067 --Exchange Rate Date
49064 , p_source_23 IN VARCHAR2
49065 --Entered Currency Code
49066 , p_source_25 IN VARCHAR2
49068 , p_source_27 IN DATE
49069 --Exchange Rate
49070 , p_source_28 IN NUMBER
49071 --Exchange Rate Type
49072 , p_source_29 IN VARCHAR2
49073 --Actual Upgrade Debit Accounting Class
49074 , p_source_30 IN VARCHAR2
49075 --Use Actuals Upgrade Attributes Flag
49076 , p_source_31 IN VARCHAR2
49077 --Expenditure Item ID
49078 , p_source_32 IN NUMBER
49079 --Cost Distribution Line Number
49080 , p_source_33 IN NUMBER
49081 --Line Type
49082 , p_source_34 IN VARCHAR2
49083 , p_source_34_meaning IN VARCHAR2
49084 --Reversed Line Number
49085 , p_source_35 IN NUMBER
49086 --Entered Burdened Cost
49087 , p_source_44 IN NUMBER
49088 --Accounted Burdened Cost
49089 , p_source_45 IN NUMBER
49090 --Encumbrance Amount
49091 , p_source_46 IN NUMBER
49092 --Encumbrance Upgrade Credit Accounting Class
49093 , p_source_53 IN VARCHAR2
49094 --Encumbrance Upgrade Debit Accounting Class
49095 , p_source_54 IN VARCHAR2
49096 --Use Encumbrance Upgrade Attributes Flag
49097 , p_source_55 IN VARCHAR2
49098 --Encumbrance Type ID
49099 , p_source_56 IN NUMBER
49100 --Project Encumbrance Type ID
49101 , p_source_57 IN NUMBER
49102 --Document Type
49103 , p_source_70 IN VARCHAR2
49104 , p_source_70_meaning IN VARCHAR2
49105 --Encumbrance Journal Lines Reversed Flag
49106 , p_source_71 IN VARCHAR2
49107 --Invoice Burden Applied to Application Identifier
49108 , p_source_74 IN NUMBER
49109 --Invoice Burden Applied to Distribution Type
49110 , p_source_75 IN VARCHAR2
49111 --Invoice Burden Applied to Entity Code
49112 , p_source_76 IN VARCHAR2
49113 --Invoice Burden Applied to First Distribution Identifier
49114 , p_source_77 IN NUMBER
49115 --Invoice Burden Applied to First System Transaction Identifier
49116 , p_source_78 IN NUMBER
49117 --Invoice Burden Applied to Second Distribution Identifier
49118 , p_source_79 IN VARCHAR2
49119 )
49120 IS
49121
49122 l_component_type VARCHAR2(80);
49123 l_component_code VARCHAR2(30);
49124 l_component_type_code VARCHAR2(1);
49125 l_component_appl_id INTEGER;
49126 l_amb_context_code VARCHAR2(30);
49127 l_entity_code VARCHAR2(30);
49128 l_event_class_code VARCHAR2(30);
49129 l_ae_header_id NUMBER;
49130 l_event_type_code VARCHAR2(30);
49131 l_line_definition_code VARCHAR2(30);
49132 l_line_definition_owner_code VARCHAR2(1);
49133 --
49134 -- adr variables
49135 l_segment VARCHAR2(30);
49136 l_ccid NUMBER;
49137 l_adr_transaction_coa_id NUMBER;
49138 l_adr_accounting_coa_id NUMBER;
49139 l_adr_flexfield_segment_code VARCHAR2(30);
49140 l_adr_flex_value_set_id NUMBER;
49141 l_adr_value_type_code VARCHAR2(30);
49142 l_adr_value_combination_id NUMBER;
49143 l_adr_value_segment_code VARCHAR2(30);
49144
49145 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49146 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49147 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49148 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49149
49150 -- 4262811 Variables ------------------------------------------------------------------------------------------
49151 l_entered_amt_idx NUMBER;
49152 l_accted_amt_idx NUMBER;
49153 l_acc_rev_flag VARCHAR2(1);
49154 l_accrual_line_num NUMBER;
49155 l_tmp_amt NUMBER;
49156 l_acc_rev_natural_side_code VARCHAR2(1);
49157
49158 l_num_entries NUMBER;
49159 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49160 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49161 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49162 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49163 l_recog_line_1 NUMBER;
49164 l_recog_line_2 NUMBER;
49165
49166 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49167 l_bflow_applied_to_amt NUMBER; -- 5132302
49168 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49169
49170 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49171
49172 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49173 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49174
49175 ---------------------------------------------------------------------------------------------------------------
49176
49177
49178 --
49179 -- bulk performance
49180 --
49181 l_balance_type_code VARCHAR2(1);
49182 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49183 l_log_module VARCHAR2(240);
49184
49185 --
49186 -- Upgrade strategy
49187 --
49188 l_actual_upg_option VARCHAR2(1);
49189 l_enc_upg_option VARCHAR2(1);
49190
49191 --
49192 BEGIN
49193 --
49194 IF g_log_enabled THEN
49195 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
49196 END IF;
49197 --
49198 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49199
49200 trace
49201 (p_msg => 'BEGIN of AcctLineType_100'
49202 ,p_level => C_LEVEL_PROCEDURE
49206 --
49203 ,p_module => l_log_module);
49204
49205 END IF;
49207 l_component_type := 'AMB_JLT';
49208 l_component_code := 'REL_INV_BURDEN_ENC';
49209 l_component_type_code := 'S';
49210 l_component_appl_id := 275;
49211 l_amb_context_code := 'DEFAULT';
49212 l_entity_code := 'EXPENDITURES';
49213 l_event_class_code := 'BURDEN_COST';
49214 l_event_type_code := 'BURDEN_COST_ALL';
49215 l_line_definition_owner_code := 'S';
49216 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
49217 --
49218 l_balance_type_code := 'E';
49219 l_segment := NULL;
49220 l_ccid := NULL;
49221 l_adr_transaction_coa_id := NULL;
49222 l_adr_accounting_coa_id := NULL;
49223 l_adr_flexfield_segment_code := NULL;
49224 l_adr_flex_value_set_id := NULL;
49225 l_adr_value_type_code := NULL;
49226 l_adr_value_combination_id := NULL;
49227 l_adr_value_segment_code := NULL;
49228
49229 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
49230 l_bflow_class_code := 'AP_INV_PA_BURDEN_ENC'; -- 4219869 Business Flow
49231 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49232 l_budgetary_control_flag := 'N';
49233
49234 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49235 l_bflow_applied_to_amt := NULL; -- 5132302
49236 l_entered_amt_idx := NULL; -- 4262811
49237 l_accted_amt_idx := NULL; -- 4262811
49238 l_acc_rev_flag := NULL; -- 4262811
49239 l_accrual_line_num := NULL; -- 4262811
49240 l_tmp_amt := NULL; -- 4262811
49241 --
49242
49243 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49244 l_balance_type_code <> 'B' THEN
49245 IF NVL(p_source_34,'
49246 ') = 'E' AND
49247 NVL(p_source_70,'
49248 ') = 'AP' AND
49249 NVL(p_source_71,'
49250 ') <> 'Y'
49251 THEN
49252
49253 --
49254 XLA_AE_LINES_PKG.SetNewLine;
49255
49256 p_balance_type_code := l_balance_type_code;
49257 -- set the flag so later we will know whether the gain loss line needs to be created
49258
49259 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49260 p_actual_flag :='A';
49261 END IF;
49262
49263 --
49264 -- bulk performance
49265 --
49266 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49267 p_header_num => 0); -- 4262811
49268 --
49269 -- set accounting line options
49270 --
49271 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49272 p_natural_side_code => 'C'
49273 , p_gain_or_loss_flag => 'N'
49274 , p_gl_transfer_mode_code => 'S'
49275 , p_acct_entry_type_code => 'E'
49276 , p_switch_side_flag => 'N'
49277 , p_merge_duplicate_code => 'N'
49278 );
49279 --
49280 l_acc_rev_natural_side_code := 'D'; -- 4262811
49281 --
49282 --
49283 -- set accounting line type info
49284 --
49285 xla_ae_lines_pkg.SetAcctLineType
49286 (p_component_type => l_component_type
49287 ,p_event_type_code => l_event_type_code
49288 ,p_line_definition_owner_code => l_line_definition_owner_code
49289 ,p_line_definition_code => l_line_definition_code
49290 ,p_accounting_line_code => l_component_code
49291 ,p_accounting_line_type_code => l_component_type_code
49292 ,p_accounting_line_appl_id => l_component_appl_id
49293 ,p_amb_context_code => l_amb_context_code
49294 ,p_entity_code => l_entity_code
49295 ,p_event_class_code => l_event_class_code);
49296 --
49297 -- set accounting class
49298 --
49299 xla_ae_lines_pkg.SetAcctClass(
49300 p_accounting_class_code => 'AP_INV_PA_BURDEN'
49301 , p_ae_header_id => l_ae_header_id
49302 );
49303
49304 --
49305 -- set rounding class
49306 --
49307 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49308 'AP_INV_PA_BURDEN';
49309
49310 --
49311 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49312 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49313 --
49314 -- bulk performance
49315 --
49316 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49317
49318 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49319 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49320
49321 -- 4955764
49322 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49323 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49324
49325 -- 4458381 Public Sector Enh
49326
49327 --
49328 -- set accounting attributes for the line type
49329 --
49330 l_entered_amt_idx := 40;
49331 l_accted_amt_idx := 42;
49332 l_bflow_applied_to_amt_idx := 19; -- 5132302
49333 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49334 l_rec_acct_attrs.array_char_value(1) := p_source_22;
49335 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
49336 l_rec_acct_attrs.array_char_value(2) := p_source_23;
49337 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
49338 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
49342 l_rec_acct_attrs.array_char_value(5) := p_source_25;
49339 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
49340 l_rec_acct_attrs.array_num_value(4) := p_source_44;
49341 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
49343 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
49344 l_rec_acct_attrs.array_num_value(6) := p_source_45;
49345 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
49346 l_rec_acct_attrs.array_date_value(7) := p_source_27;
49347 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
49348 l_rec_acct_attrs.array_num_value(8) := p_source_28;
49349 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
49350 l_rec_acct_attrs.array_char_value(9) := p_source_29;
49351 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
49352 l_rec_acct_attrs.array_char_value(10) := p_source_30;
49353 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
49354 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
49355 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
49356 l_rec_acct_attrs.array_num_value(12) := p_source_44;
49357 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
49358 l_rec_acct_attrs.array_char_value(13) := p_source_25;
49359 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
49360 l_rec_acct_attrs.array_num_value(14) := p_source_45;
49361 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
49362 l_rec_acct_attrs.array_date_value(15) := p_source_27;
49363 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
49364 l_rec_acct_attrs.array_num_value(16) := p_source_28;
49365 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
49366 l_rec_acct_attrs.array_char_value(17) := p_source_29;
49367 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
49368 l_rec_acct_attrs.array_char_value(18) := p_source_31;
49369 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
49370 l_rec_acct_attrs.array_num_value(19) := p_source_46;
49371 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
49372 l_rec_acct_attrs.array_num_value(20) := p_source_74;
49373 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49374 l_rec_acct_attrs.array_char_value(21) := p_source_75;
49375 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
49376 l_rec_acct_attrs.array_char_value(22) := p_source_76;
49377 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
49378 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_77);
49379 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49380 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_78);
49381 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
49382 l_rec_acct_attrs.array_char_value(25) := p_source_79;
49383 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
49384 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
49385 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
49386 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
49387 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
49388 l_rec_acct_attrs.array_char_value(28) := p_source_34;
49389 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
49390 l_rec_acct_attrs.array_char_value(29) := p_source_53;
49391 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
49392 l_rec_acct_attrs.array_num_value(30) := p_source_2;
49393 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
49394 l_rec_acct_attrs.array_num_value(31) := p_source_46;
49395 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
49396 l_rec_acct_attrs.array_char_value(32) := p_source_25;
49397 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
49398 l_rec_acct_attrs.array_num_value(33) := p_source_46;
49399 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
49400 l_rec_acct_attrs.array_char_value(34) := p_source_54;
49401 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
49402 l_rec_acct_attrs.array_num_value(35) := p_source_2;
49403 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
49404 l_rec_acct_attrs.array_num_value(36) := p_source_46;
49405 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
49406 l_rec_acct_attrs.array_char_value(37) := p_source_25;
49407 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
49408 l_rec_acct_attrs.array_num_value(38) := p_source_46;
49409 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
49410 l_rec_acct_attrs.array_char_value(39) := p_source_55;
49411 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
49412 l_rec_acct_attrs.array_num_value(40) := p_source_46;
49413 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
49414 l_rec_acct_attrs.array_char_value(41) := p_source_25;
49415 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
49416 l_rec_acct_attrs.array_num_value(42) := p_source_46;
49417 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
49418 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
49419 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
49420 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
49421 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
49422 l_rec_acct_attrs.array_char_value(45) := p_source_34;
49423 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
49424 l_rec_acct_attrs.array_num_value(46) := p_source_56;
49425 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
49426 l_rec_acct_attrs.array_num_value(47) := p_source_57;
49427
49431 ---------------------------------------------------------------------------------------------------------------
49428 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49429 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49430
49432 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49433 ---------------------------------------------------------------------------------------------------------------
49434 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49435
49436 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49437 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49438
49439 IF xla_accounting_cache_pkg.GetValueChar
49440 (p_source_code => 'LEDGER_CATEGORY_CODE'
49441 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49442 AND l_bflow_method_code = 'PRIOR_ENTRY'
49443 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49444 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49445 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49446 )
49447 THEN
49448 xla_ae_lines_pkg.BflowUpgEntry
49449 (p_business_method_code => l_bflow_method_code
49450 ,p_business_class_code => l_bflow_class_code
49451 ,p_balance_type => l_balance_type_code);
49452 ELSE
49453 NULL;
49454 XLA_AE_LINES_PKG.business_flow_validation(
49455 p_business_method_code => l_bflow_method_code
49456 ,p_business_class_code => l_bflow_class_code
49457 ,p_inherit_description_flag => l_inherit_desc_flag);
49458 END IF;
49459
49460 --
49461 -- call analytical criteria
49462 --
49463 -- Inherited Analytical Criteria for business flow method of Prior Entry.
49464 --
49465 -- call description
49466 --
49467 -- No description or it is inherited.
49468 --
49469 -- call ADRs
49470 -- Bug 4922099
49471 --
49472 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49473 (NVL(l_actual_upg_option, 'N') = 'O') OR
49474 (NVL(l_enc_upg_option, 'N') = 'O')
49475 )
49476 THEN
49477 NULL;
49478 --
49479 --
49480
49481 --
49482 --
49483 END IF;
49484 --
49485 -- Bug 4922099
49486 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49487 (NVL(l_enc_upg_option, 'N') = 'O')
49488 ) AND
49489 (l_bflow_method_code = 'PRIOR_ENTRY')
49490 )
49491 THEN
49492 IF
49493 --
49494 1 = 1
49495 --
49496 THEN
49497 xla_accounting_err_pkg.build_message
49498 (p_appli_s_name => 'XLA'
49499 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49500 ,p_token_1 => 'LINE_NUMBER'
49501 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49502 ,p_token_2 => 'LINE_TYPE_NAME'
49503 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49504 l_component_type
49505 ,l_component_code
49506 ,l_component_type_code
49507 ,l_component_appl_id
49508 ,l_amb_context_code
49509 ,l_entity_code
49510 ,l_event_class_code
49511 )
49512 ,p_token_3 => 'OWNER'
49513 ,p_value_3 => xla_lookups_pkg.get_meaning(
49514 p_lookup_type => 'XLA_OWNER_TYPE'
49515 ,p_lookup_code => l_component_type_code
49516 )
49517 ,p_token_4 => 'PRODUCT_NAME'
49518 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49519 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49520 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49521 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49522 ,p_ae_header_id => NULL
49523 );
49524
49525 IF (C_LEVEL_ERROR>= g_log_level) THEN
49526 trace
49527 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49528 ,p_level => C_LEVEL_ERROR
49529 ,p_module => l_log_module);
49530 END IF;
49531 END IF;
49532 END IF;
49533 --
49534 --
49535 ------------------------------------------------------------------------------------------------
49536 -- 4219869 Business Flow
49537 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49541
49538 -- Prior Entry. Currently, the following code is always generated.
49539 ------------------------------------------------------------------------------------------------
49540 -- No ValidateCurrentLine for business flow method of Prior Entry
49542 ------------------------------------------------------------------------------------
49543 -- 4219869 Business Flow
49544 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49545 ------------------------------------------------------------------------------------
49546 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49547
49548 ----------------------------------------------------------------------------------
49549 -- 4219869 Business Flow
49550 -- Update journal entry status -- Need to generate this within IF <condition>
49551 ----------------------------------------------------------------------------------
49552 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49553 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49554 ,p_balance_type_code => l_balance_type_code
49555 );
49556
49557 -------------------------------------------------------------------------------------------
49558 -- 4262811 - Generate the Accrual Reversal lines
49559 -------------------------------------------------------------------------------------------
49560 BEGIN
49561 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49562 (g_array_event(p_event_id).array_value_num('header_index'));
49563 IF l_acc_rev_flag IS NULL THEN
49564 l_acc_rev_flag := 'N';
49565 END IF;
49566 EXCEPTION
49567 WHEN OTHERS THEN
49568 l_acc_rev_flag := 'N';
49569 END;
49570 --
49571 IF (l_acc_rev_flag = 'Y') THEN
49572
49573 -- 4645092 ------------------------------------------------------------------------------
49574 -- To allow MPA report to determine if it should generate report process
49575 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49576 ------------------------------------------------------------------------------------------
49577
49578 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49579 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49580
49581 --
49582 -- Update the line information that should be overwritten
49583 --
49584 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49585 p_header_num => 1);
49586 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49587
49588 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49589
49590 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49591 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49592 END IF;
49593
49594 --
49595 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49596 --
49597 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49598 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49599 ELSE
49600 ---------------------------------------------------------------------------------------------------
49601 -- 4262811a Switch Sign
49602 ---------------------------------------------------------------------------------------------------
49603 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49604 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49605 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49606 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49607 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49608 -- 5132302
49609 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49610 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49611
49612 END IF;
49613
49614 -- 4955764
49615 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49616 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49617
49618
49619 XLA_AE_LINES_PKG.ValidateCurrentLine;
49620 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49621
49622 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49623 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49624 ,p_balance_type_code => l_balance_type_code);
49625
49626 END IF;
49627
49628 -----------------------------------------------------------------------------------------
49629 -- 4262811 Multiperiod Accounting
49630 -----------------------------------------------------------------------------------------
49631 -- No MPA option is assigned.
49632
49633
49634 END IF;
49635 END IF;
49636 --
49637
49638 --
49639 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49640 trace
49641 (p_msg => 'END of AcctLineType_100'
49642 ,p_level => C_LEVEL_PROCEDURE
49643 ,p_module => l_log_module);
49644 END IF;
49645 --
49646 EXCEPTION
49647 WHEN xla_exceptions_pkg.application_exception THEN
49648 RAISE;
49649 WHEN OTHERS THEN
49650 xla_exceptions_pkg.raise_message
49651 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_100');
49652 END AcctLineType_100;
49653 --
49654
49658 -- AcctLineType_101
49655 ---------------------------------------
49656 --
49657 -- PRIVATE FUNCTION
49659 --
49660 ---------------------------------------
49661 PROCEDURE AcctLineType_101 (
49662 p_application_id IN NUMBER
49663 ,p_event_id IN NUMBER
49664 ,p_calculate_acctd_flag IN VARCHAR2
49665 ,p_calculate_g_l_flag IN VARCHAR2
49666 ,p_actual_flag IN OUT VARCHAR2
49667 ,p_balance_type_code OUT VARCHAR2
49668 ,p_gain_or_loss_ref OUT VARCHAR2
49669
49670 --Budget Code Combination ID
49671 , p_source_2 IN NUMBER
49672 --Cost CCID
49673 , p_source_3 IN NUMBER
49674 --Cost Clearing CCID
49675 , p_source_6 IN NUMBER
49676 --Reversing Line Flag
49677 , p_source_22 IN VARCHAR2
49678 --Actual Upgrade Credit Accounting Class
49679 , p_source_23 IN VARCHAR2
49680 --Entered Currency Code
49681 , p_source_25 IN VARCHAR2
49682 --Exchange Rate Date
49683 , p_source_27 IN DATE
49684 --Exchange Rate
49685 , p_source_28 IN NUMBER
49686 --Exchange Rate Type
49687 , p_source_29 IN VARCHAR2
49688 --Actual Upgrade Debit Accounting Class
49689 , p_source_30 IN VARCHAR2
49690 --Use Actuals Upgrade Attributes Flag
49691 , p_source_31 IN VARCHAR2
49692 --Expenditure Item ID
49693 , p_source_32 IN NUMBER
49694 --Cost Distribution Line Number
49695 , p_source_33 IN NUMBER
49696 --Line Type
49697 , p_source_34 IN VARCHAR2
49698 , p_source_34_meaning IN VARCHAR2
49699 --Reversed Line Number
49700 , p_source_35 IN NUMBER
49701 --Entered Burdened Cost
49702 , p_source_44 IN NUMBER
49703 --Accounted Burdened Cost
49704 , p_source_45 IN NUMBER
49705 --Encumbrance Amount
49706 , p_source_46 IN NUMBER
49707 --Encumbrance Upgrade Debit Accounting Class
49708 , p_source_54 IN VARCHAR2
49709 --Use Encumbrance Upgrade Attributes Flag
49710 , p_source_55 IN VARCHAR2
49711 --Encumbrance Type ID
49712 , p_source_56 IN NUMBER
49713 --Project Encumbrance Type ID
49714 , p_source_57 IN NUMBER
49715 --Document Type
49716 , p_source_70 IN VARCHAR2
49717 , p_source_70_meaning IN VARCHAR2
49718 --Release ID
49719 , p_source_72 IN NUMBER
49720 --Contingent Worker Timecard Flag
49721 , p_source_73 IN VARCHAR2
49722 --Purchase Order Burden Applied to Application Identifier
49723 , p_source_80 IN NUMBER
49724 --Purchase Order Burden Applied to Distribution Type
49725 , p_source_81 IN VARCHAR2
49726 --Purchase Order Burden Applied to Entity Code
49727 , p_source_82 IN VARCHAR2
49728 --Purchase Order Burden Applied to First Distribution Identifier
49729 , p_source_83 IN NUMBER
49730 --Purchase Order Burden Applied to First System Transaction Identifier
49731 , p_source_84 IN NUMBER
49732 --Purchase Order Burden Applied to Second Distribution Identifier
49733 , p_source_85 IN VARCHAR2
49734 )
49735 IS
49736
49737 l_component_type VARCHAR2(80);
49738 l_component_code VARCHAR2(30);
49739 l_component_type_code VARCHAR2(1);
49740 l_component_appl_id INTEGER;
49741 l_amb_context_code VARCHAR2(30);
49742 l_entity_code VARCHAR2(30);
49743 l_event_class_code VARCHAR2(30);
49744 l_ae_header_id NUMBER;
49745 l_event_type_code VARCHAR2(30);
49746 l_line_definition_code VARCHAR2(30);
49747 l_line_definition_owner_code VARCHAR2(1);
49748 --
49749 -- adr variables
49750 l_segment VARCHAR2(30);
49751 l_ccid NUMBER;
49752 l_adr_transaction_coa_id NUMBER;
49753 l_adr_accounting_coa_id NUMBER;
49754 l_adr_flexfield_segment_code VARCHAR2(30);
49755 l_adr_flex_value_set_id NUMBER;
49756 l_adr_value_type_code VARCHAR2(30);
49757 l_adr_value_combination_id NUMBER;
49758 l_adr_value_segment_code VARCHAR2(30);
49759
49760 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49761 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49762 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49763 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49764
49765 -- 4262811 Variables ------------------------------------------------------------------------------------------
49766 l_entered_amt_idx NUMBER;
49767 l_accted_amt_idx NUMBER;
49768 l_acc_rev_flag VARCHAR2(1);
49769 l_accrual_line_num NUMBER;
49770 l_tmp_amt NUMBER;
49771 l_acc_rev_natural_side_code VARCHAR2(1);
49772
49773 l_num_entries NUMBER;
49774 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49775 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49776 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49777 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49778 l_recog_line_1 NUMBER;
49779 l_recog_line_2 NUMBER;
49780
49781 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49782 l_bflow_applied_to_amt NUMBER; -- 5132302
49783 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49784
49785 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49786
49787 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49788 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49789
49793 --
49790 ---------------------------------------------------------------------------------------------------------------
49791
49792
49794 -- bulk performance
49795 --
49796 l_balance_type_code VARCHAR2(1);
49797 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49798 l_log_module VARCHAR2(240);
49799
49800 --
49801 -- Upgrade strategy
49802 --
49803 l_actual_upg_option VARCHAR2(1);
49804 l_enc_upg_option VARCHAR2(1);
49805
49806 --
49807 BEGIN
49808 --
49809 IF g_log_enabled THEN
49810 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
49811 END IF;
49812 --
49813 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49814
49815 trace
49816 (p_msg => 'BEGIN of AcctLineType_101'
49817 ,p_level => C_LEVEL_PROCEDURE
49818 ,p_module => l_log_module);
49819
49820 END IF;
49821 --
49822 l_component_type := 'AMB_JLT';
49823 l_component_code := 'REL_PO_BURDENED_ENC';
49824 l_component_type_code := 'S';
49825 l_component_appl_id := 275;
49826 l_amb_context_code := 'DEFAULT';
49827 l_entity_code := 'EXPENDITURES';
49828 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
49829 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
49830 l_line_definition_owner_code := 'S';
49831 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
49832 --
49833 l_balance_type_code := 'E';
49834 l_segment := NULL;
49835 l_ccid := NULL;
49836 l_adr_transaction_coa_id := NULL;
49837 l_adr_accounting_coa_id := NULL;
49838 l_adr_flexfield_segment_code := NULL;
49839 l_adr_flex_value_set_id := NULL;
49840 l_adr_value_type_code := NULL;
49841 l_adr_value_combination_id := NULL;
49842 l_adr_value_segment_code := NULL;
49843
49844 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
49845 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
49846 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49847 l_budgetary_control_flag := 'N';
49848
49849 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49850 l_bflow_applied_to_amt := NULL; -- 5132302
49851 l_entered_amt_idx := NULL; -- 4262811
49852 l_accted_amt_idx := NULL; -- 4262811
49853 l_acc_rev_flag := NULL; -- 4262811
49854 l_accrual_line_num := NULL; -- 4262811
49855 l_tmp_amt := NULL; -- 4262811
49856 --
49857
49858 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49859 l_balance_type_code <> 'B' THEN
49860 IF NVL(p_source_34,'
49861 ') = 'E' AND
49862 NVL(p_source_70,'
49863 ') = 'PO' AND
49864 p_source_72 IS NULL AND
49865 NVL(p_source_73,'
49866 ') = 'N'
49867 THEN
49868
49869 --
49870 XLA_AE_LINES_PKG.SetNewLine;
49871
49872 p_balance_type_code := l_balance_type_code;
49873 -- set the flag so later we will know whether the gain loss line needs to be created
49874
49875 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49876 p_actual_flag :='A';
49877 END IF;
49878
49879 --
49880 -- bulk performance
49881 --
49882 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49883 p_header_num => 0); -- 4262811
49884 --
49885 -- set accounting line options
49886 --
49887 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49888 p_natural_side_code => 'C'
49889 , p_gain_or_loss_flag => 'N'
49890 , p_gl_transfer_mode_code => 'S'
49891 , p_acct_entry_type_code => 'E'
49892 , p_switch_side_flag => 'N'
49893 , p_merge_duplicate_code => 'N'
49894 );
49895 --
49896 l_acc_rev_natural_side_code := 'D'; -- 4262811
49897 --
49898 --
49899 -- set accounting line type info
49900 --
49901 xla_ae_lines_pkg.SetAcctLineType
49902 (p_component_type => l_component_type
49903 ,p_event_type_code => l_event_type_code
49904 ,p_line_definition_owner_code => l_line_definition_owner_code
49905 ,p_line_definition_code => l_line_definition_code
49906 ,p_accounting_line_code => l_component_code
49907 ,p_accounting_line_type_code => l_component_type_code
49908 ,p_accounting_line_appl_id => l_component_appl_id
49909 ,p_amb_context_code => l_amb_context_code
49910 ,p_entity_code => l_entity_code
49911 ,p_event_class_code => l_event_class_code);
49912 --
49913 -- set accounting class
49914 --
49915 xla_ae_lines_pkg.SetAcctClass(
49916 p_accounting_class_code => 'PO_PA_BURDENED'
49917 , p_ae_header_id => l_ae_header_id
49918 );
49919
49920 --
49921 -- set rounding class
49922 --
49923 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49924 'PO_PA_BURDENED';
49925
49926 --
49927 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49928 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49929 --
49930 -- bulk performance
49931 --
49932 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49933
49934 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49938 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49935 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49936
49937 -- 4955764
49939 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49940
49941 -- 4458381 Public Sector Enh
49942
49943 --
49944 -- set accounting attributes for the line type
49945 --
49946 l_entered_amt_idx := 35;
49947 l_accted_amt_idx := 37;
49948 l_bflow_applied_to_amt_idx := 19; -- 5132302
49949 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49950 l_rec_acct_attrs.array_char_value(1) := p_source_22;
49951 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
49952 l_rec_acct_attrs.array_char_value(2) := p_source_23;
49953 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
49954 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
49955 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
49956 l_rec_acct_attrs.array_num_value(4) := p_source_44;
49957 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
49958 l_rec_acct_attrs.array_char_value(5) := p_source_25;
49959 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
49960 l_rec_acct_attrs.array_num_value(6) := p_source_45;
49961 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
49962 l_rec_acct_attrs.array_date_value(7) := p_source_27;
49963 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
49964 l_rec_acct_attrs.array_num_value(8) := p_source_28;
49965 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
49966 l_rec_acct_attrs.array_char_value(9) := p_source_29;
49967 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
49968 l_rec_acct_attrs.array_char_value(10) := p_source_30;
49969 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
49970 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
49971 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
49972 l_rec_acct_attrs.array_num_value(12) := p_source_44;
49973 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
49974 l_rec_acct_attrs.array_char_value(13) := p_source_25;
49975 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
49976 l_rec_acct_attrs.array_num_value(14) := p_source_45;
49977 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
49978 l_rec_acct_attrs.array_date_value(15) := p_source_27;
49979 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
49980 l_rec_acct_attrs.array_num_value(16) := p_source_28;
49981 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
49982 l_rec_acct_attrs.array_char_value(17) := p_source_29;
49983 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
49984 l_rec_acct_attrs.array_char_value(18) := p_source_31;
49985 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
49986 l_rec_acct_attrs.array_num_value(19) := p_source_46;
49987 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
49988 l_rec_acct_attrs.array_num_value(20) := p_source_80;
49989 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49990 l_rec_acct_attrs.array_char_value(21) := p_source_81;
49991 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
49992 l_rec_acct_attrs.array_char_value(22) := p_source_82;
49993 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
49994 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_83);
49995 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49996 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_84);
49997 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
49998 l_rec_acct_attrs.array_char_value(25) := p_source_85;
49999 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
50000 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
50001 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
50002 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
50003 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
50004 l_rec_acct_attrs.array_char_value(28) := p_source_34;
50005 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
50006 l_rec_acct_attrs.array_char_value(29) := p_source_54;
50007 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
50008 l_rec_acct_attrs.array_num_value(30) := p_source_2;
50009 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
50010 l_rec_acct_attrs.array_num_value(31) := p_source_46;
50011 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
50012 l_rec_acct_attrs.array_char_value(32) :=
50013 xla_ae_sources_pkg.GetSystemSourceChar(
50014 p_source_code => 'XLA_CURRENCY_CODE'
50015 , p_source_type_code => 'Y'
50016 , p_source_application_id => 602
50017 );
50018 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
50019 l_rec_acct_attrs.array_num_value(33) := p_source_46;
50020 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
50021 l_rec_acct_attrs.array_char_value(34) := p_source_55;
50022 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
50023 l_rec_acct_attrs.array_num_value(35) := p_source_46;
50024 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
50025 l_rec_acct_attrs.array_char_value(36) := p_source_25;
50026 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
50027 l_rec_acct_attrs.array_num_value(37) := p_source_46;
50028 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
50029 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
50030 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
50034 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
50031 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
50032 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
50033 l_rec_acct_attrs.array_char_value(40) := p_source_34;
50035 l_rec_acct_attrs.array_num_value(41) := p_source_56;
50036 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
50037 l_rec_acct_attrs.array_num_value(42) := p_source_57;
50038
50039 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50040 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50041
50042 ---------------------------------------------------------------------------------------------------------------
50043 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50044 ---------------------------------------------------------------------------------------------------------------
50045 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50046
50047 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50048 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50049
50050 IF xla_accounting_cache_pkg.GetValueChar
50051 (p_source_code => 'LEDGER_CATEGORY_CODE'
50052 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50053 AND l_bflow_method_code = 'PRIOR_ENTRY'
50054 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50055 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50056 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50057 )
50058 THEN
50059 xla_ae_lines_pkg.BflowUpgEntry
50060 (p_business_method_code => l_bflow_method_code
50061 ,p_business_class_code => l_bflow_class_code
50062 ,p_balance_type => l_balance_type_code);
50063 ELSE
50064 NULL;
50065 XLA_AE_LINES_PKG.business_flow_validation(
50066 p_business_method_code => l_bflow_method_code
50067 ,p_business_class_code => l_bflow_class_code
50068 ,p_inherit_description_flag => l_inherit_desc_flag);
50069 END IF;
50070
50071 --
50072 -- call analytical criteria
50073 --
50074 -- Inherited Analytical Criteria for business flow method of Prior Entry.
50075 --
50076 -- call description
50077 --
50078 -- No description or it is inherited.
50079 --
50080 -- call ADRs
50081 -- Bug 4922099
50082 --
50083 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50084 (NVL(l_actual_upg_option, 'N') = 'O') OR
50085 (NVL(l_enc_upg_option, 'N') = 'O')
50086 )
50087 THEN
50088 NULL;
50089 --
50090 --
50091
50092 --
50093 --
50094 END IF;
50095 --
50096 -- Bug 4922099
50097 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50098 (NVL(l_enc_upg_option, 'N') = 'O')
50099 ) AND
50100 (l_bflow_method_code = 'PRIOR_ENTRY')
50101 )
50102 THEN
50103 IF
50104 --
50105 1 = 1
50106 --
50107 THEN
50108 xla_accounting_err_pkg.build_message
50109 (p_appli_s_name => 'XLA'
50110 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50111 ,p_token_1 => 'LINE_NUMBER'
50112 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50113 ,p_token_2 => 'LINE_TYPE_NAME'
50114 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50115 l_component_type
50116 ,l_component_code
50117 ,l_component_type_code
50118 ,l_component_appl_id
50119 ,l_amb_context_code
50120 ,l_entity_code
50121 ,l_event_class_code
50122 )
50123 ,p_token_3 => 'OWNER'
50124 ,p_value_3 => xla_lookups_pkg.get_meaning(
50125 p_lookup_type => 'XLA_OWNER_TYPE'
50126 ,p_lookup_code => l_component_type_code
50127 )
50128 ,p_token_4 => 'PRODUCT_NAME'
50129 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50130 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50131 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50132 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50133 ,p_ae_header_id => NULL
50134 );
50135
50136 IF (C_LEVEL_ERROR>= g_log_level) THEN
50137 trace
50141 END IF;
50138 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50139 ,p_level => C_LEVEL_ERROR
50140 ,p_module => l_log_module);
50142 END IF;
50143 END IF;
50144 --
50145 --
50146 ------------------------------------------------------------------------------------------------
50147 -- 4219869 Business Flow
50148 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50149 -- Prior Entry. Currently, the following code is always generated.
50150 ------------------------------------------------------------------------------------------------
50151 -- No ValidateCurrentLine for business flow method of Prior Entry
50152
50153 ------------------------------------------------------------------------------------
50154 -- 4219869 Business Flow
50155 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50156 ------------------------------------------------------------------------------------
50157 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50158
50159 ----------------------------------------------------------------------------------
50160 -- 4219869 Business Flow
50161 -- Update journal entry status -- Need to generate this within IF <condition>
50162 ----------------------------------------------------------------------------------
50163 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50164 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50165 ,p_balance_type_code => l_balance_type_code
50166 );
50167
50168 -------------------------------------------------------------------------------------------
50169 -- 4262811 - Generate the Accrual Reversal lines
50170 -------------------------------------------------------------------------------------------
50171 BEGIN
50172 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50173 (g_array_event(p_event_id).array_value_num('header_index'));
50174 IF l_acc_rev_flag IS NULL THEN
50175 l_acc_rev_flag := 'N';
50176 END IF;
50177 EXCEPTION
50178 WHEN OTHERS THEN
50179 l_acc_rev_flag := 'N';
50180 END;
50181 --
50182 IF (l_acc_rev_flag = 'Y') THEN
50183
50184 -- 4645092 ------------------------------------------------------------------------------
50185 -- To allow MPA report to determine if it should generate report process
50186 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50187 ------------------------------------------------------------------------------------------
50188
50189 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50190 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50191
50192 --
50193 -- Update the line information that should be overwritten
50194 --
50195 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50196 p_header_num => 1);
50197 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50198
50199 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50200
50201 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50202 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50203 END IF;
50204
50205 --
50206 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50207 --
50208 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50209 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50210 ELSE
50211 ---------------------------------------------------------------------------------------------------
50212 -- 4262811a Switch Sign
50213 ---------------------------------------------------------------------------------------------------
50214 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50215 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50216 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50217 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50218 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50219 -- 5132302
50220 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50221 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50222
50223 END IF;
50224
50225 -- 4955764
50226 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50227 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50228
50229
50230 XLA_AE_LINES_PKG.ValidateCurrentLine;
50231 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50232
50233 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50234 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50235 ,p_balance_type_code => l_balance_type_code);
50236
50237 END IF;
50238
50239 -----------------------------------------------------------------------------------------
50240 -- 4262811 Multiperiod Accounting
50241 -----------------------------------------------------------------------------------------
50242 -- No MPA option is assigned.
50243
50244
50245 END IF;
50246 END IF;
50247 --
50248
50249 --
50250 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50254 ,p_module => l_log_module);
50251 trace
50252 (p_msg => 'END of AcctLineType_101'
50253 ,p_level => C_LEVEL_PROCEDURE
50255 END IF;
50256 --
50257 EXCEPTION
50258 WHEN xla_exceptions_pkg.application_exception THEN
50259 RAISE;
50260 WHEN OTHERS THEN
50261 xla_exceptions_pkg.raise_message
50262 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_101');
50263 END AcctLineType_101;
50264 --
50265
50266 ---------------------------------------
50267 --
50268 -- PRIVATE FUNCTION
50269 -- AcctLineType_102
50270 --
50271 ---------------------------------------
50272 PROCEDURE AcctLineType_102 (
50273 p_application_id IN NUMBER
50274 ,p_event_id IN NUMBER
50275 ,p_calculate_acctd_flag IN VARCHAR2
50276 ,p_calculate_g_l_flag IN VARCHAR2
50277 ,p_actual_flag IN OUT VARCHAR2
50278 ,p_balance_type_code OUT VARCHAR2
50279 ,p_gain_or_loss_ref OUT VARCHAR2
50280
50281 --Budget Code Combination ID
50282 , p_source_2 IN NUMBER
50283 --Cost CCID
50284 , p_source_3 IN NUMBER
50285 --Cost Clearing CCID
50286 , p_source_6 IN NUMBER
50287 --Reversing Line Flag
50288 , p_source_22 IN VARCHAR2
50289 --Actual Upgrade Credit Accounting Class
50290 , p_source_23 IN VARCHAR2
50291 --Entered Currency Code
50292 , p_source_25 IN VARCHAR2
50293 --Exchange Rate Date
50294 , p_source_27 IN DATE
50295 --Exchange Rate
50296 , p_source_28 IN NUMBER
50297 --Exchange Rate Type
50298 , p_source_29 IN VARCHAR2
50299 --Actual Upgrade Debit Accounting Class
50300 , p_source_30 IN VARCHAR2
50301 --Use Actuals Upgrade Attributes Flag
50302 , p_source_31 IN VARCHAR2
50303 --Expenditure Item ID
50304 , p_source_32 IN NUMBER
50305 --Cost Distribution Line Number
50306 , p_source_33 IN NUMBER
50307 --Line Type
50308 , p_source_34 IN VARCHAR2
50309 , p_source_34_meaning IN VARCHAR2
50310 --Reversed Line Number
50311 , p_source_35 IN NUMBER
50312 --Entered Burdened Cost
50313 , p_source_44 IN NUMBER
50314 --Accounted Burdened Cost
50315 , p_source_45 IN NUMBER
50316 --Encumbrance Amount
50317 , p_source_46 IN NUMBER
50318 --Encumbrance Upgrade Credit Accounting Class
50319 , p_source_53 IN VARCHAR2
50320 --Encumbrance Upgrade Debit Accounting Class
50321 , p_source_54 IN VARCHAR2
50322 --Use Encumbrance Upgrade Attributes Flag
50323 , p_source_55 IN VARCHAR2
50324 --Encumbrance Type ID
50325 , p_source_56 IN NUMBER
50326 --Project Encumbrance Type ID
50327 , p_source_57 IN NUMBER
50328 --Document Type
50329 , p_source_70 IN VARCHAR2
50330 , p_source_70_meaning IN VARCHAR2
50331 --Release ID
50332 , p_source_72 IN NUMBER
50333 --Contingent Worker Timecard Flag
50334 , p_source_73 IN VARCHAR2
50335 --Purchase Order Burden Applied to Application Identifier
50336 , p_source_80 IN NUMBER
50337 --Purchase Order Burden Applied to Distribution Type
50338 , p_source_81 IN VARCHAR2
50339 --Purchase Order Burden Applied to Entity Code
50340 , p_source_82 IN VARCHAR2
50341 --Purchase Order Burden Applied to First Distribution Identifier
50342 , p_source_83 IN NUMBER
50343 --Purchase Order Burden Applied to First System Transaction Identifier
50344 , p_source_84 IN NUMBER
50345 --Purchase Order Burden Applied to Second Distribution Identifier
50346 , p_source_85 IN VARCHAR2
50347 )
50348 IS
50349
50350 l_component_type VARCHAR2(80);
50351 l_component_code VARCHAR2(30);
50352 l_component_type_code VARCHAR2(1);
50353 l_component_appl_id INTEGER;
50354 l_amb_context_code VARCHAR2(30);
50355 l_entity_code VARCHAR2(30);
50356 l_event_class_code VARCHAR2(30);
50357 l_ae_header_id NUMBER;
50358 l_event_type_code VARCHAR2(30);
50359 l_line_definition_code VARCHAR2(30);
50360 l_line_definition_owner_code VARCHAR2(1);
50361 --
50362 -- adr variables
50363 l_segment VARCHAR2(30);
50364 l_ccid NUMBER;
50365 l_adr_transaction_coa_id NUMBER;
50366 l_adr_accounting_coa_id NUMBER;
50367 l_adr_flexfield_segment_code VARCHAR2(30);
50368 l_adr_flex_value_set_id NUMBER;
50369 l_adr_value_type_code VARCHAR2(30);
50370 l_adr_value_combination_id NUMBER;
50371 l_adr_value_segment_code VARCHAR2(30);
50372
50373 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50374 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50375 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50376 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50377
50378 -- 4262811 Variables ------------------------------------------------------------------------------------------
50379 l_entered_amt_idx NUMBER;
50380 l_accted_amt_idx NUMBER;
50381 l_acc_rev_flag VARCHAR2(1);
50382 l_accrual_line_num NUMBER;
50383 l_tmp_amt NUMBER;
50384 l_acc_rev_natural_side_code VARCHAR2(1);
50385
50386 l_num_entries NUMBER;
50387 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50388 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50389 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50390 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50391 l_recog_line_1 NUMBER;
50392 l_recog_line_2 NUMBER;
50393
50397
50394 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50395 l_bflow_applied_to_amt NUMBER; -- 5132302
50396 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50398 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50399
50400 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50401 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50402
50403 ---------------------------------------------------------------------------------------------------------------
50404
50405
50406 --
50407 -- bulk performance
50408 --
50409 l_balance_type_code VARCHAR2(1);
50410 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50411 l_log_module VARCHAR2(240);
50412
50413 --
50414 -- Upgrade strategy
50415 --
50416 l_actual_upg_option VARCHAR2(1);
50417 l_enc_upg_option VARCHAR2(1);
50418
50419 --
50420 BEGIN
50421 --
50422 IF g_log_enabled THEN
50423 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
50424 END IF;
50425 --
50426 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50427
50428 trace
50429 (p_msg => 'BEGIN of AcctLineType_102'
50430 ,p_level => C_LEVEL_PROCEDURE
50431 ,p_module => l_log_module);
50432
50433 END IF;
50434 --
50435 l_component_type := 'AMB_JLT';
50436 l_component_code := 'REL_PO_BURDENED_ENC';
50437 l_component_type_code := 'S';
50438 l_component_appl_id := 275;
50439 l_amb_context_code := 'DEFAULT';
50440 l_entity_code := 'EXPENDITURES';
50441 l_event_class_code := 'TOT_BURDENED_COST';
50442 l_event_type_code := 'TOT_BURDENED_COST_ALL';
50443 l_line_definition_owner_code := 'S';
50444 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
50445 --
50446 l_balance_type_code := 'E';
50447 l_segment := NULL;
50448 l_ccid := NULL;
50449 l_adr_transaction_coa_id := NULL;
50450 l_adr_accounting_coa_id := NULL;
50451 l_adr_flexfield_segment_code := NULL;
50452 l_adr_flex_value_set_id := NULL;
50453 l_adr_value_type_code := NULL;
50454 l_adr_value_combination_id := NULL;
50455 l_adr_value_segment_code := NULL;
50456
50457 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
50458 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
50459 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50460 l_budgetary_control_flag := 'N';
50461
50462 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50463 l_bflow_applied_to_amt := NULL; -- 5132302
50464 l_entered_amt_idx := NULL; -- 4262811
50465 l_accted_amt_idx := NULL; -- 4262811
50466 l_acc_rev_flag := NULL; -- 4262811
50467 l_accrual_line_num := NULL; -- 4262811
50468 l_tmp_amt := NULL; -- 4262811
50469 --
50470
50471 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50472 l_balance_type_code <> 'B' THEN
50473 IF NVL(p_source_34,'
50474 ') = 'E' AND
50475 NVL(p_source_70,'
50476 ') = 'PO' AND
50477 p_source_72 IS NULL AND
50478 NVL(p_source_73,'
50479 ') = 'N'
50480 THEN
50481
50482 --
50483 XLA_AE_LINES_PKG.SetNewLine;
50484
50485 p_balance_type_code := l_balance_type_code;
50486 -- set the flag so later we will know whether the gain loss line needs to be created
50487
50488 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50489 p_actual_flag :='A';
50490 END IF;
50491
50492 --
50493 -- bulk performance
50494 --
50495 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50496 p_header_num => 0); -- 4262811
50497 --
50498 -- set accounting line options
50499 --
50500 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50501 p_natural_side_code => 'C'
50502 , p_gain_or_loss_flag => 'N'
50503 , p_gl_transfer_mode_code => 'S'
50504 , p_acct_entry_type_code => 'E'
50505 , p_switch_side_flag => 'N'
50506 , p_merge_duplicate_code => 'N'
50507 );
50508 --
50509 l_acc_rev_natural_side_code := 'D'; -- 4262811
50510 --
50511 --
50512 -- set accounting line type info
50513 --
50514 xla_ae_lines_pkg.SetAcctLineType
50515 (p_component_type => l_component_type
50516 ,p_event_type_code => l_event_type_code
50517 ,p_line_definition_owner_code => l_line_definition_owner_code
50518 ,p_line_definition_code => l_line_definition_code
50519 ,p_accounting_line_code => l_component_code
50520 ,p_accounting_line_type_code => l_component_type_code
50521 ,p_accounting_line_appl_id => l_component_appl_id
50522 ,p_amb_context_code => l_amb_context_code
50523 ,p_entity_code => l_entity_code
50524 ,p_event_class_code => l_event_class_code);
50525 --
50526 -- set accounting class
50527 --
50528 xla_ae_lines_pkg.SetAcctClass(
50529 p_accounting_class_code => 'PO_PA_BURDENED'
50530 , p_ae_header_id => l_ae_header_id
50531 );
50532
50533 --
50534 -- set rounding class
50535 --
50536 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50537 'PO_PA_BURDENED';
50541 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50538
50539 --
50540 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50542 --
50543 -- bulk performance
50544 --
50545 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50546
50547 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50548 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50549
50550 -- 4955764
50551 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50552 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50553
50554 -- 4458381 Public Sector Enh
50555
50556 --
50557 -- set accounting attributes for the line type
50558 --
50559 l_entered_amt_idx := 40;
50560 l_accted_amt_idx := 43;
50561 l_bflow_applied_to_amt_idx := 19; -- 5132302
50562 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50563 l_rec_acct_attrs.array_char_value(1) := p_source_22;
50564 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
50565 l_rec_acct_attrs.array_char_value(2) := p_source_23;
50566 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
50567 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
50568 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
50569 l_rec_acct_attrs.array_num_value(4) := p_source_44;
50570 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
50571 l_rec_acct_attrs.array_char_value(5) := p_source_25;
50572 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
50573 l_rec_acct_attrs.array_num_value(6) := p_source_45;
50574 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
50575 l_rec_acct_attrs.array_date_value(7) := p_source_27;
50576 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
50577 l_rec_acct_attrs.array_num_value(8) := p_source_28;
50578 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
50579 l_rec_acct_attrs.array_char_value(9) := p_source_29;
50580 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
50581 l_rec_acct_attrs.array_char_value(10) := p_source_30;
50582 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
50583 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
50584 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
50585 l_rec_acct_attrs.array_num_value(12) := p_source_44;
50586 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
50587 l_rec_acct_attrs.array_char_value(13) := p_source_25;
50588 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
50589 l_rec_acct_attrs.array_num_value(14) := p_source_45;
50590 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
50591 l_rec_acct_attrs.array_date_value(15) := p_source_27;
50592 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
50593 l_rec_acct_attrs.array_num_value(16) := p_source_28;
50594 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
50595 l_rec_acct_attrs.array_char_value(17) := p_source_29;
50596 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
50597 l_rec_acct_attrs.array_char_value(18) := p_source_31;
50598 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
50599 l_rec_acct_attrs.array_num_value(19) := p_source_46;
50600 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
50601 l_rec_acct_attrs.array_num_value(20) := p_source_80;
50602 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50603 l_rec_acct_attrs.array_char_value(21) := p_source_81;
50604 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
50605 l_rec_acct_attrs.array_char_value(22) := p_source_82;
50606 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
50607 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_83);
50608 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50609 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_84);
50610 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
50611 l_rec_acct_attrs.array_char_value(25) := p_source_85;
50612 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
50613 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
50614 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
50615 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
50616 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
50617 l_rec_acct_attrs.array_char_value(28) := p_source_34;
50618 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
50619 l_rec_acct_attrs.array_char_value(29) := p_source_53;
50620 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
50621 l_rec_acct_attrs.array_num_value(30) := p_source_2;
50622 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
50623 l_rec_acct_attrs.array_num_value(31) := p_source_46;
50624 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
50625 l_rec_acct_attrs.array_char_value(32) :=
50626 xla_ae_sources_pkg.GetSystemSourceChar(
50627 p_source_code => 'XLA_CURRENCY_CODE'
50628 , p_source_type_code => 'Y'
50629 , p_source_application_id => 602
50630 );
50631 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
50632 l_rec_acct_attrs.array_num_value(33) := p_source_46;
50633 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
50634 l_rec_acct_attrs.array_char_value(34) := p_source_54;
50635 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
50639 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
50636 l_rec_acct_attrs.array_num_value(35) := p_source_2;
50637 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
50638 l_rec_acct_attrs.array_num_value(36) := p_source_46;
50640 l_rec_acct_attrs.array_char_value(37) :=
50641 xla_ae_sources_pkg.GetSystemSourceChar(
50642 p_source_code => 'XLA_CURRENCY_CODE'
50643 , p_source_type_code => 'Y'
50644 , p_source_application_id => 602
50645 );
50646 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
50647 l_rec_acct_attrs.array_num_value(38) := p_source_46;
50648 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
50649 l_rec_acct_attrs.array_char_value(39) := p_source_55;
50650 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
50651 l_rec_acct_attrs.array_num_value(40) := p_source_46;
50652 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
50653 l_rec_acct_attrs.array_char_value(41) := p_source_25;
50654 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
50655 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
50656 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
50657 l_rec_acct_attrs.array_num_value(43) := p_source_46;
50658 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
50659 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
50660 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
50661 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
50662 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
50663 l_rec_acct_attrs.array_char_value(46) := p_source_34;
50664 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
50665 l_rec_acct_attrs.array_num_value(47) := p_source_56;
50666 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
50667 l_rec_acct_attrs.array_num_value(48) := p_source_57;
50668
50669 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50670 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50671
50672 ---------------------------------------------------------------------------------------------------------------
50673 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50674 ---------------------------------------------------------------------------------------------------------------
50675 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50676
50677 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50678 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50679
50680 IF xla_accounting_cache_pkg.GetValueChar
50681 (p_source_code => 'LEDGER_CATEGORY_CODE'
50682 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50683 AND l_bflow_method_code = 'PRIOR_ENTRY'
50684 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50685 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50686 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50687 )
50688 THEN
50689 xla_ae_lines_pkg.BflowUpgEntry
50690 (p_business_method_code => l_bflow_method_code
50691 ,p_business_class_code => l_bflow_class_code
50692 ,p_balance_type => l_balance_type_code);
50693 ELSE
50694 NULL;
50695 XLA_AE_LINES_PKG.business_flow_validation(
50696 p_business_method_code => l_bflow_method_code
50697 ,p_business_class_code => l_bflow_class_code
50698 ,p_inherit_description_flag => l_inherit_desc_flag);
50699 END IF;
50700
50701 --
50702 -- call analytical criteria
50703 --
50704 -- Inherited Analytical Criteria for business flow method of Prior Entry.
50705 --
50706 -- call description
50707 --
50708 -- No description or it is inherited.
50709 --
50710 -- call ADRs
50711 -- Bug 4922099
50712 --
50713 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50714 (NVL(l_actual_upg_option, 'N') = 'O') OR
50715 (NVL(l_enc_upg_option, 'N') = 'O')
50716 )
50717 THEN
50718 NULL;
50719 --
50720 --
50721
50722 --
50723 --
50724 END IF;
50725 --
50726 -- Bug 4922099
50727 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50728 (NVL(l_enc_upg_option, 'N') = 'O')
50729 ) AND
50730 (l_bflow_method_code = 'PRIOR_ENTRY')
50731 )
50732 THEN
50733 IF
50734 --
50735 1 = 1
50736 --
50737 THEN
50738 xla_accounting_err_pkg.build_message
50739 (p_appli_s_name => 'XLA'
50740 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50741 ,p_token_1 => 'LINE_NUMBER'
50742 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50743 ,p_token_2 => 'LINE_TYPE_NAME'
50744 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50745 l_component_type
50746 ,l_component_code
50747 ,l_component_type_code
50748 ,l_component_appl_id
50752 )
50749 ,l_amb_context_code
50750 ,l_entity_code
50751 ,l_event_class_code
50753 ,p_token_3 => 'OWNER'
50754 ,p_value_3 => xla_lookups_pkg.get_meaning(
50755 p_lookup_type => 'XLA_OWNER_TYPE'
50756 ,p_lookup_code => l_component_type_code
50757 )
50758 ,p_token_4 => 'PRODUCT_NAME'
50759 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50760 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50761 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50762 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50763 ,p_ae_header_id => NULL
50764 );
50765
50766 IF (C_LEVEL_ERROR>= g_log_level) THEN
50767 trace
50768 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50769 ,p_level => C_LEVEL_ERROR
50770 ,p_module => l_log_module);
50771 END IF;
50772 END IF;
50773 END IF;
50774 --
50775 --
50776 ------------------------------------------------------------------------------------------------
50777 -- 4219869 Business Flow
50778 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50779 -- Prior Entry. Currently, the following code is always generated.
50780 ------------------------------------------------------------------------------------------------
50781 -- No ValidateCurrentLine for business flow method of Prior Entry
50782
50783 ------------------------------------------------------------------------------------
50784 -- 4219869 Business Flow
50785 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50786 ------------------------------------------------------------------------------------
50787 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50788
50789 ----------------------------------------------------------------------------------
50790 -- 4219869 Business Flow
50791 -- Update journal entry status -- Need to generate this within IF <condition>
50792 ----------------------------------------------------------------------------------
50793 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50794 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50795 ,p_balance_type_code => l_balance_type_code
50796 );
50797
50798 -------------------------------------------------------------------------------------------
50799 -- 4262811 - Generate the Accrual Reversal lines
50800 -------------------------------------------------------------------------------------------
50801 BEGIN
50802 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50803 (g_array_event(p_event_id).array_value_num('header_index'));
50804 IF l_acc_rev_flag IS NULL THEN
50805 l_acc_rev_flag := 'N';
50806 END IF;
50807 EXCEPTION
50808 WHEN OTHERS THEN
50809 l_acc_rev_flag := 'N';
50810 END;
50811 --
50812 IF (l_acc_rev_flag = 'Y') THEN
50813
50814 -- 4645092 ------------------------------------------------------------------------------
50815 -- To allow MPA report to determine if it should generate report process
50816 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50817 ------------------------------------------------------------------------------------------
50818
50819 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50820 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50821
50822 --
50823 -- Update the line information that should be overwritten
50824 --
50825 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50826 p_header_num => 1);
50827 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50828
50829 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50830
50831 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50832 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50833 END IF;
50834
50835 --
50836 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50837 --
50838 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50839 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50840 ELSE
50841 ---------------------------------------------------------------------------------------------------
50842 -- 4262811a Switch Sign
50843 ---------------------------------------------------------------------------------------------------
50844 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50845 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50846 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50850 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50847 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50848 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50849 -- 5132302
50851 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50852
50853 END IF;
50854
50855 -- 4955764
50856 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50857 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50858
50859
50860 XLA_AE_LINES_PKG.ValidateCurrentLine;
50861 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50862
50863 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50864 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50865 ,p_balance_type_code => l_balance_type_code);
50866
50867 END IF;
50868
50869 -----------------------------------------------------------------------------------------
50870 -- 4262811 Multiperiod Accounting
50871 -----------------------------------------------------------------------------------------
50872 -- No MPA option is assigned.
50873
50874
50875 END IF;
50876 END IF;
50877 --
50878
50879 --
50880 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50881 trace
50882 (p_msg => 'END of AcctLineType_102'
50883 ,p_level => C_LEVEL_PROCEDURE
50884 ,p_module => l_log_module);
50885 END IF;
50886 --
50887 EXCEPTION
50888 WHEN xla_exceptions_pkg.application_exception THEN
50889 RAISE;
50890 WHEN OTHERS THEN
50891 xla_exceptions_pkg.raise_message
50892 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_102');
50893 END AcctLineType_102;
50894 --
50895
50896 ---------------------------------------
50897 --
50898 -- PRIVATE FUNCTION
50899 -- AcctLineType_103
50900 --
50901 ---------------------------------------
50902 PROCEDURE AcctLineType_103 (
50903 p_application_id IN NUMBER
50904 ,p_event_id IN NUMBER
50905 ,p_calculate_acctd_flag IN VARCHAR2
50906 ,p_calculate_g_l_flag IN VARCHAR2
50907 ,p_actual_flag IN OUT VARCHAR2
50908 ,p_balance_type_code OUT VARCHAR2
50909 ,p_gain_or_loss_ref OUT VARCHAR2
50910
50911 --Budget Code Combination ID
50912 , p_source_2 IN NUMBER
50913 --Cost CCID
50914 , p_source_3 IN NUMBER
50915 --Cost Clearing CCID
50916 , p_source_6 IN NUMBER
50917 --Reversing Line Flag
50918 , p_source_22 IN VARCHAR2
50919 --Actual Upgrade Credit Accounting Class
50920 , p_source_23 IN VARCHAR2
50921 --Entered Currency Code
50922 , p_source_25 IN VARCHAR2
50923 --Exchange Rate Date
50924 , p_source_27 IN DATE
50925 --Exchange Rate
50926 , p_source_28 IN NUMBER
50927 --Exchange Rate Type
50928 , p_source_29 IN VARCHAR2
50929 --Actual Upgrade Debit Accounting Class
50930 , p_source_30 IN VARCHAR2
50931 --Use Actuals Upgrade Attributes Flag
50932 , p_source_31 IN VARCHAR2
50933 --Expenditure Item ID
50934 , p_source_32 IN NUMBER
50935 --Cost Distribution Line Number
50936 , p_source_33 IN NUMBER
50937 --Line Type
50938 , p_source_34 IN VARCHAR2
50939 , p_source_34_meaning IN VARCHAR2
50940 --Reversed Line Number
50941 , p_source_35 IN NUMBER
50942 --Entered Burdened Cost
50943 , p_source_44 IN NUMBER
50944 --Accounted Burdened Cost
50945 , p_source_45 IN NUMBER
50946 --Encumbrance Amount
50947 , p_source_46 IN NUMBER
50948 --Encumbrance Upgrade Credit Accounting Class
50949 , p_source_53 IN VARCHAR2
50950 --Encumbrance Upgrade Debit Accounting Class
50951 , p_source_54 IN VARCHAR2
50952 --Use Encumbrance Upgrade Attributes Flag
50953 , p_source_55 IN VARCHAR2
50954 --Encumbrance Type ID
50955 , p_source_56 IN NUMBER
50956 --Project Encumbrance Type ID
50957 , p_source_57 IN NUMBER
50958 --Document Type
50959 , p_source_70 IN VARCHAR2
50960 , p_source_70_meaning IN VARCHAR2
50961 --Release ID
50962 , p_source_72 IN NUMBER
50963 --Contingent Worker Timecard Flag
50964 , p_source_73 IN VARCHAR2
50965 --Purchase Order Burden Applied to Application Identifier
50966 , p_source_80 IN NUMBER
50967 --Purchase Order Burden Applied to Distribution Type
50968 , p_source_81 IN VARCHAR2
50969 --Purchase Order Burden Applied to Entity Code
50970 , p_source_82 IN VARCHAR2
50971 --Purchase Order Burden Applied to First Distribution Identifier
50972 , p_source_83 IN NUMBER
50973 --Purchase Order Burden Applied to First System Transaction Identifier
50974 , p_source_84 IN NUMBER
50975 --Purchase Order Burden Applied to Second Distribution Identifier
50976 , p_source_85 IN VARCHAR2
50977 )
50978 IS
50979
50980 l_component_type VARCHAR2(80);
50981 l_component_code VARCHAR2(30);
50982 l_component_type_code VARCHAR2(1);
50983 l_component_appl_id INTEGER;
50984 l_amb_context_code VARCHAR2(30);
50985 l_entity_code VARCHAR2(30);
50986 l_event_class_code VARCHAR2(30);
50987 l_ae_header_id NUMBER;
50988 l_event_type_code VARCHAR2(30);
50989 l_line_definition_code VARCHAR2(30);
50990 l_line_definition_owner_code VARCHAR2(1);
50991 --
50992 -- adr variables
50996 l_adr_accounting_coa_id NUMBER;
50993 l_segment VARCHAR2(30);
50994 l_ccid NUMBER;
50995 l_adr_transaction_coa_id NUMBER;
50997 l_adr_flexfield_segment_code VARCHAR2(30);
50998 l_adr_flex_value_set_id NUMBER;
50999 l_adr_value_type_code VARCHAR2(30);
51000 l_adr_value_combination_id NUMBER;
51001 l_adr_value_segment_code VARCHAR2(30);
51002
51003 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51004 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51005 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51006 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51007
51008 -- 4262811 Variables ------------------------------------------------------------------------------------------
51009 l_entered_amt_idx NUMBER;
51010 l_accted_amt_idx NUMBER;
51011 l_acc_rev_flag VARCHAR2(1);
51012 l_accrual_line_num NUMBER;
51013 l_tmp_amt NUMBER;
51014 l_acc_rev_natural_side_code VARCHAR2(1);
51015
51016 l_num_entries NUMBER;
51017 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51018 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51019 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51020 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51021 l_recog_line_1 NUMBER;
51022 l_recog_line_2 NUMBER;
51023
51024 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51025 l_bflow_applied_to_amt NUMBER; -- 5132302
51026 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51027
51028 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51029
51030 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51031 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51032
51033 ---------------------------------------------------------------------------------------------------------------
51034
51035
51036 --
51037 -- bulk performance
51038 --
51039 l_balance_type_code VARCHAR2(1);
51040 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51041 l_log_module VARCHAR2(240);
51042
51043 --
51044 -- Upgrade strategy
51045 --
51046 l_actual_upg_option VARCHAR2(1);
51047 l_enc_upg_option VARCHAR2(1);
51048
51049 --
51050 BEGIN
51051 --
51052 IF g_log_enabled THEN
51053 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
51054 END IF;
51055 --
51056 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51057
51058 trace
51059 (p_msg => 'BEGIN of AcctLineType_103'
51060 ,p_level => C_LEVEL_PROCEDURE
51061 ,p_module => l_log_module);
51062
51063 END IF;
51064 --
51065 l_component_type := 'AMB_JLT';
51066 l_component_code := 'REL_PO_BURDEN_ENC';
51067 l_component_type_code := 'S';
51068 l_component_appl_id := 275;
51069 l_amb_context_code := 'DEFAULT';
51070 l_entity_code := 'EXPENDITURES';
51071 l_event_class_code := 'BURDEN_COST';
51072 l_event_type_code := 'BURDEN_COST_ALL';
51073 l_line_definition_owner_code := 'S';
51074 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
51075 --
51076 l_balance_type_code := 'E';
51077 l_segment := NULL;
51078 l_ccid := NULL;
51079 l_adr_transaction_coa_id := NULL;
51080 l_adr_accounting_coa_id := NULL;
51081 l_adr_flexfield_segment_code := NULL;
51082 l_adr_flex_value_set_id := NULL;
51083 l_adr_value_type_code := NULL;
51084 l_adr_value_combination_id := NULL;
51085 l_adr_value_segment_code := NULL;
51086
51087 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
51088 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
51089 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51090 l_budgetary_control_flag := 'N';
51091
51092 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51093 l_bflow_applied_to_amt := NULL; -- 5132302
51094 l_entered_amt_idx := NULL; -- 4262811
51095 l_accted_amt_idx := NULL; -- 4262811
51096 l_acc_rev_flag := NULL; -- 4262811
51097 l_accrual_line_num := NULL; -- 4262811
51098 l_tmp_amt := NULL; -- 4262811
51099 --
51100
51101 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51102 l_balance_type_code <> 'B' THEN
51103 IF NVL(p_source_34,'
51104 ') = 'E' AND
51105 NVL(p_source_70,'
51106 ') = 'PO' AND
51107 p_source_72 IS NULL AND
51108 NVL(p_source_73,'
51109 ') = 'N'
51110 THEN
51111
51112 --
51113 XLA_AE_LINES_PKG.SetNewLine;
51114
51115 p_balance_type_code := l_balance_type_code;
51116 -- set the flag so later we will know whether the gain loss line needs to be created
51117
51118 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51119 p_actual_flag :='A';
51120 END IF;
51121
51122 --
51123 -- bulk performance
51124 --
51125 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51126 p_header_num => 0); -- 4262811
51127 --
51128 -- set accounting line options
51129 --
51130 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51131 p_natural_side_code => 'C'
51135 , p_switch_side_flag => 'N'
51132 , p_gain_or_loss_flag => 'N'
51133 , p_gl_transfer_mode_code => 'S'
51134 , p_acct_entry_type_code => 'E'
51136 , p_merge_duplicate_code => 'N'
51137 );
51138 --
51139 l_acc_rev_natural_side_code := 'D'; -- 4262811
51140 --
51141 --
51142 -- set accounting line type info
51143 --
51144 xla_ae_lines_pkg.SetAcctLineType
51145 (p_component_type => l_component_type
51146 ,p_event_type_code => l_event_type_code
51147 ,p_line_definition_owner_code => l_line_definition_owner_code
51148 ,p_line_definition_code => l_line_definition_code
51149 ,p_accounting_line_code => l_component_code
51150 ,p_accounting_line_type_code => l_component_type_code
51151 ,p_accounting_line_appl_id => l_component_appl_id
51152 ,p_amb_context_code => l_amb_context_code
51153 ,p_entity_code => l_entity_code
51154 ,p_event_class_code => l_event_class_code);
51155 --
51156 -- set accounting class
51157 --
51158 xla_ae_lines_pkg.SetAcctClass(
51159 p_accounting_class_code => 'PO_PA_BURDEN'
51160 , p_ae_header_id => l_ae_header_id
51161 );
51162
51163 --
51164 -- set rounding class
51165 --
51166 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51167 'PO_PA_BURDEN';
51168
51169 --
51170 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51171 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51172 --
51173 -- bulk performance
51174 --
51175 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51176
51177 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51178 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51179
51180 -- 4955764
51181 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51182 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51183
51184 -- 4458381 Public Sector Enh
51185
51186 --
51187 -- set accounting attributes for the line type
51188 --
51189 l_entered_amt_idx := 40;
51190 l_accted_amt_idx := 42;
51191 l_bflow_applied_to_amt_idx := 19; -- 5132302
51192 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51193 l_rec_acct_attrs.array_char_value(1) := p_source_22;
51194 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
51195 l_rec_acct_attrs.array_char_value(2) := p_source_23;
51196 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
51197 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
51198 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
51199 l_rec_acct_attrs.array_num_value(4) := p_source_44;
51200 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
51201 l_rec_acct_attrs.array_char_value(5) := p_source_25;
51202 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
51203 l_rec_acct_attrs.array_num_value(6) := p_source_45;
51204 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
51205 l_rec_acct_attrs.array_date_value(7) := p_source_27;
51206 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
51207 l_rec_acct_attrs.array_num_value(8) := p_source_28;
51208 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
51209 l_rec_acct_attrs.array_char_value(9) := p_source_29;
51210 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
51211 l_rec_acct_attrs.array_char_value(10) := p_source_30;
51212 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
51213 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
51214 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
51215 l_rec_acct_attrs.array_num_value(12) := p_source_44;
51216 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
51217 l_rec_acct_attrs.array_char_value(13) := p_source_25;
51218 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
51219 l_rec_acct_attrs.array_num_value(14) := p_source_45;
51220 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
51221 l_rec_acct_attrs.array_date_value(15) := p_source_27;
51222 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
51223 l_rec_acct_attrs.array_num_value(16) := p_source_28;
51224 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
51225 l_rec_acct_attrs.array_char_value(17) := p_source_29;
51226 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
51227 l_rec_acct_attrs.array_char_value(18) := p_source_31;
51228 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
51229 l_rec_acct_attrs.array_num_value(19) := p_source_46;
51230 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
51231 l_rec_acct_attrs.array_num_value(20) := p_source_80;
51232 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51233 l_rec_acct_attrs.array_char_value(21) := p_source_81;
51234 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
51235 l_rec_acct_attrs.array_char_value(22) := p_source_82;
51236 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
51237 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_83);
51238 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51239 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_84);
51243 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
51240 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
51241 l_rec_acct_attrs.array_char_value(25) := p_source_85;
51242 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
51244 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
51245 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
51246 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
51247 l_rec_acct_attrs.array_char_value(28) := p_source_34;
51248 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
51249 l_rec_acct_attrs.array_char_value(29) := p_source_53;
51250 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
51251 l_rec_acct_attrs.array_num_value(30) := p_source_2;
51252 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
51253 l_rec_acct_attrs.array_num_value(31) := p_source_46;
51254 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
51255 l_rec_acct_attrs.array_char_value(32) := p_source_25;
51256 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
51257 l_rec_acct_attrs.array_num_value(33) := p_source_46;
51258 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
51259 l_rec_acct_attrs.array_char_value(34) := p_source_54;
51260 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
51261 l_rec_acct_attrs.array_num_value(35) := p_source_2;
51262 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
51263 l_rec_acct_attrs.array_num_value(36) := p_source_46;
51264 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
51265 l_rec_acct_attrs.array_char_value(37) := p_source_25;
51266 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
51267 l_rec_acct_attrs.array_num_value(38) := p_source_46;
51268 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
51269 l_rec_acct_attrs.array_char_value(39) := p_source_55;
51270 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
51271 l_rec_acct_attrs.array_num_value(40) := p_source_46;
51272 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
51273 l_rec_acct_attrs.array_char_value(41) := p_source_25;
51274 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
51275 l_rec_acct_attrs.array_num_value(42) := p_source_46;
51276 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
51277 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
51278 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
51279 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
51280 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
51281 l_rec_acct_attrs.array_char_value(45) := p_source_34;
51282 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
51283 l_rec_acct_attrs.array_num_value(46) := p_source_56;
51284 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
51285 l_rec_acct_attrs.array_num_value(47) := p_source_57;
51286
51287 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51288 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51289
51290 ---------------------------------------------------------------------------------------------------------------
51291 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51292 ---------------------------------------------------------------------------------------------------------------
51293 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51294
51295 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51296 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51297
51298 IF xla_accounting_cache_pkg.GetValueChar
51299 (p_source_code => 'LEDGER_CATEGORY_CODE'
51300 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51301 AND l_bflow_method_code = 'PRIOR_ENTRY'
51302 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51303 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51304 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51305 )
51306 THEN
51307 xla_ae_lines_pkg.BflowUpgEntry
51308 (p_business_method_code => l_bflow_method_code
51309 ,p_business_class_code => l_bflow_class_code
51310 ,p_balance_type => l_balance_type_code);
51311 ELSE
51312 NULL;
51313 XLA_AE_LINES_PKG.business_flow_validation(
51314 p_business_method_code => l_bflow_method_code
51315 ,p_business_class_code => l_bflow_class_code
51316 ,p_inherit_description_flag => l_inherit_desc_flag);
51317 END IF;
51318
51319 --
51320 -- call analytical criteria
51321 --
51322 -- Inherited Analytical Criteria for business flow method of Prior Entry.
51323 --
51324 -- call description
51325 --
51326 -- No description or it is inherited.
51327 --
51328 -- call ADRs
51329 -- Bug 4922099
51330 --
51331 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51332 (NVL(l_actual_upg_option, 'N') = 'O') OR
51333 (NVL(l_enc_upg_option, 'N') = 'O')
51334 )
51335 THEN
51336 NULL;
51337 --
51338 --
51339
51340 --
51341 --
51342 END IF;
51343 --
51344 -- Bug 4922099
51345 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51346 (NVL(l_enc_upg_option, 'N') = 'O')
51347 ) AND
51348 (l_bflow_method_code = 'PRIOR_ENTRY')
51349 )
51353 1 = 1
51350 THEN
51351 IF
51352 --
51354 --
51355 THEN
51356 xla_accounting_err_pkg.build_message
51357 (p_appli_s_name => 'XLA'
51358 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51359 ,p_token_1 => 'LINE_NUMBER'
51360 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51361 ,p_token_2 => 'LINE_TYPE_NAME'
51362 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51363 l_component_type
51364 ,l_component_code
51365 ,l_component_type_code
51366 ,l_component_appl_id
51367 ,l_amb_context_code
51368 ,l_entity_code
51369 ,l_event_class_code
51370 )
51371 ,p_token_3 => 'OWNER'
51372 ,p_value_3 => xla_lookups_pkg.get_meaning(
51373 p_lookup_type => 'XLA_OWNER_TYPE'
51374 ,p_lookup_code => l_component_type_code
51375 )
51376 ,p_token_4 => 'PRODUCT_NAME'
51377 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51378 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51379 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51380 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51381 ,p_ae_header_id => NULL
51382 );
51383
51384 IF (C_LEVEL_ERROR>= g_log_level) THEN
51385 trace
51386 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51387 ,p_level => C_LEVEL_ERROR
51388 ,p_module => l_log_module);
51389 END IF;
51390 END IF;
51391 END IF;
51392 --
51393 --
51394 ------------------------------------------------------------------------------------------------
51395 -- 4219869 Business Flow
51396 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51397 -- Prior Entry. Currently, the following code is always generated.
51398 ------------------------------------------------------------------------------------------------
51399 -- No ValidateCurrentLine for business flow method of Prior Entry
51400
51401 ------------------------------------------------------------------------------------
51402 -- 4219869 Business Flow
51403 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51404 ------------------------------------------------------------------------------------
51405 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51406
51407 ----------------------------------------------------------------------------------
51408 -- 4219869 Business Flow
51409 -- Update journal entry status -- Need to generate this within IF <condition>
51410 ----------------------------------------------------------------------------------
51411 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51412 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51413 ,p_balance_type_code => l_balance_type_code
51414 );
51415
51416 -------------------------------------------------------------------------------------------
51417 -- 4262811 - Generate the Accrual Reversal lines
51418 -------------------------------------------------------------------------------------------
51419 BEGIN
51420 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51421 (g_array_event(p_event_id).array_value_num('header_index'));
51422 IF l_acc_rev_flag IS NULL THEN
51423 l_acc_rev_flag := 'N';
51424 END IF;
51425 EXCEPTION
51426 WHEN OTHERS THEN
51427 l_acc_rev_flag := 'N';
51428 END;
51429 --
51430 IF (l_acc_rev_flag = 'Y') THEN
51431
51432 -- 4645092 ------------------------------------------------------------------------------
51433 -- To allow MPA report to determine if it should generate report process
51434 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51435 ------------------------------------------------------------------------------------------
51436
51437 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51438 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51439
51440 --
51441 -- Update the line information that should be overwritten
51442 --
51443 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51444 p_header_num => 1);
51445 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
51446
51447 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51448
51449 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
51453 --
51450 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51451 END IF;
51452
51454 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51455 --
51456 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51457 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
51458 ELSE
51459 ---------------------------------------------------------------------------------------------------
51460 -- 4262811a Switch Sign
51461 ---------------------------------------------------------------------------------------------------
51462 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
51463 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51464 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51465 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51466 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51467 -- 5132302
51468 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51469 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51470
51471 END IF;
51472
51473 -- 4955764
51474 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51475 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51476
51477
51478 XLA_AE_LINES_PKG.ValidateCurrentLine;
51479 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51480
51481 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51482 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51483 ,p_balance_type_code => l_balance_type_code);
51484
51485 END IF;
51486
51487 -----------------------------------------------------------------------------------------
51488 -- 4262811 Multiperiod Accounting
51489 -----------------------------------------------------------------------------------------
51490 -- No MPA option is assigned.
51491
51492
51493 END IF;
51494 END IF;
51495 --
51496
51497 --
51498 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51499 trace
51500 (p_msg => 'END of AcctLineType_103'
51501 ,p_level => C_LEVEL_PROCEDURE
51502 ,p_module => l_log_module);
51503 END IF;
51504 --
51505 EXCEPTION
51506 WHEN xla_exceptions_pkg.application_exception THEN
51507 RAISE;
51508 WHEN OTHERS THEN
51509 xla_exceptions_pkg.raise_message
51510 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_103');
51511 END AcctLineType_103;
51512 --
51513
51514 ---------------------------------------
51515 --
51516 -- PRIVATE FUNCTION
51517 -- AcctLineType_104
51518 --
51519 ---------------------------------------
51520 PROCEDURE AcctLineType_104 (
51521 p_application_id IN NUMBER
51522 ,p_event_id IN NUMBER
51523 ,p_calculate_acctd_flag IN VARCHAR2
51524 ,p_calculate_g_l_flag IN VARCHAR2
51525 ,p_actual_flag IN OUT VARCHAR2
51526 ,p_balance_type_code OUT VARCHAR2
51527 ,p_gain_or_loss_ref OUT VARCHAR2
51528
51529 --Budget Code Combination ID
51530 , p_source_2 IN NUMBER
51531 --Cost CCID
51532 , p_source_3 IN NUMBER
51533 --Cost Clearing CCID
51534 , p_source_6 IN NUMBER
51535 --Reversing Line Flag
51536 , p_source_22 IN VARCHAR2
51537 --Actual Upgrade Credit Accounting Class
51538 , p_source_23 IN VARCHAR2
51539 --Entered Currency Code
51540 , p_source_25 IN VARCHAR2
51541 --Exchange Rate Date
51542 , p_source_27 IN DATE
51543 --Exchange Rate
51544 , p_source_28 IN NUMBER
51545 --Exchange Rate Type
51546 , p_source_29 IN VARCHAR2
51547 --Actual Upgrade Debit Accounting Class
51548 , p_source_30 IN VARCHAR2
51549 --Use Actuals Upgrade Attributes Flag
51550 , p_source_31 IN VARCHAR2
51551 --Expenditure Item ID
51552 , p_source_32 IN NUMBER
51553 --Cost Distribution Line Number
51554 , p_source_33 IN NUMBER
51555 --Line Type
51556 , p_source_34 IN VARCHAR2
51557 , p_source_34_meaning IN VARCHAR2
51558 --Reversed Line Number
51559 , p_source_35 IN NUMBER
51560 --System Linkage Function
51561 , p_source_37 IN VARCHAR2
51562 --Entered Burdened Cost
51563 , p_source_44 IN NUMBER
51564 --Accounted Burdened Cost
51565 , p_source_45 IN NUMBER
51566 --Encumbrance Amount
51567 , p_source_46 IN NUMBER
51568 --Project Encumbrance Applied to Application Identifier
51569 , p_source_47 IN NUMBER
51570 --Project Encumbrance Applied to Distribution Type
51571 , p_source_48 IN VARCHAR2
51572 --Project Encumbrance Applied to Entity Code
51573 , p_source_49 IN VARCHAR2
51574 --Project Encumbrance Applied to First Distribution ID
51575 , p_source_50 IN NUMBER
51576 --Project Encumbrance Applied to First System Transaction ID
51577 , p_source_51 IN NUMBER
51578 --Project Encumbrance Applied to Second Distribution ID
51579 , p_source_52 IN VARCHAR2
51580 --Encumbrance Upgrade Debit Accounting Class
51581 , p_source_54 IN VARCHAR2
51582 --Use Encumbrance Upgrade Attributes Flag
51583 , p_source_55 IN VARCHAR2
51587 , p_source_57 IN NUMBER
51584 --Encumbrance Type ID
51585 , p_source_56 IN NUMBER
51586 --Project Encumbrance Type ID
51588 --Contingent Worker Timecard Flag
51589 , p_source_73 IN VARCHAR2
51590 --Encumbrance Accounting Enabled Flag
51591 , p_source_86 IN VARCHAR2
51592 --Liquidate Encumbrance Flag
51593 , p_source_87 IN VARCHAR2
51594 )
51595 IS
51596
51597 l_component_type VARCHAR2(80);
51598 l_component_code VARCHAR2(30);
51599 l_component_type_code VARCHAR2(1);
51600 l_component_appl_id INTEGER;
51601 l_amb_context_code VARCHAR2(30);
51602 l_entity_code VARCHAR2(30);
51603 l_event_class_code VARCHAR2(30);
51604 l_ae_header_id NUMBER;
51605 l_event_type_code VARCHAR2(30);
51606 l_line_definition_code VARCHAR2(30);
51607 l_line_definition_owner_code VARCHAR2(1);
51608 --
51609 -- adr variables
51610 l_segment VARCHAR2(30);
51611 l_ccid NUMBER;
51612 l_adr_transaction_coa_id NUMBER;
51613 l_adr_accounting_coa_id NUMBER;
51614 l_adr_flexfield_segment_code VARCHAR2(30);
51615 l_adr_flex_value_set_id NUMBER;
51616 l_adr_value_type_code VARCHAR2(30);
51617 l_adr_value_combination_id NUMBER;
51618 l_adr_value_segment_code VARCHAR2(30);
51619
51620 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51621 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51622 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51623 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51624
51625 -- 4262811 Variables ------------------------------------------------------------------------------------------
51626 l_entered_amt_idx NUMBER;
51627 l_accted_amt_idx NUMBER;
51628 l_acc_rev_flag VARCHAR2(1);
51629 l_accrual_line_num NUMBER;
51630 l_tmp_amt NUMBER;
51631 l_acc_rev_natural_side_code VARCHAR2(1);
51632
51633 l_num_entries NUMBER;
51634 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51635 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51636 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51637 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51638 l_recog_line_1 NUMBER;
51639 l_recog_line_2 NUMBER;
51640
51641 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51642 l_bflow_applied_to_amt NUMBER; -- 5132302
51643 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51644
51645 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51646
51647 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51648 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51649
51650 ---------------------------------------------------------------------------------------------------------------
51651
51652
51653 --
51654 -- bulk performance
51655 --
51656 l_balance_type_code VARCHAR2(1);
51657 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51658 l_log_module VARCHAR2(240);
51659
51660 --
51661 -- Upgrade strategy
51662 --
51663 l_actual_upg_option VARCHAR2(1);
51664 l_enc_upg_option VARCHAR2(1);
51665
51666 --
51667 BEGIN
51668 --
51669 IF g_log_enabled THEN
51670 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
51671 END IF;
51672 --
51673 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51674
51675 trace
51676 (p_msg => 'BEGIN of AcctLineType_104'
51677 ,p_level => C_LEVEL_PROCEDURE
51678 ,p_module => l_log_module);
51679
51680 END IF;
51681 --
51682 l_component_type := 'AMB_JLT';
51683 l_component_code := 'REL_PROJ_ENC';
51684 l_component_type_code := 'S';
51685 l_component_appl_id := 275;
51686 l_amb_context_code := 'DEFAULT';
51687 l_entity_code := 'EXPENDITURES';
51688 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
51689 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
51690 l_line_definition_owner_code := 'S';
51691 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
51692 --
51693 l_balance_type_code := 'E';
51694 l_segment := NULL;
51695 l_ccid := NULL;
51696 l_adr_transaction_coa_id := NULL;
51697 l_adr_accounting_coa_id := NULL;
51698 l_adr_flexfield_segment_code := NULL;
51699 l_adr_flex_value_set_id := NULL;
51700 l_adr_value_type_code := NULL;
51701 l_adr_value_combination_id := NULL;
51702 l_adr_value_segment_code := NULL;
51703
51704 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
51705 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
51706 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51707 l_budgetary_control_flag := 'N';
51708
51709 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51710 l_bflow_applied_to_amt := NULL; -- 5132302
51711 l_entered_amt_idx := NULL; -- 4262811
51712 l_accted_amt_idx := NULL; -- 4262811
51713 l_acc_rev_flag := NULL; -- 4262811
51714 l_accrual_line_num := NULL; -- 4262811
51715 l_tmp_amt := NULL; -- 4262811
51716 --
51717
51718 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51719 l_balance_type_code <> 'B' THEN
51723 ') = 'Y' AND
51720 IF NVL(p_source_34,'
51721 ') = 'D' AND
51722 NVL(p_source_86,'
51724 ((NVL(p_source_37,'
51725 ') = 'ST' OR
51726 NVL(p_source_37,'
51727 ') = 'OT' AND
51728 NVL(p_source_73,'
51729 ') = 'Y') OR
51730 NVL(p_source_37,'
51731 ') = 'VI') AND
51732 NVL(p_source_87,'
51733 ') = 'Y'
51734 THEN
51735
51736 --
51737 XLA_AE_LINES_PKG.SetNewLine;
51738
51739 p_balance_type_code := l_balance_type_code;
51740 -- set the flag so later we will know whether the gain loss line needs to be created
51741
51742 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51743 p_actual_flag :='A';
51744 END IF;
51745
51746 --
51747 -- bulk performance
51748 --
51749 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51750 p_header_num => 0); -- 4262811
51751 --
51752 -- set accounting line options
51753 --
51754 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51755 p_natural_side_code => 'C'
51756 , p_gain_or_loss_flag => 'N'
51757 , p_gl_transfer_mode_code => 'S'
51758 , p_acct_entry_type_code => 'E'
51759 , p_switch_side_flag => 'N'
51760 , p_merge_duplicate_code => 'N'
51761 );
51762 --
51763 l_acc_rev_natural_side_code := 'D'; -- 4262811
51764 --
51765 --
51766 -- set accounting line type info
51767 --
51768 xla_ae_lines_pkg.SetAcctLineType
51769 (p_component_type => l_component_type
51770 ,p_event_type_code => l_event_type_code
51771 ,p_line_definition_owner_code => l_line_definition_owner_code
51772 ,p_line_definition_code => l_line_definition_code
51773 ,p_accounting_line_code => l_component_code
51774 ,p_accounting_line_type_code => l_component_type_code
51775 ,p_accounting_line_appl_id => l_component_appl_id
51776 ,p_amb_context_code => l_amb_context_code
51777 ,p_entity_code => l_entity_code
51778 ,p_event_class_code => l_event_class_code);
51779 --
51780 -- set accounting class
51781 --
51782 xla_ae_lines_pkg.SetAcctClass(
51783 p_accounting_class_code => 'PA_BUDGET_ENC'
51784 , p_ae_header_id => l_ae_header_id
51785 );
51786
51787 --
51788 -- set rounding class
51789 --
51790 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51791 'PA_BUDGET_ENC';
51792
51793 --
51794 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51795 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51796 --
51797 -- bulk performance
51798 --
51799 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51800
51801 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51802 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51803
51804 -- 4955764
51805 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51806 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51807
51808 -- 4458381 Public Sector Enh
51809
51810 --
51811 -- set accounting attributes for the line type
51812 --
51813 l_entered_amt_idx := 35;
51814 l_accted_amt_idx := 37;
51815 l_bflow_applied_to_amt_idx := 19; -- 5132302
51816 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51817 l_rec_acct_attrs.array_char_value(1) := p_source_22;
51818 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
51819 l_rec_acct_attrs.array_char_value(2) := p_source_23;
51820 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
51821 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
51822 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
51823 l_rec_acct_attrs.array_num_value(4) := p_source_44;
51824 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
51825 l_rec_acct_attrs.array_char_value(5) := p_source_25;
51826 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
51827 l_rec_acct_attrs.array_num_value(6) := p_source_45;
51828 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
51829 l_rec_acct_attrs.array_date_value(7) := p_source_27;
51830 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
51831 l_rec_acct_attrs.array_num_value(8) := p_source_28;
51832 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
51833 l_rec_acct_attrs.array_char_value(9) := p_source_29;
51834 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
51835 l_rec_acct_attrs.array_char_value(10) := p_source_30;
51836 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
51837 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
51838 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
51839 l_rec_acct_attrs.array_num_value(12) := p_source_44;
51840 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
51841 l_rec_acct_attrs.array_char_value(13) := p_source_25;
51842 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
51843 l_rec_acct_attrs.array_num_value(14) := p_source_45;
51844 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
51845 l_rec_acct_attrs.array_date_value(15) := p_source_27;
51846 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
51850 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
51847 l_rec_acct_attrs.array_num_value(16) := p_source_28;
51848 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
51849 l_rec_acct_attrs.array_char_value(17) := p_source_29;
51851 l_rec_acct_attrs.array_char_value(18) := p_source_31;
51852 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
51853 l_rec_acct_attrs.array_num_value(19) := p_source_46;
51854 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
51855 l_rec_acct_attrs.array_num_value(20) := p_source_47;
51856 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51857 l_rec_acct_attrs.array_char_value(21) := p_source_48;
51858 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
51859 l_rec_acct_attrs.array_char_value(22) := p_source_49;
51860 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
51861 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
51862 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51863 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
51864 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
51865 l_rec_acct_attrs.array_char_value(25) := p_source_52;
51866 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
51867 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
51868 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
51869 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
51870 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
51871 l_rec_acct_attrs.array_char_value(28) := p_source_34;
51872 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
51873 l_rec_acct_attrs.array_char_value(29) := p_source_54;
51874 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
51875 l_rec_acct_attrs.array_num_value(30) := p_source_2;
51876 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
51877 l_rec_acct_attrs.array_num_value(31) := p_source_46;
51878 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
51879 l_rec_acct_attrs.array_char_value(32) :=
51880 xla_ae_sources_pkg.GetSystemSourceChar(
51881 p_source_code => 'XLA_CURRENCY_CODE'
51882 , p_source_type_code => 'Y'
51883 , p_source_application_id => 602
51884 );
51885 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
51886 l_rec_acct_attrs.array_num_value(33) := p_source_46;
51887 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
51888 l_rec_acct_attrs.array_char_value(34) := p_source_55;
51889 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
51890 l_rec_acct_attrs.array_num_value(35) := p_source_46;
51891 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
51892 l_rec_acct_attrs.array_char_value(36) := p_source_25;
51893 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
51894 l_rec_acct_attrs.array_num_value(37) := p_source_46;
51895 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
51896 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
51897 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
51898 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
51899 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
51900 l_rec_acct_attrs.array_char_value(40) := p_source_34;
51901 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
51902 l_rec_acct_attrs.array_num_value(41) := p_source_56;
51903 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
51904 l_rec_acct_attrs.array_num_value(42) := p_source_57;
51905
51906 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51907 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51908
51909 ---------------------------------------------------------------------------------------------------------------
51910 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51911 ---------------------------------------------------------------------------------------------------------------
51912 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51913
51914 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51915 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51916
51917 IF xla_accounting_cache_pkg.GetValueChar
51918 (p_source_code => 'LEDGER_CATEGORY_CODE'
51919 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51920 AND l_bflow_method_code = 'PRIOR_ENTRY'
51921 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51922 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51923 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51924 )
51925 THEN
51926 xla_ae_lines_pkg.BflowUpgEntry
51927 (p_business_method_code => l_bflow_method_code
51928 ,p_business_class_code => l_bflow_class_code
51929 ,p_balance_type => l_balance_type_code);
51930 ELSE
51931 NULL;
51932 XLA_AE_LINES_PKG.business_flow_validation(
51933 p_business_method_code => l_bflow_method_code
51934 ,p_business_class_code => l_bflow_class_code
51935 ,p_inherit_description_flag => l_inherit_desc_flag);
51936 END IF;
51937
51938 --
51939 -- call analytical criteria
51940 --
51941 -- Inherited Analytical Criteria for business flow method of Prior Entry.
51942 --
51943 -- call description
51944 --
51948 -- Bug 4922099
51945 -- No description or it is inherited.
51946 --
51947 -- call ADRs
51949 --
51950 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51951 (NVL(l_actual_upg_option, 'N') = 'O') OR
51952 (NVL(l_enc_upg_option, 'N') = 'O')
51953 )
51954 THEN
51955 NULL;
51956 --
51957 --
51958
51959 --
51960 --
51961 END IF;
51962 --
51963 -- Bug 4922099
51964 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51965 (NVL(l_enc_upg_option, 'N') = 'O')
51966 ) AND
51967 (l_bflow_method_code = 'PRIOR_ENTRY')
51968 )
51969 THEN
51970 IF
51971 --
51972 1 = 1
51973 --
51974 THEN
51975 xla_accounting_err_pkg.build_message
51976 (p_appli_s_name => 'XLA'
51977 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51978 ,p_token_1 => 'LINE_NUMBER'
51979 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51980 ,p_token_2 => 'LINE_TYPE_NAME'
51981 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51982 l_component_type
51983 ,l_component_code
51984 ,l_component_type_code
51985 ,l_component_appl_id
51986 ,l_amb_context_code
51987 ,l_entity_code
51988 ,l_event_class_code
51989 )
51990 ,p_token_3 => 'OWNER'
51991 ,p_value_3 => xla_lookups_pkg.get_meaning(
51992 p_lookup_type => 'XLA_OWNER_TYPE'
51993 ,p_lookup_code => l_component_type_code
51994 )
51995 ,p_token_4 => 'PRODUCT_NAME'
51996 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51997 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51998 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51999 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52000 ,p_ae_header_id => NULL
52001 );
52002
52003 IF (C_LEVEL_ERROR>= g_log_level) THEN
52004 trace
52005 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52006 ,p_level => C_LEVEL_ERROR
52007 ,p_module => l_log_module);
52008 END IF;
52009 END IF;
52010 END IF;
52011 --
52012 --
52013 ------------------------------------------------------------------------------------------------
52014 -- 4219869 Business Flow
52015 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52016 -- Prior Entry. Currently, the following code is always generated.
52017 ------------------------------------------------------------------------------------------------
52018 -- No ValidateCurrentLine for business flow method of Prior Entry
52019
52020 ------------------------------------------------------------------------------------
52021 -- 4219869 Business Flow
52022 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52023 ------------------------------------------------------------------------------------
52024 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52025
52026 ----------------------------------------------------------------------------------
52027 -- 4219869 Business Flow
52028 -- Update journal entry status -- Need to generate this within IF <condition>
52029 ----------------------------------------------------------------------------------
52030 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52031 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52032 ,p_balance_type_code => l_balance_type_code
52033 );
52034
52035 -------------------------------------------------------------------------------------------
52036 -- 4262811 - Generate the Accrual Reversal lines
52037 -------------------------------------------------------------------------------------------
52038 BEGIN
52039 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52040 (g_array_event(p_event_id).array_value_num('header_index'));
52041 IF l_acc_rev_flag IS NULL THEN
52042 l_acc_rev_flag := 'N';
52043 END IF;
52044 EXCEPTION
52045 WHEN OTHERS THEN
52046 l_acc_rev_flag := 'N';
52047 END;
52048 --
52049 IF (l_acc_rev_flag = 'Y') THEN
52050
52051 -- 4645092 ------------------------------------------------------------------------------
52052 -- To allow MPA report to determine if it should generate report process
52053 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52057 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52054 ------------------------------------------------------------------------------------------
52055
52056 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52058
52059 --
52060 -- Update the line information that should be overwritten
52061 --
52062 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52063 p_header_num => 1);
52064 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52065
52066 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52067
52068 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52069 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52070 END IF;
52071
52072 --
52073 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52074 --
52075 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52076 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52077 ELSE
52078 ---------------------------------------------------------------------------------------------------
52079 -- 4262811a Switch Sign
52080 ---------------------------------------------------------------------------------------------------
52081 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52082 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52083 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52084 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52085 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52086 -- 5132302
52087 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52088 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52089
52090 END IF;
52091
52092 -- 4955764
52093 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52094 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52095
52096
52097 XLA_AE_LINES_PKG.ValidateCurrentLine;
52098 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52099
52100 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52101 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52102 ,p_balance_type_code => l_balance_type_code);
52103
52104 END IF;
52105
52106 -----------------------------------------------------------------------------------------
52107 -- 4262811 Multiperiod Accounting
52108 -----------------------------------------------------------------------------------------
52109 -- No MPA option is assigned.
52110
52111
52112 END IF;
52113 END IF;
52114 --
52115
52116 --
52117 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52118 trace
52119 (p_msg => 'END of AcctLineType_104'
52120 ,p_level => C_LEVEL_PROCEDURE
52121 ,p_module => l_log_module);
52122 END IF;
52123 --
52124 EXCEPTION
52125 WHEN xla_exceptions_pkg.application_exception THEN
52126 RAISE;
52127 WHEN OTHERS THEN
52128 xla_exceptions_pkg.raise_message
52129 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_104');
52130 END AcctLineType_104;
52131 --
52132
52133 ---------------------------------------
52134 --
52135 -- PRIVATE FUNCTION
52136 -- AcctLineType_105
52137 --
52138 ---------------------------------------
52139 PROCEDURE AcctLineType_105 (
52140 p_application_id IN NUMBER
52141 ,p_event_id IN NUMBER
52142 ,p_calculate_acctd_flag IN VARCHAR2
52143 ,p_calculate_g_l_flag IN VARCHAR2
52144 ,p_actual_flag IN OUT VARCHAR2
52145 ,p_balance_type_code OUT VARCHAR2
52146 ,p_gain_or_loss_ref OUT VARCHAR2
52147
52148 --Budget Code Combination ID
52149 , p_source_2 IN NUMBER
52150 --Cost CCID
52151 , p_source_3 IN NUMBER
52152 --Cost Clearing CCID
52153 , p_source_6 IN NUMBER
52154 --Reversing Line Flag
52155 , p_source_22 IN VARCHAR2
52156 --Actual Upgrade Credit Accounting Class
52157 , p_source_23 IN VARCHAR2
52158 --Entered Currency Code
52159 , p_source_25 IN VARCHAR2
52160 --Exchange Rate Date
52161 , p_source_27 IN DATE
52162 --Exchange Rate
52163 , p_source_28 IN NUMBER
52164 --Exchange Rate Type
52165 , p_source_29 IN VARCHAR2
52166 --Actual Upgrade Debit Accounting Class
52167 , p_source_30 IN VARCHAR2
52168 --Use Actuals Upgrade Attributes Flag
52169 , p_source_31 IN VARCHAR2
52170 --Expenditure Item ID
52171 , p_source_32 IN NUMBER
52172 --Cost Distribution Line Number
52173 , p_source_33 IN NUMBER
52174 --Line Type
52175 , p_source_34 IN VARCHAR2
52176 , p_source_34_meaning IN VARCHAR2
52177 --Reversed Line Number
52178 , p_source_35 IN NUMBER
52179 --System Linkage Function
52180 , p_source_37 IN VARCHAR2
52181 --Entered Burdened Cost
52182 , p_source_44 IN NUMBER
52183 --Accounted Burdened Cost
52184 , p_source_45 IN NUMBER
52185 --Encumbrance Amount
52186 , p_source_46 IN NUMBER
52190 , p_source_48 IN VARCHAR2
52187 --Project Encumbrance Applied to Application Identifier
52188 , p_source_47 IN NUMBER
52189 --Project Encumbrance Applied to Distribution Type
52191 --Project Encumbrance Applied to Entity Code
52192 , p_source_49 IN VARCHAR2
52193 --Project Encumbrance Applied to First Distribution ID
52194 , p_source_50 IN NUMBER
52195 --Project Encumbrance Applied to First System Transaction ID
52196 , p_source_51 IN NUMBER
52197 --Project Encumbrance Applied to Second Distribution ID
52198 , p_source_52 IN VARCHAR2
52199 --Encumbrance Upgrade Credit Accounting Class
52200 , p_source_53 IN VARCHAR2
52201 --Encumbrance Upgrade Debit Accounting Class
52202 , p_source_54 IN VARCHAR2
52203 --Use Encumbrance Upgrade Attributes Flag
52204 , p_source_55 IN VARCHAR2
52205 --Encumbrance Type ID
52206 , p_source_56 IN NUMBER
52207 --Project Encumbrance Type ID
52208 , p_source_57 IN NUMBER
52209 --Encumbrance Accounting Enabled Flag
52210 , p_source_86 IN VARCHAR2
52211 --Liquidate Encumbrance Flag
52212 , p_source_87 IN VARCHAR2
52213 )
52214 IS
52215
52216 l_component_type VARCHAR2(80);
52217 l_component_code VARCHAR2(30);
52218 l_component_type_code VARCHAR2(1);
52219 l_component_appl_id INTEGER;
52220 l_amb_context_code VARCHAR2(30);
52221 l_entity_code VARCHAR2(30);
52222 l_event_class_code VARCHAR2(30);
52223 l_ae_header_id NUMBER;
52224 l_event_type_code VARCHAR2(30);
52225 l_line_definition_code VARCHAR2(30);
52226 l_line_definition_owner_code VARCHAR2(1);
52227 --
52228 -- adr variables
52229 l_segment VARCHAR2(30);
52230 l_ccid NUMBER;
52231 l_adr_transaction_coa_id NUMBER;
52232 l_adr_accounting_coa_id NUMBER;
52233 l_adr_flexfield_segment_code VARCHAR2(30);
52234 l_adr_flex_value_set_id NUMBER;
52235 l_adr_value_type_code VARCHAR2(30);
52236 l_adr_value_combination_id NUMBER;
52237 l_adr_value_segment_code VARCHAR2(30);
52238
52239 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52240 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52241 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52242 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52243
52244 -- 4262811 Variables ------------------------------------------------------------------------------------------
52245 l_entered_amt_idx NUMBER;
52246 l_accted_amt_idx NUMBER;
52247 l_acc_rev_flag VARCHAR2(1);
52248 l_accrual_line_num NUMBER;
52249 l_tmp_amt NUMBER;
52250 l_acc_rev_natural_side_code VARCHAR2(1);
52251
52252 l_num_entries NUMBER;
52253 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52254 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52255 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52256 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52257 l_recog_line_1 NUMBER;
52258 l_recog_line_2 NUMBER;
52259
52260 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52261 l_bflow_applied_to_amt NUMBER; -- 5132302
52262 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52263
52264 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52265
52266 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52267 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52268
52269 ---------------------------------------------------------------------------------------------------------------
52270
52271
52272 --
52273 -- bulk performance
52274 --
52275 l_balance_type_code VARCHAR2(1);
52276 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52277 l_log_module VARCHAR2(240);
52278
52279 --
52280 -- Upgrade strategy
52281 --
52282 l_actual_upg_option VARCHAR2(1);
52283 l_enc_upg_option VARCHAR2(1);
52284
52285 --
52286 BEGIN
52287 --
52288 IF g_log_enabled THEN
52289 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
52290 END IF;
52291 --
52292 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52293
52294 trace
52295 (p_msg => 'BEGIN of AcctLineType_105'
52296 ,p_level => C_LEVEL_PROCEDURE
52297 ,p_module => l_log_module);
52298
52299 END IF;
52300 --
52301 l_component_type := 'AMB_JLT';
52302 l_component_code := 'REL_PROJ_ENC';
52303 l_component_type_code := 'S';
52304 l_component_appl_id := 275;
52305 l_amb_context_code := 'DEFAULT';
52306 l_entity_code := 'EXPENDITURES';
52307 l_event_class_code := 'BURDEN_COST';
52308 l_event_type_code := 'BURDEN_COST_ALL';
52309 l_line_definition_owner_code := 'S';
52310 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
52311 --
52312 l_balance_type_code := 'E';
52313 l_segment := NULL;
52314 l_ccid := NULL;
52315 l_adr_transaction_coa_id := NULL;
52316 l_adr_accounting_coa_id := NULL;
52317 l_adr_flexfield_segment_code := NULL;
52318 l_adr_flex_value_set_id := NULL;
52319 l_adr_value_type_code := NULL;
52320 l_adr_value_combination_id := NULL;
52321 l_adr_value_segment_code := NULL;
52322
52323 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
52327
52324 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
52325 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52326 l_budgetary_control_flag := 'N';
52328 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52329 l_bflow_applied_to_amt := NULL; -- 5132302
52330 l_entered_amt_idx := NULL; -- 4262811
52331 l_accted_amt_idx := NULL; -- 4262811
52332 l_acc_rev_flag := NULL; -- 4262811
52333 l_accrual_line_num := NULL; -- 4262811
52334 l_tmp_amt := NULL; -- 4262811
52335 --
52336
52337 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52338 l_balance_type_code <> 'B' THEN
52339 IF NVL(p_source_34,'
52340 ') = 'R' AND
52341 NVL(p_source_86,'
52342 ') = 'Y' AND
52343 NVL(p_source_37,'
52344 ') = 'BTC' AND
52345 NVL(p_source_87,'
52346 ') = 'Y'
52347 THEN
52348
52349 --
52350 XLA_AE_LINES_PKG.SetNewLine;
52351
52352 p_balance_type_code := l_balance_type_code;
52353 -- set the flag so later we will know whether the gain loss line needs to be created
52354
52355 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52356 p_actual_flag :='A';
52357 END IF;
52358
52359 --
52360 -- bulk performance
52361 --
52362 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52363 p_header_num => 0); -- 4262811
52364 --
52365 -- set accounting line options
52366 --
52367 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52368 p_natural_side_code => 'C'
52369 , p_gain_or_loss_flag => 'N'
52370 , p_gl_transfer_mode_code => 'S'
52371 , p_acct_entry_type_code => 'E'
52372 , p_switch_side_flag => 'N'
52373 , p_merge_duplicate_code => 'N'
52374 );
52375 --
52376 l_acc_rev_natural_side_code := 'D'; -- 4262811
52377 --
52378 --
52379 -- set accounting line type info
52380 --
52381 xla_ae_lines_pkg.SetAcctLineType
52382 (p_component_type => l_component_type
52383 ,p_event_type_code => l_event_type_code
52384 ,p_line_definition_owner_code => l_line_definition_owner_code
52385 ,p_line_definition_code => l_line_definition_code
52386 ,p_accounting_line_code => l_component_code
52387 ,p_accounting_line_type_code => l_component_type_code
52388 ,p_accounting_line_appl_id => l_component_appl_id
52389 ,p_amb_context_code => l_amb_context_code
52390 ,p_entity_code => l_entity_code
52391 ,p_event_class_code => l_event_class_code);
52392 --
52393 -- set accounting class
52394 --
52395 xla_ae_lines_pkg.SetAcctClass(
52396 p_accounting_class_code => 'PA_BUDGET_ENC'
52397 , p_ae_header_id => l_ae_header_id
52398 );
52399
52400 --
52401 -- set rounding class
52402 --
52403 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52404 'PA_BUDGET_ENC';
52405
52406 --
52407 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52408 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52409 --
52410 -- bulk performance
52411 --
52412 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52413
52414 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52415 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52416
52417 -- 4955764
52418 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52419 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52420
52421 -- 4458381 Public Sector Enh
52422
52423 --
52424 -- set accounting attributes for the line type
52425 --
52426 l_entered_amt_idx := 40;
52427 l_accted_amt_idx := 42;
52428 l_bflow_applied_to_amt_idx := 19; -- 5132302
52429 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52430 l_rec_acct_attrs.array_char_value(1) := p_source_22;
52431 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
52432 l_rec_acct_attrs.array_char_value(2) := p_source_23;
52433 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
52434 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
52435 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
52436 l_rec_acct_attrs.array_num_value(4) := p_source_44;
52437 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
52438 l_rec_acct_attrs.array_char_value(5) := p_source_25;
52439 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
52440 l_rec_acct_attrs.array_num_value(6) := p_source_45;
52441 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
52442 l_rec_acct_attrs.array_date_value(7) := p_source_27;
52443 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
52444 l_rec_acct_attrs.array_num_value(8) := p_source_28;
52445 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
52446 l_rec_acct_attrs.array_char_value(9) := p_source_29;
52447 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
52448 l_rec_acct_attrs.array_char_value(10) := p_source_30;
52449 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
52450 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
52454 l_rec_acct_attrs.array_char_value(13) := p_source_25;
52451 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
52452 l_rec_acct_attrs.array_num_value(12) := p_source_44;
52453 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
52455 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
52456 l_rec_acct_attrs.array_num_value(14) := p_source_45;
52457 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
52458 l_rec_acct_attrs.array_date_value(15) := p_source_27;
52459 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
52460 l_rec_acct_attrs.array_num_value(16) := p_source_28;
52461 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
52462 l_rec_acct_attrs.array_char_value(17) := p_source_29;
52463 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
52464 l_rec_acct_attrs.array_char_value(18) := p_source_31;
52465 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
52466 l_rec_acct_attrs.array_num_value(19) := p_source_46;
52467 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
52468 l_rec_acct_attrs.array_num_value(20) := p_source_47;
52469 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52470 l_rec_acct_attrs.array_char_value(21) := p_source_48;
52471 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
52472 l_rec_acct_attrs.array_char_value(22) := p_source_49;
52473 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
52474 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
52475 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52476 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
52477 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
52478 l_rec_acct_attrs.array_char_value(25) := p_source_52;
52479 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
52480 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
52481 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
52482 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
52483 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
52484 l_rec_acct_attrs.array_char_value(28) := p_source_34;
52485 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
52486 l_rec_acct_attrs.array_char_value(29) := p_source_53;
52487 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
52488 l_rec_acct_attrs.array_num_value(30) := p_source_2;
52489 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
52490 l_rec_acct_attrs.array_num_value(31) := p_source_46;
52491 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
52492 l_rec_acct_attrs.array_char_value(32) := p_source_25;
52493 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
52494 l_rec_acct_attrs.array_num_value(33) := p_source_46;
52495 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
52496 l_rec_acct_attrs.array_char_value(34) := p_source_54;
52497 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
52498 l_rec_acct_attrs.array_num_value(35) := p_source_2;
52499 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
52500 l_rec_acct_attrs.array_num_value(36) := p_source_46;
52501 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
52502 l_rec_acct_attrs.array_char_value(37) := p_source_25;
52503 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
52504 l_rec_acct_attrs.array_num_value(38) := p_source_46;
52505 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
52506 l_rec_acct_attrs.array_char_value(39) := p_source_55;
52507 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
52508 l_rec_acct_attrs.array_num_value(40) := p_source_46;
52509 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
52510 l_rec_acct_attrs.array_char_value(41) := p_source_25;
52511 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
52512 l_rec_acct_attrs.array_num_value(42) := p_source_46;
52513 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
52514 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
52515 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
52516 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
52517 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
52518 l_rec_acct_attrs.array_char_value(45) := p_source_34;
52519 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
52520 l_rec_acct_attrs.array_num_value(46) := p_source_56;
52521 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
52522 l_rec_acct_attrs.array_num_value(47) := p_source_57;
52523
52524 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52525 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52526
52527 ---------------------------------------------------------------------------------------------------------------
52528 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52529 ---------------------------------------------------------------------------------------------------------------
52530 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52531
52532 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52533 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52534
52535 IF xla_accounting_cache_pkg.GetValueChar
52536 (p_source_code => 'LEDGER_CATEGORY_CODE'
52537 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52538 AND l_bflow_method_code = 'PRIOR_ENTRY'
52542 )
52539 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52540 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52541 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52543 THEN
52544 xla_ae_lines_pkg.BflowUpgEntry
52545 (p_business_method_code => l_bflow_method_code
52546 ,p_business_class_code => l_bflow_class_code
52547 ,p_balance_type => l_balance_type_code);
52548 ELSE
52549 NULL;
52550 XLA_AE_LINES_PKG.business_flow_validation(
52551 p_business_method_code => l_bflow_method_code
52552 ,p_business_class_code => l_bflow_class_code
52553 ,p_inherit_description_flag => l_inherit_desc_flag);
52554 END IF;
52555
52556 --
52557 -- call analytical criteria
52558 --
52559 -- Inherited Analytical Criteria for business flow method of Prior Entry.
52560 --
52561 -- call description
52562 --
52563 -- No description or it is inherited.
52564 --
52565 -- call ADRs
52566 -- Bug 4922099
52567 --
52568 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52569 (NVL(l_actual_upg_option, 'N') = 'O') OR
52570 (NVL(l_enc_upg_option, 'N') = 'O')
52571 )
52572 THEN
52573 NULL;
52574 --
52575 --
52576
52577 --
52578 --
52579 END IF;
52580 --
52581 -- Bug 4922099
52582 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52583 (NVL(l_enc_upg_option, 'N') = 'O')
52584 ) AND
52585 (l_bflow_method_code = 'PRIOR_ENTRY')
52586 )
52587 THEN
52588 IF
52589 --
52590 1 = 1
52591 --
52592 THEN
52593 xla_accounting_err_pkg.build_message
52594 (p_appli_s_name => 'XLA'
52595 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52596 ,p_token_1 => 'LINE_NUMBER'
52597 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52598 ,p_token_2 => 'LINE_TYPE_NAME'
52599 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52600 l_component_type
52601 ,l_component_code
52602 ,l_component_type_code
52603 ,l_component_appl_id
52604 ,l_amb_context_code
52605 ,l_entity_code
52606 ,l_event_class_code
52607 )
52608 ,p_token_3 => 'OWNER'
52609 ,p_value_3 => xla_lookups_pkg.get_meaning(
52610 p_lookup_type => 'XLA_OWNER_TYPE'
52611 ,p_lookup_code => l_component_type_code
52612 )
52613 ,p_token_4 => 'PRODUCT_NAME'
52614 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52615 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52616 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52617 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52618 ,p_ae_header_id => NULL
52619 );
52620
52621 IF (C_LEVEL_ERROR>= g_log_level) THEN
52622 trace
52623 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52624 ,p_level => C_LEVEL_ERROR
52625 ,p_module => l_log_module);
52626 END IF;
52627 END IF;
52628 END IF;
52629 --
52630 --
52631 ------------------------------------------------------------------------------------------------
52632 -- 4219869 Business Flow
52633 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52634 -- Prior Entry. Currently, the following code is always generated.
52635 ------------------------------------------------------------------------------------------------
52636 -- No ValidateCurrentLine for business flow method of Prior Entry
52637
52638 ------------------------------------------------------------------------------------
52639 -- 4219869 Business Flow
52640 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52641 ------------------------------------------------------------------------------------
52642 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52643
52644 ----------------------------------------------------------------------------------
52645 -- 4219869 Business Flow
52646 -- Update journal entry status -- Need to generate this within IF <condition>
52647 ----------------------------------------------------------------------------------
52648 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52649 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52650 ,p_balance_type_code => l_balance_type_code
52654 -- 4262811 - Generate the Accrual Reversal lines
52651 );
52652
52653 -------------------------------------------------------------------------------------------
52655 -------------------------------------------------------------------------------------------
52656 BEGIN
52657 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52658 (g_array_event(p_event_id).array_value_num('header_index'));
52659 IF l_acc_rev_flag IS NULL THEN
52660 l_acc_rev_flag := 'N';
52661 END IF;
52662 EXCEPTION
52663 WHEN OTHERS THEN
52664 l_acc_rev_flag := 'N';
52665 END;
52666 --
52667 IF (l_acc_rev_flag = 'Y') THEN
52668
52669 -- 4645092 ------------------------------------------------------------------------------
52670 -- To allow MPA report to determine if it should generate report process
52671 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52672 ------------------------------------------------------------------------------------------
52673
52674 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52675 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52676
52677 --
52678 -- Update the line information that should be overwritten
52679 --
52680 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52681 p_header_num => 1);
52682 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52683
52684 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52685
52686 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52687 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52688 END IF;
52689
52690 --
52691 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52692 --
52693 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52694 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52695 ELSE
52696 ---------------------------------------------------------------------------------------------------
52697 -- 4262811a Switch Sign
52698 ---------------------------------------------------------------------------------------------------
52699 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52700 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52701 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52702 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52703 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52704 -- 5132302
52705 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52706 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52707
52708 END IF;
52709
52710 -- 4955764
52711 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52712 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52713
52714
52715 XLA_AE_LINES_PKG.ValidateCurrentLine;
52716 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52717
52718 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52719 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52720 ,p_balance_type_code => l_balance_type_code);
52721
52722 END IF;
52723
52724 -----------------------------------------------------------------------------------------
52725 -- 4262811 Multiperiod Accounting
52726 -----------------------------------------------------------------------------------------
52727 -- No MPA option is assigned.
52728
52729
52730 END IF;
52731 END IF;
52732 --
52733
52734 --
52735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52736 trace
52737 (p_msg => 'END of AcctLineType_105'
52738 ,p_level => C_LEVEL_PROCEDURE
52739 ,p_module => l_log_module);
52740 END IF;
52741 --
52742 EXCEPTION
52743 WHEN xla_exceptions_pkg.application_exception THEN
52744 RAISE;
52745 WHEN OTHERS THEN
52746 xla_exceptions_pkg.raise_message
52747 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_105');
52748 END AcctLineType_105;
52749 --
52750
52751 ---------------------------------------
52752 --
52753 -- PRIVATE FUNCTION
52754 -- AcctLineType_106
52755 --
52756 ---------------------------------------
52757 PROCEDURE AcctLineType_106 (
52758 p_application_id IN NUMBER
52759 ,p_event_id IN NUMBER
52760 ,p_calculate_acctd_flag IN VARCHAR2
52761 ,p_calculate_g_l_flag IN VARCHAR2
52762 ,p_actual_flag IN OUT VARCHAR2
52763 ,p_balance_type_code OUT VARCHAR2
52764 ,p_gain_or_loss_ref OUT VARCHAR2
52765
52766 --Budget Code Combination ID
52767 , p_source_2 IN NUMBER
52768 --Cost CCID
52769 , p_source_3 IN NUMBER
52770 --Cost Clearing CCID
52771 , p_source_6 IN NUMBER
52772 --Reversing Line Flag
52773 , p_source_22 IN VARCHAR2
52774 --Actual Upgrade Credit Accounting Class
52775 , p_source_23 IN VARCHAR2
52776 --Entered Currency Code
52777 , p_source_25 IN VARCHAR2
52778 --Exchange Rate Date
52779 , p_source_27 IN DATE
52783 , p_source_29 IN VARCHAR2
52780 --Exchange Rate
52781 , p_source_28 IN NUMBER
52782 --Exchange Rate Type
52784 --Actual Upgrade Debit Accounting Class
52785 , p_source_30 IN VARCHAR2
52786 --Use Actuals Upgrade Attributes Flag
52787 , p_source_31 IN VARCHAR2
52788 --Expenditure Item ID
52789 , p_source_32 IN NUMBER
52790 --Cost Distribution Line Number
52791 , p_source_33 IN NUMBER
52792 --Line Type
52793 , p_source_34 IN VARCHAR2
52794 , p_source_34_meaning IN VARCHAR2
52795 --Reversed Line Number
52796 , p_source_35 IN NUMBER
52797 --System Linkage Function
52798 , p_source_37 IN VARCHAR2
52799 --Entered Burdened Cost
52800 , p_source_44 IN NUMBER
52801 --Accounted Burdened Cost
52802 , p_source_45 IN NUMBER
52803 --Encumbrance Amount
52804 , p_source_46 IN NUMBER
52805 --Project Encumbrance Applied to Application Identifier
52806 , p_source_47 IN NUMBER
52807 --Project Encumbrance Applied to Distribution Type
52808 , p_source_48 IN VARCHAR2
52809 --Project Encumbrance Applied to Entity Code
52810 , p_source_49 IN VARCHAR2
52811 --Project Encumbrance Applied to First Distribution ID
52812 , p_source_50 IN NUMBER
52813 --Project Encumbrance Applied to First System Transaction ID
52814 , p_source_51 IN NUMBER
52815 --Project Encumbrance Applied to Second Distribution ID
52816 , p_source_52 IN VARCHAR2
52817 --Encumbrance Upgrade Credit Accounting Class
52818 , p_source_53 IN VARCHAR2
52819 --Encumbrance Upgrade Debit Accounting Class
52820 , p_source_54 IN VARCHAR2
52821 --Use Encumbrance Upgrade Attributes Flag
52822 , p_source_55 IN VARCHAR2
52823 --Encumbrance Type ID
52824 , p_source_56 IN NUMBER
52825 --Project Encumbrance Type ID
52826 , p_source_57 IN NUMBER
52827 --Contingent Worker Timecard Flag
52828 , p_source_73 IN VARCHAR2
52829 --Encumbrance Accounting Enabled Flag
52830 , p_source_86 IN VARCHAR2
52831 --Liquidate Encumbrance Flag
52832 , p_source_87 IN VARCHAR2
52833 )
52834 IS
52835
52836 l_component_type VARCHAR2(80);
52837 l_component_code VARCHAR2(30);
52838 l_component_type_code VARCHAR2(1);
52839 l_component_appl_id INTEGER;
52840 l_amb_context_code VARCHAR2(30);
52841 l_entity_code VARCHAR2(30);
52842 l_event_class_code VARCHAR2(30);
52843 l_ae_header_id NUMBER;
52844 l_event_type_code VARCHAR2(30);
52845 l_line_definition_code VARCHAR2(30);
52846 l_line_definition_owner_code VARCHAR2(1);
52847 --
52848 -- adr variables
52849 l_segment VARCHAR2(30);
52850 l_ccid NUMBER;
52851 l_adr_transaction_coa_id NUMBER;
52852 l_adr_accounting_coa_id NUMBER;
52853 l_adr_flexfield_segment_code VARCHAR2(30);
52854 l_adr_flex_value_set_id NUMBER;
52855 l_adr_value_type_code VARCHAR2(30);
52856 l_adr_value_combination_id NUMBER;
52857 l_adr_value_segment_code VARCHAR2(30);
52858
52859 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52860 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52861 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52862 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52863
52864 -- 4262811 Variables ------------------------------------------------------------------------------------------
52865 l_entered_amt_idx NUMBER;
52866 l_accted_amt_idx NUMBER;
52867 l_acc_rev_flag VARCHAR2(1);
52868 l_accrual_line_num NUMBER;
52869 l_tmp_amt NUMBER;
52870 l_acc_rev_natural_side_code VARCHAR2(1);
52871
52872 l_num_entries NUMBER;
52873 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52874 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52875 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52876 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52877 l_recog_line_1 NUMBER;
52878 l_recog_line_2 NUMBER;
52879
52880 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52881 l_bflow_applied_to_amt NUMBER; -- 5132302
52882 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52883
52884 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52885
52886 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52887 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52888
52889 ---------------------------------------------------------------------------------------------------------------
52890
52891
52892 --
52893 -- bulk performance
52894 --
52895 l_balance_type_code VARCHAR2(1);
52896 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52897 l_log_module VARCHAR2(240);
52898
52899 --
52900 -- Upgrade strategy
52901 --
52902 l_actual_upg_option VARCHAR2(1);
52903 l_enc_upg_option VARCHAR2(1);
52904
52905 --
52906 BEGIN
52907 --
52908 IF g_log_enabled THEN
52909 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
52910 END IF;
52911 --
52912 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52913
52914 trace
52915 (p_msg => 'BEGIN of AcctLineType_106'
52916 ,p_level => C_LEVEL_PROCEDURE
52917 ,p_module => l_log_module);
52918
52919 END IF;
52920 --
52924 l_component_appl_id := 275;
52921 l_component_type := 'AMB_JLT';
52922 l_component_code := 'REL_PROJ_ENC';
52923 l_component_type_code := 'S';
52925 l_amb_context_code := 'DEFAULT';
52926 l_entity_code := 'EXPENDITURES';
52927 l_event_class_code := 'TOT_BURDENED_COST';
52928 l_event_type_code := 'TOT_BURDENED_COST_ALL';
52929 l_line_definition_owner_code := 'S';
52930 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
52931 --
52932 l_balance_type_code := 'E';
52933 l_segment := NULL;
52934 l_ccid := NULL;
52935 l_adr_transaction_coa_id := NULL;
52936 l_adr_accounting_coa_id := NULL;
52937 l_adr_flexfield_segment_code := NULL;
52938 l_adr_flex_value_set_id := NULL;
52939 l_adr_value_type_code := NULL;
52940 l_adr_value_combination_id := NULL;
52941 l_adr_value_segment_code := NULL;
52942
52943 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
52944 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
52945 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52946 l_budgetary_control_flag := 'N';
52947
52948 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52949 l_bflow_applied_to_amt := NULL; -- 5132302
52950 l_entered_amt_idx := NULL; -- 4262811
52951 l_accted_amt_idx := NULL; -- 4262811
52952 l_acc_rev_flag := NULL; -- 4262811
52953 l_accrual_line_num := NULL; -- 4262811
52954 l_tmp_amt := NULL; -- 4262811
52955 --
52956
52957 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52958 l_balance_type_code <> 'B' THEN
52959 IF NVL(p_source_34,'
52960 ') = 'D' AND
52961 NVL(p_source_86,'
52962 ') = 'Y' AND
52963 ((NVL(p_source_37,'
52964 ') = 'ST' OR
52965 NVL(p_source_37,'
52966 ') = 'OT' AND
52967 NVL(p_source_73,'
52968 ') = 'Y') OR
52969 NVL(p_source_37,'
52970 ') = 'VI') AND
52971 NVL(p_source_87,'
52972 ') = 'Y'
52973 THEN
52974
52975 --
52976 XLA_AE_LINES_PKG.SetNewLine;
52977
52978 p_balance_type_code := l_balance_type_code;
52979 -- set the flag so later we will know whether the gain loss line needs to be created
52980
52981 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52982 p_actual_flag :='A';
52983 END IF;
52984
52985 --
52986 -- bulk performance
52987 --
52988 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52989 p_header_num => 0); -- 4262811
52990 --
52991 -- set accounting line options
52992 --
52993 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52994 p_natural_side_code => 'C'
52995 , p_gain_or_loss_flag => 'N'
52996 , p_gl_transfer_mode_code => 'S'
52997 , p_acct_entry_type_code => 'E'
52998 , p_switch_side_flag => 'N'
52999 , p_merge_duplicate_code => 'N'
53000 );
53001 --
53002 l_acc_rev_natural_side_code := 'D'; -- 4262811
53003 --
53004 --
53005 -- set accounting line type info
53006 --
53007 xla_ae_lines_pkg.SetAcctLineType
53008 (p_component_type => l_component_type
53009 ,p_event_type_code => l_event_type_code
53010 ,p_line_definition_owner_code => l_line_definition_owner_code
53011 ,p_line_definition_code => l_line_definition_code
53012 ,p_accounting_line_code => l_component_code
53013 ,p_accounting_line_type_code => l_component_type_code
53014 ,p_accounting_line_appl_id => l_component_appl_id
53015 ,p_amb_context_code => l_amb_context_code
53016 ,p_entity_code => l_entity_code
53017 ,p_event_class_code => l_event_class_code);
53018 --
53019 -- set accounting class
53020 --
53021 xla_ae_lines_pkg.SetAcctClass(
53022 p_accounting_class_code => 'PA_BUDGET_ENC'
53023 , p_ae_header_id => l_ae_header_id
53024 );
53025
53026 --
53027 -- set rounding class
53028 --
53029 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53030 'PA_BUDGET_ENC';
53031
53032 --
53033 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53034 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53035 --
53036 -- bulk performance
53037 --
53038 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53039
53040 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53041 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53042
53043 -- 4955764
53044 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53045 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53046
53047 -- 4458381 Public Sector Enh
53048
53049 --
53050 -- set accounting attributes for the line type
53051 --
53052 l_entered_amt_idx := 40;
53053 l_accted_amt_idx := 43;
53054 l_bflow_applied_to_amt_idx := 19; -- 5132302
53055 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53056 l_rec_acct_attrs.array_char_value(1) := p_source_22;
53057 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
53058 l_rec_acct_attrs.array_char_value(2) := p_source_23;
53062 l_rec_acct_attrs.array_num_value(4) := p_source_44;
53059 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
53060 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
53061 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
53063 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
53064 l_rec_acct_attrs.array_char_value(5) := p_source_25;
53065 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
53066 l_rec_acct_attrs.array_num_value(6) := p_source_45;
53067 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
53068 l_rec_acct_attrs.array_date_value(7) := p_source_27;
53069 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
53070 l_rec_acct_attrs.array_num_value(8) := p_source_28;
53071 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
53072 l_rec_acct_attrs.array_char_value(9) := p_source_29;
53073 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
53074 l_rec_acct_attrs.array_char_value(10) := p_source_30;
53075 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
53076 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
53077 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
53078 l_rec_acct_attrs.array_num_value(12) := p_source_44;
53079 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
53080 l_rec_acct_attrs.array_char_value(13) := p_source_25;
53081 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
53082 l_rec_acct_attrs.array_num_value(14) := p_source_45;
53083 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
53084 l_rec_acct_attrs.array_date_value(15) := p_source_27;
53085 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
53086 l_rec_acct_attrs.array_num_value(16) := p_source_28;
53087 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
53088 l_rec_acct_attrs.array_char_value(17) := p_source_29;
53089 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
53090 l_rec_acct_attrs.array_char_value(18) := p_source_31;
53091 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
53092 l_rec_acct_attrs.array_num_value(19) := p_source_46;
53093 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
53094 l_rec_acct_attrs.array_num_value(20) := p_source_47;
53095 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53096 l_rec_acct_attrs.array_char_value(21) := p_source_48;
53097 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
53098 l_rec_acct_attrs.array_char_value(22) := p_source_49;
53099 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
53100 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
53101 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53102 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
53103 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
53104 l_rec_acct_attrs.array_char_value(25) := p_source_52;
53105 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
53106 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
53107 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
53108 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
53109 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
53110 l_rec_acct_attrs.array_char_value(28) := p_source_34;
53111 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
53112 l_rec_acct_attrs.array_char_value(29) := p_source_53;
53113 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
53114 l_rec_acct_attrs.array_num_value(30) := p_source_2;
53115 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
53116 l_rec_acct_attrs.array_num_value(31) := p_source_46;
53117 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
53118 l_rec_acct_attrs.array_char_value(32) :=
53119 xla_ae_sources_pkg.GetSystemSourceChar(
53120 p_source_code => 'XLA_CURRENCY_CODE'
53121 , p_source_type_code => 'Y'
53122 , p_source_application_id => 602
53123 );
53124 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
53125 l_rec_acct_attrs.array_num_value(33) := p_source_46;
53126 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
53127 l_rec_acct_attrs.array_char_value(34) := p_source_54;
53128 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
53129 l_rec_acct_attrs.array_num_value(35) := p_source_2;
53130 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
53131 l_rec_acct_attrs.array_num_value(36) := p_source_46;
53132 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
53133 l_rec_acct_attrs.array_char_value(37) :=
53134 xla_ae_sources_pkg.GetSystemSourceChar(
53135 p_source_code => 'XLA_CURRENCY_CODE'
53136 , p_source_type_code => 'Y'
53137 , p_source_application_id => 602
53138 );
53139 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
53140 l_rec_acct_attrs.array_num_value(38) := p_source_46;
53141 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
53142 l_rec_acct_attrs.array_char_value(39) := p_source_55;
53143 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
53144 l_rec_acct_attrs.array_num_value(40) := p_source_46;
53145 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
53146 l_rec_acct_attrs.array_char_value(41) := p_source_25;
53147 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
53148 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
53149 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
53150 l_rec_acct_attrs.array_num_value(43) := p_source_46;
53151 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
53155 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
53152 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
53153 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
53154 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
53156 l_rec_acct_attrs.array_char_value(46) := p_source_34;
53157 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
53158 l_rec_acct_attrs.array_num_value(47) := p_source_56;
53159 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
53160 l_rec_acct_attrs.array_num_value(48) := p_source_57;
53161
53162 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53163 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53164
53165 ---------------------------------------------------------------------------------------------------------------
53166 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53167 ---------------------------------------------------------------------------------------------------------------
53168 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53169
53170 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53171 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53172
53173 IF xla_accounting_cache_pkg.GetValueChar
53174 (p_source_code => 'LEDGER_CATEGORY_CODE'
53175 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53176 AND l_bflow_method_code = 'PRIOR_ENTRY'
53177 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53178 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53179 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53180 )
53181 THEN
53182 xla_ae_lines_pkg.BflowUpgEntry
53183 (p_business_method_code => l_bflow_method_code
53184 ,p_business_class_code => l_bflow_class_code
53185 ,p_balance_type => l_balance_type_code);
53186 ELSE
53187 NULL;
53188 XLA_AE_LINES_PKG.business_flow_validation(
53189 p_business_method_code => l_bflow_method_code
53190 ,p_business_class_code => l_bflow_class_code
53191 ,p_inherit_description_flag => l_inherit_desc_flag);
53192 END IF;
53193
53194 --
53195 -- call analytical criteria
53196 --
53197 -- Inherited Analytical Criteria for business flow method of Prior Entry.
53198 --
53199 -- call description
53200 --
53201 -- No description or it is inherited.
53202 --
53203 -- call ADRs
53204 -- Bug 4922099
53205 --
53206 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53207 (NVL(l_actual_upg_option, 'N') = 'O') OR
53208 (NVL(l_enc_upg_option, 'N') = 'O')
53209 )
53210 THEN
53211 NULL;
53212 --
53213 --
53214
53215 --
53216 --
53217 END IF;
53218 --
53219 -- Bug 4922099
53220 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53221 (NVL(l_enc_upg_option, 'N') = 'O')
53222 ) AND
53223 (l_bflow_method_code = 'PRIOR_ENTRY')
53224 )
53225 THEN
53226 IF
53227 --
53228 1 = 1
53229 --
53230 THEN
53231 xla_accounting_err_pkg.build_message
53232 (p_appli_s_name => 'XLA'
53233 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53234 ,p_token_1 => 'LINE_NUMBER'
53235 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53236 ,p_token_2 => 'LINE_TYPE_NAME'
53237 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53238 l_component_type
53239 ,l_component_code
53240 ,l_component_type_code
53241 ,l_component_appl_id
53242 ,l_amb_context_code
53243 ,l_entity_code
53244 ,l_event_class_code
53245 )
53246 ,p_token_3 => 'OWNER'
53247 ,p_value_3 => xla_lookups_pkg.get_meaning(
53248 p_lookup_type => 'XLA_OWNER_TYPE'
53249 ,p_lookup_code => l_component_type_code
53250 )
53251 ,p_token_4 => 'PRODUCT_NAME'
53252 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53253 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53254 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53255 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53256 ,p_ae_header_id => NULL
53260 trace
53257 );
53258
53259 IF (C_LEVEL_ERROR>= g_log_level) THEN
53261 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53262 ,p_level => C_LEVEL_ERROR
53263 ,p_module => l_log_module);
53264 END IF;
53265 END IF;
53266 END IF;
53267 --
53268 --
53269 ------------------------------------------------------------------------------------------------
53270 -- 4219869 Business Flow
53271 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53272 -- Prior Entry. Currently, the following code is always generated.
53273 ------------------------------------------------------------------------------------------------
53274 -- No ValidateCurrentLine for business flow method of Prior Entry
53275
53276 ------------------------------------------------------------------------------------
53277 -- 4219869 Business Flow
53278 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53279 ------------------------------------------------------------------------------------
53280 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53281
53282 ----------------------------------------------------------------------------------
53283 -- 4219869 Business Flow
53284 -- Update journal entry status -- Need to generate this within IF <condition>
53285 ----------------------------------------------------------------------------------
53286 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53287 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53288 ,p_balance_type_code => l_balance_type_code
53289 );
53290
53291 -------------------------------------------------------------------------------------------
53292 -- 4262811 - Generate the Accrual Reversal lines
53293 -------------------------------------------------------------------------------------------
53294 BEGIN
53295 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53296 (g_array_event(p_event_id).array_value_num('header_index'));
53297 IF l_acc_rev_flag IS NULL THEN
53298 l_acc_rev_flag := 'N';
53299 END IF;
53300 EXCEPTION
53301 WHEN OTHERS THEN
53302 l_acc_rev_flag := 'N';
53303 END;
53304 --
53305 IF (l_acc_rev_flag = 'Y') THEN
53306
53307 -- 4645092 ------------------------------------------------------------------------------
53308 -- To allow MPA report to determine if it should generate report process
53309 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53310 ------------------------------------------------------------------------------------------
53311
53312 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53313 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53314
53315 --
53316 -- Update the line information that should be overwritten
53317 --
53318 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53319 p_header_num => 1);
53320 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53321
53322 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53323
53324 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53325 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53326 END IF;
53327
53328 --
53329 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53330 --
53331 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53332 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53333 ELSE
53334 ---------------------------------------------------------------------------------------------------
53335 -- 4262811a Switch Sign
53336 ---------------------------------------------------------------------------------------------------
53337 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53338 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53339 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53340 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53341 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53342 -- 5132302
53343 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53344 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53345
53346 END IF;
53347
53348 -- 4955764
53349 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53350 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53351
53352
53353 XLA_AE_LINES_PKG.ValidateCurrentLine;
53354 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53355
53356 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53357 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53358 ,p_balance_type_code => l_balance_type_code);
53359
53360 END IF;
53361
53362 -----------------------------------------------------------------------------------------
53363 -- 4262811 Multiperiod Accounting
53364 -----------------------------------------------------------------------------------------
53365 -- No MPA option is assigned.
53366
53370 --
53367
53368 END IF;
53369 END IF;
53371
53372 --
53373 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53374 trace
53375 (p_msg => 'END of AcctLineType_106'
53376 ,p_level => C_LEVEL_PROCEDURE
53377 ,p_module => l_log_module);
53378 END IF;
53379 --
53380 EXCEPTION
53381 WHEN xla_exceptions_pkg.application_exception THEN
53382 RAISE;
53383 WHEN OTHERS THEN
53384 xla_exceptions_pkg.raise_message
53385 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_106');
53386 END AcctLineType_106;
53387 --
53388
53389 ---------------------------------------
53390 --
53391 -- PRIVATE FUNCTION
53392 -- AcctLineType_107
53393 --
53394 ---------------------------------------
53395 PROCEDURE AcctLineType_107 (
53396 p_application_id IN NUMBER
53397 ,p_event_id IN NUMBER
53398 ,p_calculate_acctd_flag IN VARCHAR2
53399 ,p_calculate_g_l_flag IN VARCHAR2
53400 ,p_actual_flag IN OUT VARCHAR2
53401 ,p_balance_type_code OUT VARCHAR2
53402 ,p_gain_or_loss_ref OUT VARCHAR2
53403
53404 --Budget Code Combination ID
53405 , p_source_2 IN NUMBER
53406 --Cost CCID
53407 , p_source_3 IN NUMBER
53408 --Cost Clearing CCID
53409 , p_source_6 IN NUMBER
53410 --Reversing Line Flag
53411 , p_source_22 IN VARCHAR2
53412 --Actual Upgrade Credit Accounting Class
53413 , p_source_23 IN VARCHAR2
53414 --Entered Currency Code
53415 , p_source_25 IN VARCHAR2
53416 --Exchange Rate Date
53417 , p_source_27 IN DATE
53418 --Exchange Rate
53419 , p_source_28 IN NUMBER
53420 --Exchange Rate Type
53421 , p_source_29 IN VARCHAR2
53422 --Actual Upgrade Debit Accounting Class
53423 , p_source_30 IN VARCHAR2
53424 --Use Actuals Upgrade Attributes Flag
53425 , p_source_31 IN VARCHAR2
53426 --Expenditure Item ID
53427 , p_source_32 IN NUMBER
53428 --Cost Distribution Line Number
53429 , p_source_33 IN NUMBER
53430 --Line Type
53431 , p_source_34 IN VARCHAR2
53432 , p_source_34_meaning IN VARCHAR2
53433 --Reversed Line Number
53434 , p_source_35 IN NUMBER
53435 --Entered Burdened Cost
53436 , p_source_44 IN NUMBER
53437 --Accounted Burdened Cost
53438 , p_source_45 IN NUMBER
53439 --Encumbrance Amount
53440 , p_source_46 IN NUMBER
53441 --Encumbrance Upgrade Credit Accounting Class
53442 , p_source_53 IN VARCHAR2
53443 --Encumbrance Upgrade Debit Accounting Class
53444 , p_source_54 IN VARCHAR2
53445 --Use Encumbrance Upgrade Attributes Flag
53446 , p_source_55 IN VARCHAR2
53447 --Encumbrance Type ID
53448 , p_source_56 IN NUMBER
53449 --Project Encumbrance Type ID
53450 , p_source_57 IN NUMBER
53451 --Document Type
53452 , p_source_70 IN VARCHAR2
53453 , p_source_70_meaning IN VARCHAR2
53454 --Release ID
53455 , p_source_72 IN NUMBER
53456 --Contingent Worker Timecard Flag
53457 , p_source_73 IN VARCHAR2
53458 --Purchase Order Burden Applied to Application Identifier
53459 , p_source_80 IN NUMBER
53460 --Purchase Order Burden Applied to Distribution Type
53461 , p_source_81 IN VARCHAR2
53462 --Purchase Order Burden Applied to Entity Code
53463 , p_source_82 IN VARCHAR2
53464 --Purchase Order Burden Applied to First Distribution Identifier
53465 , p_source_83 IN NUMBER
53466 --Purchase Order Burden Applied to First System Transaction Identifier
53467 , p_source_84 IN NUMBER
53468 --Purchase Order Burden Applied to Second Distribution Identifier
53469 , p_source_85 IN VARCHAR2
53470 )
53471 IS
53472
53473 l_component_type VARCHAR2(80);
53474 l_component_code VARCHAR2(30);
53475 l_component_type_code VARCHAR2(1);
53476 l_component_appl_id INTEGER;
53477 l_amb_context_code VARCHAR2(30);
53478 l_entity_code VARCHAR2(30);
53479 l_event_class_code VARCHAR2(30);
53480 l_ae_header_id NUMBER;
53481 l_event_type_code VARCHAR2(30);
53482 l_line_definition_code VARCHAR2(30);
53483 l_line_definition_owner_code VARCHAR2(1);
53484 --
53485 -- adr variables
53486 l_segment VARCHAR2(30);
53487 l_ccid NUMBER;
53488 l_adr_transaction_coa_id NUMBER;
53489 l_adr_accounting_coa_id NUMBER;
53490 l_adr_flexfield_segment_code VARCHAR2(30);
53491 l_adr_flex_value_set_id NUMBER;
53492 l_adr_value_type_code VARCHAR2(30);
53493 l_adr_value_combination_id NUMBER;
53494 l_adr_value_segment_code VARCHAR2(30);
53495
53496 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
53497 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
53498 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
53499 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
53500
53501 -- 4262811 Variables ------------------------------------------------------------------------------------------
53502 l_entered_amt_idx NUMBER;
53503 l_accted_amt_idx NUMBER;
53504 l_acc_rev_flag VARCHAR2(1);
53505 l_accrual_line_num NUMBER;
53506 l_tmp_amt NUMBER;
53507 l_acc_rev_natural_side_code VARCHAR2(1);
53508
53509 l_num_entries NUMBER;
53510 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
53511 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
53512 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
53516
53513 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
53514 l_recog_line_1 NUMBER;
53515 l_recog_line_2 NUMBER;
53517 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
53518 l_bflow_applied_to_amt NUMBER; -- 5132302
53519 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
53520
53521 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53522
53523 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
53524 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
53525
53526 ---------------------------------------------------------------------------------------------------------------
53527
53528
53529 --
53530 -- bulk performance
53531 --
53532 l_balance_type_code VARCHAR2(1);
53533 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53534 l_log_module VARCHAR2(240);
53535
53536 --
53537 -- Upgrade strategy
53538 --
53539 l_actual_upg_option VARCHAR2(1);
53540 l_enc_upg_option VARCHAR2(1);
53541
53542 --
53543 BEGIN
53544 --
53545 IF g_log_enabled THEN
53546 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
53547 END IF;
53548 --
53549 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53550
53551 trace
53552 (p_msg => 'BEGIN of AcctLineType_107'
53553 ,p_level => C_LEVEL_PROCEDURE
53554 ,p_module => l_log_module);
53555
53556 END IF;
53557 --
53558 l_component_type := 'AMB_JLT';
53559 l_component_code := 'REL_RELEASE_BURDENED_ENC';
53560 l_component_type_code := 'S';
53561 l_component_appl_id := 275;
53562 l_amb_context_code := 'DEFAULT';
53563 l_entity_code := 'EXPENDITURES';
53564 l_event_class_code := 'TOT_BURDENED_COST';
53565 l_event_type_code := 'TOT_BURDENED_COST_ALL';
53566 l_line_definition_owner_code := 'S';
53567 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
53568 --
53569 l_balance_type_code := 'E';
53570 l_segment := NULL;
53571 l_ccid := NULL;
53572 l_adr_transaction_coa_id := NULL;
53573 l_adr_accounting_coa_id := NULL;
53574 l_adr_flexfield_segment_code := NULL;
53575 l_adr_flex_value_set_id := NULL;
53576 l_adr_value_type_code := NULL;
53577 l_adr_value_combination_id := NULL;
53578 l_adr_value_segment_code := NULL;
53579
53580 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
53581 l_bflow_class_code := 'REL_PA_BURDENED_ENC'; -- 4219869 Business Flow
53582 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
53583 l_budgetary_control_flag := 'N';
53584
53585 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53586 l_bflow_applied_to_amt := NULL; -- 5132302
53587 l_entered_amt_idx := NULL; -- 4262811
53588 l_accted_amt_idx := NULL; -- 4262811
53589 l_acc_rev_flag := NULL; -- 4262811
53590 l_accrual_line_num := NULL; -- 4262811
53591 l_tmp_amt := NULL; -- 4262811
53592 --
53593
53594 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53595 l_balance_type_code <> 'B' THEN
53596 IF NVL(p_source_34,'
53597 ') = 'E' AND
53598 NVL(p_source_70,'
53599 ') = 'PO' AND
53600 p_source_72 IS NOT NULL AND
53601 NVL(p_source_73,'
53602 ') = 'N'
53603 THEN
53604
53605 --
53606 XLA_AE_LINES_PKG.SetNewLine;
53607
53608 p_balance_type_code := l_balance_type_code;
53609 -- set the flag so later we will know whether the gain loss line needs to be created
53610
53611 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53612 p_actual_flag :='A';
53613 END IF;
53614
53615 --
53616 -- bulk performance
53617 --
53618 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53619 p_header_num => 0); -- 4262811
53620 --
53621 -- set accounting line options
53622 --
53623 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53624 p_natural_side_code => 'C'
53625 , p_gain_or_loss_flag => 'N'
53626 , p_gl_transfer_mode_code => 'S'
53627 , p_acct_entry_type_code => 'E'
53628 , p_switch_side_flag => 'N'
53629 , p_merge_duplicate_code => 'N'
53630 );
53631 --
53632 l_acc_rev_natural_side_code := 'D'; -- 4262811
53633 --
53634 --
53635 -- set accounting line type info
53636 --
53637 xla_ae_lines_pkg.SetAcctLineType
53638 (p_component_type => l_component_type
53639 ,p_event_type_code => l_event_type_code
53640 ,p_line_definition_owner_code => l_line_definition_owner_code
53641 ,p_line_definition_code => l_line_definition_code
53642 ,p_accounting_line_code => l_component_code
53643 ,p_accounting_line_type_code => l_component_type_code
53644 ,p_accounting_line_appl_id => l_component_appl_id
53645 ,p_amb_context_code => l_amb_context_code
53646 ,p_entity_code => l_entity_code
53647 ,p_event_class_code => l_event_class_code);
53648 --
53649 -- set accounting class
53650 --
53651 xla_ae_lines_pkg.SetAcctClass(
53652 p_accounting_class_code => 'PO_PA_BURDENED'
53653 , p_ae_header_id => l_ae_header_id
53654 );
53655
53656 --
53660 'PO_PA_BURDENED';
53657 -- set rounding class
53658 --
53659 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53661
53662 --
53663 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53664 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53665 --
53666 -- bulk performance
53667 --
53668 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53669
53670 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53671 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53672
53673 -- 4955764
53674 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53675 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53676
53677 -- 4458381 Public Sector Enh
53678
53679 --
53680 -- set accounting attributes for the line type
53681 --
53682 l_entered_amt_idx := 40;
53683 l_accted_amt_idx := 43;
53684 l_bflow_applied_to_amt_idx := 19; -- 5132302
53685 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53686 l_rec_acct_attrs.array_char_value(1) := p_source_22;
53687 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
53688 l_rec_acct_attrs.array_char_value(2) := p_source_23;
53689 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
53690 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
53691 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
53692 l_rec_acct_attrs.array_num_value(4) := p_source_44;
53693 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
53694 l_rec_acct_attrs.array_char_value(5) := p_source_25;
53695 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
53696 l_rec_acct_attrs.array_num_value(6) := p_source_45;
53697 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
53698 l_rec_acct_attrs.array_date_value(7) := p_source_27;
53699 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
53700 l_rec_acct_attrs.array_num_value(8) := p_source_28;
53701 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
53702 l_rec_acct_attrs.array_char_value(9) := p_source_29;
53703 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
53704 l_rec_acct_attrs.array_char_value(10) := p_source_30;
53705 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
53706 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
53707 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
53708 l_rec_acct_attrs.array_num_value(12) := p_source_44;
53709 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
53710 l_rec_acct_attrs.array_char_value(13) := p_source_25;
53711 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
53712 l_rec_acct_attrs.array_num_value(14) := p_source_45;
53713 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
53714 l_rec_acct_attrs.array_date_value(15) := p_source_27;
53715 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
53716 l_rec_acct_attrs.array_num_value(16) := p_source_28;
53717 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
53718 l_rec_acct_attrs.array_char_value(17) := p_source_29;
53719 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
53720 l_rec_acct_attrs.array_char_value(18) := p_source_31;
53721 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
53722 l_rec_acct_attrs.array_num_value(19) := p_source_46;
53723 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
53724 l_rec_acct_attrs.array_num_value(20) := p_source_80;
53725 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53726 l_rec_acct_attrs.array_char_value(21) := p_source_81;
53727 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
53728 l_rec_acct_attrs.array_char_value(22) := p_source_82;
53729 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
53730 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_83);
53731 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53732 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_84);
53733 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
53734 l_rec_acct_attrs.array_char_value(25) := p_source_85;
53735 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
53736 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
53737 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
53738 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
53739 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
53740 l_rec_acct_attrs.array_char_value(28) := p_source_34;
53741 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
53742 l_rec_acct_attrs.array_char_value(29) := p_source_53;
53743 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
53744 l_rec_acct_attrs.array_num_value(30) := p_source_2;
53745 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
53746 l_rec_acct_attrs.array_num_value(31) := p_source_46;
53747 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
53748 l_rec_acct_attrs.array_char_value(32) :=
53749 xla_ae_sources_pkg.GetSystemSourceChar(
53750 p_source_code => 'XLA_CURRENCY_CODE'
53751 , p_source_type_code => 'Y'
53752 , p_source_application_id => 602
53753 );
53754 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
53755 l_rec_acct_attrs.array_num_value(33) := p_source_46;
53759 l_rec_acct_attrs.array_num_value(35) := p_source_2;
53756 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
53757 l_rec_acct_attrs.array_char_value(34) := p_source_54;
53758 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
53760 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
53761 l_rec_acct_attrs.array_num_value(36) := p_source_46;
53762 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
53763 l_rec_acct_attrs.array_char_value(37) :=
53764 xla_ae_sources_pkg.GetSystemSourceChar(
53765 p_source_code => 'XLA_CURRENCY_CODE'
53766 , p_source_type_code => 'Y'
53767 , p_source_application_id => 602
53768 );
53769 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
53770 l_rec_acct_attrs.array_num_value(38) := p_source_46;
53771 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
53772 l_rec_acct_attrs.array_char_value(39) := p_source_55;
53773 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
53774 l_rec_acct_attrs.array_num_value(40) := p_source_46;
53775 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
53776 l_rec_acct_attrs.array_char_value(41) := p_source_25;
53777 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
53778 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
53779 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
53780 l_rec_acct_attrs.array_num_value(43) := p_source_46;
53781 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
53782 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
53783 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
53784 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
53785 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
53786 l_rec_acct_attrs.array_char_value(46) := p_source_34;
53787 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
53788 l_rec_acct_attrs.array_num_value(47) := p_source_56;
53789 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
53790 l_rec_acct_attrs.array_num_value(48) := p_source_57;
53791
53792 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53793 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53794
53795 ---------------------------------------------------------------------------------------------------------------
53796 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53797 ---------------------------------------------------------------------------------------------------------------
53798 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53799
53800 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53801 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53802
53803 IF xla_accounting_cache_pkg.GetValueChar
53804 (p_source_code => 'LEDGER_CATEGORY_CODE'
53805 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53806 AND l_bflow_method_code = 'PRIOR_ENTRY'
53807 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53808 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53809 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53810 )
53811 THEN
53812 xla_ae_lines_pkg.BflowUpgEntry
53813 (p_business_method_code => l_bflow_method_code
53814 ,p_business_class_code => l_bflow_class_code
53815 ,p_balance_type => l_balance_type_code);
53816 ELSE
53817 NULL;
53818 XLA_AE_LINES_PKG.business_flow_validation(
53819 p_business_method_code => l_bflow_method_code
53820 ,p_business_class_code => l_bflow_class_code
53821 ,p_inherit_description_flag => l_inherit_desc_flag);
53822 END IF;
53823
53824 --
53825 -- call analytical criteria
53826 --
53827 -- Inherited Analytical Criteria for business flow method of Prior Entry.
53828 --
53829 -- call description
53830 --
53831 -- No description or it is inherited.
53832 --
53833 -- call ADRs
53834 -- Bug 4922099
53835 --
53836 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53837 (NVL(l_actual_upg_option, 'N') = 'O') OR
53838 (NVL(l_enc_upg_option, 'N') = 'O')
53839 )
53840 THEN
53841 NULL;
53842 --
53843 --
53844
53845 --
53846 --
53847 END IF;
53848 --
53849 -- Bug 4922099
53850 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53851 (NVL(l_enc_upg_option, 'N') = 'O')
53852 ) AND
53853 (l_bflow_method_code = 'PRIOR_ENTRY')
53854 )
53855 THEN
53856 IF
53857 --
53858 1 = 1
53859 --
53860 THEN
53861 xla_accounting_err_pkg.build_message
53862 (p_appli_s_name => 'XLA'
53863 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53864 ,p_token_1 => 'LINE_NUMBER'
53865 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53866 ,p_token_2 => 'LINE_TYPE_NAME'
53867 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53868 l_component_type
53869 ,l_component_code
53873 ,l_entity_code
53870 ,l_component_type_code
53871 ,l_component_appl_id
53872 ,l_amb_context_code
53874 ,l_event_class_code
53875 )
53876 ,p_token_3 => 'OWNER'
53877 ,p_value_3 => xla_lookups_pkg.get_meaning(
53878 p_lookup_type => 'XLA_OWNER_TYPE'
53879 ,p_lookup_code => l_component_type_code
53880 )
53881 ,p_token_4 => 'PRODUCT_NAME'
53882 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53883 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53884 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53885 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53886 ,p_ae_header_id => NULL
53887 );
53888
53889 IF (C_LEVEL_ERROR>= g_log_level) THEN
53890 trace
53891 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53892 ,p_level => C_LEVEL_ERROR
53893 ,p_module => l_log_module);
53894 END IF;
53895 END IF;
53896 END IF;
53897 --
53898 --
53899 ------------------------------------------------------------------------------------------------
53900 -- 4219869 Business Flow
53901 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53902 -- Prior Entry. Currently, the following code is always generated.
53903 ------------------------------------------------------------------------------------------------
53904 -- No ValidateCurrentLine for business flow method of Prior Entry
53905
53906 ------------------------------------------------------------------------------------
53907 -- 4219869 Business Flow
53908 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53909 ------------------------------------------------------------------------------------
53910 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53911
53912 ----------------------------------------------------------------------------------
53913 -- 4219869 Business Flow
53914 -- Update journal entry status -- Need to generate this within IF <condition>
53915 ----------------------------------------------------------------------------------
53916 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53917 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53918 ,p_balance_type_code => l_balance_type_code
53919 );
53920
53921 -------------------------------------------------------------------------------------------
53922 -- 4262811 - Generate the Accrual Reversal lines
53923 -------------------------------------------------------------------------------------------
53924 BEGIN
53925 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53926 (g_array_event(p_event_id).array_value_num('header_index'));
53927 IF l_acc_rev_flag IS NULL THEN
53928 l_acc_rev_flag := 'N';
53929 END IF;
53930 EXCEPTION
53931 WHEN OTHERS THEN
53932 l_acc_rev_flag := 'N';
53933 END;
53934 --
53935 IF (l_acc_rev_flag = 'Y') THEN
53936
53937 -- 4645092 ------------------------------------------------------------------------------
53938 -- To allow MPA report to determine if it should generate report process
53939 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53940 ------------------------------------------------------------------------------------------
53941
53942 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53943 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53944
53945 --
53946 -- Update the line information that should be overwritten
53947 --
53948 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53949 p_header_num => 1);
53950 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53951
53952 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53953
53954 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53955 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53956 END IF;
53957
53958 --
53959 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53960 --
53961 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53962 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53963 ELSE
53964 ---------------------------------------------------------------------------------------------------
53965 -- 4262811a Switch Sign
53966 ---------------------------------------------------------------------------------------------------
53967 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53971 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53968 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53969 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53970 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53972 -- 5132302
53973 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53974 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53975
53976 END IF;
53977
53978 -- 4955764
53979 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53980 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53981
53982
53983 XLA_AE_LINES_PKG.ValidateCurrentLine;
53984 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53985
53986 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53987 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53988 ,p_balance_type_code => l_balance_type_code);
53989
53990 END IF;
53991
53992 -----------------------------------------------------------------------------------------
53993 -- 4262811 Multiperiod Accounting
53994 -----------------------------------------------------------------------------------------
53995 -- No MPA option is assigned.
53996
53997
53998 END IF;
53999 END IF;
54000 --
54001
54002 --
54003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54004 trace
54005 (p_msg => 'END of AcctLineType_107'
54006 ,p_level => C_LEVEL_PROCEDURE
54007 ,p_module => l_log_module);
54008 END IF;
54009 --
54010 EXCEPTION
54011 WHEN xla_exceptions_pkg.application_exception THEN
54012 RAISE;
54013 WHEN OTHERS THEN
54014 xla_exceptions_pkg.raise_message
54015 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_107');
54016 END AcctLineType_107;
54017 --
54018
54019 ---------------------------------------
54020 --
54021 -- PRIVATE FUNCTION
54022 -- AcctLineType_108
54023 --
54024 ---------------------------------------
54025 PROCEDURE AcctLineType_108 (
54026 p_application_id IN NUMBER
54027 ,p_event_id IN NUMBER
54028 ,p_calculate_acctd_flag IN VARCHAR2
54029 ,p_calculate_g_l_flag IN VARCHAR2
54030 ,p_actual_flag IN OUT VARCHAR2
54031 ,p_balance_type_code OUT VARCHAR2
54032 ,p_gain_or_loss_ref OUT VARCHAR2
54033
54034 --Budget Code Combination ID
54035 , p_source_2 IN NUMBER
54036 --Cost CCID
54037 , p_source_3 IN NUMBER
54038 --Cost Clearing CCID
54039 , p_source_6 IN NUMBER
54040 --Reversing Line Flag
54041 , p_source_22 IN VARCHAR2
54042 --Actual Upgrade Credit Accounting Class
54043 , p_source_23 IN VARCHAR2
54044 --Entered Currency Code
54045 , p_source_25 IN VARCHAR2
54046 --Exchange Rate Date
54047 , p_source_27 IN DATE
54048 --Exchange Rate
54049 , p_source_28 IN NUMBER
54050 --Exchange Rate Type
54051 , p_source_29 IN VARCHAR2
54052 --Actual Upgrade Debit Accounting Class
54053 , p_source_30 IN VARCHAR2
54054 --Use Actuals Upgrade Attributes Flag
54055 , p_source_31 IN VARCHAR2
54056 --Expenditure Item ID
54057 , p_source_32 IN NUMBER
54058 --Cost Distribution Line Number
54059 , p_source_33 IN NUMBER
54060 --Line Type
54061 , p_source_34 IN VARCHAR2
54062 , p_source_34_meaning IN VARCHAR2
54063 --Reversed Line Number
54064 , p_source_35 IN NUMBER
54065 --Entered Burdened Cost
54066 , p_source_44 IN NUMBER
54067 --Accounted Burdened Cost
54068 , p_source_45 IN NUMBER
54069 --Encumbrance Amount
54070 , p_source_46 IN NUMBER
54071 --Encumbrance Upgrade Debit Accounting Class
54072 , p_source_54 IN VARCHAR2
54073 --Use Encumbrance Upgrade Attributes Flag
54074 , p_source_55 IN VARCHAR2
54075 --Encumbrance Type ID
54076 , p_source_56 IN NUMBER
54077 --Project Encumbrance Type ID
54078 , p_source_57 IN NUMBER
54079 --Document Type
54080 , p_source_70 IN VARCHAR2
54081 , p_source_70_meaning IN VARCHAR2
54082 --Release ID
54083 , p_source_72 IN NUMBER
54084 --Contingent Worker Timecard Flag
54085 , p_source_73 IN VARCHAR2
54086 --Purchase Order Burden Applied to Application Identifier
54087 , p_source_80 IN NUMBER
54088 --Purchase Order Burden Applied to Distribution Type
54089 , p_source_81 IN VARCHAR2
54090 --Purchase Order Burden Applied to Entity Code
54091 , p_source_82 IN VARCHAR2
54092 --Purchase Order Burden Applied to First Distribution Identifier
54093 , p_source_83 IN NUMBER
54094 --Purchase Order Burden Applied to First System Transaction Identifier
54095 , p_source_84 IN NUMBER
54096 --Purchase Order Burden Applied to Second Distribution Identifier
54097 , p_source_85 IN VARCHAR2
54098 )
54099 IS
54100
54101 l_component_type VARCHAR2(80);
54102 l_component_code VARCHAR2(30);
54103 l_component_type_code VARCHAR2(1);
54104 l_component_appl_id INTEGER;
54105 l_amb_context_code VARCHAR2(30);
54106 l_entity_code VARCHAR2(30);
54107 l_event_class_code VARCHAR2(30);
54108 l_ae_header_id NUMBER;
54109 l_event_type_code VARCHAR2(30);
54110 l_line_definition_code VARCHAR2(30);
54114 l_segment VARCHAR2(30);
54111 l_line_definition_owner_code VARCHAR2(1);
54112 --
54113 -- adr variables
54115 l_ccid NUMBER;
54116 l_adr_transaction_coa_id NUMBER;
54117 l_adr_accounting_coa_id NUMBER;
54118 l_adr_flexfield_segment_code VARCHAR2(30);
54119 l_adr_flex_value_set_id NUMBER;
54120 l_adr_value_type_code VARCHAR2(30);
54121 l_adr_value_combination_id NUMBER;
54122 l_adr_value_segment_code VARCHAR2(30);
54123
54124 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54125 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54126 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54127 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54128
54129 -- 4262811 Variables ------------------------------------------------------------------------------------------
54130 l_entered_amt_idx NUMBER;
54131 l_accted_amt_idx NUMBER;
54132 l_acc_rev_flag VARCHAR2(1);
54133 l_accrual_line_num NUMBER;
54134 l_tmp_amt NUMBER;
54135 l_acc_rev_natural_side_code VARCHAR2(1);
54136
54137 l_num_entries NUMBER;
54138 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54139 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54140 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54141 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54142 l_recog_line_1 NUMBER;
54143 l_recog_line_2 NUMBER;
54144
54145 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54146 l_bflow_applied_to_amt NUMBER; -- 5132302
54147 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54148
54149 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54150
54151 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54152 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54153
54154 ---------------------------------------------------------------------------------------------------------------
54155
54156
54157 --
54158 -- bulk performance
54159 --
54160 l_balance_type_code VARCHAR2(1);
54161 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54162 l_log_module VARCHAR2(240);
54163
54164 --
54165 -- Upgrade strategy
54166 --
54167 l_actual_upg_option VARCHAR2(1);
54168 l_enc_upg_option VARCHAR2(1);
54169
54170 --
54171 BEGIN
54172 --
54173 IF g_log_enabled THEN
54174 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
54175 END IF;
54176 --
54177 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54178
54179 trace
54180 (p_msg => 'BEGIN of AcctLineType_108'
54181 ,p_level => C_LEVEL_PROCEDURE
54182 ,p_module => l_log_module);
54183
54184 END IF;
54185 --
54186 l_component_type := 'AMB_JLT';
54187 l_component_code := 'REL_RELEASE_BURDENED_ENC';
54188 l_component_type_code := 'S';
54189 l_component_appl_id := 275;
54190 l_amb_context_code := 'DEFAULT';
54191 l_entity_code := 'EXPENDITURES';
54192 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
54193 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
54194 l_line_definition_owner_code := 'S';
54195 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
54196 --
54197 l_balance_type_code := 'E';
54198 l_segment := NULL;
54199 l_ccid := NULL;
54200 l_adr_transaction_coa_id := NULL;
54201 l_adr_accounting_coa_id := NULL;
54202 l_adr_flexfield_segment_code := NULL;
54203 l_adr_flex_value_set_id := NULL;
54204 l_adr_value_type_code := NULL;
54205 l_adr_value_combination_id := NULL;
54206 l_adr_value_segment_code := NULL;
54207
54208 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
54209 l_bflow_class_code := 'REL_PA_BURDENED_ENC'; -- 4219869 Business Flow
54210 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54211 l_budgetary_control_flag := 'N';
54212
54213 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54214 l_bflow_applied_to_amt := NULL; -- 5132302
54215 l_entered_amt_idx := NULL; -- 4262811
54216 l_accted_amt_idx := NULL; -- 4262811
54217 l_acc_rev_flag := NULL; -- 4262811
54218 l_accrual_line_num := NULL; -- 4262811
54219 l_tmp_amt := NULL; -- 4262811
54220 --
54221
54222 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54223 l_balance_type_code <> 'B' THEN
54224 IF NVL(p_source_34,'
54225 ') = 'E' AND
54226 NVL(p_source_70,'
54227 ') = 'PO' AND
54228 p_source_72 IS NOT NULL AND
54229 NVL(p_source_73,'
54230 ') = 'N'
54231 THEN
54232
54233 --
54234 XLA_AE_LINES_PKG.SetNewLine;
54235
54236 p_balance_type_code := l_balance_type_code;
54237 -- set the flag so later we will know whether the gain loss line needs to be created
54238
54239 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54240 p_actual_flag :='A';
54241 END IF;
54242
54243 --
54244 -- bulk performance
54245 --
54246 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54247 p_header_num => 0); -- 4262811
54248 --
54249 -- set accounting line options
54250 --
54254 , p_gl_transfer_mode_code => 'S'
54251 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54252 p_natural_side_code => 'C'
54253 , p_gain_or_loss_flag => 'N'
54255 , p_acct_entry_type_code => 'E'
54256 , p_switch_side_flag => 'N'
54257 , p_merge_duplicate_code => 'N'
54258 );
54259 --
54260 l_acc_rev_natural_side_code := 'D'; -- 4262811
54261 --
54262 --
54263 -- set accounting line type info
54264 --
54265 xla_ae_lines_pkg.SetAcctLineType
54266 (p_component_type => l_component_type
54267 ,p_event_type_code => l_event_type_code
54268 ,p_line_definition_owner_code => l_line_definition_owner_code
54269 ,p_line_definition_code => l_line_definition_code
54270 ,p_accounting_line_code => l_component_code
54271 ,p_accounting_line_type_code => l_component_type_code
54272 ,p_accounting_line_appl_id => l_component_appl_id
54273 ,p_amb_context_code => l_amb_context_code
54274 ,p_entity_code => l_entity_code
54275 ,p_event_class_code => l_event_class_code);
54276 --
54277 -- set accounting class
54278 --
54279 xla_ae_lines_pkg.SetAcctClass(
54280 p_accounting_class_code => 'PO_PA_BURDENED'
54281 , p_ae_header_id => l_ae_header_id
54282 );
54283
54284 --
54285 -- set rounding class
54286 --
54287 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54288 'PO_PA_BURDENED';
54289
54290 --
54291 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54292 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54293 --
54294 -- bulk performance
54295 --
54296 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54297
54298 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54299 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54300
54301 -- 4955764
54302 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54303 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54304
54305 -- 4458381 Public Sector Enh
54306
54307 --
54308 -- set accounting attributes for the line type
54309 --
54310 l_entered_amt_idx := 35;
54311 l_accted_amt_idx := 37;
54312 l_bflow_applied_to_amt_idx := 19; -- 5132302
54313 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54314 l_rec_acct_attrs.array_char_value(1) := p_source_22;
54315 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
54316 l_rec_acct_attrs.array_char_value(2) := p_source_23;
54317 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
54318 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
54319 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
54320 l_rec_acct_attrs.array_num_value(4) := p_source_44;
54321 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
54322 l_rec_acct_attrs.array_char_value(5) := p_source_25;
54323 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
54324 l_rec_acct_attrs.array_num_value(6) := p_source_45;
54325 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
54326 l_rec_acct_attrs.array_date_value(7) := p_source_27;
54327 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
54328 l_rec_acct_attrs.array_num_value(8) := p_source_28;
54329 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
54330 l_rec_acct_attrs.array_char_value(9) := p_source_29;
54331 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
54332 l_rec_acct_attrs.array_char_value(10) := p_source_30;
54333 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
54334 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
54335 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
54336 l_rec_acct_attrs.array_num_value(12) := p_source_44;
54337 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
54338 l_rec_acct_attrs.array_char_value(13) := p_source_25;
54339 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
54340 l_rec_acct_attrs.array_num_value(14) := p_source_45;
54341 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
54342 l_rec_acct_attrs.array_date_value(15) := p_source_27;
54343 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
54344 l_rec_acct_attrs.array_num_value(16) := p_source_28;
54345 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
54346 l_rec_acct_attrs.array_char_value(17) := p_source_29;
54347 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
54348 l_rec_acct_attrs.array_char_value(18) := p_source_31;
54349 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
54350 l_rec_acct_attrs.array_num_value(19) := p_source_46;
54351 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
54352 l_rec_acct_attrs.array_num_value(20) := p_source_80;
54353 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54354 l_rec_acct_attrs.array_char_value(21) := p_source_81;
54355 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
54356 l_rec_acct_attrs.array_char_value(22) := p_source_82;
54357 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
54358 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_83);
54359 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54363 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
54360 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_84);
54361 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
54362 l_rec_acct_attrs.array_char_value(25) := p_source_85;
54364 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
54365 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
54366 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
54367 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
54368 l_rec_acct_attrs.array_char_value(28) := p_source_34;
54369 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
54370 l_rec_acct_attrs.array_char_value(29) := p_source_54;
54371 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
54372 l_rec_acct_attrs.array_num_value(30) := p_source_2;
54373 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
54374 l_rec_acct_attrs.array_num_value(31) := p_source_46;
54375 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
54376 l_rec_acct_attrs.array_char_value(32) :=
54377 xla_ae_sources_pkg.GetSystemSourceChar(
54378 p_source_code => 'XLA_CURRENCY_CODE'
54379 , p_source_type_code => 'Y'
54380 , p_source_application_id => 602
54381 );
54382 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
54383 l_rec_acct_attrs.array_num_value(33) := p_source_46;
54384 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
54385 l_rec_acct_attrs.array_char_value(34) := p_source_55;
54386 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
54387 l_rec_acct_attrs.array_num_value(35) := p_source_46;
54388 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
54389 l_rec_acct_attrs.array_char_value(36) := p_source_25;
54390 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
54391 l_rec_acct_attrs.array_num_value(37) := p_source_46;
54392 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
54393 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
54394 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
54395 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
54396 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
54397 l_rec_acct_attrs.array_char_value(40) := p_source_34;
54398 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
54399 l_rec_acct_attrs.array_num_value(41) := p_source_56;
54400 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
54401 l_rec_acct_attrs.array_num_value(42) := p_source_57;
54402
54403 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54404 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54405
54406 ---------------------------------------------------------------------------------------------------------------
54407 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54408 ---------------------------------------------------------------------------------------------------------------
54409 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54410
54411 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54412 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54413
54414 IF xla_accounting_cache_pkg.GetValueChar
54415 (p_source_code => 'LEDGER_CATEGORY_CODE'
54416 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54417 AND l_bflow_method_code = 'PRIOR_ENTRY'
54418 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54419 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54420 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54421 )
54422 THEN
54423 xla_ae_lines_pkg.BflowUpgEntry
54424 (p_business_method_code => l_bflow_method_code
54425 ,p_business_class_code => l_bflow_class_code
54426 ,p_balance_type => l_balance_type_code);
54427 ELSE
54428 NULL;
54429 XLA_AE_LINES_PKG.business_flow_validation(
54430 p_business_method_code => l_bflow_method_code
54431 ,p_business_class_code => l_bflow_class_code
54432 ,p_inherit_description_flag => l_inherit_desc_flag);
54433 END IF;
54434
54435 --
54436 -- call analytical criteria
54437 --
54438 -- Inherited Analytical Criteria for business flow method of Prior Entry.
54439 --
54440 -- call description
54441 --
54442 -- No description or it is inherited.
54443 --
54444 -- call ADRs
54445 -- Bug 4922099
54446 --
54447 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54448 (NVL(l_actual_upg_option, 'N') = 'O') OR
54449 (NVL(l_enc_upg_option, 'N') = 'O')
54450 )
54451 THEN
54452 NULL;
54453 --
54454 --
54455
54456 --
54457 --
54458 END IF;
54459 --
54460 -- Bug 4922099
54461 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54462 (NVL(l_enc_upg_option, 'N') = 'O')
54463 ) AND
54464 (l_bflow_method_code = 'PRIOR_ENTRY')
54465 )
54466 THEN
54467 IF
54468 --
54469 1 = 1
54470 --
54471 THEN
54472 xla_accounting_err_pkg.build_message
54473 (p_appli_s_name => 'XLA'
54474 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54475 ,p_token_1 => 'LINE_NUMBER'
54479 l_component_type
54476 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
54477 ,p_token_2 => 'LINE_TYPE_NAME'
54478 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
54480 ,l_component_code
54481 ,l_component_type_code
54482 ,l_component_appl_id
54483 ,l_amb_context_code
54484 ,l_entity_code
54485 ,l_event_class_code
54486 )
54487 ,p_token_3 => 'OWNER'
54488 ,p_value_3 => xla_lookups_pkg.get_meaning(
54489 p_lookup_type => 'XLA_OWNER_TYPE'
54490 ,p_lookup_code => l_component_type_code
54491 )
54492 ,p_token_4 => 'PRODUCT_NAME'
54493 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54494 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54495 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54496 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54497 ,p_ae_header_id => NULL
54498 );
54499
54500 IF (C_LEVEL_ERROR>= g_log_level) THEN
54501 trace
54502 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54503 ,p_level => C_LEVEL_ERROR
54504 ,p_module => l_log_module);
54505 END IF;
54506 END IF;
54507 END IF;
54508 --
54509 --
54510 ------------------------------------------------------------------------------------------------
54511 -- 4219869 Business Flow
54512 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54513 -- Prior Entry. Currently, the following code is always generated.
54514 ------------------------------------------------------------------------------------------------
54515 -- No ValidateCurrentLine for business flow method of Prior Entry
54516
54517 ------------------------------------------------------------------------------------
54518 -- 4219869 Business Flow
54519 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54520 ------------------------------------------------------------------------------------
54521 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54522
54523 ----------------------------------------------------------------------------------
54524 -- 4219869 Business Flow
54525 -- Update journal entry status -- Need to generate this within IF <condition>
54526 ----------------------------------------------------------------------------------
54527 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54528 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54529 ,p_balance_type_code => l_balance_type_code
54530 );
54531
54532 -------------------------------------------------------------------------------------------
54533 -- 4262811 - Generate the Accrual Reversal lines
54534 -------------------------------------------------------------------------------------------
54535 BEGIN
54536 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54537 (g_array_event(p_event_id).array_value_num('header_index'));
54538 IF l_acc_rev_flag IS NULL THEN
54539 l_acc_rev_flag := 'N';
54540 END IF;
54541 EXCEPTION
54542 WHEN OTHERS THEN
54543 l_acc_rev_flag := 'N';
54544 END;
54545 --
54546 IF (l_acc_rev_flag = 'Y') THEN
54547
54548 -- 4645092 ------------------------------------------------------------------------------
54549 -- To allow MPA report to determine if it should generate report process
54550 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54551 ------------------------------------------------------------------------------------------
54552
54553 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54554 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54555
54556 --
54557 -- Update the line information that should be overwritten
54558 --
54559 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54560 p_header_num => 1);
54561 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54562
54563 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54564
54565 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54566 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54567 END IF;
54568
54569 --
54570 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54571 --
54572 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54576 -- 4262811a Switch Sign
54573 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54574 ELSE
54575 ---------------------------------------------------------------------------------------------------
54577 ---------------------------------------------------------------------------------------------------
54578 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54579 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54580 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54581 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54582 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54583 -- 5132302
54584 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54585 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54586
54587 END IF;
54588
54589 -- 4955764
54590 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54591 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54592
54593
54594 XLA_AE_LINES_PKG.ValidateCurrentLine;
54595 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54596
54597 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54598 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54599 ,p_balance_type_code => l_balance_type_code);
54600
54601 END IF;
54602
54603 -----------------------------------------------------------------------------------------
54604 -- 4262811 Multiperiod Accounting
54605 -----------------------------------------------------------------------------------------
54606 -- No MPA option is assigned.
54607
54608
54609 END IF;
54610 END IF;
54611 --
54612
54613 --
54614 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54615 trace
54616 (p_msg => 'END of AcctLineType_108'
54617 ,p_level => C_LEVEL_PROCEDURE
54618 ,p_module => l_log_module);
54619 END IF;
54620 --
54621 EXCEPTION
54622 WHEN xla_exceptions_pkg.application_exception THEN
54623 RAISE;
54624 WHEN OTHERS THEN
54625 xla_exceptions_pkg.raise_message
54626 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_108');
54627 END AcctLineType_108;
54628 --
54629
54630 ---------------------------------------
54631 --
54632 -- PRIVATE FUNCTION
54633 -- AcctLineType_109
54634 --
54635 ---------------------------------------
54636 PROCEDURE AcctLineType_109 (
54637 p_application_id IN NUMBER
54638 ,p_event_id IN NUMBER
54639 ,p_calculate_acctd_flag IN VARCHAR2
54640 ,p_calculate_g_l_flag IN VARCHAR2
54641 ,p_actual_flag IN OUT VARCHAR2
54642 ,p_balance_type_code OUT VARCHAR2
54643 ,p_gain_or_loss_ref OUT VARCHAR2
54644
54645 --Budget Code Combination ID
54646 , p_source_2 IN NUMBER
54647 --Cost CCID
54648 , p_source_3 IN NUMBER
54649 --Cost Clearing CCID
54650 , p_source_6 IN NUMBER
54651 --Reversing Line Flag
54652 , p_source_22 IN VARCHAR2
54653 --Actual Upgrade Credit Accounting Class
54654 , p_source_23 IN VARCHAR2
54655 --Entered Currency Code
54656 , p_source_25 IN VARCHAR2
54657 --Exchange Rate Date
54658 , p_source_27 IN DATE
54659 --Exchange Rate
54660 , p_source_28 IN NUMBER
54661 --Exchange Rate Type
54662 , p_source_29 IN VARCHAR2
54663 --Actual Upgrade Debit Accounting Class
54664 , p_source_30 IN VARCHAR2
54665 --Use Actuals Upgrade Attributes Flag
54666 , p_source_31 IN VARCHAR2
54667 --Expenditure Item ID
54668 , p_source_32 IN NUMBER
54669 --Cost Distribution Line Number
54670 , p_source_33 IN NUMBER
54671 --Line Type
54672 , p_source_34 IN VARCHAR2
54673 , p_source_34_meaning IN VARCHAR2
54674 --Reversed Line Number
54675 , p_source_35 IN NUMBER
54676 --Entered Burdened Cost
54677 , p_source_44 IN NUMBER
54678 --Accounted Burdened Cost
54679 , p_source_45 IN NUMBER
54680 --Encumbrance Amount
54681 , p_source_46 IN NUMBER
54682 --Encumbrance Upgrade Credit Accounting Class
54683 , p_source_53 IN VARCHAR2
54684 --Encumbrance Upgrade Debit Accounting Class
54685 , p_source_54 IN VARCHAR2
54686 --Use Encumbrance Upgrade Attributes Flag
54687 , p_source_55 IN VARCHAR2
54688 --Encumbrance Type ID
54689 , p_source_56 IN NUMBER
54690 --Project Encumbrance Type ID
54691 , p_source_57 IN NUMBER
54692 --Document Type
54693 , p_source_70 IN VARCHAR2
54694 , p_source_70_meaning IN VARCHAR2
54695 --Release ID
54696 , p_source_72 IN NUMBER
54697 --Contingent Worker Timecard Flag
54698 , p_source_73 IN VARCHAR2
54699 --Purchase Order Burden Applied to Application Identifier
54700 , p_source_80 IN NUMBER
54701 --Purchase Order Burden Applied to Distribution Type
54702 , p_source_81 IN VARCHAR2
54703 --Purchase Order Burden Applied to Entity Code
54704 , p_source_82 IN VARCHAR2
54705 --Purchase Order Burden Applied to First Distribution Identifier
54706 , p_source_83 IN NUMBER
54707 --Purchase Order Burden Applied to First System Transaction Identifier
54708 , p_source_84 IN NUMBER
54712 IS
54709 --Purchase Order Burden Applied to Second Distribution Identifier
54710 , p_source_85 IN VARCHAR2
54711 )
54713
54714 l_component_type VARCHAR2(80);
54715 l_component_code VARCHAR2(30);
54716 l_component_type_code VARCHAR2(1);
54717 l_component_appl_id INTEGER;
54718 l_amb_context_code VARCHAR2(30);
54719 l_entity_code VARCHAR2(30);
54720 l_event_class_code VARCHAR2(30);
54721 l_ae_header_id NUMBER;
54722 l_event_type_code VARCHAR2(30);
54723 l_line_definition_code VARCHAR2(30);
54724 l_line_definition_owner_code VARCHAR2(1);
54725 --
54726 -- adr variables
54727 l_segment VARCHAR2(30);
54728 l_ccid NUMBER;
54729 l_adr_transaction_coa_id NUMBER;
54730 l_adr_accounting_coa_id NUMBER;
54731 l_adr_flexfield_segment_code VARCHAR2(30);
54732 l_adr_flex_value_set_id NUMBER;
54733 l_adr_value_type_code VARCHAR2(30);
54734 l_adr_value_combination_id NUMBER;
54735 l_adr_value_segment_code VARCHAR2(30);
54736
54737 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54738 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54739 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54740 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54741
54742 -- 4262811 Variables ------------------------------------------------------------------------------------------
54743 l_entered_amt_idx NUMBER;
54744 l_accted_amt_idx NUMBER;
54745 l_acc_rev_flag VARCHAR2(1);
54746 l_accrual_line_num NUMBER;
54747 l_tmp_amt NUMBER;
54748 l_acc_rev_natural_side_code VARCHAR2(1);
54749
54750 l_num_entries NUMBER;
54751 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54752 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54753 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54754 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54755 l_recog_line_1 NUMBER;
54756 l_recog_line_2 NUMBER;
54757
54758 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54759 l_bflow_applied_to_amt NUMBER; -- 5132302
54760 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54761
54762 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54763
54764 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54765 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54766
54767 ---------------------------------------------------------------------------------------------------------------
54768
54769
54770 --
54771 -- bulk performance
54772 --
54773 l_balance_type_code VARCHAR2(1);
54774 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54775 l_log_module VARCHAR2(240);
54776
54777 --
54778 -- Upgrade strategy
54779 --
54780 l_actual_upg_option VARCHAR2(1);
54781 l_enc_upg_option VARCHAR2(1);
54782
54783 --
54784 BEGIN
54785 --
54786 IF g_log_enabled THEN
54787 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
54788 END IF;
54789 --
54790 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54791
54792 trace
54793 (p_msg => 'BEGIN of AcctLineType_109'
54794 ,p_level => C_LEVEL_PROCEDURE
54795 ,p_module => l_log_module);
54796
54797 END IF;
54798 --
54799 l_component_type := 'AMB_JLT';
54800 l_component_code := 'REL_RELEASE_BURDEN_ENC';
54801 l_component_type_code := 'S';
54802 l_component_appl_id := 275;
54803 l_amb_context_code := 'DEFAULT';
54804 l_entity_code := 'EXPENDITURES';
54805 l_event_class_code := 'BURDEN_COST';
54806 l_event_type_code := 'BURDEN_COST_ALL';
54807 l_line_definition_owner_code := 'S';
54808 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
54809 --
54810 l_balance_type_code := 'E';
54811 l_segment := NULL;
54812 l_ccid := NULL;
54813 l_adr_transaction_coa_id := NULL;
54814 l_adr_accounting_coa_id := NULL;
54815 l_adr_flexfield_segment_code := NULL;
54816 l_adr_flex_value_set_id := NULL;
54817 l_adr_value_type_code := NULL;
54818 l_adr_value_combination_id := NULL;
54819 l_adr_value_segment_code := NULL;
54820
54821 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
54822 l_bflow_class_code := 'REL_PA_BURDEN_ENC'; -- 4219869 Business Flow
54823 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54824 l_budgetary_control_flag := 'N';
54825
54826 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54827 l_bflow_applied_to_amt := NULL; -- 5132302
54828 l_entered_amt_idx := NULL; -- 4262811
54829 l_accted_amt_idx := NULL; -- 4262811
54830 l_acc_rev_flag := NULL; -- 4262811
54831 l_accrual_line_num := NULL; -- 4262811
54832 l_tmp_amt := NULL; -- 4262811
54833 --
54834
54835 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54836 l_balance_type_code <> 'B' THEN
54837 IF NVL(p_source_34,'
54838 ') = 'E' AND
54839 NVL(p_source_70,'
54840 ') = 'PO' AND
54841 p_source_72 IS NOT NULL AND
54842 NVL(p_source_73,'
54843 ') = 'N'
54844 THEN
54845
54846 --
54847 XLA_AE_LINES_PKG.SetNewLine;
54848
54852 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54849 p_balance_type_code := l_balance_type_code;
54850 -- set the flag so later we will know whether the gain loss line needs to be created
54851
54853 p_actual_flag :='A';
54854 END IF;
54855
54856 --
54857 -- bulk performance
54858 --
54859 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54860 p_header_num => 0); -- 4262811
54861 --
54862 -- set accounting line options
54863 --
54864 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54865 p_natural_side_code => 'C'
54866 , p_gain_or_loss_flag => 'N'
54867 , p_gl_transfer_mode_code => 'S'
54868 , p_acct_entry_type_code => 'E'
54869 , p_switch_side_flag => 'N'
54870 , p_merge_duplicate_code => 'N'
54871 );
54872 --
54873 l_acc_rev_natural_side_code := 'D'; -- 4262811
54874 --
54875 --
54876 -- set accounting line type info
54877 --
54878 xla_ae_lines_pkg.SetAcctLineType
54879 (p_component_type => l_component_type
54880 ,p_event_type_code => l_event_type_code
54881 ,p_line_definition_owner_code => l_line_definition_owner_code
54882 ,p_line_definition_code => l_line_definition_code
54883 ,p_accounting_line_code => l_component_code
54884 ,p_accounting_line_type_code => l_component_type_code
54885 ,p_accounting_line_appl_id => l_component_appl_id
54886 ,p_amb_context_code => l_amb_context_code
54887 ,p_entity_code => l_entity_code
54888 ,p_event_class_code => l_event_class_code);
54889 --
54890 -- set accounting class
54891 --
54892 xla_ae_lines_pkg.SetAcctClass(
54893 p_accounting_class_code => 'PO_PA_BURDEN'
54894 , p_ae_header_id => l_ae_header_id
54895 );
54896
54897 --
54898 -- set rounding class
54899 --
54900 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54901 'PO_PA_BURDEN';
54902
54903 --
54904 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54905 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54906 --
54907 -- bulk performance
54908 --
54909 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54910
54911 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54912 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54913
54914 -- 4955764
54915 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54916 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54917
54918 -- 4458381 Public Sector Enh
54919
54920 --
54921 -- set accounting attributes for the line type
54922 --
54923 l_entered_amt_idx := 40;
54924 l_accted_amt_idx := 42;
54925 l_bflow_applied_to_amt_idx := 19; -- 5132302
54926 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54927 l_rec_acct_attrs.array_char_value(1) := p_source_22;
54928 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
54929 l_rec_acct_attrs.array_char_value(2) := p_source_23;
54930 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
54931 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
54932 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
54933 l_rec_acct_attrs.array_num_value(4) := p_source_44;
54934 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
54935 l_rec_acct_attrs.array_char_value(5) := p_source_25;
54936 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
54937 l_rec_acct_attrs.array_num_value(6) := p_source_45;
54938 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
54939 l_rec_acct_attrs.array_date_value(7) := p_source_27;
54940 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
54941 l_rec_acct_attrs.array_num_value(8) := p_source_28;
54942 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
54943 l_rec_acct_attrs.array_char_value(9) := p_source_29;
54944 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
54945 l_rec_acct_attrs.array_char_value(10) := p_source_30;
54946 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
54947 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
54948 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
54949 l_rec_acct_attrs.array_num_value(12) := p_source_44;
54950 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
54951 l_rec_acct_attrs.array_char_value(13) := p_source_25;
54952 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
54953 l_rec_acct_attrs.array_num_value(14) := p_source_45;
54954 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
54955 l_rec_acct_attrs.array_date_value(15) := p_source_27;
54956 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
54957 l_rec_acct_attrs.array_num_value(16) := p_source_28;
54958 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
54959 l_rec_acct_attrs.array_char_value(17) := p_source_29;
54960 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
54961 l_rec_acct_attrs.array_char_value(18) := p_source_31;
54962 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
54963 l_rec_acct_attrs.array_num_value(19) := p_source_46;
54964 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
54968 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
54965 l_rec_acct_attrs.array_num_value(20) := p_source_80;
54966 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54967 l_rec_acct_attrs.array_char_value(21) := p_source_81;
54969 l_rec_acct_attrs.array_char_value(22) := p_source_82;
54970 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
54971 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_83);
54972 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54973 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_84);
54974 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
54975 l_rec_acct_attrs.array_char_value(25) := p_source_85;
54976 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
54977 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
54978 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
54979 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
54980 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
54981 l_rec_acct_attrs.array_char_value(28) := p_source_34;
54982 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
54983 l_rec_acct_attrs.array_char_value(29) := p_source_53;
54984 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
54985 l_rec_acct_attrs.array_num_value(30) := p_source_2;
54986 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
54987 l_rec_acct_attrs.array_num_value(31) := p_source_46;
54988 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
54989 l_rec_acct_attrs.array_char_value(32) := p_source_25;
54990 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
54991 l_rec_acct_attrs.array_num_value(33) := p_source_46;
54992 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
54993 l_rec_acct_attrs.array_char_value(34) := p_source_54;
54994 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
54995 l_rec_acct_attrs.array_num_value(35) := p_source_2;
54996 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
54997 l_rec_acct_attrs.array_num_value(36) := p_source_46;
54998 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
54999 l_rec_acct_attrs.array_char_value(37) := p_source_25;
55000 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
55001 l_rec_acct_attrs.array_num_value(38) := p_source_46;
55002 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
55003 l_rec_acct_attrs.array_char_value(39) := p_source_55;
55004 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
55005 l_rec_acct_attrs.array_num_value(40) := p_source_46;
55006 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
55007 l_rec_acct_attrs.array_char_value(41) := p_source_25;
55008 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
55009 l_rec_acct_attrs.array_num_value(42) := p_source_46;
55010 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
55011 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
55012 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
55013 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
55014 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
55015 l_rec_acct_attrs.array_char_value(45) := p_source_34;
55016 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
55017 l_rec_acct_attrs.array_num_value(46) := p_source_56;
55018 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
55019 l_rec_acct_attrs.array_num_value(47) := p_source_57;
55020
55021 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
55022 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
55023
55024 ---------------------------------------------------------------------------------------------------------------
55025 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
55026 ---------------------------------------------------------------------------------------------------------------
55027 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
55028
55029 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55030 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
55031
55032 IF xla_accounting_cache_pkg.GetValueChar
55033 (p_source_code => 'LEDGER_CATEGORY_CODE'
55034 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
55035 AND l_bflow_method_code = 'PRIOR_ENTRY'
55036 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
55037 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
55038 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
55039 )
55040 THEN
55041 xla_ae_lines_pkg.BflowUpgEntry
55042 (p_business_method_code => l_bflow_method_code
55043 ,p_business_class_code => l_bflow_class_code
55044 ,p_balance_type => l_balance_type_code);
55045 ELSE
55046 NULL;
55047 XLA_AE_LINES_PKG.business_flow_validation(
55048 p_business_method_code => l_bflow_method_code
55049 ,p_business_class_code => l_bflow_class_code
55050 ,p_inherit_description_flag => l_inherit_desc_flag);
55051 END IF;
55052
55053 --
55054 -- call analytical criteria
55055 --
55056 -- Inherited Analytical Criteria for business flow method of Prior Entry.
55057 --
55058 -- call description
55059 --
55060 -- No description or it is inherited.
55061 --
55062 -- call ADRs
55066 (NVL(l_actual_upg_option, 'N') = 'O') OR
55063 -- Bug 4922099
55064 --
55065 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
55067 (NVL(l_enc_upg_option, 'N') = 'O')
55068 )
55069 THEN
55070 NULL;
55071 --
55072 --
55073
55074 --
55075 --
55076 END IF;
55077 --
55078 -- Bug 4922099
55079 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55080 (NVL(l_enc_upg_option, 'N') = 'O')
55081 ) AND
55082 (l_bflow_method_code = 'PRIOR_ENTRY')
55083 )
55084 THEN
55085 IF
55086 --
55087 1 = 1
55088 --
55089 THEN
55090 xla_accounting_err_pkg.build_message
55091 (p_appli_s_name => 'XLA'
55092 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55093 ,p_token_1 => 'LINE_NUMBER'
55094 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55095 ,p_token_2 => 'LINE_TYPE_NAME'
55096 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55097 l_component_type
55098 ,l_component_code
55099 ,l_component_type_code
55100 ,l_component_appl_id
55101 ,l_amb_context_code
55102 ,l_entity_code
55103 ,l_event_class_code
55104 )
55105 ,p_token_3 => 'OWNER'
55106 ,p_value_3 => xla_lookups_pkg.get_meaning(
55107 p_lookup_type => 'XLA_OWNER_TYPE'
55108 ,p_lookup_code => l_component_type_code
55109 )
55110 ,p_token_4 => 'PRODUCT_NAME'
55111 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55112 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55113 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55114 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55115 ,p_ae_header_id => NULL
55116 );
55117
55118 IF (C_LEVEL_ERROR>= g_log_level) THEN
55119 trace
55120 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55121 ,p_level => C_LEVEL_ERROR
55122 ,p_module => l_log_module);
55123 END IF;
55124 END IF;
55125 END IF;
55126 --
55127 --
55128 ------------------------------------------------------------------------------------------------
55129 -- 4219869 Business Flow
55130 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55131 -- Prior Entry. Currently, the following code is always generated.
55132 ------------------------------------------------------------------------------------------------
55133 -- No ValidateCurrentLine for business flow method of Prior Entry
55134
55135 ------------------------------------------------------------------------------------
55136 -- 4219869 Business Flow
55137 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55138 ------------------------------------------------------------------------------------
55139 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55140
55141 ----------------------------------------------------------------------------------
55142 -- 4219869 Business Flow
55143 -- Update journal entry status -- Need to generate this within IF <condition>
55144 ----------------------------------------------------------------------------------
55145 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55146 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55147 ,p_balance_type_code => l_balance_type_code
55148 );
55149
55150 -------------------------------------------------------------------------------------------
55151 -- 4262811 - Generate the Accrual Reversal lines
55152 -------------------------------------------------------------------------------------------
55153 BEGIN
55154 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55155 (g_array_event(p_event_id).array_value_num('header_index'));
55156 IF l_acc_rev_flag IS NULL THEN
55157 l_acc_rev_flag := 'N';
55158 END IF;
55159 EXCEPTION
55160 WHEN OTHERS THEN
55161 l_acc_rev_flag := 'N';
55162 END;
55163 --
55164 IF (l_acc_rev_flag = 'Y') THEN
55165
55166 -- 4645092 ------------------------------------------------------------------------------
55167 -- To allow MPA report to determine if it should generate report process
55168 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55169 ------------------------------------------------------------------------------------------
55170
55171 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55175 -- Update the line information that should be overwritten
55172 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55173
55174 --
55176 --
55177 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55178 p_header_num => 1);
55179 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55180
55181 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55182
55183 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55184 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55185 END IF;
55186
55187 --
55188 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55189 --
55190 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55191 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
55192 ELSE
55193 ---------------------------------------------------------------------------------------------------
55194 -- 4262811a Switch Sign
55195 ---------------------------------------------------------------------------------------------------
55196 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
55197 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55198 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55199 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55200 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55201 -- 5132302
55202 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55203 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55204
55205 END IF;
55206
55207 -- 4955764
55208 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55209 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55210
55211
55212 XLA_AE_LINES_PKG.ValidateCurrentLine;
55213 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55214
55215 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55216 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55217 ,p_balance_type_code => l_balance_type_code);
55218
55219 END IF;
55220
55221 -----------------------------------------------------------------------------------------
55222 -- 4262811 Multiperiod Accounting
55223 -----------------------------------------------------------------------------------------
55224 -- No MPA option is assigned.
55225
55226
55227 END IF;
55228 END IF;
55229 --
55230
55231 --
55232 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55233 trace
55234 (p_msg => 'END of AcctLineType_109'
55235 ,p_level => C_LEVEL_PROCEDURE
55236 ,p_module => l_log_module);
55237 END IF;
55238 --
55239 EXCEPTION
55240 WHEN xla_exceptions_pkg.application_exception THEN
55241 RAISE;
55242 WHEN OTHERS THEN
55243 xla_exceptions_pkg.raise_message
55244 (p_location => 'XLA_00275_AAD_S_000016_PKG.AcctLineType_109');
55245 END AcctLineType_109;
55246 --
55247
55248 ---------------------------------------
55249 --
55250 -- PRIVATE PROCEDURE
55251 -- insert_sources_110
55252 --
55253 ----------------------------------------
55254 --
55255 PROCEDURE insert_sources_110(
55256 p_target_ledger_id IN NUMBER
55257 , p_language IN VARCHAR2
55258 , p_sla_ledger_id IN NUMBER
55259 , p_pad_start_date IN DATE
55260 , p_pad_end_date IN DATE
55261 )
55262 IS
55263
55264 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ_ALL';
55265 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ';
55266 p_apps_owner VARCHAR2(30);
55267 l_log_module VARCHAR2(240);
55268 BEGIN
55269 IF g_log_enabled THEN
55270 l_log_module := C_DEFAULT_MODULE||'.insert_sources_110';
55271 END IF;
55272 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55273
55274 trace
55275 (p_msg => 'BEGIN of insert_sources_110'
55276 ,p_level => C_LEVEL_PROCEDURE
55277 ,p_module => l_log_module);
55278
55279 END IF;
55280
55281 -- select APPS owner
55282 SELECT oracle_username
55283 INTO p_apps_owner
55284 FROM fnd_oracle_userid
55285 WHERE read_only_flag = 'U'
55286 ;
55287
55288 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55289 trace
55290 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
55291 ' - p_language = '||p_language||
55292 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
55293 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
55294 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
55295 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
55296 ,p_level => C_LEVEL_STATEMENT
55297 ,p_module => l_log_module);
55298 END IF;
55299
55300
55301 --
55302 INSERT INTO xla_diag_sources --hdr2
55303 (
55304 event_id
55305 , ledger_id
55309 , object_type_code
55306 , sla_ledger_id
55307 , description_language
55308 , object_name
55310 , line_number
55311 , source_application_id
55312 , source_type_code
55313 , source_code
55314 , source_value
55315 , source_meaning
55316 , created_by
55317 , creation_date
55318 , last_update_date
55319 , last_updated_by
55320 , last_update_login
55321 , program_update_date
55322 , program_application_id
55323 , program_id
55324 , request_id
55325 )
55326 SELECT
55327 event_id
55328 , p_target_ledger_id
55329 , p_sla_ledger_id
55330 , p_language
55331 , object_name
55332 , object_type_code
55333 , line_number
55334 , source_application_id
55335 , source_type_code
55336 , source_code
55337 , SUBSTR(source_value ,1,1996)
55338 , SUBSTR(source_meaning ,1,200)
55339 , xla_environment_pkg.g_Usr_Id
55340 , TRUNC(SYSDATE)
55341 , TRUNC(SYSDATE)
55342 , xla_environment_pkg.g_Usr_Id
55343 , xla_environment_pkg.g_Login_Id
55344 , TRUNC(SYSDATE)
55345 , xla_environment_pkg.g_Prog_Appl_Id
55346 , xla_environment_pkg.g_Prog_Id
55347 , xla_environment_pkg.g_Req_Id
55348 FROM (
55349 SELECT xet.event_id event_id
55350 , 0 line_number
55351 , CASE r
55352 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
55353 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
55354 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
55355
55356 ELSE null
55357 END object_name
55358 , CASE r
55359 WHEN 1 THEN 'HEADER'
55360 WHEN 2 THEN 'HEADER'
55361 WHEN 3 THEN 'HEADER'
55362
55363 ELSE null
55364 END object_type_code
55365 , CASE r
55366 WHEN 1 THEN '275'
55367 WHEN 2 THEN '275'
55368 WHEN 3 THEN '275'
55369
55370 ELSE null
55371 END source_application_id
55372 , 'S' source_type_code
55373 , CASE r
55374 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
55375 WHEN 2 THEN 'TP_AMT_TYPE_CODE'
55376 WHEN 3 THEN 'GL_DATE'
55377
55378 ELSE null
55379 END source_code
55380 , CASE r
55381 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
55382 WHEN 2 THEN TO_CHAR(h2.TP_AMT_TYPE_CODE)
55383 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
55384
55385 ELSE null
55386 END source_value
55387 , CASE r
55388 WHEN 2 THEN fvl67.meaning
55389
55390 ELSE null
55391 END source_meaning
55392 FROM xla_events_gt xet
55393 , PA_XLA_EXP_HEADER_V h2
55394 , fnd_lookup_values fvl67
55395 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
55396 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
55397 AND xet.event_class_code = C_EVENT_CLASS_CODE
55398 AND h2.event_id = xet.event_id
55399 AND fvl67.lookup_type(+) = 'TP_AMOUNT_TYPE'
55400 AND fvl67.lookup_code(+) = h2.TP_AMT_TYPE_CODE
55401 AND fvl67.view_application_id(+) = 275
55402 AND fvl67.language(+) = USERENV('LANG')
55403
55404 )
55405 ;
55406 --
55407 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55408
55409 trace
55410 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
55411 ,p_level => C_LEVEL_STATEMENT
55412 ,p_module => l_log_module);
55413
55414 END IF;
55415 --
55416
55417
55418
55419 --
55420 INSERT INTO xla_diag_sources --line2
55421 (
55422 event_id
55423 , ledger_id
55424 , sla_ledger_id
55425 , description_language
55426 , object_name
55427 , object_type_code
55428 , line_number
55429 , source_application_id
55430 , source_type_code
55431 , source_code
55432 , source_value
55433 , source_meaning
55434 , created_by
55435 , creation_date
55436 , last_update_date
55437 , last_updated_by
55438 , last_update_login
55439 , program_update_date
55440 , program_application_id
55441 , program_id
55442 , request_id
55443 )
55444 SELECT event_id
55445 , p_target_ledger_id
55446 , p_sla_ledger_id
55447 , p_language
55448 , object_name
55449 , object_type_code
55450 , line_number
55451 , source_application_id
55452 , source_type_code
55453 , source_code
55454 , SUBSTR(source_value,1,1996)
55455 , SUBSTR(source_meaning ,1,200)
55456 , xla_environment_pkg.g_Usr_Id
55457 , TRUNC(SYSDATE)
55458 , TRUNC(SYSDATE)
55459 , xla_environment_pkg.g_Usr_Id
55460 , xla_environment_pkg.g_Login_Id
55461 , TRUNC(SYSDATE)
55462 , xla_environment_pkg.g_Prog_Appl_Id
55463 , xla_environment_pkg.g_Prog_Id
55464 , xla_environment_pkg.g_Req_Id
55465 FROM (
55466 SELECT xet.event_id event_id
55470 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
55467 , l1.line_number line_number
55468 , CASE r
55469 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
55471 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
55472 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
55473 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
55474 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
55475 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
55476 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
55477 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
55478 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
55479 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
55480 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
55481 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
55482 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
55483 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
55484 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
55485 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
55486 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
55487
55488 ELSE null
55489 END object_name
55490 , CASE r
55491 WHEN 1 THEN 'LINE'
55492 WHEN 2 THEN 'LINE'
55493 WHEN 3 THEN 'LINE'
55494 WHEN 4 THEN 'LINE'
55495 WHEN 5 THEN 'LINE'
55496 WHEN 6 THEN 'LINE'
55497 WHEN 7 THEN 'LINE'
55498 WHEN 8 THEN 'LINE'
55499 WHEN 9 THEN 'LINE'
55500 WHEN 10 THEN 'LINE'
55501 WHEN 11 THEN 'LINE'
55502 WHEN 12 THEN 'LINE'
55503 WHEN 13 THEN 'LINE'
55504 WHEN 14 THEN 'LINE'
55505 WHEN 15 THEN 'LINE'
55506 WHEN 16 THEN 'LINE'
55507 WHEN 17 THEN 'LINE'
55508 WHEN 18 THEN 'LINE'
55509
55510 ELSE null
55511 END object_type_code
55512 , CASE r
55513 WHEN 1 THEN '275'
55514 WHEN 2 THEN '275'
55515 WHEN 3 THEN '275'
55516 WHEN 4 THEN '275'
55517 WHEN 5 THEN '275'
55518 WHEN 6 THEN '275'
55519 WHEN 7 THEN '275'
55520 WHEN 8 THEN '275'
55521 WHEN 9 THEN '275'
55522 WHEN 10 THEN '275'
55523 WHEN 11 THEN '275'
55524 WHEN 12 THEN '275'
55525 WHEN 13 THEN '275'
55526 WHEN 14 THEN '275'
55527 WHEN 15 THEN '275'
55528 WHEN 16 THEN '275'
55529 WHEN 17 THEN '275'
55530 WHEN 18 THEN '275'
55531
55532 ELSE null
55533 END source_application_id
55534 , 'S' source_type_code
55535 , CASE r
55536 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
55537 WHEN 2 THEN 'PROVIDER_CCID'
55538 WHEN 3 THEN 'ADJ_PROVIDER_CCID'
55539 WHEN 4 THEN 'ADJ_RECEIVER_CCID'
55540 WHEN 5 THEN 'RECEIVER_CCID'
55541 WHEN 6 THEN 'REVERSING_LINE_FLAG'
55542 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
55543 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
55544 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
55545 WHEN 10 THEN 'EXCHANGE_RATE'
55546 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
55547 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
55548 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
55549 WHEN 14 THEN 'LINE_NUMBER'
55550 WHEN 15 THEN 'LINE_TYPE'
55551 WHEN 16 THEN 'LINE_NUM_REVERSED'
55552 WHEN 17 THEN 'ENTERED_AMOUNT'
55553 WHEN 18 THEN 'ACCT_AMOUNT'
55554
55555 ELSE null
55556 END source_code
55557 , CASE r
55558 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
55559 WHEN 2 THEN TO_CHAR(l1.PROVIDER_CCID)
55560 WHEN 3 THEN TO_CHAR(l1.ADJ_PROVIDER_CCID)
55561 WHEN 4 THEN TO_CHAR(l1.ADJ_RECEIVER_CCID)
55562 WHEN 5 THEN TO_CHAR(l1.RECEIVER_CCID)
55563 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
55564 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
55565 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
55566 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
55567 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
55568 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
55569 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
55570 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
55571 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
55572 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
55573 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
55574 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
55575 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
55576
55577 ELSE null
55578 END source_value
55579 , CASE r
55580 WHEN 1 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
55581 103371
55582 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
55583 ,'ALLOW_OVERRIDE_CCID_FLAG'
55584 ,'S'
55585 ,275)
55586 WHEN 15 THEN fvl34.meaning
55587
55588 ELSE null
55589 END source_meaning
55593 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
55590 FROM xla_events_gt xet
55591 , PA_XLA_CCDL_LINES_V l1
55592 , fnd_lookup_values fvl34
55594 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
55595 AND xet.event_class_code = C_EVENT_CLASS_CODE
55596 AND l1.event_id = xet.event_id
55597 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
55598 AND fvl34.lookup_code(+) = l1.LINE_TYPE
55599 AND fvl34.view_application_id(+) = 275
55600 AND fvl34.language(+) = USERENV('LANG')
55601
55602 )
55603 ;
55604 --
55605 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55606
55607 trace
55608 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
55609 ,p_level => C_LEVEL_STATEMENT
55610 ,p_module => l_log_module);
55611
55612 END IF;
55613
55614
55615 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55616 trace
55617 (p_msg => 'END of insert_sources_110'
55618 ,p_level => C_LEVEL_PROCEDURE
55619 ,p_module => l_log_module);
55620 END IF;
55621 EXCEPTION
55622 WHEN xla_exceptions_pkg.application_exception THEN
55623 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
55624 trace
55625 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
55626 ,p_level => C_LEVEL_EXCEPTION
55627 ,p_module => l_log_module);
55628 END IF;
55629 RAISE;
55630 WHEN OTHERS THEN
55631 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
55632 trace
55633 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
55634 ,p_level => C_LEVEL_EXCEPTION
55635 ,p_module => l_log_module);
55636 END IF;
55637 xla_exceptions_pkg.raise_message
55638 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_110');
55639 END insert_sources_110;
55640 --
55641
55642 ---------------------------------------
55643 --
55644 -- PRIVATE FUNCTION
55645 -- EventClass_110
55646 --
55647 ----------------------------------------
55648 --
55649 FUNCTION EventClass_110
55650 (p_application_id IN NUMBER
55651 ,p_base_ledger_id IN NUMBER
55652 ,p_target_ledger_id IN NUMBER
55653 ,p_language IN VARCHAR2
55654 ,p_currency_code IN VARCHAR2
55655 ,p_sla_ledger_id IN NUMBER
55656 ,p_pad_start_date IN DATE
55657 ,p_pad_end_date IN DATE
55658 ,p_primary_ledger_id IN NUMBER)
55659 RETURN BOOLEAN IS
55660 --
55661 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ_ALL';
55662 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ';
55663
55664 l_calculate_acctd_flag VARCHAR2(1) :='N';
55665 l_calculate_g_l_flag VARCHAR2(1) :='N';
55666 --
55667 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55668 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55669 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
55670 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55671 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55672 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
55673 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
55674 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55675 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55676 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55677 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55678 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55679 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55680 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55681 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55682 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55683 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55684 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55685 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55686 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55687 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55688 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55689 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
55690 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
55691
55692 l_event_id NUMBER;
55693 l_previous_event_id NUMBER;
55694 l_first_event_id NUMBER;
55695 l_last_event_id NUMBER;
55696
55697 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
55698 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
55699 --
55700 --
55701 l_result BOOLEAN := TRUE;
55702 l_rows NUMBER := 1000;
55703 l_event_type_name VARCHAR2(80) := 'All';
55704 l_event_class_name VARCHAR2(80) := 'Borrowed and Lent Adjustment';
55705 l_description VARCHAR2(4000);
55706 l_transaction_reversal NUMBER;
55707 l_ae_header_id NUMBER;
55708 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
55709 l_log_module VARCHAR2(240);
55710 --
55711 l_acct_reversal_source VARCHAR2(30);
55712 l_trx_reversal_source VARCHAR2(30);
55716 l_acc_rev_gl_date_source DATE; -- 4262811
55713
55714 l_continue_with_lines BOOLEAN := TRUE;
55715 --
55717 --
55718 type t_array_event_id is table of number index by binary_integer;
55719
55720 l_rec_array_event t_rec_array_event;
55721 l_null_rec_array_event t_rec_array_event;
55722 l_array_ae_header_id xla_number_array_type;
55723 l_actual_flag VARCHAR2(1) := NULL;
55724 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
55725 l_balance_type_code VARCHAR2(1) :=NULL;
55726 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
55727
55728 --
55729 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
55730 --
55731
55732 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
55733 TYPE t_array_source_67 IS TABLE OF PA_XLA_EXP_HEADER_V.TP_AMT_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
55734 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
55735
55736 TYPE t_array_source_4 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
55737 TYPE t_array_source_8 IS TABLE OF PA_XLA_CCDL_LINES_V.PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
55738 TYPE t_array_source_9 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
55739 TYPE t_array_source_10 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
55740 TYPE t_array_source_15 IS TABLE OF PA_XLA_CCDL_LINES_V.RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
55741 TYPE t_array_source_22 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
55742 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
55743 TYPE t_array_source_25 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
55744 TYPE t_array_source_27 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
55745 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
55746 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
55747 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
55748 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
55749 TYPE t_array_source_33 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
55750 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
55751 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
55752 TYPE t_array_source_41 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
55753 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
55754
55755 l_array_source_32 t_array_source_32;
55756 l_array_source_67 t_array_source_67;
55757 l_array_source_67_meaning t_array_lookup_meaning;
55758 l_array_source_88 t_array_source_88;
55759
55760 l_array_source_4 t_array_source_4;
55761 l_array_source_8 t_array_source_8;
55762 l_array_source_9 t_array_source_9;
55763 l_array_source_10 t_array_source_10;
55764 l_array_source_15 t_array_source_15;
55765 l_array_source_22 t_array_source_22;
55766 l_array_source_23 t_array_source_23;
55767 l_array_source_25 t_array_source_25;
55768 l_array_source_27 t_array_source_27;
55769 l_array_source_28 t_array_source_28;
55770 l_array_source_29 t_array_source_29;
55771 l_array_source_30 t_array_source_30;
55772 l_array_source_31 t_array_source_31;
55773 l_array_source_33 t_array_source_33;
55774 l_array_source_34 t_array_source_34;
55775 l_array_source_34_meaning t_array_lookup_meaning;
55776 l_array_source_35 t_array_source_35;
55777 l_array_source_41 t_array_source_41;
55778 l_array_source_43 t_array_source_43;
55779
55780 --
55781 CURSOR header_cur
55782 IS
55783 SELECT /*+ leading(xet) cardinality(xet,1) */
55784 -- Event Class Code: BORROWED_AND_LENT_ADJ
55785 xet.entity_id
55786 ,xet.legal_entity_id
55787 ,xet.entity_code
55788 ,xet.transaction_number
55789 ,xet.event_id
55790 ,xet.event_class_code
55791 ,xet.event_type_code
55792 ,xet.event_number
55793 ,xet.event_date
55794 ,xet.transaction_date
55795 ,xet.reference_num_1
55796 ,xet.reference_num_2
55797 ,xet.reference_num_3
55798 ,xet.reference_num_4
55799 ,xet.reference_char_1
55800 ,xet.reference_char_2
55801 ,xet.reference_char_3
55802 ,xet.reference_char_4
55803 ,xet.reference_date_1
55804 ,xet.reference_date_2
55805 ,xet.reference_date_3
55806 ,xet.reference_date_4
55807 ,xet.event_created_by
55808 ,xet.budgetary_control_flag
55809 , h2.EXPENDITURE_ITEM_ID source_32
55810 , h2.TP_AMT_TYPE_CODE source_67
55811 , fvl67.meaning source_67_meaning
55812 , h2.GL_DATE source_88
55813 FROM xla_events_gt xet
55814 , PA_XLA_EXP_HEADER_V h2
55815 , fnd_lookup_values fvl67
55816 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
55817 and xet.event_class_code = C_EVENT_CLASS_CODE
55818 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
55819 AND fvl67.lookup_type(+) = 'TP_AMOUNT_TYPE'
55820 AND fvl67.lookup_code(+) = h2.TP_AMT_TYPE_CODE
55821 AND fvl67.view_application_id(+) = 275
55822 AND fvl67.language(+) = USERENV('LANG')
55823
55824 ORDER BY event_id
55825 ;
55826
55827
55828 --
55829 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
55830 IS
55831 SELECT /*+ leading(xet) cardinality(xet,1) */
55832 -- Event Class Code: BORROWED_AND_LENT_ADJ
55836 ,xet.transaction_number
55833 xet.entity_id
55834 ,xet.legal_entity_id
55835 ,xet.entity_code
55837 ,xet.event_id
55838 ,xet.event_class_code
55839 ,xet.event_type_code
55840 ,xet.event_number
55841 ,xet.event_date
55842 ,xet.transaction_date
55843 ,xet.reference_num_1
55844 ,xet.reference_num_2
55845 ,xet.reference_num_3
55846 ,xet.reference_num_4
55847 ,xet.reference_char_1
55848 ,xet.reference_char_2
55849 ,xet.reference_char_3
55850 ,xet.reference_char_4
55851 ,xet.reference_date_1
55852 ,xet.reference_date_2
55853 ,xet.reference_date_3
55854 ,xet.reference_date_4
55855 ,xet.event_created_by
55856 ,xet.budgetary_control_flag
55857 , l1.LINE_NUMBER
55858 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
55859 , l1.PROVIDER_CCID source_8
55860 , l1.ADJ_PROVIDER_CCID source_9
55861 , l1.ADJ_RECEIVER_CCID source_10
55862 , l1.RECEIVER_CCID source_15
55863 , l1.REVERSING_LINE_FLAG source_22
55864 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
55865 , l1.ENTERED_CURRENCY_CODE source_25
55866 , l1.EXCHANGE_RATE_DATE source_27
55867 , l1.EXCHANGE_RATE source_28
55868 , l1.EXCHANGE_RATE_TYPE source_29
55869 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
55870 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
55871 , l1.LINE_NUMBER source_33
55872 , l1.LINE_TYPE source_34
55873 , fvl34.meaning source_34_meaning
55874 , l1.LINE_NUM_REVERSED source_35
55875 , l1.ENTERED_AMOUNT source_41
55876 , l1.ACCT_AMOUNT source_43
55877 FROM xla_events_gt xet
55878 , PA_XLA_CCDL_LINES_V l1
55879 , fnd_lookup_values fvl34
55880 WHERE xet.event_id between x_first_event_id and x_last_event_id
55881 and xet.event_date between p_pad_start_date and p_pad_end_date
55882 and xet.event_class_code = C_EVENT_CLASS_CODE
55883 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
55884 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
55885 AND fvl34.lookup_code(+) = l1.LINE_TYPE
55886 AND fvl34.view_application_id(+) = 275
55887 AND fvl34.language(+) = USERENV('LANG')
55888 ;
55889
55890 --
55891 BEGIN
55892 IF g_log_enabled THEN
55893 l_log_module := C_DEFAULT_MODULE||'.EventClass_110';
55894 END IF;
55895 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55896 trace
55897 (p_msg => 'BEGIN of EventClass_110'
55898 ,p_level => C_LEVEL_PROCEDURE
55899 ,p_module => l_log_module);
55900 END IF;
55901
55902 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55903 trace
55904 (p_msg => 'p_application_id = '||p_application_id||
55905 ' - p_base_ledger_id = '||p_base_ledger_id||
55906 ' - p_target_ledger_id = '||p_target_ledger_id||
55907 ' - p_language = '||p_language||
55908 ' - p_currency_code = '||p_currency_code||
55909 ' - p_sla_ledger_id = '||p_sla_ledger_id
55910 ,p_level => C_LEVEL_STATEMENT
55911 ,p_module => l_log_module);
55912 END IF;
55913 --
55914 -- initialze arrays
55915 --
55916 g_array_event.DELETE;
55917 l_rec_array_event := l_null_rec_array_event;
55918 --
55919 --------------------------------------
55920 -- 4262811 Initialze MPA Line Number
55921 --------------------------------------
55922 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
55923
55924 --
55925
55926 --
55927 OPEN header_cur;
55928 --
55929 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55930 trace
55931 (p_msg => 'SQL - FETCH header_cur'
55932 ,p_level => C_LEVEL_STATEMENT
55933 ,p_module => l_log_module);
55934 END IF;
55935 --
55936 LOOP
55937 FETCH header_cur BULK COLLECT INTO
55938 l_array_entity_id
55939 , l_array_legal_entity_id
55940 , l_array_entity_code
55941 , l_array_transaction_num
55942 , l_array_event_id
55943 , l_array_class_code
55944 , l_array_event_type
55945 , l_array_event_number
55946 , l_array_event_date
55947 , l_array_transaction_date
55948 , l_array_reference_num_1
55949 , l_array_reference_num_2
55950 , l_array_reference_num_3
55951 , l_array_reference_num_4
55952 , l_array_reference_char_1
55953 , l_array_reference_char_2
55954 , l_array_reference_char_3
55955 , l_array_reference_char_4
55956 , l_array_reference_date_1
55957 , l_array_reference_date_2
55958 , l_array_reference_date_3
55959 , l_array_reference_date_4
55960 , l_array_event_created_by
55961 , l_array_budgetary_control_flag
55962 , l_array_source_32
55963 , l_array_source_67
55964 , l_array_source_67_meaning
55965 , l_array_source_88
55966 LIMIT l_rows;
55967 --
55968 IF (C_LEVEL_EVENT >= g_log_level) THEN
55969 trace
55970 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
55971 ,p_level => C_LEVEL_EVENT
55972 ,p_module => l_log_module);
55973 END IF;
55974 --
55975 EXIT WHEN l_array_entity_id.COUNT = 0;
55976
55977 -- initialize arrays
55978 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
55979 XLA_AE_LINES_PKG.g_rec_lines := NULL;
55980
55981 --
55982 -- Bug 4458708
55983 --
55984 XLA_AE_LINES_PKG.g_LineNumber := 0;
55985
55986
55987 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
55988 g_last_hdr_idx := l_array_event_id.LAST;
55989 --
55990 -- loop for the headers. Each iteration is for each header extract row
55991 -- fetched in header cursor
55995 --
55992 --
55993 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
55994
55996 -- set event info as cache for other routines to refer event attributes
55997 --
55998 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
55999 (p_application_id => p_application_id
56000 ,p_primary_ledger_id => p_primary_ledger_id
56001 ,p_base_ledger_id => p_base_ledger_id
56002 ,p_target_ledger_id => p_target_ledger_id
56003 ,p_entity_id => l_array_entity_id(hdr_idx)
56004 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
56005 ,p_entity_code => l_array_entity_code(hdr_idx)
56006 ,p_transaction_num => l_array_transaction_num(hdr_idx)
56007 ,p_event_id => l_array_event_id(hdr_idx)
56008 ,p_event_class_code => l_array_class_code(hdr_idx)
56009 ,p_event_type_code => l_array_event_type(hdr_idx)
56010 ,p_event_number => l_array_event_number(hdr_idx)
56011 ,p_event_date => l_array_event_date(hdr_idx)
56012 ,p_transaction_date => l_array_transaction_date(hdr_idx)
56013 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
56014 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
56015 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
56016 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
56017 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
56018 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
56019 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
56020 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
56021 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
56022 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
56023 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
56024 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
56025 ,p_event_created_by => l_array_event_created_by(hdr_idx)
56026 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
56027
56028 --
56029 -- set the status of entry to C_VALID (0)
56030 --
56031 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
56032
56033 --
56034 -- initialize a row for ae header
56035 --
56036 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
56037
56038 l_event_id := l_array_event_id(hdr_idx);
56039
56040 --
56041 -- storing the hdr_idx for event. May be used by line cursor.
56042 --
56043 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
56044
56045 --
56046 -- store sources from header extract. This can be improved to
56047 -- store only those sources from header extract that may be used in lines
56048 --
56049
56050 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
56051 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
56052 g_array_event(l_event_id).array_value_char('source_67_meaning') := l_array_source_67_meaning(hdr_idx);
56053 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
56054
56055 --
56056 -- initilaize the status of ae headers for diffrent balance types
56057 -- the status is initialised to C_NOT_CREATED (2)
56058 --
56059 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
56060 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
56061 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
56062
56063 --
56064 -- call api to validate and store accounting attributes for header
56065 --
56066
56067 ------------------------------------------------------------
56068 -- Accrual Reversal : to get date for Standard Source (NONE)
56069 ------------------------------------------------------------
56070 l_acc_rev_gl_date_source := NULL;
56071
56072 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
56073 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
56074
56075
56076 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
56077
56078 XLA_AE_HEADER_PKG.SetJeCategoryName;
56079
56080 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
56081 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
56082 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
56083 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
56084 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
56085
56086
56087 -- No header level analytical criteria
56088
56089 --
56090 --accounting attribute enhancement, bug 3612931
56091 --
56092 l_trx_reversal_source := SUBSTR(NULL, 1,30);
56093
56094 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
56095 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
56096
56097 xla_accounting_err_pkg.build_message
56098 (p_appli_s_name => 'XLA'
56099 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
56100 ,p_token_1 => 'ACCT_ATTR_NAME'
56101 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
56102 ,p_token_2 => 'PRODUCT_NAME'
56103 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
56104 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
56105 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
56106 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
56107
56111 -- accounting for a distributeion
56108 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
56109 --
56110 -- following sets the accounting attributes needed to reverse
56112 --
56113 xla_ae_lines_pkg.SetTrxReversalAttrs
56114 (p_event_id => l_event_id
56115 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
56116 ,p_trx_reversal_source => l_trx_reversal_source);
56117
56118 END IF;
56119
56120
56121 ----------------------------------------------------------------
56122 -- 4262811 - update the header statuses to invalid in need be
56123 ----------------------------------------------------------------
56124 --
56125 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
56126
56127
56128 -----------------------------------------------
56129 -- No accrual reversal for the event class/type
56130 -----------------------------------------------
56131 ----------------------------------------------------------------
56132
56133 --
56134 -- this ends the header loop iteration for one bulk fetch
56135 --
56136 END LOOP;
56137
56138 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
56139 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
56140
56141 --
56142 -- insert dummy rows into lines gt table that were created due to
56143 -- transaction reversals
56144 --
56145 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
56146 l_result := XLA_AE_LINES_PKG.InsertLines;
56147 END IF;
56148
56149 --
56150 -- reset the temp_line_num for each set of events fetched from header
56151 -- cursor rather than doing it for each new event in line cursor
56152 -- Bug 3939231
56153 --
56154 xla_ae_lines_pkg.g_temp_line_num := 0;
56155
56156
56157
56158 --
56159 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
56160 --
56161 --
56162 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56163
56164 trace
56165 (p_msg => 'SQL - FETCH line_cur'
56166 ,p_level => C_LEVEL_STATEMENT
56167 ,p_module => l_log_module);
56168
56169 END IF;
56170 --
56171 --
56172 LOOP
56173 --
56174 FETCH line_cur BULK COLLECT INTO
56175 l_array_entity_id
56176 , l_array_legal_entity_id
56177 , l_array_entity_code
56178 , l_array_transaction_num
56179 , l_array_event_id
56180 , l_array_class_code
56181 , l_array_event_type
56182 , l_array_event_number
56183 , l_array_event_date
56184 , l_array_transaction_date
56185 , l_array_reference_num_1
56186 , l_array_reference_num_2
56187 , l_array_reference_num_3
56188 , l_array_reference_num_4
56189 , l_array_reference_char_1
56190 , l_array_reference_char_2
56191 , l_array_reference_char_3
56192 , l_array_reference_char_4
56193 , l_array_reference_date_1
56194 , l_array_reference_date_2
56195 , l_array_reference_date_3
56196 , l_array_reference_date_4
56197 , l_array_event_created_by
56198 , l_array_budgetary_control_flag
56199 , l_array_extract_line_num
56200 , l_array_source_4
56201 , l_array_source_8
56202 , l_array_source_9
56203 , l_array_source_10
56204 , l_array_source_15
56205 , l_array_source_22
56206 , l_array_source_23
56207 , l_array_source_25
56208 , l_array_source_27
56209 , l_array_source_28
56210 , l_array_source_29
56211 , l_array_source_30
56212 , l_array_source_31
56213 , l_array_source_33
56214 , l_array_source_34
56215 , l_array_source_34_meaning
56216 , l_array_source_35
56217 , l_array_source_41
56218 , l_array_source_43
56219 LIMIT l_rows;
56220
56221 --
56222 IF (C_LEVEL_EVENT >= g_log_level) THEN
56223 trace
56224 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
56225 ,p_level => C_LEVEL_EVENT
56226 ,p_module => l_log_module);
56227 END IF;
56228 --
56229 EXIT WHEN l_array_entity_id.count = 0;
56230
56231 XLA_AE_LINES_PKG.g_rec_lines := null;
56232
56233 --
56234 -- Bug 4458708
56235 --
56236 XLA_AE_LINES_PKG.g_LineNumber := 0;
56237 --
56238 --
56239
56240 FOR Idx IN 1..l_array_event_id.count LOOP
56241 --
56242 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
56243 --
56244 l_event_id := l_array_event_id(idx); -- 5648433
56245
56246 --
56247 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
56248 --
56249
56250 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
56251 (g_array_event(l_event_id).array_value_num('header_index'))
56252 ,'N'
56253 ) <> 'Y'
56254 THEN
56255 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56256 trace
56257 (p_msg => 'Trancaction revesal option is not Y '
56258 ,p_level => C_LEVEL_STATEMENT
56259 ,p_module => l_log_module);
56260 END IF;
56261
56262 --
56263 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
56264 --
56265 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
56266 --
56267 -- set event info as cache for other routines to refer event attributes
56268 --
56269
56270 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
56271 l_previous_event_id := l_event_id;
56272
56276 ,p_base_ledger_id => p_base_ledger_id
56273 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
56274 (p_application_id => p_application_id
56275 ,p_primary_ledger_id => p_primary_ledger_id
56277 ,p_target_ledger_id => p_target_ledger_id
56278 ,p_entity_id => l_array_entity_id(Idx)
56279 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
56280 ,p_entity_code => l_array_entity_code(Idx)
56281 ,p_transaction_num => l_array_transaction_num(Idx)
56282 ,p_event_id => l_array_event_id(Idx)
56283 ,p_event_class_code => l_array_class_code(Idx)
56284 ,p_event_type_code => l_array_event_type(Idx)
56285 ,p_event_number => l_array_event_number(Idx)
56286 ,p_event_date => l_array_event_date(Idx)
56287 ,p_transaction_date => l_array_transaction_date(Idx)
56288 ,p_reference_num_1 => l_array_reference_num_1(Idx)
56289 ,p_reference_num_2 => l_array_reference_num_2(Idx)
56290 ,p_reference_num_3 => l_array_reference_num_3(Idx)
56291 ,p_reference_num_4 => l_array_reference_num_4(Idx)
56292 ,p_reference_char_1 => l_array_reference_char_1(Idx)
56293 ,p_reference_char_2 => l_array_reference_char_2(Idx)
56294 ,p_reference_char_3 => l_array_reference_char_3(Idx)
56295 ,p_reference_char_4 => l_array_reference_char_4(Idx)
56296 ,p_reference_date_1 => l_array_reference_date_1(Idx)
56297 ,p_reference_date_2 => l_array_reference_date_2(Idx)
56298 ,p_reference_date_3 => l_array_reference_date_3(Idx)
56299 ,p_reference_date_4 => l_array_reference_date_4(Idx)
56300 ,p_event_created_by => l_array_event_created_by(Idx)
56301 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
56302 --
56303 END IF;
56304
56305
56306
56307 --
56308 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
56309
56310 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
56311
56312 IF l_continue_with_lines THEN
56313 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
56314 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
56315
56316 xla_accounting_err_pkg.build_message
56317 (p_appli_s_name => 'XLA'
56318 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
56319 ,p_token_1 => 'LINE_NUMBER'
56320 ,p_value_1 => l_array_extract_line_num(Idx)
56321 ,p_token_2 => 'PRODUCT_NAME'
56322 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
56323 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
56324 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
56325 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
56326
56327 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
56328 --
56329 -- following sets the accounting attributes needed to reverse
56330 -- accounting for a distributeion
56331 --
56332
56333 --
56334 -- 5217187
56335 --
56336 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
56337 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
56338 g_array_event(l_event_id).array_value_num('header_index'));
56339 --
56340 --
56341
56342 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
56343 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
56344 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
56345 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
56346 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
56347 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_8(Idx));
56348 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
56349 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_41(Idx);
56350 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
56351 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
56352 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
56353 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
56354 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
56355 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
56356 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
56357 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
56358 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
56359 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
56360 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
56361 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
56362 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
56363 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_15(Idx));
56364 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
56365 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_41(Idx);
56366 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
56367 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
56368 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
56369 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
56370 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
56374 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
56371 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
56372 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
56373 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
56375 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
56376 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
56377 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
56378 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
56379 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
56380 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
56381 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
56382 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
56383 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
56384 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
56385 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
56386 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
56387 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
56388 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
56389 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
56390
56391
56392 xla_ae_lines_pkg.SetAcctReversalAttrs
56393 (p_event_id => l_event_id
56394 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
56395 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56396 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
56397 END IF;
56398
56399 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
56400 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
56401
56402 --
56403 AcctLineType_38 (
56404 p_application_id => p_application_id
56405 ,p_event_id => l_event_id
56406 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56407 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56408 ,p_actual_flag => l_actual_flag
56409 ,p_balance_type_code => l_balance_type_code
56410 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56411
56412 , p_source_4 => l_array_source_4(Idx)
56413 , p_source_8 => l_array_source_8(Idx)
56414 , p_source_9 => l_array_source_9(Idx)
56415 , p_source_15 => l_array_source_15(Idx)
56416 , p_source_22 => l_array_source_22(Idx)
56417 , p_source_23 => l_array_source_23(Idx)
56418 , p_source_25 => l_array_source_25(Idx)
56419 , p_source_27 => l_array_source_27(Idx)
56420 , p_source_28 => l_array_source_28(Idx)
56421 , p_source_29 => l_array_source_29(Idx)
56422 , p_source_30 => l_array_source_30(Idx)
56423 , p_source_31 => l_array_source_31(Idx)
56424 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
56425 , p_source_33 => l_array_source_33(Idx)
56426 , p_source_34 => l_array_source_34(Idx)
56427 , p_source_34_meaning => l_array_source_34_meaning(Idx)
56428 , p_source_35 => l_array_source_35(Idx)
56429 , p_source_41 => l_array_source_41(Idx)
56430 , p_source_43 => l_array_source_43(Idx)
56431 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
56432 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
56433 );
56434 If(l_balance_type_code = 'A') THEN
56435 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56436 END IF;
56437
56438 --
56439
56440
56441 --
56442 AcctLineType_40 (
56443 p_application_id => p_application_id
56444 ,p_event_id => l_event_id
56445 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56446 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56447 ,p_actual_flag => l_actual_flag
56448 ,p_balance_type_code => l_balance_type_code
56449 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56450
56451 , p_source_4 => l_array_source_4(Idx)
56452 , p_source_8 => l_array_source_8(Idx)
56453 , p_source_9 => l_array_source_9(Idx)
56454 , p_source_15 => l_array_source_15(Idx)
56455 , p_source_22 => l_array_source_22(Idx)
56456 , p_source_23 => l_array_source_23(Idx)
56457 , p_source_25 => l_array_source_25(Idx)
56458 , p_source_27 => l_array_source_27(Idx)
56459 , p_source_28 => l_array_source_28(Idx)
56460 , p_source_29 => l_array_source_29(Idx)
56461 , p_source_30 => l_array_source_30(Idx)
56462 , p_source_31 => l_array_source_31(Idx)
56463 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
56464 , p_source_33 => l_array_source_33(Idx)
56465 , p_source_34 => l_array_source_34(Idx)
56466 , p_source_34_meaning => l_array_source_34_meaning(Idx)
56467 , p_source_35 => l_array_source_35(Idx)
56468 , p_source_41 => l_array_source_41(Idx)
56469 , p_source_43 => l_array_source_43(Idx)
56470 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
56471 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
56472 );
56473 If(l_balance_type_code = 'A') THEN
56474 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56475 END IF;
56476
56477 --
56478
56479
56480 --
56481 AcctLineType_70 (
56482 p_application_id => p_application_id
56483 ,p_event_id => l_event_id
56484 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56485 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56486 ,p_actual_flag => l_actual_flag
56487 ,p_balance_type_code => l_balance_type_code
56488 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56489
56490 , p_source_4 => l_array_source_4(Idx)
56491 , p_source_8 => l_array_source_8(Idx)
56492 , p_source_10 => l_array_source_10(Idx)
56493 , p_source_15 => l_array_source_15(Idx)
56494 , p_source_22 => l_array_source_22(Idx)
56498 , p_source_28 => l_array_source_28(Idx)
56495 , p_source_23 => l_array_source_23(Idx)
56496 , p_source_25 => l_array_source_25(Idx)
56497 , p_source_27 => l_array_source_27(Idx)
56499 , p_source_29 => l_array_source_29(Idx)
56500 , p_source_30 => l_array_source_30(Idx)
56501 , p_source_31 => l_array_source_31(Idx)
56502 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
56503 , p_source_33 => l_array_source_33(Idx)
56504 , p_source_34 => l_array_source_34(Idx)
56505 , p_source_34_meaning => l_array_source_34_meaning(Idx)
56506 , p_source_35 => l_array_source_35(Idx)
56507 , p_source_41 => l_array_source_41(Idx)
56508 , p_source_43 => l_array_source_43(Idx)
56509 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
56510 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
56511 );
56512 If(l_balance_type_code = 'A') THEN
56513 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56514 END IF;
56515
56516 --
56517
56518
56519 --
56520 AcctLineType_72 (
56521 p_application_id => p_application_id
56522 ,p_event_id => l_event_id
56523 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56524 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56525 ,p_actual_flag => l_actual_flag
56526 ,p_balance_type_code => l_balance_type_code
56527 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56528
56529 , p_source_4 => l_array_source_4(Idx)
56530 , p_source_8 => l_array_source_8(Idx)
56531 , p_source_10 => l_array_source_10(Idx)
56532 , p_source_15 => l_array_source_15(Idx)
56533 , p_source_22 => l_array_source_22(Idx)
56534 , p_source_23 => l_array_source_23(Idx)
56535 , p_source_25 => l_array_source_25(Idx)
56536 , p_source_27 => l_array_source_27(Idx)
56537 , p_source_28 => l_array_source_28(Idx)
56538 , p_source_29 => l_array_source_29(Idx)
56539 , p_source_30 => l_array_source_30(Idx)
56540 , p_source_31 => l_array_source_31(Idx)
56541 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
56542 , p_source_33 => l_array_source_33(Idx)
56543 , p_source_34 => l_array_source_34(Idx)
56544 , p_source_34_meaning => l_array_source_34_meaning(Idx)
56545 , p_source_35 => l_array_source_35(Idx)
56546 , p_source_41 => l_array_source_41(Idx)
56547 , p_source_43 => l_array_source_43(Idx)
56548 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
56549 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
56550 );
56551 If(l_balance_type_code = 'A') THEN
56552 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56553 END IF;
56554
56555 --
56556
56557 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
56558 -- or secondary ledger that has different currency with primary
56559 -- or alc that is calculated by sla
56560 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
56561 (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'))
56562
56563 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
56564 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
56565 AND (l_actual_flag = 'A')) THEN
56566 XLA_AE_LINES_PKG.CreateGainOrLossLines(
56567 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
56568 ,p_application_id => p_application_id
56569 ,p_amb_context_code => 'DEFAULT'
56570 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
56571 ,p_event_class_code => C_EVENT_CLASS_CODE
56572 ,p_event_type_code => C_EVENT_TYPE_CODE
56573
56574 ,p_gain_ccid => -1
56575 ,p_loss_ccid => -1
56576
56577 ,p_actual_flag => l_actual_flag
56578 ,p_enc_flag => null
56579 ,p_actual_g_l_ref => l_actual_gain_loss_ref
56580 ,p_enc_g_l_ref => null
56581 );
56582 END IF;
56583 END IF;
56584 END IF;
56585
56586 ELSE
56587 --
56588 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
56589 --
56590 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56591 trace
56592 (p_msg => 'Trancaction revesal option is Y'
56593 ,p_level => C_LEVEL_STATEMENT
56594 ,p_module => l_log_module);
56595 END IF;
56596 END IF;
56597
56598 END LOOP;
56599 l_result := XLA_AE_LINES_PKG.InsertLines ;
56600 end loop;
56601 close line_cur;
56602
56603
56604 --
56605 -- insert headers into xla_ae_headers_gt table
56606 --
56607 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
56608
56609 -- insert into errors table here.
56610
56611 END LOOP;
56612
56613 --
56614 -- 4865292
56615 --
56616 -- Compare g_hdr_extract_count with event count in
56617 -- CreateHeadersAndLines.
56618 --
56619 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
56620
56621 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56622 trace (p_msg => '# rows extracted from header extract objects '
56623 || ' (running total): '
56624 || g_hdr_extract_count
56625 ,p_level => C_LEVEL_STATEMENT
56626 ,p_module => l_log_module);
56627 END IF;
56628
56629 CLOSE header_cur;
56630 --
56631
56632 --
56633 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56634 trace
56635 (p_msg => 'END of EventClass_110'
56636 ,p_level => C_LEVEL_PROCEDURE
56637 ,p_module => l_log_module);
56638 END IF;
56639 --
56640 RETURN l_result;
56644 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
56641 EXCEPTION
56642 WHEN xla_exceptions_pkg.application_exception THEN
56643
56645
56646
56647 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
56648
56649 RAISE;
56650 WHEN OTHERS THEN
56651 xla_exceptions_pkg.raise_message
56652 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_110');
56653 END EventClass_110;
56654 --
56655
56656 ---------------------------------------
56657 --
56658 -- PRIVATE PROCEDURE
56659 -- insert_sources_111
56660 --
56661 ----------------------------------------
56662 --
56663 PROCEDURE insert_sources_111(
56664 p_target_ledger_id IN NUMBER
56665 , p_language IN VARCHAR2
56666 , p_sla_ledger_id IN NUMBER
56667 , p_pad_start_date IN DATE
56668 , p_pad_end_date IN DATE
56669 )
56670 IS
56671
56672 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ALL';
56673 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT';
56674 p_apps_owner VARCHAR2(30);
56675 l_log_module VARCHAR2(240);
56676 BEGIN
56677 IF g_log_enabled THEN
56678 l_log_module := C_DEFAULT_MODULE||'.insert_sources_111';
56679 END IF;
56680 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56681
56682 trace
56683 (p_msg => 'BEGIN of insert_sources_111'
56684 ,p_level => C_LEVEL_PROCEDURE
56685 ,p_module => l_log_module);
56686
56687 END IF;
56688
56689 -- select APPS owner
56690 SELECT oracle_username
56691 INTO p_apps_owner
56692 FROM fnd_oracle_userid
56693 WHERE read_only_flag = 'U'
56694 ;
56695
56696 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56697 trace
56698 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
56699 ' - p_language = '||p_language||
56700 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
56701 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
56702 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
56703 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
56704 ,p_level => C_LEVEL_STATEMENT
56705 ,p_module => l_log_module);
56706 END IF;
56707
56708
56709 --
56710 INSERT INTO xla_diag_sources --hdr2
56711 (
56712 event_id
56713 , ledger_id
56714 , sla_ledger_id
56715 , description_language
56716 , object_name
56717 , object_type_code
56718 , line_number
56719 , source_application_id
56720 , source_type_code
56721 , source_code
56722 , source_value
56723 , source_meaning
56724 , created_by
56725 , creation_date
56726 , last_update_date
56727 , last_updated_by
56728 , last_update_login
56729 , program_update_date
56730 , program_application_id
56731 , program_id
56732 , request_id
56733 )
56734 SELECT
56735 event_id
56736 , p_target_ledger_id
56737 , p_sla_ledger_id
56738 , p_language
56739 , object_name
56740 , object_type_code
56741 , line_number
56742 , source_application_id
56743 , source_type_code
56744 , source_code
56745 , SUBSTR(source_value ,1,1996)
56746 , SUBSTR(source_meaning ,1,200)
56747 , xla_environment_pkg.g_Usr_Id
56748 , TRUNC(SYSDATE)
56749 , TRUNC(SYSDATE)
56750 , xla_environment_pkg.g_Usr_Id
56751 , xla_environment_pkg.g_Login_Id
56752 , TRUNC(SYSDATE)
56753 , xla_environment_pkg.g_Prog_Appl_Id
56754 , xla_environment_pkg.g_Prog_Id
56755 , xla_environment_pkg.g_Req_Id
56756 FROM (
56757 SELECT xet.event_id event_id
56758 , 0 line_number
56759 , CASE r
56760 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
56761 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
56762 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
56763
56764 ELSE null
56765 END object_name
56766 , CASE r
56767 WHEN 1 THEN 'HEADER'
56768 WHEN 2 THEN 'HEADER'
56769 WHEN 3 THEN 'HEADER'
56770
56771 ELSE null
56772 END object_type_code
56773 , CASE r
56774 WHEN 1 THEN '275'
56775 WHEN 2 THEN '275'
56776 WHEN 3 THEN '275'
56777
56778 ELSE null
56779 END source_application_id
56780 , 'S' source_type_code
56781 , CASE r
56782 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
56783 WHEN 2 THEN 'TP_AMT_TYPE_CODE'
56784 WHEN 3 THEN 'GL_DATE'
56785
56786 ELSE null
56787 END source_code
56788 , CASE r
56789 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
56790 WHEN 2 THEN TO_CHAR(h2.TP_AMT_TYPE_CODE)
56791 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
56792
56793 ELSE null
56794 END source_value
56795 , CASE r
56796 WHEN 2 THEN fvl67.meaning
56797
56801 , PA_XLA_EXP_HEADER_V h2
56798 ELSE null
56799 END source_meaning
56800 FROM xla_events_gt xet
56802 , fnd_lookup_values fvl67
56803 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
56804 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
56805 AND xet.event_class_code = C_EVENT_CLASS_CODE
56806 AND h2.event_id = xet.event_id
56807 AND fvl67.lookup_type(+) = 'TP_AMOUNT_TYPE'
56808 AND fvl67.lookup_code(+) = h2.TP_AMT_TYPE_CODE
56809 AND fvl67.view_application_id(+) = 275
56810 AND fvl67.language(+) = USERENV('LANG')
56811
56812 )
56813 ;
56814 --
56815 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56816
56817 trace
56818 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
56819 ,p_level => C_LEVEL_STATEMENT
56820 ,p_module => l_log_module);
56821
56822 END IF;
56823 --
56824
56825
56826
56827 --
56828 INSERT INTO xla_diag_sources --line2
56829 (
56830 event_id
56831 , ledger_id
56832 , sla_ledger_id
56833 , description_language
56834 , object_name
56835 , object_type_code
56836 , line_number
56837 , source_application_id
56838 , source_type_code
56839 , source_code
56840 , source_value
56841 , source_meaning
56842 , created_by
56843 , creation_date
56844 , last_update_date
56845 , last_updated_by
56846 , last_update_login
56847 , program_update_date
56848 , program_application_id
56849 , program_id
56850 , request_id
56851 )
56852 SELECT event_id
56853 , p_target_ledger_id
56854 , p_sla_ledger_id
56855 , p_language
56856 , object_name
56857 , object_type_code
56858 , line_number
56859 , source_application_id
56860 , source_type_code
56861 , source_code
56862 , SUBSTR(source_value,1,1996)
56863 , SUBSTR(source_meaning ,1,200)
56864 , xla_environment_pkg.g_Usr_Id
56865 , TRUNC(SYSDATE)
56866 , TRUNC(SYSDATE)
56867 , xla_environment_pkg.g_Usr_Id
56868 , xla_environment_pkg.g_Login_Id
56869 , TRUNC(SYSDATE)
56870 , xla_environment_pkg.g_Prog_Appl_Id
56871 , xla_environment_pkg.g_Prog_Id
56872 , xla_environment_pkg.g_Req_Id
56873 FROM (
56874 SELECT xet.event_id event_id
56875 , l1.line_number line_number
56876 , CASE r
56877 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
56878 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
56879 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
56880 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
56881 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
56882 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
56883 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
56884 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
56885 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
56886 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
56887 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
56888 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
56889 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
56890 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
56891 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
56892 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
56893 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
56894 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
56895
56896 ELSE null
56897 END object_name
56898 , CASE r
56899 WHEN 1 THEN 'LINE'
56900 WHEN 2 THEN 'LINE'
56901 WHEN 3 THEN 'LINE'
56902 WHEN 4 THEN 'LINE'
56903 WHEN 5 THEN 'LINE'
56904 WHEN 6 THEN 'LINE'
56905 WHEN 7 THEN 'LINE'
56906 WHEN 8 THEN 'LINE'
56907 WHEN 9 THEN 'LINE'
56908 WHEN 10 THEN 'LINE'
56909 WHEN 11 THEN 'LINE'
56910 WHEN 12 THEN 'LINE'
56911 WHEN 13 THEN 'LINE'
56912 WHEN 14 THEN 'LINE'
56913 WHEN 15 THEN 'LINE'
56914 WHEN 16 THEN 'LINE'
56915 WHEN 17 THEN 'LINE'
56916 WHEN 18 THEN 'LINE'
56917
56918 ELSE null
56919 END object_type_code
56920 , CASE r
56921 WHEN 1 THEN '275'
56922 WHEN 2 THEN '275'
56923 WHEN 3 THEN '275'
56924 WHEN 4 THEN '275'
56925 WHEN 5 THEN '275'
56926 WHEN 6 THEN '275'
56927 WHEN 7 THEN '275'
56928 WHEN 8 THEN '275'
56929 WHEN 9 THEN '275'
56930 WHEN 10 THEN '275'
56931 WHEN 11 THEN '275'
56932 WHEN 12 THEN '275'
56933 WHEN 13 THEN '275'
56934 WHEN 14 THEN '275'
56935 WHEN 15 THEN '275'
56936 WHEN 16 THEN '275'
56937 WHEN 17 THEN '275'
56938 WHEN 18 THEN '275'
56939
56940 ELSE null
56941 END source_application_id
56942 , 'S' source_type_code
56943 , CASE r
56944 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
56945 WHEN 2 THEN 'PROVIDER_CCID'
56949 WHEN 6 THEN 'REVERSING_LINE_FLAG'
56946 WHEN 3 THEN 'ADJ_PROVIDER_CCID'
56947 WHEN 4 THEN 'ADJ_RECEIVER_CCID'
56948 WHEN 5 THEN 'RECEIVER_CCID'
56950 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
56951 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
56952 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
56953 WHEN 10 THEN 'EXCHANGE_RATE'
56954 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
56955 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
56956 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
56957 WHEN 14 THEN 'LINE_NUMBER'
56958 WHEN 15 THEN 'LINE_TYPE'
56959 WHEN 16 THEN 'LINE_NUM_REVERSED'
56960 WHEN 17 THEN 'ENTERED_AMOUNT'
56961 WHEN 18 THEN 'ACCT_AMOUNT'
56962
56963 ELSE null
56964 END source_code
56965 , CASE r
56966 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
56967 WHEN 2 THEN TO_CHAR(l1.PROVIDER_CCID)
56968 WHEN 3 THEN TO_CHAR(l1.ADJ_PROVIDER_CCID)
56969 WHEN 4 THEN TO_CHAR(l1.ADJ_RECEIVER_CCID)
56970 WHEN 5 THEN TO_CHAR(l1.RECEIVER_CCID)
56971 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
56972 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
56973 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
56974 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
56975 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
56976 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
56977 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
56978 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
56979 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
56980 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
56981 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
56982 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
56983 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
56984
56985 ELSE null
56986 END source_value
56987 , CASE r
56988 WHEN 1 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
56989 103371
56990 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
56991 ,'ALLOW_OVERRIDE_CCID_FLAG'
56992 ,'S'
56993 ,275)
56994 WHEN 15 THEN fvl34.meaning
56995
56996 ELSE null
56997 END source_meaning
56998 FROM xla_events_gt xet
56999 , PA_XLA_CCDL_LINES_V l1
57000 , fnd_lookup_values fvl34
57001 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
57002 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
57003 AND xet.event_class_code = C_EVENT_CLASS_CODE
57004 AND l1.event_id = xet.event_id
57005 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
57006 AND fvl34.lookup_code(+) = l1.LINE_TYPE
57007 AND fvl34.view_application_id(+) = 275
57008 AND fvl34.language(+) = USERENV('LANG')
57009
57010 )
57011 ;
57012 --
57013 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57014
57015 trace
57016 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
57017 ,p_level => C_LEVEL_STATEMENT
57018 ,p_module => l_log_module);
57019
57020 END IF;
57021
57022
57023 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57024 trace
57025 (p_msg => 'END of insert_sources_111'
57026 ,p_level => C_LEVEL_PROCEDURE
57027 ,p_module => l_log_module);
57028 END IF;
57029 EXCEPTION
57030 WHEN xla_exceptions_pkg.application_exception THEN
57031 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
57032 trace
57033 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
57034 ,p_level => C_LEVEL_EXCEPTION
57035 ,p_module => l_log_module);
57036 END IF;
57037 RAISE;
57038 WHEN OTHERS THEN
57039 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
57040 trace
57041 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
57042 ,p_level => C_LEVEL_EXCEPTION
57043 ,p_module => l_log_module);
57044 END IF;
57045 xla_exceptions_pkg.raise_message
57046 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_111');
57047 END insert_sources_111;
57048 --
57049
57050 ---------------------------------------
57051 --
57052 -- PRIVATE FUNCTION
57053 -- EventClass_111
57054 --
57055 ----------------------------------------
57056 --
57057 FUNCTION EventClass_111
57058 (p_application_id IN NUMBER
57059 ,p_base_ledger_id IN NUMBER
57060 ,p_target_ledger_id IN NUMBER
57061 ,p_language IN VARCHAR2
57062 ,p_currency_code IN VARCHAR2
57063 ,p_sla_ledger_id IN NUMBER
57064 ,p_pad_start_date IN DATE
57065 ,p_pad_end_date IN DATE
57066 ,p_primary_ledger_id IN NUMBER)
57067 RETURN BOOLEAN IS
57068 --
57069 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ALL';
57070 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT';
57071
57072 l_calculate_acctd_flag VARCHAR2(1) :='N';
57073 l_calculate_g_l_flag VARCHAR2(1) :='N';
57074 --
57075 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57079 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57076 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57077 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57078 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57080 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57081 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57082 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57083 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57084 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57085 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57086 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57087 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57088 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57089 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57090 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57091 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57092 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57093 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57094 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57095 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57096 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57097 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
57098 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57099
57100 l_event_id NUMBER;
57101 l_previous_event_id NUMBER;
57102 l_first_event_id NUMBER;
57103 l_last_event_id NUMBER;
57104
57105 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
57106 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
57107 --
57108 --
57109 l_result BOOLEAN := TRUE;
57110 l_rows NUMBER := 1000;
57111 l_event_type_name VARCHAR2(80) := 'All';
57112 l_event_class_name VARCHAR2(80) := 'Borrowed and Lent';
57113 l_description VARCHAR2(4000);
57114 l_transaction_reversal NUMBER;
57115 l_ae_header_id NUMBER;
57116 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
57117 l_log_module VARCHAR2(240);
57118 --
57119 l_acct_reversal_source VARCHAR2(30);
57120 l_trx_reversal_source VARCHAR2(30);
57121
57122 l_continue_with_lines BOOLEAN := TRUE;
57123 --
57124 l_acc_rev_gl_date_source DATE; -- 4262811
57125 --
57126 type t_array_event_id is table of number index by binary_integer;
57127
57128 l_rec_array_event t_rec_array_event;
57129 l_null_rec_array_event t_rec_array_event;
57130 l_array_ae_header_id xla_number_array_type;
57131 l_actual_flag VARCHAR2(1) := NULL;
57132 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
57133 l_balance_type_code VARCHAR2(1) :=NULL;
57134 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
57135
57136 --
57137 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
57138 --
57139
57140 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
57141 TYPE t_array_source_67 IS TABLE OF PA_XLA_EXP_HEADER_V.TP_AMT_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
57142 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
57143
57144 TYPE t_array_source_4 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
57145 TYPE t_array_source_8 IS TABLE OF PA_XLA_CCDL_LINES_V.PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
57146 TYPE t_array_source_9 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
57147 TYPE t_array_source_10 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
57148 TYPE t_array_source_15 IS TABLE OF PA_XLA_CCDL_LINES_V.RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
57149 TYPE t_array_source_22 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
57150 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
57151 TYPE t_array_source_25 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
57152 TYPE t_array_source_27 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
57153 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
57154 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
57155 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
57156 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
57157 TYPE t_array_source_33 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
57158 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
57159 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
57160 TYPE t_array_source_41 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
57161 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
57162
57163 l_array_source_32 t_array_source_32;
57164 l_array_source_67 t_array_source_67;
57165 l_array_source_67_meaning t_array_lookup_meaning;
57166 l_array_source_88 t_array_source_88;
57167
57168 l_array_source_4 t_array_source_4;
57172 l_array_source_15 t_array_source_15;
57169 l_array_source_8 t_array_source_8;
57170 l_array_source_9 t_array_source_9;
57171 l_array_source_10 t_array_source_10;
57173 l_array_source_22 t_array_source_22;
57174 l_array_source_23 t_array_source_23;
57175 l_array_source_25 t_array_source_25;
57176 l_array_source_27 t_array_source_27;
57177 l_array_source_28 t_array_source_28;
57178 l_array_source_29 t_array_source_29;
57179 l_array_source_30 t_array_source_30;
57180 l_array_source_31 t_array_source_31;
57181 l_array_source_33 t_array_source_33;
57182 l_array_source_34 t_array_source_34;
57183 l_array_source_34_meaning t_array_lookup_meaning;
57184 l_array_source_35 t_array_source_35;
57185 l_array_source_41 t_array_source_41;
57186 l_array_source_43 t_array_source_43;
57187
57188 --
57189 CURSOR header_cur
57190 IS
57191 SELECT /*+ leading(xet) cardinality(xet,1) */
57192 -- Event Class Code: BORROWED_AND_LENT
57193 xet.entity_id
57194 ,xet.legal_entity_id
57195 ,xet.entity_code
57196 ,xet.transaction_number
57197 ,xet.event_id
57198 ,xet.event_class_code
57199 ,xet.event_type_code
57200 ,xet.event_number
57201 ,xet.event_date
57202 ,xet.transaction_date
57203 ,xet.reference_num_1
57204 ,xet.reference_num_2
57205 ,xet.reference_num_3
57206 ,xet.reference_num_4
57207 ,xet.reference_char_1
57208 ,xet.reference_char_2
57209 ,xet.reference_char_3
57210 ,xet.reference_char_4
57211 ,xet.reference_date_1
57212 ,xet.reference_date_2
57213 ,xet.reference_date_3
57214 ,xet.reference_date_4
57215 ,xet.event_created_by
57216 ,xet.budgetary_control_flag
57217 , h2.EXPENDITURE_ITEM_ID source_32
57218 , h2.TP_AMT_TYPE_CODE source_67
57219 , fvl67.meaning source_67_meaning
57220 , h2.GL_DATE source_88
57221 FROM xla_events_gt xet
57222 , PA_XLA_EXP_HEADER_V h2
57223 , fnd_lookup_values fvl67
57224 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
57225 and xet.event_class_code = C_EVENT_CLASS_CODE
57226 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
57227 AND fvl67.lookup_type(+) = 'TP_AMOUNT_TYPE'
57228 AND fvl67.lookup_code(+) = h2.TP_AMT_TYPE_CODE
57229 AND fvl67.view_application_id(+) = 275
57230 AND fvl67.language(+) = USERENV('LANG')
57231
57232 ORDER BY event_id
57233 ;
57234
57235
57236 --
57237 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
57238 IS
57239 SELECT /*+ leading(xet) cardinality(xet,1) */
57240 -- Event Class Code: BORROWED_AND_LENT
57241 xet.entity_id
57242 ,xet.legal_entity_id
57243 ,xet.entity_code
57244 ,xet.transaction_number
57245 ,xet.event_id
57246 ,xet.event_class_code
57247 ,xet.event_type_code
57248 ,xet.event_number
57249 ,xet.event_date
57250 ,xet.transaction_date
57251 ,xet.reference_num_1
57252 ,xet.reference_num_2
57253 ,xet.reference_num_3
57254 ,xet.reference_num_4
57255 ,xet.reference_char_1
57256 ,xet.reference_char_2
57257 ,xet.reference_char_3
57258 ,xet.reference_char_4
57259 ,xet.reference_date_1
57260 ,xet.reference_date_2
57261 ,xet.reference_date_3
57262 ,xet.reference_date_4
57263 ,xet.event_created_by
57264 ,xet.budgetary_control_flag
57265 , l1.LINE_NUMBER
57266 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
57267 , l1.PROVIDER_CCID source_8
57268 , l1.ADJ_PROVIDER_CCID source_9
57269 , l1.ADJ_RECEIVER_CCID source_10
57270 , l1.RECEIVER_CCID source_15
57271 , l1.REVERSING_LINE_FLAG source_22
57272 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
57273 , l1.ENTERED_CURRENCY_CODE source_25
57274 , l1.EXCHANGE_RATE_DATE source_27
57275 , l1.EXCHANGE_RATE source_28
57276 , l1.EXCHANGE_RATE_TYPE source_29
57277 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
57278 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
57279 , l1.LINE_NUMBER source_33
57280 , l1.LINE_TYPE source_34
57281 , fvl34.meaning source_34_meaning
57282 , l1.LINE_NUM_REVERSED source_35
57283 , l1.ENTERED_AMOUNT source_41
57284 , l1.ACCT_AMOUNT source_43
57285 FROM xla_events_gt xet
57286 , PA_XLA_CCDL_LINES_V l1
57287 , fnd_lookup_values fvl34
57288 WHERE xet.event_id between x_first_event_id and x_last_event_id
57289 and xet.event_date between p_pad_start_date and p_pad_end_date
57290 and xet.event_class_code = C_EVENT_CLASS_CODE
57291 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
57292 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
57293 AND fvl34.lookup_code(+) = l1.LINE_TYPE
57294 AND fvl34.view_application_id(+) = 275
57295 AND fvl34.language(+) = USERENV('LANG')
57296 ;
57297
57298 --
57299 BEGIN
57300 IF g_log_enabled THEN
57301 l_log_module := C_DEFAULT_MODULE||'.EventClass_111';
57302 END IF;
57303 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57304 trace
57305 (p_msg => 'BEGIN of EventClass_111'
57306 ,p_level => C_LEVEL_PROCEDURE
57307 ,p_module => l_log_module);
57308 END IF;
57309
57310 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57311 trace
57312 (p_msg => 'p_application_id = '||p_application_id||
57313 ' - p_base_ledger_id = '||p_base_ledger_id||
57314 ' - p_target_ledger_id = '||p_target_ledger_id||
57315 ' - p_language = '||p_language||
57316 ' - p_currency_code = '||p_currency_code||
57317 ' - p_sla_ledger_id = '||p_sla_ledger_id
57318 ,p_level => C_LEVEL_STATEMENT
57322 -- initialze arrays
57319 ,p_module => l_log_module);
57320 END IF;
57321 --
57323 --
57324 g_array_event.DELETE;
57325 l_rec_array_event := l_null_rec_array_event;
57326 --
57327 --------------------------------------
57328 -- 4262811 Initialze MPA Line Number
57329 --------------------------------------
57330 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
57331
57332 --
57333
57334 --
57335 OPEN header_cur;
57336 --
57337 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57338 trace
57339 (p_msg => 'SQL - FETCH header_cur'
57340 ,p_level => C_LEVEL_STATEMENT
57341 ,p_module => l_log_module);
57342 END IF;
57343 --
57344 LOOP
57345 FETCH header_cur BULK COLLECT INTO
57346 l_array_entity_id
57347 , l_array_legal_entity_id
57348 , l_array_entity_code
57349 , l_array_transaction_num
57350 , l_array_event_id
57351 , l_array_class_code
57352 , l_array_event_type
57353 , l_array_event_number
57354 , l_array_event_date
57355 , l_array_transaction_date
57356 , l_array_reference_num_1
57357 , l_array_reference_num_2
57358 , l_array_reference_num_3
57359 , l_array_reference_num_4
57360 , l_array_reference_char_1
57361 , l_array_reference_char_2
57362 , l_array_reference_char_3
57363 , l_array_reference_char_4
57364 , l_array_reference_date_1
57365 , l_array_reference_date_2
57366 , l_array_reference_date_3
57367 , l_array_reference_date_4
57368 , l_array_event_created_by
57369 , l_array_budgetary_control_flag
57370 , l_array_source_32
57371 , l_array_source_67
57372 , l_array_source_67_meaning
57373 , l_array_source_88
57374 LIMIT l_rows;
57375 --
57376 IF (C_LEVEL_EVENT >= g_log_level) THEN
57377 trace
57378 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
57379 ,p_level => C_LEVEL_EVENT
57380 ,p_module => l_log_module);
57381 END IF;
57382 --
57383 EXIT WHEN l_array_entity_id.COUNT = 0;
57384
57385 -- initialize arrays
57386 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
57387 XLA_AE_LINES_PKG.g_rec_lines := NULL;
57388
57389 --
57390 -- Bug 4458708
57391 --
57392 XLA_AE_LINES_PKG.g_LineNumber := 0;
57393
57394
57395 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
57396 g_last_hdr_idx := l_array_event_id.LAST;
57397 --
57398 -- loop for the headers. Each iteration is for each header extract row
57399 -- fetched in header cursor
57400 --
57401 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
57402
57403 --
57404 -- set event info as cache for other routines to refer event attributes
57405 --
57406 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
57407 (p_application_id => p_application_id
57408 ,p_primary_ledger_id => p_primary_ledger_id
57409 ,p_base_ledger_id => p_base_ledger_id
57410 ,p_target_ledger_id => p_target_ledger_id
57411 ,p_entity_id => l_array_entity_id(hdr_idx)
57412 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
57413 ,p_entity_code => l_array_entity_code(hdr_idx)
57414 ,p_transaction_num => l_array_transaction_num(hdr_idx)
57415 ,p_event_id => l_array_event_id(hdr_idx)
57416 ,p_event_class_code => l_array_class_code(hdr_idx)
57417 ,p_event_type_code => l_array_event_type(hdr_idx)
57418 ,p_event_number => l_array_event_number(hdr_idx)
57419 ,p_event_date => l_array_event_date(hdr_idx)
57420 ,p_transaction_date => l_array_transaction_date(hdr_idx)
57421 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
57422 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
57423 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
57424 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
57425 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
57426 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
57427 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
57428 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
57429 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
57430 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
57431 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
57432 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
57433 ,p_event_created_by => l_array_event_created_by(hdr_idx)
57434 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
57435
57436 --
57437 -- set the status of entry to C_VALID (0)
57438 --
57439 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
57440
57441 --
57442 -- initialize a row for ae header
57443 --
57444 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
57445
57446 l_event_id := l_array_event_id(hdr_idx);
57447
57448 --
57449 -- storing the hdr_idx for event. May be used by line cursor.
57450 --
57451 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
57452
57453 --
57454 -- store sources from header extract. This can be improved to
57455 -- store only those sources from header extract that may be used in lines
57456 --
57457
57458 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
57459 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
57460 g_array_event(l_event_id).array_value_char('source_67_meaning') := l_array_source_67_meaning(hdr_idx);
57461 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
57465 -- the status is initialised to C_NOT_CREATED (2)
57462
57463 --
57464 -- initilaize the status of ae headers for diffrent balance types
57466 --
57467 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
57468 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
57469 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
57470
57471 --
57472 -- call api to validate and store accounting attributes for header
57473 --
57474
57475 ------------------------------------------------------------
57476 -- Accrual Reversal : to get date for Standard Source (NONE)
57477 ------------------------------------------------------------
57478 l_acc_rev_gl_date_source := NULL;
57479
57480 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
57481 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
57482
57483
57484 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
57485
57486 XLA_AE_HEADER_PKG.SetJeCategoryName;
57487
57488 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
57489 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
57490 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
57491 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
57492 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
57493
57494
57495 -- No header level analytical criteria
57496
57497 --
57498 --accounting attribute enhancement, bug 3612931
57499 --
57500 l_trx_reversal_source := SUBSTR(NULL, 1,30);
57501
57502 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
57503 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
57504
57505 xla_accounting_err_pkg.build_message
57506 (p_appli_s_name => 'XLA'
57507 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
57508 ,p_token_1 => 'ACCT_ATTR_NAME'
57509 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
57510 ,p_token_2 => 'PRODUCT_NAME'
57511 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
57512 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
57513 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
57514 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
57515
57516 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
57517 --
57518 -- following sets the accounting attributes needed to reverse
57519 -- accounting for a distributeion
57520 --
57521 xla_ae_lines_pkg.SetTrxReversalAttrs
57522 (p_event_id => l_event_id
57523 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
57524 ,p_trx_reversal_source => l_trx_reversal_source);
57525
57526 END IF;
57527
57528
57529 ----------------------------------------------------------------
57530 -- 4262811 - update the header statuses to invalid in need be
57531 ----------------------------------------------------------------
57532 --
57533 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
57534
57535
57536 -----------------------------------------------
57537 -- No accrual reversal for the event class/type
57538 -----------------------------------------------
57539 ----------------------------------------------------------------
57540
57541 --
57542 -- this ends the header loop iteration for one bulk fetch
57543 --
57544 END LOOP;
57545
57546 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
57547 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
57548
57549 --
57550 -- insert dummy rows into lines gt table that were created due to
57551 -- transaction reversals
57552 --
57553 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
57554 l_result := XLA_AE_LINES_PKG.InsertLines;
57555 END IF;
57556
57557 --
57558 -- reset the temp_line_num for each set of events fetched from header
57559 -- cursor rather than doing it for each new event in line cursor
57560 -- Bug 3939231
57561 --
57562 xla_ae_lines_pkg.g_temp_line_num := 0;
57563
57564
57565
57566 --
57567 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
57568 --
57569 --
57570 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57571
57572 trace
57573 (p_msg => 'SQL - FETCH line_cur'
57574 ,p_level => C_LEVEL_STATEMENT
57575 ,p_module => l_log_module);
57576
57577 END IF;
57578 --
57579 --
57580 LOOP
57581 --
57582 FETCH line_cur BULK COLLECT INTO
57583 l_array_entity_id
57584 , l_array_legal_entity_id
57585 , l_array_entity_code
57586 , l_array_transaction_num
57587 , l_array_event_id
57588 , l_array_class_code
57589 , l_array_event_type
57590 , l_array_event_number
57591 , l_array_event_date
57592 , l_array_transaction_date
57593 , l_array_reference_num_1
57594 , l_array_reference_num_2
57595 , l_array_reference_num_3
57596 , l_array_reference_num_4
57597 , l_array_reference_char_1
57598 , l_array_reference_char_2
57599 , l_array_reference_char_3
57600 , l_array_reference_char_4
57601 , l_array_reference_date_1
57602 , l_array_reference_date_2
57603 , l_array_reference_date_3
57607 , l_array_extract_line_num
57604 , l_array_reference_date_4
57605 , l_array_event_created_by
57606 , l_array_budgetary_control_flag
57608 , l_array_source_4
57609 , l_array_source_8
57610 , l_array_source_9
57611 , l_array_source_10
57612 , l_array_source_15
57613 , l_array_source_22
57614 , l_array_source_23
57615 , l_array_source_25
57616 , l_array_source_27
57617 , l_array_source_28
57618 , l_array_source_29
57619 , l_array_source_30
57620 , l_array_source_31
57621 , l_array_source_33
57622 , l_array_source_34
57623 , l_array_source_34_meaning
57624 , l_array_source_35
57625 , l_array_source_41
57626 , l_array_source_43
57627 LIMIT l_rows;
57628
57629 --
57630 IF (C_LEVEL_EVENT >= g_log_level) THEN
57631 trace
57632 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
57633 ,p_level => C_LEVEL_EVENT
57634 ,p_module => l_log_module);
57635 END IF;
57636 --
57637 EXIT WHEN l_array_entity_id.count = 0;
57638
57639 XLA_AE_LINES_PKG.g_rec_lines := null;
57640
57641 --
57642 -- Bug 4458708
57643 --
57644 XLA_AE_LINES_PKG.g_LineNumber := 0;
57645 --
57646 --
57647
57648 FOR Idx IN 1..l_array_event_id.count LOOP
57649 --
57650 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
57651 --
57652 l_event_id := l_array_event_id(idx); -- 5648433
57653
57654 --
57655 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
57656 --
57657
57658 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
57659 (g_array_event(l_event_id).array_value_num('header_index'))
57660 ,'N'
57661 ) <> 'Y'
57662 THEN
57663 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57664 trace
57665 (p_msg => 'Trancaction revesal option is not Y '
57666 ,p_level => C_LEVEL_STATEMENT
57667 ,p_module => l_log_module);
57668 END IF;
57669
57670 --
57671 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
57672 --
57673 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
57674 --
57675 -- set event info as cache for other routines to refer event attributes
57676 --
57677
57678 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
57679 l_previous_event_id := l_event_id;
57680
57681 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
57682 (p_application_id => p_application_id
57683 ,p_primary_ledger_id => p_primary_ledger_id
57684 ,p_base_ledger_id => p_base_ledger_id
57685 ,p_target_ledger_id => p_target_ledger_id
57686 ,p_entity_id => l_array_entity_id(Idx)
57687 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
57688 ,p_entity_code => l_array_entity_code(Idx)
57689 ,p_transaction_num => l_array_transaction_num(Idx)
57690 ,p_event_id => l_array_event_id(Idx)
57691 ,p_event_class_code => l_array_class_code(Idx)
57692 ,p_event_type_code => l_array_event_type(Idx)
57693 ,p_event_number => l_array_event_number(Idx)
57694 ,p_event_date => l_array_event_date(Idx)
57695 ,p_transaction_date => l_array_transaction_date(Idx)
57696 ,p_reference_num_1 => l_array_reference_num_1(Idx)
57697 ,p_reference_num_2 => l_array_reference_num_2(Idx)
57698 ,p_reference_num_3 => l_array_reference_num_3(Idx)
57699 ,p_reference_num_4 => l_array_reference_num_4(Idx)
57700 ,p_reference_char_1 => l_array_reference_char_1(Idx)
57701 ,p_reference_char_2 => l_array_reference_char_2(Idx)
57702 ,p_reference_char_3 => l_array_reference_char_3(Idx)
57703 ,p_reference_char_4 => l_array_reference_char_4(Idx)
57704 ,p_reference_date_1 => l_array_reference_date_1(Idx)
57705 ,p_reference_date_2 => l_array_reference_date_2(Idx)
57706 ,p_reference_date_3 => l_array_reference_date_3(Idx)
57707 ,p_reference_date_4 => l_array_reference_date_4(Idx)
57708 ,p_event_created_by => l_array_event_created_by(Idx)
57709 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
57710 --
57711 END IF;
57712
57713
57714
57715 --
57716 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
57717
57718 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
57719
57720 IF l_continue_with_lines THEN
57721 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
57722 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
57723
57724 xla_accounting_err_pkg.build_message
57725 (p_appli_s_name => 'XLA'
57726 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
57727 ,p_token_1 => 'LINE_NUMBER'
57728 ,p_value_1 => l_array_extract_line_num(Idx)
57729 ,p_token_2 => 'PRODUCT_NAME'
57730 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
57731 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
57732 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
57733 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
57734
57735 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
57736 --
57740
57737 -- following sets the accounting attributes needed to reverse
57738 -- accounting for a distributeion
57739 --
57741 --
57742 -- 5217187
57743 --
57744 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
57745 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
57746 g_array_event(l_event_id).array_value_num('header_index'));
57747 --
57748 --
57749
57750 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
57751 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
57752 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
57753 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
57754 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
57755 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_8(Idx));
57756 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
57757 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_41(Idx);
57758 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
57759 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
57760 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
57761 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
57762 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
57763 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
57764 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
57765 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
57766 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
57767 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
57768 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
57769 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
57770 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
57771 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_15(Idx));
57772 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
57773 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_41(Idx);
57774 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
57775 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
57776 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
57777 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
57778 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
57779 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
57780 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
57781 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
57782 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
57783 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
57784 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
57785 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
57786 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
57787 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
57788 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
57789 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
57790 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
57791 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
57792 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
57793 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
57794 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
57795 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
57796 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
57797 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
57798
57799
57800 xla_ae_lines_pkg.SetAcctReversalAttrs
57801 (p_event_id => l_event_id
57802 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
57803 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57804 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
57805 END IF;
57806
57807 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
57808 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
57809
57810 --
57811 AcctLineType_37 (
57812 p_application_id => p_application_id
57813 ,p_event_id => l_event_id
57814 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57815 ,p_calculate_g_l_flag => l_calculate_g_l_flag
57816 ,p_actual_flag => l_actual_flag
57817 ,p_balance_type_code => l_balance_type_code
57818 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
57819
57820 , p_source_4 => l_array_source_4(Idx)
57821 , p_source_8 => l_array_source_8(Idx)
57822 , p_source_9 => l_array_source_9(Idx)
57823 , p_source_15 => l_array_source_15(Idx)
57824 , p_source_22 => l_array_source_22(Idx)
57825 , p_source_23 => l_array_source_23(Idx)
57826 , p_source_25 => l_array_source_25(Idx)
57827 , p_source_27 => l_array_source_27(Idx)
57828 , p_source_28 => l_array_source_28(Idx)
57829 , p_source_29 => l_array_source_29(Idx)
57830 , p_source_30 => l_array_source_30(Idx)
57831 , p_source_31 => l_array_source_31(Idx)
57832 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
57833 , p_source_33 => l_array_source_33(Idx)
57834 , p_source_34 => l_array_source_34(Idx)
57835 , p_source_34_meaning => l_array_source_34_meaning(Idx)
57839 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
57836 , p_source_35 => l_array_source_35(Idx)
57837 , p_source_41 => l_array_source_41(Idx)
57838 , p_source_43 => l_array_source_43(Idx)
57840 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
57841 );
57842 If(l_balance_type_code = 'A') THEN
57843 l_actual_gain_loss_ref := l_gain_or_loss_ref;
57844 END IF;
57845
57846 --
57847
57848
57849 --
57850 AcctLineType_39 (
57851 p_application_id => p_application_id
57852 ,p_event_id => l_event_id
57853 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57854 ,p_calculate_g_l_flag => l_calculate_g_l_flag
57855 ,p_actual_flag => l_actual_flag
57856 ,p_balance_type_code => l_balance_type_code
57857 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
57858
57859 , p_source_4 => l_array_source_4(Idx)
57860 , p_source_8 => l_array_source_8(Idx)
57861 , p_source_9 => l_array_source_9(Idx)
57862 , p_source_15 => l_array_source_15(Idx)
57863 , p_source_22 => l_array_source_22(Idx)
57864 , p_source_23 => l_array_source_23(Idx)
57865 , p_source_25 => l_array_source_25(Idx)
57866 , p_source_27 => l_array_source_27(Idx)
57867 , p_source_28 => l_array_source_28(Idx)
57868 , p_source_29 => l_array_source_29(Idx)
57869 , p_source_30 => l_array_source_30(Idx)
57870 , p_source_31 => l_array_source_31(Idx)
57871 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
57872 , p_source_33 => l_array_source_33(Idx)
57873 , p_source_34 => l_array_source_34(Idx)
57874 , p_source_34_meaning => l_array_source_34_meaning(Idx)
57875 , p_source_35 => l_array_source_35(Idx)
57876 , p_source_41 => l_array_source_41(Idx)
57877 , p_source_43 => l_array_source_43(Idx)
57878 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
57879 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
57880 );
57881 If(l_balance_type_code = 'A') THEN
57882 l_actual_gain_loss_ref := l_gain_or_loss_ref;
57883 END IF;
57884
57885 --
57886
57887
57888 --
57889 AcctLineType_69 (
57890 p_application_id => p_application_id
57891 ,p_event_id => l_event_id
57892 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57893 ,p_calculate_g_l_flag => l_calculate_g_l_flag
57894 ,p_actual_flag => l_actual_flag
57895 ,p_balance_type_code => l_balance_type_code
57896 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
57897
57898 , p_source_4 => l_array_source_4(Idx)
57899 , p_source_8 => l_array_source_8(Idx)
57900 , p_source_10 => l_array_source_10(Idx)
57901 , p_source_15 => l_array_source_15(Idx)
57902 , p_source_22 => l_array_source_22(Idx)
57903 , p_source_23 => l_array_source_23(Idx)
57904 , p_source_25 => l_array_source_25(Idx)
57905 , p_source_27 => l_array_source_27(Idx)
57906 , p_source_28 => l_array_source_28(Idx)
57907 , p_source_29 => l_array_source_29(Idx)
57908 , p_source_30 => l_array_source_30(Idx)
57909 , p_source_31 => l_array_source_31(Idx)
57910 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
57911 , p_source_33 => l_array_source_33(Idx)
57912 , p_source_34 => l_array_source_34(Idx)
57913 , p_source_34_meaning => l_array_source_34_meaning(Idx)
57914 , p_source_35 => l_array_source_35(Idx)
57915 , p_source_41 => l_array_source_41(Idx)
57916 , p_source_43 => l_array_source_43(Idx)
57917 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
57918 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
57919 );
57920 If(l_balance_type_code = 'A') THEN
57921 l_actual_gain_loss_ref := l_gain_or_loss_ref;
57922 END IF;
57923
57924 --
57925
57926
57927 --
57928 AcctLineType_71 (
57929 p_application_id => p_application_id
57930 ,p_event_id => l_event_id
57931 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57932 ,p_calculate_g_l_flag => l_calculate_g_l_flag
57933 ,p_actual_flag => l_actual_flag
57934 ,p_balance_type_code => l_balance_type_code
57935 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
57936
57937 , p_source_4 => l_array_source_4(Idx)
57938 , p_source_8 => l_array_source_8(Idx)
57939 , p_source_10 => l_array_source_10(Idx)
57940 , p_source_15 => l_array_source_15(Idx)
57941 , p_source_22 => l_array_source_22(Idx)
57942 , p_source_23 => l_array_source_23(Idx)
57943 , p_source_25 => l_array_source_25(Idx)
57944 , p_source_27 => l_array_source_27(Idx)
57945 , p_source_28 => l_array_source_28(Idx)
57946 , p_source_29 => l_array_source_29(Idx)
57947 , p_source_30 => l_array_source_30(Idx)
57948 , p_source_31 => l_array_source_31(Idx)
57949 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
57950 , p_source_33 => l_array_source_33(Idx)
57951 , p_source_34 => l_array_source_34(Idx)
57952 , p_source_34_meaning => l_array_source_34_meaning(Idx)
57953 , p_source_35 => l_array_source_35(Idx)
57954 , p_source_41 => l_array_source_41(Idx)
57955 , p_source_43 => l_array_source_43(Idx)
57956 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
57957 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
57958 );
57959 If(l_balance_type_code = 'A') THEN
57960 l_actual_gain_loss_ref := l_gain_or_loss_ref;
57961 END IF;
57962
57963 --
57964
57965 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
57966 -- or secondary ledger that has different currency with primary
57967 -- or alc that is calculated by sla
57968 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
57969 (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'))
57970
57974 XLA_AE_LINES_PKG.CreateGainOrLossLines(
57971 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
57972 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
57973 AND (l_actual_flag = 'A')) THEN
57975 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
57976 ,p_application_id => p_application_id
57977 ,p_amb_context_code => 'DEFAULT'
57978 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
57979 ,p_event_class_code => C_EVENT_CLASS_CODE
57980 ,p_event_type_code => C_EVENT_TYPE_CODE
57981
57982 ,p_gain_ccid => -1
57983 ,p_loss_ccid => -1
57984
57985 ,p_actual_flag => l_actual_flag
57986 ,p_enc_flag => null
57987 ,p_actual_g_l_ref => l_actual_gain_loss_ref
57988 ,p_enc_g_l_ref => null
57989 );
57990 END IF;
57991 END IF;
57992 END IF;
57993
57994 ELSE
57995 --
57996 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
57997 --
57998 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57999 trace
58000 (p_msg => 'Trancaction revesal option is Y'
58001 ,p_level => C_LEVEL_STATEMENT
58002 ,p_module => l_log_module);
58003 END IF;
58004 END IF;
58005
58006 END LOOP;
58007 l_result := XLA_AE_LINES_PKG.InsertLines ;
58008 end loop;
58009 close line_cur;
58010
58011
58012 --
58013 -- insert headers into xla_ae_headers_gt table
58014 --
58015 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
58016
58017 -- insert into errors table here.
58018
58019 END LOOP;
58020
58021 --
58022 -- 4865292
58023 --
58024 -- Compare g_hdr_extract_count with event count in
58025 -- CreateHeadersAndLines.
58026 --
58027 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
58028
58029 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58030 trace (p_msg => '# rows extracted from header extract objects '
58031 || ' (running total): '
58032 || g_hdr_extract_count
58033 ,p_level => C_LEVEL_STATEMENT
58034 ,p_module => l_log_module);
58035 END IF;
58036
58037 CLOSE header_cur;
58038 --
58039
58040 --
58041 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58042 trace
58043 (p_msg => 'END of EventClass_111'
58044 ,p_level => C_LEVEL_PROCEDURE
58045 ,p_module => l_log_module);
58046 END IF;
58047 --
58048 RETURN l_result;
58049 EXCEPTION
58050 WHEN xla_exceptions_pkg.application_exception THEN
58051
58052 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
58053
58054
58055 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
58056
58057 RAISE;
58058 WHEN OTHERS THEN
58059 xla_exceptions_pkg.raise_message
58060 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_111');
58061 END EventClass_111;
58062 --
58063
58064 ---------------------------------------
58065 --
58066 -- PRIVATE PROCEDURE
58067 -- insert_sources_112
58068 --
58069 ----------------------------------------
58070 --
58071 PROCEDURE insert_sources_112(
58072 p_target_ledger_id IN NUMBER
58073 , p_language IN VARCHAR2
58074 , p_sla_ledger_id IN NUMBER
58075 , p_pad_start_date IN DATE
58076 , p_pad_end_date IN DATE
58077 )
58078 IS
58079
58080 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BUDGET_ALL';
58081 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BUDGET';
58082 p_apps_owner VARCHAR2(30);
58083 l_log_module VARCHAR2(240);
58084 BEGIN
58085 IF g_log_enabled THEN
58086 l_log_module := C_DEFAULT_MODULE||'.insert_sources_112';
58087 END IF;
58088 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58089
58090 trace
58091 (p_msg => 'BEGIN of insert_sources_112'
58092 ,p_level => C_LEVEL_PROCEDURE
58093 ,p_module => l_log_module);
58094
58095 END IF;
58096
58097 -- select APPS owner
58098 SELECT oracle_username
58099 INTO p_apps_owner
58100 FROM fnd_oracle_userid
58101 WHERE read_only_flag = 'U'
58102 ;
58103
58104 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58105 trace
58106 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
58107 ' - p_language = '||p_language||
58108 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
58109 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
58110 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
58111 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
58112 ,p_level => C_LEVEL_STATEMENT
58113 ,p_module => l_log_module);
58114 END IF;
58115
58116
58117 --
58118 INSERT INTO xla_diag_sources --hdr2
58119 (
58120 event_id
58121 , ledger_id
58122 , sla_ledger_id
58123 , description_language
58124 , object_name
58125 , object_type_code
58126 , line_number
58127 , source_application_id
58128 , source_type_code
58129 , source_code
58130 , source_value
58131 , source_meaning
58132 , created_by
58133 , creation_date
58134 , last_update_date
58135 , last_updated_by
58139 , program_id
58136 , last_update_login
58137 , program_update_date
58138 , program_application_id
58140 , request_id
58141 )
58142 SELECT
58143 event_id
58144 , p_target_ledger_id
58145 , p_sla_ledger_id
58146 , p_language
58147 , object_name
58148 , object_type_code
58149 , line_number
58150 , source_application_id
58151 , source_type_code
58152 , source_code
58153 , SUBSTR(source_value ,1,1996)
58154 , SUBSTR(source_meaning ,1,200)
58155 , xla_environment_pkg.g_Usr_Id
58156 , TRUNC(SYSDATE)
58157 , TRUNC(SYSDATE)
58158 , xla_environment_pkg.g_Usr_Id
58159 , xla_environment_pkg.g_Login_Id
58160 , TRUNC(SYSDATE)
58161 , xla_environment_pkg.g_Prog_Appl_Id
58162 , xla_environment_pkg.g_Prog_Id
58163 , xla_environment_pkg.g_Req_Id
58164 FROM (
58165 SELECT xet.event_id event_id
58166 , 0 line_number
58167 , CASE r
58168 WHEN 1 THEN 'PA_XLA_BC_BUDGET_HEADER_V'
58169 WHEN 2 THEN 'PA_XLA_BC_BUDGET_HEADER_V'
58170
58171 ELSE null
58172 END object_name
58173 , CASE r
58174 WHEN 1 THEN 'HEADER'
58175 WHEN 2 THEN 'HEADER'
58176
58177 ELSE null
58178 END object_type_code
58179 , CASE r
58180 WHEN 1 THEN '275'
58181 WHEN 2 THEN '275'
58182
58183 ELSE null
58184 END source_application_id
58185 , 'S' source_type_code
58186 , CASE r
58187 WHEN 1 THEN 'GL_DATE'
58188 WHEN 2 THEN 'GL_BUDGET_VERSION_ID'
58189
58190 ELSE null
58191 END source_code
58192 , CASE r
58193 WHEN 1 THEN TO_CHAR(h1.GL_DATE)
58194 WHEN 2 THEN TO_CHAR(h1.GL_BUDGET_VERSION_ID)
58195
58196 ELSE null
58197 END source_value
58198 , null source_meaning
58199 FROM xla_events_gt xet
58200 , PA_XLA_BC_BUDGET_HEADER_V h1
58201 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
58202 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
58203 AND xet.event_class_code = C_EVENT_CLASS_CODE
58204 AND h1.event_id = xet.event_id
58205
58206 )
58207 ;
58208 --
58209 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58210
58211 trace
58212 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
58213 ,p_level => C_LEVEL_STATEMENT
58214 ,p_module => l_log_module);
58215
58216 END IF;
58217 --
58218
58219
58220
58221 --
58222 INSERT INTO xla_diag_sources --line2
58223 (
58224 event_id
58225 , ledger_id
58226 , sla_ledger_id
58227 , description_language
58228 , object_name
58229 , object_type_code
58230 , line_number
58231 , source_application_id
58232 , source_type_code
58233 , source_code
58234 , source_value
58235 , source_meaning
58236 , created_by
58237 , creation_date
58238 , last_update_date
58239 , last_updated_by
58240 , last_update_login
58241 , program_update_date
58242 , program_application_id
58243 , program_id
58244 , request_id
58245 )
58246 SELECT event_id
58247 , p_target_ledger_id
58248 , p_sla_ledger_id
58249 , p_language
58250 , object_name
58251 , object_type_code
58252 , line_number
58253 , source_application_id
58254 , source_type_code
58255 , source_code
58256 , SUBSTR(source_value,1,1996)
58257 , SUBSTR(source_meaning ,1,200)
58258 , xla_environment_pkg.g_Usr_Id
58259 , TRUNC(SYSDATE)
58260 , TRUNC(SYSDATE)
58261 , xla_environment_pkg.g_Usr_Id
58262 , xla_environment_pkg.g_Login_Id
58263 , TRUNC(SYSDATE)
58264 , xla_environment_pkg.g_Prog_Appl_Id
58265 , xla_environment_pkg.g_Prog_Id
58266 , xla_environment_pkg.g_Req_Id
58267 FROM (
58268 SELECT xet.event_id event_id
58269 , l2.line_number line_number
58270 , CASE r
58271 WHEN 1 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58272 WHEN 2 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58273 WHEN 3 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58274 WHEN 4 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58275 WHEN 5 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58276 WHEN 6 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58277 WHEN 7 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58278 WHEN 8 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58279 WHEN 9 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58280 WHEN 10 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58281
58282 ELSE null
58283 END object_name
58284 , CASE r
58285 WHEN 1 THEN 'LINE'
58286 WHEN 2 THEN 'LINE'
58287 WHEN 3 THEN 'LINE'
58288 WHEN 4 THEN 'LINE'
58289 WHEN 5 THEN 'LINE'
58290 WHEN 6 THEN 'LINE'
58294 WHEN 10 THEN 'LINE'
58291 WHEN 7 THEN 'LINE'
58292 WHEN 8 THEN 'LINE'
58293 WHEN 9 THEN 'LINE'
58295
58296 ELSE null
58297 END object_type_code
58298 , CASE r
58299 WHEN 1 THEN '275'
58300 WHEN 2 THEN '275'
58301 WHEN 3 THEN '275'
58302 WHEN 4 THEN '275'
58303 WHEN 5 THEN '275'
58304 WHEN 6 THEN '275'
58305 WHEN 7 THEN '275'
58306 WHEN 8 THEN '275'
58307 WHEN 9 THEN '275'
58308 WHEN 10 THEN '275'
58309
58310 ELSE null
58311 END source_application_id
58312 , 'S' source_type_code
58313 , CASE r
58314 WHEN 1 THEN 'BUDGET_CCID'
58315 WHEN 2 THEN 'REVERSING_LINE_FLAG'
58316 WHEN 3 THEN 'ENTERED_CURRENCY_CODE'
58317 WHEN 4 THEN 'LINE_TYPE'
58318 WHEN 5 THEN 'ENTERED_AMOUNT'
58319 WHEN 6 THEN 'ACCT_AMOUNT'
58320 WHEN 7 THEN 'ENC_UPG_DR_ACCT_CLASS'
58321 WHEN 8 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
58322 WHEN 9 THEN 'BUDGET_LINE_ID'
58323 WHEN 10 THEN 'ENC_UPG_ENC_TYPE_ID'
58324
58325 ELSE null
58326 END source_code
58327 , CASE r
58328 WHEN 1 THEN TO_CHAR(l2.BUDGET_CCID)
58329 WHEN 2 THEN TO_CHAR(l2.REVERSING_LINE_FLAG)
58330 WHEN 3 THEN TO_CHAR(l2.ENTERED_CURRENCY_CODE)
58331 WHEN 4 THEN TO_CHAR(l2.LINE_TYPE)
58332 WHEN 5 THEN TO_CHAR(l2.ENTERED_AMOUNT)
58333 WHEN 6 THEN TO_CHAR(l2.ACCT_AMOUNT)
58334 WHEN 7 THEN TO_CHAR(l2.ENC_UPG_DR_ACCT_CLASS)
58335 WHEN 8 THEN TO_CHAR(l2.USE_ENC_UPG_ATTRIB_FLAG)
58336 WHEN 9 THEN TO_CHAR(l2.BUDGET_LINE_ID)
58337 WHEN 10 THEN TO_CHAR(l2.ENC_UPG_ENC_TYPE_ID)
58338
58339 ELSE null
58340 END source_value
58341 , CASE r
58342 WHEN 4 THEN fvl34.meaning
58343
58344 ELSE null
58345 END source_meaning
58346 FROM xla_events_gt xet
58347 , PA_XLA_BC_BUDGET_LINES_V l2
58348 , fnd_lookup_values fvl34
58349 , (select rownum r from all_objects where rownum <= 10 and owner = p_apps_owner)
58350 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
58351 AND xet.event_class_code = C_EVENT_CLASS_CODE
58352 AND l2.event_id = xet.event_id
58353 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
58354 AND fvl34.lookup_code(+) = l2.LINE_TYPE
58355 AND fvl34.view_application_id(+) = 275
58356 AND fvl34.language(+) = USERENV('LANG')
58357
58358 )
58359 ;
58360 --
58361 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58362
58363 trace
58364 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
58365 ,p_level => C_LEVEL_STATEMENT
58366 ,p_module => l_log_module);
58367
58368 END IF;
58369
58370
58371 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58372 trace
58373 (p_msg => 'END of insert_sources_112'
58374 ,p_level => C_LEVEL_PROCEDURE
58375 ,p_module => l_log_module);
58376 END IF;
58377 EXCEPTION
58378 WHEN xla_exceptions_pkg.application_exception THEN
58379 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
58380 trace
58381 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
58382 ,p_level => C_LEVEL_EXCEPTION
58383 ,p_module => l_log_module);
58384 END IF;
58385 RAISE;
58386 WHEN OTHERS THEN
58387 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
58388 trace
58389 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
58390 ,p_level => C_LEVEL_EXCEPTION
58391 ,p_module => l_log_module);
58392 END IF;
58393 xla_exceptions_pkg.raise_message
58394 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_112');
58395 END insert_sources_112;
58396 --
58397
58398 ---------------------------------------
58399 --
58400 -- PRIVATE FUNCTION
58401 -- EventClass_112
58402 --
58403 ----------------------------------------
58404 --
58405 FUNCTION EventClass_112
58406 (p_application_id IN NUMBER
58407 ,p_base_ledger_id IN NUMBER
58408 ,p_target_ledger_id IN NUMBER
58409 ,p_language IN VARCHAR2
58410 ,p_currency_code IN VARCHAR2
58411 ,p_sla_ledger_id IN NUMBER
58412 ,p_pad_start_date IN DATE
58413 ,p_pad_end_date IN DATE
58414 ,p_primary_ledger_id IN NUMBER)
58415 RETURN BOOLEAN IS
58416 --
58417 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BUDGET_ALL';
58418 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BUDGET';
58419
58420 l_calculate_acctd_flag VARCHAR2(1) :='N';
58421 l_calculate_g_l_flag VARCHAR2(1) :='N';
58422 --
58423 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58424 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58425 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58426 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58430 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58427 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58428 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58429 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58431 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58432 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58433 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58434 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58435 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58436 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58437 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58438 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58439 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58440 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58441 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58442 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58443 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58444 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58445 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
58446 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58447
58448 l_event_id NUMBER;
58449 l_previous_event_id NUMBER;
58450 l_first_event_id NUMBER;
58451 l_last_event_id NUMBER;
58452
58453 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
58454 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58455 --
58456 --
58457 l_result BOOLEAN := TRUE;
58458 l_rows NUMBER := 1000;
58459 l_event_type_name VARCHAR2(80) := 'All';
58460 l_event_class_name VARCHAR2(80) := 'Budget';
58461 l_description VARCHAR2(4000);
58462 l_transaction_reversal NUMBER;
58463 l_ae_header_id NUMBER;
58464 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
58465 l_log_module VARCHAR2(240);
58466 --
58467 l_acct_reversal_source VARCHAR2(30);
58468 l_trx_reversal_source VARCHAR2(30);
58469
58470 l_continue_with_lines BOOLEAN := TRUE;
58471 --
58472 l_acc_rev_gl_date_source DATE; -- 4262811
58473 --
58474 type t_array_event_id is table of number index by binary_integer;
58475
58476 l_rec_array_event t_rec_array_event;
58477 l_null_rec_array_event t_rec_array_event;
58478 l_array_ae_header_id xla_number_array_type;
58479 l_actual_flag VARCHAR2(1) := NULL;
58480 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
58481 l_balance_type_code VARCHAR2(1) :=NULL;
58482 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
58483
58484 --
58485 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
58486 --
58487
58488 TYPE t_array_source_88 IS TABLE OF PA_XLA_BC_BUDGET_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
58489 TYPE t_array_source_89 IS TABLE OF PA_XLA_BC_BUDGET_HEADER_V.GL_BUDGET_VERSION_ID%TYPE INDEX BY BINARY_INTEGER;
58490
58491 TYPE t_array_source_2 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
58492 TYPE t_array_source_22 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
58493 TYPE t_array_source_25 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
58494 TYPE t_array_source_34 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
58495 TYPE t_array_source_41 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
58496 TYPE t_array_source_43 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
58497 TYPE t_array_source_53 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
58498 TYPE t_array_source_55 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
58499 TYPE t_array_source_90 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.BUDGET_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
58500 TYPE t_array_source_91 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENC_UPG_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
58501
58502 l_array_source_88 t_array_source_88;
58503 l_array_source_89 t_array_source_89;
58504
58505 l_array_source_2 t_array_source_2;
58506 l_array_source_22 t_array_source_22;
58507 l_array_source_25 t_array_source_25;
58508 l_array_source_34 t_array_source_34;
58509 l_array_source_34_meaning t_array_lookup_meaning;
58510 l_array_source_41 t_array_source_41;
58511 l_array_source_43 t_array_source_43;
58512 l_array_source_53 t_array_source_53;
58513 l_array_source_55 t_array_source_55;
58514 l_array_source_90 t_array_source_90;
58515 l_array_source_91 t_array_source_91;
58516
58517 --
58518 CURSOR header_cur
58519 IS
58520 SELECT /*+ leading(xet) cardinality(xet,1) */
58521 -- Event Class Code: BUDGET
58522 xet.entity_id
58523 ,xet.legal_entity_id
58524 ,xet.entity_code
58525 ,xet.transaction_number
58526 ,xet.event_id
58527 ,xet.event_class_code
58528 ,xet.event_type_code
58529 ,xet.event_number
58530 ,xet.event_date
58531 ,xet.transaction_date
58532 ,xet.reference_num_1
58533 ,xet.reference_num_2
58534 ,xet.reference_num_3
58535 ,xet.reference_num_4
58536 ,xet.reference_char_1
58537 ,xet.reference_char_2
58538 ,xet.reference_char_3
58539 ,xet.reference_char_4
58543 ,xet.reference_date_4
58540 ,xet.reference_date_1
58541 ,xet.reference_date_2
58542 ,xet.reference_date_3
58544 ,xet.event_created_by
58545 ,xet.budgetary_control_flag
58546 , h1.GL_DATE source_88
58547 , h1.GL_BUDGET_VERSION_ID source_89
58548 FROM xla_events_gt xet
58549 , PA_XLA_BC_BUDGET_HEADER_V h1
58550 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
58551 and xet.event_class_code = C_EVENT_CLASS_CODE
58552 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
58553
58554 ORDER BY event_id
58555 ;
58556
58557
58558 --
58559 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
58560 IS
58561 SELECT /*+ leading(xet) cardinality(xet,1) */
58562 -- Event Class Code: BUDGET
58563 xet.entity_id
58564 ,xet.legal_entity_id
58565 ,xet.entity_code
58566 ,xet.transaction_number
58567 ,xet.event_id
58568 ,xet.event_class_code
58569 ,xet.event_type_code
58570 ,xet.event_number
58571 ,xet.event_date
58572 ,xet.transaction_date
58573 ,xet.reference_num_1
58574 ,xet.reference_num_2
58575 ,xet.reference_num_3
58576 ,xet.reference_num_4
58577 ,xet.reference_char_1
58578 ,xet.reference_char_2
58579 ,xet.reference_char_3
58580 ,xet.reference_char_4
58581 ,xet.reference_date_1
58582 ,xet.reference_date_2
58583 ,xet.reference_date_3
58584 ,xet.reference_date_4
58585 ,xet.event_created_by
58586 ,xet.budgetary_control_flag
58587 , l2.LINE_NUMBER
58588 , l2.BUDGET_CCID source_2
58589 , l2.REVERSING_LINE_FLAG source_22
58590 , l2.ENTERED_CURRENCY_CODE source_25
58591 , l2.LINE_TYPE source_34
58592 , fvl34.meaning source_34_meaning
58593 , l2.ENTERED_AMOUNT source_41
58594 , l2.ACCT_AMOUNT source_43
58595 , l2.ENC_UPG_DR_ACCT_CLASS source_53
58596 , l2.USE_ENC_UPG_ATTRIB_FLAG source_55
58597 , l2.BUDGET_LINE_ID source_90
58598 , l2.ENC_UPG_ENC_TYPE_ID source_91
58599 FROM xla_events_gt xet
58600 , PA_XLA_BC_BUDGET_LINES_V l2
58601 , fnd_lookup_values fvl34
58602 WHERE xet.event_id between x_first_event_id and x_last_event_id
58603 and xet.event_date between p_pad_start_date and p_pad_end_date
58604 and xet.event_class_code = C_EVENT_CLASS_CODE
58605 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
58606 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
58607 AND fvl34.lookup_code(+) = l2.LINE_TYPE
58608 AND fvl34.view_application_id(+) = 275
58609 AND fvl34.language(+) = USERENV('LANG')
58610 ;
58611
58612 --
58613 BEGIN
58614 IF g_log_enabled THEN
58615 l_log_module := C_DEFAULT_MODULE||'.EventClass_112';
58616 END IF;
58617 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58618 trace
58619 (p_msg => 'BEGIN of EventClass_112'
58620 ,p_level => C_LEVEL_PROCEDURE
58621 ,p_module => l_log_module);
58622 END IF;
58623
58624 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58625 trace
58626 (p_msg => 'p_application_id = '||p_application_id||
58627 ' - p_base_ledger_id = '||p_base_ledger_id||
58628 ' - p_target_ledger_id = '||p_target_ledger_id||
58629 ' - p_language = '||p_language||
58630 ' - p_currency_code = '||p_currency_code||
58631 ' - p_sla_ledger_id = '||p_sla_ledger_id
58632 ,p_level => C_LEVEL_STATEMENT
58633 ,p_module => l_log_module);
58634 END IF;
58635 --
58636 -- initialze arrays
58637 --
58638 g_array_event.DELETE;
58639 l_rec_array_event := l_null_rec_array_event;
58640 --
58641 --------------------------------------
58642 -- 4262811 Initialze MPA Line Number
58643 --------------------------------------
58644 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
58645
58646 --
58647
58648 --
58649 OPEN header_cur;
58650 --
58651 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58652 trace
58653 (p_msg => 'SQL - FETCH header_cur'
58654 ,p_level => C_LEVEL_STATEMENT
58655 ,p_module => l_log_module);
58656 END IF;
58657 --
58658 LOOP
58659 FETCH header_cur BULK COLLECT INTO
58660 l_array_entity_id
58661 , l_array_legal_entity_id
58662 , l_array_entity_code
58663 , l_array_transaction_num
58664 , l_array_event_id
58665 , l_array_class_code
58666 , l_array_event_type
58667 , l_array_event_number
58668 , l_array_event_date
58669 , l_array_transaction_date
58670 , l_array_reference_num_1
58671 , l_array_reference_num_2
58672 , l_array_reference_num_3
58673 , l_array_reference_num_4
58674 , l_array_reference_char_1
58675 , l_array_reference_char_2
58676 , l_array_reference_char_3
58677 , l_array_reference_char_4
58678 , l_array_reference_date_1
58679 , l_array_reference_date_2
58680 , l_array_reference_date_3
58681 , l_array_reference_date_4
58682 , l_array_event_created_by
58683 , l_array_budgetary_control_flag
58684 , l_array_source_88
58685 , l_array_source_89
58686 LIMIT l_rows;
58687 --
58688 IF (C_LEVEL_EVENT >= g_log_level) THEN
58689 trace
58690 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
58691 ,p_level => C_LEVEL_EVENT
58692 ,p_module => l_log_module);
58693 END IF;
58694 --
58695 EXIT WHEN l_array_entity_id.COUNT = 0;
58696
58697 -- initialize arrays
58698 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
58699 XLA_AE_LINES_PKG.g_rec_lines := NULL;
58703 --
58700
58701 --
58702 -- Bug 4458708
58704 XLA_AE_LINES_PKG.g_LineNumber := 0;
58705
58706
58707 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
58708 g_last_hdr_idx := l_array_event_id.LAST;
58709 --
58710 -- loop for the headers. Each iteration is for each header extract row
58711 -- fetched in header cursor
58712 --
58713 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
58714
58715 --
58716 -- set event info as cache for other routines to refer event attributes
58717 --
58718 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
58719 (p_application_id => p_application_id
58720 ,p_primary_ledger_id => p_primary_ledger_id
58721 ,p_base_ledger_id => p_base_ledger_id
58722 ,p_target_ledger_id => p_target_ledger_id
58723 ,p_entity_id => l_array_entity_id(hdr_idx)
58724 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
58725 ,p_entity_code => l_array_entity_code(hdr_idx)
58726 ,p_transaction_num => l_array_transaction_num(hdr_idx)
58727 ,p_event_id => l_array_event_id(hdr_idx)
58728 ,p_event_class_code => l_array_class_code(hdr_idx)
58729 ,p_event_type_code => l_array_event_type(hdr_idx)
58730 ,p_event_number => l_array_event_number(hdr_idx)
58731 ,p_event_date => l_array_event_date(hdr_idx)
58732 ,p_transaction_date => l_array_transaction_date(hdr_idx)
58733 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
58734 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
58735 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
58736 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
58737 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
58738 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
58739 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
58740 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
58741 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
58742 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
58743 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
58744 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
58745 ,p_event_created_by => l_array_event_created_by(hdr_idx)
58746 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
58747
58748 --
58749 -- set the status of entry to C_VALID (0)
58750 --
58751 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
58752
58753 --
58754 -- initialize a row for ae header
58755 --
58756 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
58757
58758 l_event_id := l_array_event_id(hdr_idx);
58759
58760 --
58761 -- storing the hdr_idx for event. May be used by line cursor.
58762 --
58763 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
58764
58765 --
58766 -- store sources from header extract. This can be improved to
58767 -- store only those sources from header extract that may be used in lines
58768 --
58769
58770 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
58771 g_array_event(l_event_id).array_value_num('source_89') := l_array_source_89(hdr_idx);
58772
58773 --
58774 -- initilaize the status of ae headers for diffrent balance types
58775 -- the status is initialised to C_NOT_CREATED (2)
58776 --
58777 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
58778 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
58779 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
58780
58781 --
58782 -- call api to validate and store accounting attributes for header
58783 --
58784
58785 ------------------------------------------------------------
58786 -- Accrual Reversal : to get date for Standard Source (NONE)
58787 ------------------------------------------------------------
58788 l_acc_rev_gl_date_source := NULL;
58789
58790 l_rec_acct_attrs.array_acct_attr_code(1) := 'BUDGET_VERSION_ID';
58791 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_89');
58792 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
58793 l_rec_acct_attrs.array_date_value(2) := g_array_event(l_event_id).array_value_date('source_88');
58794
58795
58796 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
58797
58798 XLA_AE_HEADER_PKG.SetJeCategoryName;
58799
58800 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
58801 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
58802 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
58803 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
58804 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
58805
58806
58807 -- No header level analytical criteria
58808
58809 --
58810 --accounting attribute enhancement, bug 3612931
58811 --
58812 l_trx_reversal_source := SUBSTR(NULL, 1,30);
58813
58814 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
58815 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
58816
58817 xla_accounting_err_pkg.build_message
58818 (p_appli_s_name => 'XLA'
58819 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
58820 ,p_token_1 => 'ACCT_ATTR_NAME'
58821 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
58822 ,p_token_2 => 'PRODUCT_NAME'
58826 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
58823 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
58824 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
58825 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
58827
58828 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
58829 --
58830 -- following sets the accounting attributes needed to reverse
58831 -- accounting for a distributeion
58832 --
58833 xla_ae_lines_pkg.SetTrxReversalAttrs
58834 (p_event_id => l_event_id
58835 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
58836 ,p_trx_reversal_source => l_trx_reversal_source);
58837
58838 END IF;
58839
58840
58841 ----------------------------------------------------------------
58842 -- 4262811 - update the header statuses to invalid in need be
58843 ----------------------------------------------------------------
58844 --
58845 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
58846
58847
58848 -----------------------------------------------
58849 -- No accrual reversal for the event class/type
58850 -----------------------------------------------
58851 ----------------------------------------------------------------
58852
58853 --
58854 -- this ends the header loop iteration for one bulk fetch
58855 --
58856 END LOOP;
58857
58858 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
58859 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
58860
58861 --
58862 -- insert dummy rows into lines gt table that were created due to
58863 -- transaction reversals
58864 --
58865 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
58866 l_result := XLA_AE_LINES_PKG.InsertLines;
58867 END IF;
58868
58869 --
58870 -- reset the temp_line_num for each set of events fetched from header
58871 -- cursor rather than doing it for each new event in line cursor
58872 -- Bug 3939231
58873 --
58874 xla_ae_lines_pkg.g_temp_line_num := 0;
58875
58876
58877
58878 --
58879 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
58880 --
58881 --
58882 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58883
58884 trace
58885 (p_msg => 'SQL - FETCH line_cur'
58886 ,p_level => C_LEVEL_STATEMENT
58887 ,p_module => l_log_module);
58888
58889 END IF;
58890 --
58891 --
58892 LOOP
58893 --
58894 FETCH line_cur BULK COLLECT INTO
58895 l_array_entity_id
58896 , l_array_legal_entity_id
58897 , l_array_entity_code
58898 , l_array_transaction_num
58899 , l_array_event_id
58900 , l_array_class_code
58901 , l_array_event_type
58902 , l_array_event_number
58903 , l_array_event_date
58904 , l_array_transaction_date
58905 , l_array_reference_num_1
58906 , l_array_reference_num_2
58907 , l_array_reference_num_3
58908 , l_array_reference_num_4
58909 , l_array_reference_char_1
58910 , l_array_reference_char_2
58911 , l_array_reference_char_3
58912 , l_array_reference_char_4
58913 , l_array_reference_date_1
58914 , l_array_reference_date_2
58915 , l_array_reference_date_3
58916 , l_array_reference_date_4
58917 , l_array_event_created_by
58918 , l_array_budgetary_control_flag
58919 , l_array_extract_line_num
58920 , l_array_source_2
58921 , l_array_source_22
58922 , l_array_source_25
58923 , l_array_source_34
58924 , l_array_source_34_meaning
58925 , l_array_source_41
58926 , l_array_source_43
58927 , l_array_source_53
58928 , l_array_source_55
58929 , l_array_source_90
58930 , l_array_source_91
58931 LIMIT l_rows;
58932
58933 --
58934 IF (C_LEVEL_EVENT >= g_log_level) THEN
58935 trace
58936 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
58937 ,p_level => C_LEVEL_EVENT
58938 ,p_module => l_log_module);
58939 END IF;
58940 --
58941 EXIT WHEN l_array_entity_id.count = 0;
58942
58943 XLA_AE_LINES_PKG.g_rec_lines := null;
58944
58945 --
58946 -- Bug 4458708
58947 --
58948 XLA_AE_LINES_PKG.g_LineNumber := 0;
58949 --
58950 --
58951
58952 FOR Idx IN 1..l_array_event_id.count LOOP
58953 --
58954 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
58955 --
58956 l_event_id := l_array_event_id(idx); -- 5648433
58957
58958 --
58959 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
58960 --
58961
58962 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
58963 (g_array_event(l_event_id).array_value_num('header_index'))
58964 ,'N'
58965 ) <> 'Y'
58966 THEN
58967 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58968 trace
58969 (p_msg => 'Trancaction revesal option is not Y '
58970 ,p_level => C_LEVEL_STATEMENT
58971 ,p_module => l_log_module);
58972 END IF;
58973
58974 --
58975 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
58976 --
58977 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
58978 --
58979 -- set event info as cache for other routines to refer event attributes
58980 --
58981
58982 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
58986 (p_application_id => p_application_id
58983 l_previous_event_id := l_event_id;
58984
58985 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
58987 ,p_primary_ledger_id => p_primary_ledger_id
58988 ,p_base_ledger_id => p_base_ledger_id
58989 ,p_target_ledger_id => p_target_ledger_id
58990 ,p_entity_id => l_array_entity_id(Idx)
58991 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
58992 ,p_entity_code => l_array_entity_code(Idx)
58993 ,p_transaction_num => l_array_transaction_num(Idx)
58994 ,p_event_id => l_array_event_id(Idx)
58995 ,p_event_class_code => l_array_class_code(Idx)
58996 ,p_event_type_code => l_array_event_type(Idx)
58997 ,p_event_number => l_array_event_number(Idx)
58998 ,p_event_date => l_array_event_date(Idx)
58999 ,p_transaction_date => l_array_transaction_date(Idx)
59000 ,p_reference_num_1 => l_array_reference_num_1(Idx)
59001 ,p_reference_num_2 => l_array_reference_num_2(Idx)
59002 ,p_reference_num_3 => l_array_reference_num_3(Idx)
59003 ,p_reference_num_4 => l_array_reference_num_4(Idx)
59004 ,p_reference_char_1 => l_array_reference_char_1(Idx)
59005 ,p_reference_char_2 => l_array_reference_char_2(Idx)
59006 ,p_reference_char_3 => l_array_reference_char_3(Idx)
59007 ,p_reference_char_4 => l_array_reference_char_4(Idx)
59008 ,p_reference_date_1 => l_array_reference_date_1(Idx)
59009 ,p_reference_date_2 => l_array_reference_date_2(Idx)
59010 ,p_reference_date_3 => l_array_reference_date_3(Idx)
59011 ,p_reference_date_4 => l_array_reference_date_4(Idx)
59012 ,p_event_created_by => l_array_event_created_by(Idx)
59013 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
59014 --
59015 END IF;
59016
59017
59018
59019 --
59020 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
59021
59022 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
59023
59024 IF l_continue_with_lines THEN
59025 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
59026 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
59027
59028 xla_accounting_err_pkg.build_message
59029 (p_appli_s_name => 'XLA'
59030 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
59031 ,p_token_1 => 'LINE_NUMBER'
59032 ,p_value_1 => l_array_extract_line_num(Idx)
59033 ,p_token_2 => 'PRODUCT_NAME'
59034 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
59035 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
59036 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
59037 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
59038
59039 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
59040 --
59041 -- following sets the accounting attributes needed to reverse
59042 -- accounting for a distributeion
59043 --
59044
59045 --
59046 -- 5217187
59047 --
59048 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
59049 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
59050 g_array_event(l_event_id).array_value_num('header_index'));
59051 --
59052 --
59053
59054 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
59055 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
59056 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
59057 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_90(Idx);
59058 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
59059 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_34(Idx);
59060 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_DR_ACCT_CLASS';
59061 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_53(Idx);
59062 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_DR_CCID';
59063 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_2(Idx);
59064 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_DR_ENTERED_AMT';
59065 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_41(Idx);
59066 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_DR_ENTERED_CURR';
59067 l_rec_rev_acct_attrs.array_char_value(8) := l_array_source_25(Idx);
59068 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_LEDGER_AMT';
59069 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_43(Idx);
59070 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_OPTION';
59071 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_55(Idx);
59072 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'REVERSED_DISTRIBUTION_ID1';
59073 l_rec_rev_acct_attrs.array_num_value(11) := l_array_source_90(Idx);
59074 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'REVERSED_DISTRIBUTION_TYPE';
59075 l_rec_rev_acct_attrs.array_char_value(12) := l_array_source_34(Idx);
59076 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'UPG_DR_ENC_TYPE_ID';
59077 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_91(Idx);
59078
59079
59080 xla_ae_lines_pkg.SetAcctReversalAttrs
59081 (p_event_id => l_event_id
59082 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
59083 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59084 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
59085 END IF;
59086
59090 -- or secondary ledger that has different currency with primary
59087 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
59088 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
59089 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
59091 -- or alc that is calculated by sla
59092 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
59093 (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'))
59094
59095 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
59096 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
59097 AND (l_actual_flag = 'A')) THEN
59098 XLA_AE_LINES_PKG.CreateGainOrLossLines(
59099 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
59100 ,p_application_id => p_application_id
59101 ,p_amb_context_code => 'DEFAULT'
59102 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
59103 ,p_event_class_code => C_EVENT_CLASS_CODE
59104 ,p_event_type_code => C_EVENT_TYPE_CODE
59105
59106 ,p_gain_ccid => -1
59107 ,p_loss_ccid => -1
59108
59109 ,p_actual_flag => l_actual_flag
59110 ,p_enc_flag => null
59111 ,p_actual_g_l_ref => l_actual_gain_loss_ref
59112 ,p_enc_g_l_ref => null
59113 );
59114 END IF;
59115 END IF;
59116 END IF;
59117
59118 ELSE
59119 --
59120 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
59121 --
59122 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59123 trace
59124 (p_msg => 'Trancaction revesal option is Y'
59125 ,p_level => C_LEVEL_STATEMENT
59126 ,p_module => l_log_module);
59127 END IF;
59128 END IF;
59129
59130 END LOOP;
59131 l_result := XLA_AE_LINES_PKG.InsertLines ;
59132 end loop;
59133 close line_cur;
59134
59135
59136 --
59137 -- insert headers into xla_ae_headers_gt table
59138 --
59139 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
59140
59141 -- insert into errors table here.
59142
59143 END LOOP;
59144
59145 --
59146 -- 4865292
59147 --
59148 -- Compare g_hdr_extract_count with event count in
59149 -- CreateHeadersAndLines.
59150 --
59151 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
59152
59153 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59154 trace (p_msg => '# rows extracted from header extract objects '
59155 || ' (running total): '
59156 || g_hdr_extract_count
59157 ,p_level => C_LEVEL_STATEMENT
59158 ,p_module => l_log_module);
59159 END IF;
59160
59161 CLOSE header_cur;
59162 --
59163
59164 --
59165 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59166 trace
59167 (p_msg => 'END of EventClass_112'
59168 ,p_level => C_LEVEL_PROCEDURE
59169 ,p_module => l_log_module);
59170 END IF;
59171 --
59172 RETURN l_result;
59173 EXCEPTION
59174 WHEN xla_exceptions_pkg.application_exception THEN
59175
59176 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
59177
59178
59179 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
59180
59181 RAISE;
59182 WHEN OTHERS THEN
59183 xla_exceptions_pkg.raise_message
59184 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_112');
59185 END EventClass_112;
59186 --
59187
59188 ---------------------------------------
59189 --
59190 -- PRIVATE PROCEDURE
59191 -- insert_sources_113
59192 --
59193 ----------------------------------------
59194 --
59195 PROCEDURE insert_sources_113(
59196 p_target_ledger_id IN NUMBER
59197 , p_language IN VARCHAR2
59198 , p_sla_ledger_id IN NUMBER
59199 , p_pad_start_date IN DATE
59200 , p_pad_end_date IN DATE
59201 )
59202 IS
59203
59204 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ_ALL';
59205 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ';
59206 p_apps_owner VARCHAR2(30);
59207 l_log_module VARCHAR2(240);
59208 BEGIN
59209 IF g_log_enabled THEN
59210 l_log_module := C_DEFAULT_MODULE||'.insert_sources_113';
59211 END IF;
59212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59213
59214 trace
59215 (p_msg => 'BEGIN of insert_sources_113'
59216 ,p_level => C_LEVEL_PROCEDURE
59217 ,p_module => l_log_module);
59218
59219 END IF;
59220
59221 -- select APPS owner
59222 SELECT oracle_username
59223 INTO p_apps_owner
59224 FROM fnd_oracle_userid
59225 WHERE read_only_flag = 'U'
59226 ;
59227
59228 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59229 trace
59230 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
59231 ' - p_language = '||p_language||
59232 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
59233 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
59234 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
59235 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
59236 ,p_level => C_LEVEL_STATEMENT
59237 ,p_module => l_log_module);
59241 --
59238 END IF;
59239
59240
59242 INSERT INTO xla_diag_sources --hdr2
59243 (
59244 event_id
59245 , ledger_id
59246 , sla_ledger_id
59247 , description_language
59248 , object_name
59249 , object_type_code
59250 , line_number
59251 , source_application_id
59252 , source_type_code
59253 , source_code
59254 , source_value
59255 , source_meaning
59256 , created_by
59257 , creation_date
59258 , last_update_date
59259 , last_updated_by
59260 , last_update_login
59261 , program_update_date
59262 , program_application_id
59263 , program_id
59264 , request_id
59265 )
59266 SELECT
59267 event_id
59268 , p_target_ledger_id
59269 , p_sla_ledger_id
59270 , p_language
59271 , object_name
59272 , object_type_code
59273 , line_number
59274 , source_application_id
59275 , source_type_code
59276 , source_code
59277 , SUBSTR(source_value ,1,1996)
59278 , SUBSTR(source_meaning ,1,200)
59279 , xla_environment_pkg.g_Usr_Id
59280 , TRUNC(SYSDATE)
59281 , TRUNC(SYSDATE)
59282 , xla_environment_pkg.g_Usr_Id
59283 , xla_environment_pkg.g_Login_Id
59284 , TRUNC(SYSDATE)
59285 , xla_environment_pkg.g_Prog_Appl_Id
59286 , xla_environment_pkg.g_Prog_Id
59287 , xla_environment_pkg.g_Req_Id
59288 FROM (
59289 SELECT xet.event_id event_id
59290 , 0 line_number
59291 , CASE r
59292 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
59293 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
59294
59295 ELSE null
59296 END object_name
59297 , CASE r
59298 WHEN 1 THEN 'HEADER'
59299 WHEN 2 THEN 'HEADER'
59300
59301 ELSE null
59302 END object_type_code
59303 , CASE r
59304 WHEN 1 THEN '275'
59305 WHEN 2 THEN '275'
59306
59307 ELSE null
59308 END source_application_id
59309 , 'S' source_type_code
59310 , CASE r
59311 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
59312 WHEN 2 THEN 'GL_DATE'
59313
59314 ELSE null
59315 END source_code
59316 , CASE r
59317 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
59318 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
59319
59320 ELSE null
59321 END source_value
59322 , null source_meaning
59323 FROM xla_events_gt xet
59324 , PA_XLA_EXP_HEADER_V h2
59325 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
59326 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
59327 AND xet.event_class_code = C_EVENT_CLASS_CODE
59328 AND h2.event_id = xet.event_id
59329
59330 )
59331 ;
59332 --
59333 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59334
59335 trace
59336 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
59337 ,p_level => C_LEVEL_STATEMENT
59338 ,p_module => l_log_module);
59339
59340 END IF;
59341 --
59342
59343
59344
59345 --
59346 INSERT INTO xla_diag_sources --line2
59347 (
59348 event_id
59349 , ledger_id
59350 , sla_ledger_id
59351 , description_language
59352 , object_name
59353 , object_type_code
59354 , line_number
59355 , source_application_id
59356 , source_type_code
59357 , source_code
59358 , source_value
59359 , source_meaning
59360 , created_by
59361 , creation_date
59362 , last_update_date
59363 , last_updated_by
59364 , last_update_login
59365 , program_update_date
59366 , program_application_id
59367 , program_id
59368 , request_id
59369 )
59370 SELECT event_id
59371 , p_target_ledger_id
59372 , p_sla_ledger_id
59373 , p_language
59374 , object_name
59375 , object_type_code
59376 , line_number
59377 , source_application_id
59378 , source_type_code
59379 , source_code
59380 , SUBSTR(source_value,1,1996)
59381 , SUBSTR(source_meaning ,1,200)
59382 , xla_environment_pkg.g_Usr_Id
59383 , TRUNC(SYSDATE)
59384 , TRUNC(SYSDATE)
59385 , xla_environment_pkg.g_Usr_Id
59386 , xla_environment_pkg.g_Login_Id
59387 , TRUNC(SYSDATE)
59388 , xla_environment_pkg.g_Prog_Appl_Id
59389 , xla_environment_pkg.g_Prog_Id
59390 , xla_environment_pkg.g_Req_Id
59391 FROM (
59392 SELECT xet.event_id event_id
59393 , l1.line_number line_number
59394 , CASE r
59395 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
59396 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
59397 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
59398 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
59399 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
59400 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
59401 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
59405 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
59402 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
59403 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
59404 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
59406 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
59407 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
59408 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
59409 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
59410 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
59411 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
59412 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
59413 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
59414 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
59415 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
59416 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
59417 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
59418 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
59419 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
59420 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
59421 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
59422 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
59423 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
59424 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
59425 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
59426
59427 ELSE null
59428 END object_name
59429 , CASE r
59430 WHEN 1 THEN 'LINE'
59431 WHEN 2 THEN 'LINE'
59432 WHEN 3 THEN 'LINE'
59433 WHEN 4 THEN 'LINE'
59434 WHEN 5 THEN 'LINE'
59435 WHEN 6 THEN 'LINE'
59436 WHEN 7 THEN 'LINE'
59437 WHEN 8 THEN 'LINE'
59438 WHEN 9 THEN 'LINE'
59439 WHEN 10 THEN 'LINE'
59440 WHEN 11 THEN 'LINE'
59441 WHEN 12 THEN 'LINE'
59442 WHEN 13 THEN 'LINE'
59443 WHEN 14 THEN 'LINE'
59444 WHEN 15 THEN 'LINE'
59445 WHEN 16 THEN 'LINE'
59446 WHEN 17 THEN 'LINE'
59447 WHEN 18 THEN 'LINE'
59448 WHEN 19 THEN 'LINE'
59449 WHEN 20 THEN 'LINE'
59450 WHEN 21 THEN 'LINE'
59451 WHEN 22 THEN 'LINE'
59452 WHEN 23 THEN 'LINE'
59453 WHEN 24 THEN 'LINE'
59454 WHEN 25 THEN 'LINE'
59455 WHEN 26 THEN 'LINE'
59456 WHEN 27 THEN 'LINE'
59457 WHEN 28 THEN 'LINE'
59458 WHEN 29 THEN 'LINE'
59459 WHEN 30 THEN 'LINE'
59460 WHEN 31 THEN 'LINE'
59461
59462 ELSE null
59463 END object_type_code
59464 , CASE r
59465 WHEN 1 THEN '275'
59466 WHEN 2 THEN '275'
59467 WHEN 3 THEN '275'
59468 WHEN 4 THEN '275'
59469 WHEN 5 THEN '275'
59470 WHEN 6 THEN '275'
59471 WHEN 7 THEN '275'
59472 WHEN 8 THEN '275'
59473 WHEN 9 THEN '275'
59474 WHEN 10 THEN '275'
59475 WHEN 11 THEN '275'
59476 WHEN 12 THEN '275'
59477 WHEN 13 THEN '275'
59478 WHEN 14 THEN '275'
59479 WHEN 15 THEN '275'
59480 WHEN 16 THEN '275'
59481 WHEN 17 THEN '275'
59482 WHEN 18 THEN '275'
59483 WHEN 19 THEN '275'
59484 WHEN 20 THEN '275'
59485 WHEN 21 THEN '275'
59486 WHEN 22 THEN '275'
59487 WHEN 23 THEN '275'
59488 WHEN 24 THEN '275'
59489 WHEN 25 THEN '275'
59490 WHEN 26 THEN '275'
59491 WHEN 27 THEN '275'
59492 WHEN 28 THEN '275'
59493 WHEN 29 THEN '275'
59494 WHEN 30 THEN '275'
59495 WHEN 31 THEN '275'
59496
59497 ELSE null
59498 END source_application_id
59499 , 'S' source_type_code
59500 , CASE r
59501 WHEN 1 THEN 'BUDGET_CCID'
59502 WHEN 2 THEN 'COST_CCID'
59503 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
59504 WHEN 4 THEN 'ADJ_COST_CCID'
59505 WHEN 5 THEN 'COST_CLEARING_CCID'
59506 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
59507 WHEN 7 THEN 'REVERSING_LINE_FLAG'
59508 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
59509 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
59510 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
59511 WHEN 11 THEN 'EXCHANGE_RATE'
59512 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
59513 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
59514 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
59515 WHEN 15 THEN 'LINE_NUMBER'
59516 WHEN 16 THEN 'LINE_TYPE'
59517 WHEN 17 THEN 'LINE_NUM_REVERSED'
59518 WHEN 18 THEN 'ENTERED_BURDENED_COST'
59519 WHEN 19 THEN 'ACCT_BURDENED_COST'
59520 WHEN 20 THEN 'ENCUMBRANCE_AMOUNT'
59521 WHEN 21 THEN 'PA_APPLICATION_ID'
59522 WHEN 22 THEN 'PA_DISTRIBUTION_TYPE'
59523 WHEN 23 THEN 'PA_ENTITY_CODE'
59524 WHEN 24 THEN 'PA_FIRST_DIST_ID'
59525 WHEN 25 THEN 'PA_FIRST_SYS_TRANS_ID'
59526 WHEN 26 THEN 'PA_SECOND_DIST_ID'
59527 WHEN 27 THEN 'ENC_UPG_DR_ACCT_CLASS'
59531 WHEN 31 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
59528 WHEN 28 THEN 'ENC_UPG_CR_ACCT_CLASS'
59529 WHEN 29 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
59530 WHEN 30 THEN 'ENCUMBRANCE_TYPE_ID'
59532
59533 ELSE null
59534 END source_code
59535 , CASE r
59536 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
59537 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
59538 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
59539 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
59540 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
59541 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
59542 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
59543 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
59544 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
59545 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
59546 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
59547 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
59548 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
59549 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
59550 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
59551 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
59552 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
59553 WHEN 18 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
59554 WHEN 19 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
59555 WHEN 20 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
59556 WHEN 21 THEN TO_CHAR(l1.PA_APPLICATION_ID)
59557 WHEN 22 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
59558 WHEN 23 THEN TO_CHAR(l1.PA_ENTITY_CODE)
59559 WHEN 24 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
59560 WHEN 25 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
59561 WHEN 26 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
59562 WHEN 27 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
59563 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
59564 WHEN 29 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
59565 WHEN 30 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
59566 WHEN 31 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
59567
59568 ELSE null
59569 END source_value
59570 , CASE r
59571 WHEN 3 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
59572 103371
59573 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
59574 ,'ALLOW_OVERRIDE_CCID_FLAG'
59575 ,'S'
59576 ,275)
59577 WHEN 16 THEN fvl34.meaning
59578
59579 ELSE null
59580 END source_meaning
59581 FROM xla_events_gt xet
59582 , PA_XLA_CDL_LINES_V l1
59583 , fnd_lookup_values fvl34
59584 , (select rownum r from all_objects where rownum <= 31 and owner = p_apps_owner)
59585 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
59586 AND xet.event_class_code = C_EVENT_CLASS_CODE
59587 AND l1.event_id = xet.event_id
59588 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
59589 AND fvl34.lookup_code(+) = l1.LINE_TYPE
59590 AND fvl34.view_application_id(+) = 275
59591 AND fvl34.language(+) = USERENV('LANG')
59592
59593 )
59594 ;
59595 --
59596 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59597
59598 trace
59599 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
59600 ,p_level => C_LEVEL_STATEMENT
59601 ,p_module => l_log_module);
59602
59603 END IF;
59604
59605
59606 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59607 trace
59608 (p_msg => 'END of insert_sources_113'
59609 ,p_level => C_LEVEL_PROCEDURE
59610 ,p_module => l_log_module);
59611 END IF;
59612 EXCEPTION
59613 WHEN xla_exceptions_pkg.application_exception THEN
59614 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
59615 trace
59616 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
59617 ,p_level => C_LEVEL_EXCEPTION
59618 ,p_module => l_log_module);
59619 END IF;
59620 RAISE;
59621 WHEN OTHERS THEN
59622 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
59623 trace
59624 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
59625 ,p_level => C_LEVEL_EXCEPTION
59626 ,p_module => l_log_module);
59627 END IF;
59628 xla_exceptions_pkg.raise_message
59629 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_113');
59630 END insert_sources_113;
59631 --
59632
59633 ---------------------------------------
59634 --
59635 -- PRIVATE FUNCTION
59636 -- EventClass_113
59637 --
59638 ----------------------------------------
59639 --
59640 FUNCTION EventClass_113
59641 (p_application_id IN NUMBER
59642 ,p_base_ledger_id IN NUMBER
59643 ,p_target_ledger_id IN NUMBER
59644 ,p_language IN VARCHAR2
59645 ,p_currency_code IN VARCHAR2
59646 ,p_sla_ledger_id IN NUMBER
59647 ,p_pad_start_date IN DATE
59648 ,p_pad_end_date IN DATE
59649 ,p_primary_ledger_id IN NUMBER)
59650 RETURN BOOLEAN IS
59651 --
59652 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ_ALL';
59653 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ';
59654
59655 l_calculate_acctd_flag VARCHAR2(1) :='N';
59659 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59656 l_calculate_g_l_flag VARCHAR2(1) :='N';
59657 --
59658 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59660 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
59661 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59662 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59663 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
59664 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
59665 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59666 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59667 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59668 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59669 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59670 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59671 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59672 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59673 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59674 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59675 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59676 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59677 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59678 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59679 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59680 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
59681 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
59682
59683 l_event_id NUMBER;
59684 l_previous_event_id NUMBER;
59685 l_first_event_id NUMBER;
59686 l_last_event_id NUMBER;
59687
59688 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
59689 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59690 --
59691 --
59692 l_result BOOLEAN := TRUE;
59693 l_rows NUMBER := 1000;
59694 l_event_type_name VARCHAR2(80) := 'All';
59695 l_event_class_name VARCHAR2(80) := 'Burden Cost Adjustments';
59696 l_description VARCHAR2(4000);
59697 l_transaction_reversal NUMBER;
59698 l_ae_header_id NUMBER;
59699 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
59700 l_log_module VARCHAR2(240);
59701 --
59702 l_acct_reversal_source VARCHAR2(30);
59703 l_trx_reversal_source VARCHAR2(30);
59704
59705 l_continue_with_lines BOOLEAN := TRUE;
59706 --
59707 l_acc_rev_gl_date_source DATE; -- 4262811
59708 --
59709 type t_array_event_id is table of number index by binary_integer;
59710
59711 l_rec_array_event t_rec_array_event;
59712 l_null_rec_array_event t_rec_array_event;
59713 l_array_ae_header_id xla_number_array_type;
59714 l_actual_flag VARCHAR2(1) := NULL;
59715 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
59716 l_balance_type_code VARCHAR2(1) :=NULL;
59717 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
59718
59719 --
59720 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
59721 --
59722
59723 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
59724 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
59725
59726 TYPE t_array_source_2 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
59727 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
59728 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
59729 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
59730 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
59731 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
59732 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
59733 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
59734 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
59735 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
59736 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
59737 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
59738 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
59739 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
59740 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
59741 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
59742 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
59743 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
59744 TYPE t_array_source_45 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
59745 TYPE t_array_source_46 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
59746 TYPE t_array_source_47 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
59750 TYPE t_array_source_51 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
59747 TYPE t_array_source_48 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
59748 TYPE t_array_source_49 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
59749 TYPE t_array_source_50 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
59751 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
59752 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
59753 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
59754 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
59755 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
59756 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
59757
59758 l_array_source_32 t_array_source_32;
59759 l_array_source_88 t_array_source_88;
59760
59761 l_array_source_2 t_array_source_2;
59762 l_array_source_3 t_array_source_3;
59763 l_array_source_4 t_array_source_4;
59764 l_array_source_5 t_array_source_5;
59765 l_array_source_6 t_array_source_6;
59766 l_array_source_7 t_array_source_7;
59767 l_array_source_22 t_array_source_22;
59768 l_array_source_23 t_array_source_23;
59769 l_array_source_25 t_array_source_25;
59770 l_array_source_27 t_array_source_27;
59771 l_array_source_28 t_array_source_28;
59772 l_array_source_29 t_array_source_29;
59773 l_array_source_30 t_array_source_30;
59774 l_array_source_31 t_array_source_31;
59775 l_array_source_33 t_array_source_33;
59776 l_array_source_34 t_array_source_34;
59777 l_array_source_34_meaning t_array_lookup_meaning;
59778 l_array_source_35 t_array_source_35;
59779 l_array_source_44 t_array_source_44;
59780 l_array_source_45 t_array_source_45;
59781 l_array_source_46 t_array_source_46;
59782 l_array_source_47 t_array_source_47;
59783 l_array_source_48 t_array_source_48;
59784 l_array_source_49 t_array_source_49;
59785 l_array_source_50 t_array_source_50;
59786 l_array_source_51 t_array_source_51;
59787 l_array_source_52 t_array_source_52;
59788 l_array_source_53 t_array_source_53;
59789 l_array_source_54 t_array_source_54;
59790 l_array_source_55 t_array_source_55;
59791 l_array_source_56 t_array_source_56;
59792 l_array_source_57 t_array_source_57;
59793
59794 --
59795 CURSOR header_cur
59796 IS
59797 SELECT /*+ leading(xet) cardinality(xet,1) */
59798 -- Event Class Code: BURDEN_COST_ADJ
59799 xet.entity_id
59800 ,xet.legal_entity_id
59801 ,xet.entity_code
59802 ,xet.transaction_number
59803 ,xet.event_id
59804 ,xet.event_class_code
59805 ,xet.event_type_code
59806 ,xet.event_number
59807 ,xet.event_date
59808 ,xet.transaction_date
59809 ,xet.reference_num_1
59810 ,xet.reference_num_2
59811 ,xet.reference_num_3
59812 ,xet.reference_num_4
59813 ,xet.reference_char_1
59814 ,xet.reference_char_2
59815 ,xet.reference_char_3
59816 ,xet.reference_char_4
59817 ,xet.reference_date_1
59818 ,xet.reference_date_2
59819 ,xet.reference_date_3
59820 ,xet.reference_date_4
59821 ,xet.event_created_by
59822 ,xet.budgetary_control_flag
59823 , h2.EXPENDITURE_ITEM_ID source_32
59824 , h2.GL_DATE source_88
59825 FROM xla_events_gt xet
59826 , PA_XLA_EXP_HEADER_V h2
59827 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
59828 and xet.event_class_code = C_EVENT_CLASS_CODE
59829 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
59830
59831 ORDER BY event_id
59832 ;
59833
59834
59835 --
59836 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
59837 IS
59838 SELECT /*+ leading(xet) cardinality(xet,1) */
59839 -- Event Class Code: BURDEN_COST_ADJ
59840 xet.entity_id
59841 ,xet.legal_entity_id
59842 ,xet.entity_code
59843 ,xet.transaction_number
59844 ,xet.event_id
59845 ,xet.event_class_code
59846 ,xet.event_type_code
59847 ,xet.event_number
59848 ,xet.event_date
59849 ,xet.transaction_date
59850 ,xet.reference_num_1
59851 ,xet.reference_num_2
59852 ,xet.reference_num_3
59853 ,xet.reference_num_4
59854 ,xet.reference_char_1
59855 ,xet.reference_char_2
59856 ,xet.reference_char_3
59857 ,xet.reference_char_4
59858 ,xet.reference_date_1
59859 ,xet.reference_date_2
59860 ,xet.reference_date_3
59861 ,xet.reference_date_4
59862 ,xet.event_created_by
59863 ,xet.budgetary_control_flag
59864 , l1.LINE_NUMBER
59865 , l1.BUDGET_CCID source_2
59866 , l1.COST_CCID source_3
59867 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
59868 , l1.ADJ_COST_CCID source_5
59869 , l1.COST_CLEARING_CCID source_6
59870 , l1.ADJ_COST_CLEARING_CCID source_7
59871 , l1.REVERSING_LINE_FLAG source_22
59872 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
59873 , l1.ENTERED_CURRENCY_CODE source_25
59874 , l1.EXCHANGE_RATE_DATE source_27
59875 , l1.EXCHANGE_RATE source_28
59876 , l1.EXCHANGE_RATE_TYPE source_29
59877 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
59878 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
59879 , l1.LINE_NUMBER source_33
59880 , l1.LINE_TYPE source_34
59881 , fvl34.meaning source_34_meaning
59882 , l1.LINE_NUM_REVERSED source_35
59883 , l1.ENTERED_BURDENED_COST source_44
59884 , l1.ACCT_BURDENED_COST source_45
59888 , l1.PA_ENTITY_CODE source_49
59885 , l1.ENCUMBRANCE_AMOUNT source_46
59886 , l1.PA_APPLICATION_ID source_47
59887 , l1.PA_DISTRIBUTION_TYPE source_48
59889 , l1.PA_FIRST_DIST_ID source_50
59890 , l1.PA_FIRST_SYS_TRANS_ID source_51
59891 , l1.PA_SECOND_DIST_ID source_52
59892 , l1.ENC_UPG_DR_ACCT_CLASS source_53
59893 , l1.ENC_UPG_CR_ACCT_CLASS source_54
59894 , l1.USE_ENC_UPG_ATTRIB_FLAG source_55
59895 , l1.ENCUMBRANCE_TYPE_ID source_56
59896 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_57
59897 FROM xla_events_gt xet
59898 , PA_XLA_CDL_LINES_V l1
59899 , fnd_lookup_values fvl34
59900 WHERE xet.event_id between x_first_event_id and x_last_event_id
59901 and xet.event_date between p_pad_start_date and p_pad_end_date
59902 and xet.event_class_code = C_EVENT_CLASS_CODE
59903 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
59904 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
59905 AND fvl34.lookup_code(+) = l1.LINE_TYPE
59906 AND fvl34.view_application_id(+) = 275
59907 AND fvl34.language(+) = USERENV('LANG')
59908 ;
59909
59910 --
59911 BEGIN
59912 IF g_log_enabled THEN
59913 l_log_module := C_DEFAULT_MODULE||'.EventClass_113';
59914 END IF;
59915 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59916 trace
59917 (p_msg => 'BEGIN of EventClass_113'
59918 ,p_level => C_LEVEL_PROCEDURE
59919 ,p_module => l_log_module);
59920 END IF;
59921
59922 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59923 trace
59924 (p_msg => 'p_application_id = '||p_application_id||
59925 ' - p_base_ledger_id = '||p_base_ledger_id||
59926 ' - p_target_ledger_id = '||p_target_ledger_id||
59927 ' - p_language = '||p_language||
59928 ' - p_currency_code = '||p_currency_code||
59929 ' - p_sla_ledger_id = '||p_sla_ledger_id
59930 ,p_level => C_LEVEL_STATEMENT
59931 ,p_module => l_log_module);
59932 END IF;
59933 --
59934 -- initialze arrays
59935 --
59936 g_array_event.DELETE;
59937 l_rec_array_event := l_null_rec_array_event;
59938 --
59939 --------------------------------------
59940 -- 4262811 Initialze MPA Line Number
59941 --------------------------------------
59942 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
59943
59944 --
59945
59946 --
59947 OPEN header_cur;
59948 --
59949 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59950 trace
59951 (p_msg => 'SQL - FETCH header_cur'
59952 ,p_level => C_LEVEL_STATEMENT
59953 ,p_module => l_log_module);
59954 END IF;
59955 --
59956 LOOP
59957 FETCH header_cur BULK COLLECT INTO
59958 l_array_entity_id
59959 , l_array_legal_entity_id
59960 , l_array_entity_code
59961 , l_array_transaction_num
59962 , l_array_event_id
59963 , l_array_class_code
59964 , l_array_event_type
59965 , l_array_event_number
59966 , l_array_event_date
59967 , l_array_transaction_date
59968 , l_array_reference_num_1
59969 , l_array_reference_num_2
59970 , l_array_reference_num_3
59971 , l_array_reference_num_4
59972 , l_array_reference_char_1
59973 , l_array_reference_char_2
59974 , l_array_reference_char_3
59975 , l_array_reference_char_4
59976 , l_array_reference_date_1
59977 , l_array_reference_date_2
59978 , l_array_reference_date_3
59979 , l_array_reference_date_4
59980 , l_array_event_created_by
59981 , l_array_budgetary_control_flag
59982 , l_array_source_32
59983 , l_array_source_88
59984 LIMIT l_rows;
59985 --
59986 IF (C_LEVEL_EVENT >= g_log_level) THEN
59987 trace
59988 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
59989 ,p_level => C_LEVEL_EVENT
59990 ,p_module => l_log_module);
59991 END IF;
59992 --
59993 EXIT WHEN l_array_entity_id.COUNT = 0;
59994
59995 -- initialize arrays
59996 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
59997 XLA_AE_LINES_PKG.g_rec_lines := NULL;
59998
59999 --
60000 -- Bug 4458708
60001 --
60002 XLA_AE_LINES_PKG.g_LineNumber := 0;
60003
60004
60005 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
60006 g_last_hdr_idx := l_array_event_id.LAST;
60007 --
60008 -- loop for the headers. Each iteration is for each header extract row
60009 -- fetched in header cursor
60010 --
60011 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
60012
60013 --
60014 -- set event info as cache for other routines to refer event attributes
60015 --
60016 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
60017 (p_application_id => p_application_id
60018 ,p_primary_ledger_id => p_primary_ledger_id
60019 ,p_base_ledger_id => p_base_ledger_id
60020 ,p_target_ledger_id => p_target_ledger_id
60021 ,p_entity_id => l_array_entity_id(hdr_idx)
60022 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
60023 ,p_entity_code => l_array_entity_code(hdr_idx)
60024 ,p_transaction_num => l_array_transaction_num(hdr_idx)
60025 ,p_event_id => l_array_event_id(hdr_idx)
60026 ,p_event_class_code => l_array_class_code(hdr_idx)
60027 ,p_event_type_code => l_array_event_type(hdr_idx)
60028 ,p_event_number => l_array_event_number(hdr_idx)
60029 ,p_event_date => l_array_event_date(hdr_idx)
60030 ,p_transaction_date => l_array_transaction_date(hdr_idx)
60034 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
60031 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
60032 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
60033 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
60035 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
60036 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
60037 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
60038 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
60039 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
60040 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
60041 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
60042 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
60043 ,p_event_created_by => l_array_event_created_by(hdr_idx)
60044 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
60045
60046 --
60047 -- set the status of entry to C_VALID (0)
60048 --
60049 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
60050
60051 --
60052 -- initialize a row for ae header
60053 --
60054 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
60055
60056 l_event_id := l_array_event_id(hdr_idx);
60057
60058 --
60059 -- storing the hdr_idx for event. May be used by line cursor.
60060 --
60061 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
60062
60063 --
60064 -- store sources from header extract. This can be improved to
60065 -- store only those sources from header extract that may be used in lines
60066 --
60067
60068 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
60069 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
60070
60071 --
60072 -- initilaize the status of ae headers for diffrent balance types
60073 -- the status is initialised to C_NOT_CREATED (2)
60074 --
60075 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
60076 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
60077 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
60078
60079 --
60080 -- call api to validate and store accounting attributes for header
60081 --
60082
60083 ------------------------------------------------------------
60084 -- Accrual Reversal : to get date for Standard Source (NONE)
60085 ------------------------------------------------------------
60086 l_acc_rev_gl_date_source := NULL;
60087
60088 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
60089 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
60090
60091
60092 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
60093
60094 XLA_AE_HEADER_PKG.SetJeCategoryName;
60095
60096 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
60097 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
60098 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
60099 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
60100 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
60101
60102
60103 -- No header level analytical criteria
60104
60105 --
60106 --accounting attribute enhancement, bug 3612931
60107 --
60108 l_trx_reversal_source := SUBSTR(NULL, 1,30);
60109
60110 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
60111 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
60112
60113 xla_accounting_err_pkg.build_message
60114 (p_appli_s_name => 'XLA'
60115 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
60116 ,p_token_1 => 'ACCT_ATTR_NAME'
60117 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
60118 ,p_token_2 => 'PRODUCT_NAME'
60119 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
60120 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
60121 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
60122 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
60123
60124 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
60125 --
60126 -- following sets the accounting attributes needed to reverse
60127 -- accounting for a distributeion
60128 --
60129 xla_ae_lines_pkg.SetTrxReversalAttrs
60130 (p_event_id => l_event_id
60131 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
60132 ,p_trx_reversal_source => l_trx_reversal_source);
60133
60134 END IF;
60135
60136
60137 ----------------------------------------------------------------
60138 -- 4262811 - update the header statuses to invalid in need be
60139 ----------------------------------------------------------------
60140 --
60141 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
60142
60143
60144 -----------------------------------------------
60145 -- No accrual reversal for the event class/type
60146 -----------------------------------------------
60147 ----------------------------------------------------------------
60148
60149 --
60150 -- this ends the header loop iteration for one bulk fetch
60151 --
60152 END LOOP;
60153
60154 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
60155 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
60156
60157 --
60161 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
60158 -- insert dummy rows into lines gt table that were created due to
60159 -- transaction reversals
60160 --
60162 l_result := XLA_AE_LINES_PKG.InsertLines;
60163 END IF;
60164
60165 --
60166 -- reset the temp_line_num for each set of events fetched from header
60167 -- cursor rather than doing it for each new event in line cursor
60168 -- Bug 3939231
60169 --
60170 xla_ae_lines_pkg.g_temp_line_num := 0;
60171
60172
60173
60174 --
60175 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
60176 --
60177 --
60178 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60179
60180 trace
60181 (p_msg => 'SQL - FETCH line_cur'
60182 ,p_level => C_LEVEL_STATEMENT
60183 ,p_module => l_log_module);
60184
60185 END IF;
60186 --
60187 --
60188 LOOP
60189 --
60190 FETCH line_cur BULK COLLECT INTO
60191 l_array_entity_id
60192 , l_array_legal_entity_id
60193 , l_array_entity_code
60194 , l_array_transaction_num
60195 , l_array_event_id
60196 , l_array_class_code
60197 , l_array_event_type
60198 , l_array_event_number
60199 , l_array_event_date
60200 , l_array_transaction_date
60201 , l_array_reference_num_1
60202 , l_array_reference_num_2
60203 , l_array_reference_num_3
60204 , l_array_reference_num_4
60205 , l_array_reference_char_1
60206 , l_array_reference_char_2
60207 , l_array_reference_char_3
60208 , l_array_reference_char_4
60209 , l_array_reference_date_1
60210 , l_array_reference_date_2
60211 , l_array_reference_date_3
60212 , l_array_reference_date_4
60213 , l_array_event_created_by
60214 , l_array_budgetary_control_flag
60215 , l_array_extract_line_num
60216 , l_array_source_2
60217 , l_array_source_3
60218 , l_array_source_4
60219 , l_array_source_5
60220 , l_array_source_6
60221 , l_array_source_7
60222 , l_array_source_22
60223 , l_array_source_23
60224 , l_array_source_25
60225 , l_array_source_27
60226 , l_array_source_28
60227 , l_array_source_29
60228 , l_array_source_30
60229 , l_array_source_31
60230 , l_array_source_33
60231 , l_array_source_34
60232 , l_array_source_34_meaning
60233 , l_array_source_35
60234 , l_array_source_44
60235 , l_array_source_45
60236 , l_array_source_46
60237 , l_array_source_47
60238 , l_array_source_48
60239 , l_array_source_49
60240 , l_array_source_50
60241 , l_array_source_51
60242 , l_array_source_52
60243 , l_array_source_53
60244 , l_array_source_54
60245 , l_array_source_55
60246 , l_array_source_56
60247 , l_array_source_57
60248 LIMIT l_rows;
60249
60250 --
60251 IF (C_LEVEL_EVENT >= g_log_level) THEN
60252 trace
60253 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
60254 ,p_level => C_LEVEL_EVENT
60255 ,p_module => l_log_module);
60256 END IF;
60257 --
60258 EXIT WHEN l_array_entity_id.count = 0;
60259
60260 XLA_AE_LINES_PKG.g_rec_lines := null;
60261
60262 --
60263 -- Bug 4458708
60264 --
60265 XLA_AE_LINES_PKG.g_LineNumber := 0;
60266 --
60267 --
60268
60269 FOR Idx IN 1..l_array_event_id.count LOOP
60270 --
60271 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
60272 --
60273 l_event_id := l_array_event_id(idx); -- 5648433
60274
60275 --
60276 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
60277 --
60278
60279 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
60280 (g_array_event(l_event_id).array_value_num('header_index'))
60281 ,'N'
60282 ) <> 'Y'
60283 THEN
60284 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60285 trace
60286 (p_msg => 'Trancaction revesal option is not Y '
60287 ,p_level => C_LEVEL_STATEMENT
60288 ,p_module => l_log_module);
60289 END IF;
60290
60291 --
60292 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
60293 --
60294 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
60295 --
60296 -- set event info as cache for other routines to refer event attributes
60297 --
60298
60299 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
60300 l_previous_event_id := l_event_id;
60301
60302 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
60303 (p_application_id => p_application_id
60304 ,p_primary_ledger_id => p_primary_ledger_id
60305 ,p_base_ledger_id => p_base_ledger_id
60306 ,p_target_ledger_id => p_target_ledger_id
60307 ,p_entity_id => l_array_entity_id(Idx)
60308 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
60309 ,p_entity_code => l_array_entity_code(Idx)
60310 ,p_transaction_num => l_array_transaction_num(Idx)
60311 ,p_event_id => l_array_event_id(Idx)
60312 ,p_event_class_code => l_array_class_code(Idx)
60313 ,p_event_type_code => l_array_event_type(Idx)
60314 ,p_event_number => l_array_event_number(Idx)
60315 ,p_event_date => l_array_event_date(Idx)
60316 ,p_transaction_date => l_array_transaction_date(Idx)
60320 ,p_reference_num_4 => l_array_reference_num_4(Idx)
60317 ,p_reference_num_1 => l_array_reference_num_1(Idx)
60318 ,p_reference_num_2 => l_array_reference_num_2(Idx)
60319 ,p_reference_num_3 => l_array_reference_num_3(Idx)
60321 ,p_reference_char_1 => l_array_reference_char_1(Idx)
60322 ,p_reference_char_2 => l_array_reference_char_2(Idx)
60323 ,p_reference_char_3 => l_array_reference_char_3(Idx)
60324 ,p_reference_char_4 => l_array_reference_char_4(Idx)
60325 ,p_reference_date_1 => l_array_reference_date_1(Idx)
60326 ,p_reference_date_2 => l_array_reference_date_2(Idx)
60327 ,p_reference_date_3 => l_array_reference_date_3(Idx)
60328 ,p_reference_date_4 => l_array_reference_date_4(Idx)
60329 ,p_event_created_by => l_array_event_created_by(Idx)
60330 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
60331 --
60332 END IF;
60333
60334
60335
60336 --
60337 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
60338
60339 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
60340
60341 IF l_continue_with_lines THEN
60342 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
60343 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
60344
60345 xla_accounting_err_pkg.build_message
60346 (p_appli_s_name => 'XLA'
60347 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
60348 ,p_token_1 => 'LINE_NUMBER'
60349 ,p_value_1 => l_array_extract_line_num(Idx)
60350 ,p_token_2 => 'PRODUCT_NAME'
60351 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
60352 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
60353 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
60354 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
60355
60356 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
60357 --
60358 -- following sets the accounting attributes needed to reverse
60359 -- accounting for a distributeion
60360 --
60361
60362 --
60363 -- 5217187
60364 --
60365 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
60366 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
60367 g_array_event(l_event_id).array_value_num('header_index'));
60368 --
60369 --
60370
60371 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
60372 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
60373 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
60374 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
60375 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
60376 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
60377 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
60378 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_44(Idx);
60379 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
60380 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
60381 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
60382 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_45(Idx);
60383 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
60384 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
60385 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
60386 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
60387 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
60388 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
60389 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
60390 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
60391 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
60392 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
60393 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
60394 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_44(Idx);
60395 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
60396 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
60397 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
60398 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_45(Idx);
60399 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
60400 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
60401 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
60402 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
60403 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
60404 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
60405 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
60406 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
60407 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
60408 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
60409 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
60410 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
60411 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
60415 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_CR_CCID';
60412 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
60413 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_CR_ACCT_CLASS';
60414 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_53(Idx);
60416 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_2(Idx);
60417 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_CR_ENTERED_AMT';
60418 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_46(Idx);
60419 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_CR_ENTERED_CURR';
60420 l_rec_rev_acct_attrs.array_char_value(26) := l_array_source_25(Idx);
60421 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_CR_LEDGER_AMT';
60422 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_46(Idx);
60423 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
60424 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_54(Idx);
60425 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
60426 l_rec_rev_acct_attrs.array_num_value(29) := l_array_source_2(Idx);
60427 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
60428 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_46(Idx);
60429 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
60430 l_rec_rev_acct_attrs.array_char_value(31) := l_array_source_25(Idx);
60431 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
60432 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_46(Idx);
60433 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
60434 l_rec_rev_acct_attrs.array_char_value(33) := l_array_source_55(Idx);
60435 l_rec_rev_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID1';
60436 l_rec_rev_acct_attrs.array_num_value(34) := g_array_event(l_event_id).array_value_num('source_32');
60437 l_rec_rev_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_ID2';
60438 l_rec_rev_acct_attrs.array_num_value(35) := l_array_source_35(Idx);
60439 l_rec_rev_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_TYPE';
60440 l_rec_rev_acct_attrs.array_char_value(36) := l_array_source_34(Idx);
60441 l_rec_rev_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
60442 l_rec_rev_acct_attrs.array_num_value(37) := l_array_source_56(Idx);
60443 l_rec_rev_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
60444 l_rec_rev_acct_attrs.array_num_value(38) := l_array_source_57(Idx);
60445
60446
60447 xla_ae_lines_pkg.SetAcctReversalAttrs
60448 (p_event_id => l_event_id
60449 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
60450 ,p_calculate_acctd_flag => l_calculate_acctd_flag
60451 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
60452 END IF;
60453
60454 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
60455 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
60456
60457 --
60458 AcctLineType_26 (
60459 p_application_id => p_application_id
60460 ,p_event_id => l_event_id
60461 ,p_calculate_acctd_flag => l_calculate_acctd_flag
60462 ,p_calculate_g_l_flag => l_calculate_g_l_flag
60463 ,p_actual_flag => l_actual_flag
60464 ,p_balance_type_code => l_balance_type_code
60465 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
60466
60467 , p_source_2 => l_array_source_2(Idx)
60468 , p_source_3 => l_array_source_3(Idx)
60469 , p_source_4 => l_array_source_4(Idx)
60470 , p_source_5 => l_array_source_5(Idx)
60471 , p_source_6 => l_array_source_6(Idx)
60472 , p_source_22 => l_array_source_22(Idx)
60473 , p_source_23 => l_array_source_23(Idx)
60474 , p_source_25 => l_array_source_25(Idx)
60475 , p_source_27 => l_array_source_27(Idx)
60476 , p_source_28 => l_array_source_28(Idx)
60477 , p_source_29 => l_array_source_29(Idx)
60478 , p_source_30 => l_array_source_30(Idx)
60479 , p_source_31 => l_array_source_31(Idx)
60480 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
60481 , p_source_33 => l_array_source_33(Idx)
60482 , p_source_34 => l_array_source_34(Idx)
60483 , p_source_34_meaning => l_array_source_34_meaning(Idx)
60484 , p_source_35 => l_array_source_35(Idx)
60485 , p_source_44 => l_array_source_44(Idx)
60486 , p_source_45 => l_array_source_45(Idx)
60487 , p_source_46 => l_array_source_46(Idx)
60488 , p_source_47 => l_array_source_47(Idx)
60489 , p_source_48 => l_array_source_48(Idx)
60490 , p_source_49 => l_array_source_49(Idx)
60491 , p_source_50 => l_array_source_50(Idx)
60492 , p_source_51 => l_array_source_51(Idx)
60493 , p_source_52 => l_array_source_52(Idx)
60494 , p_source_53 => l_array_source_53(Idx)
60495 , p_source_54 => l_array_source_54(Idx)
60496 , p_source_55 => l_array_source_55(Idx)
60497 , p_source_56 => l_array_source_56(Idx)
60498 , p_source_57 => l_array_source_57(Idx)
60499 );
60500 If(l_balance_type_code = 'A') THEN
60501 l_actual_gain_loss_ref := l_gain_or_loss_ref;
60502 END IF;
60503
60504 --
60505
60506
60507 --
60508 AcctLineType_27 (
60509 p_application_id => p_application_id
60510 ,p_event_id => l_event_id
60511 ,p_calculate_acctd_flag => l_calculate_acctd_flag
60512 ,p_calculate_g_l_flag => l_calculate_g_l_flag
60513 ,p_actual_flag => l_actual_flag
60514 ,p_balance_type_code => l_balance_type_code
60515 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
60516
60517 , p_source_2 => l_array_source_2(Idx)
60518 , p_source_3 => l_array_source_3(Idx)
60519 , p_source_4 => l_array_source_4(Idx)
60520 , p_source_6 => l_array_source_6(Idx)
60521 , p_source_7 => l_array_source_7(Idx)
60522 , p_source_22 => l_array_source_22(Idx)
60523 , p_source_23 => l_array_source_23(Idx)
60524 , p_source_25 => l_array_source_25(Idx)
60525 , p_source_27 => l_array_source_27(Idx)
60529 , p_source_31 => l_array_source_31(Idx)
60526 , p_source_28 => l_array_source_28(Idx)
60527 , p_source_29 => l_array_source_29(Idx)
60528 , p_source_30 => l_array_source_30(Idx)
60530 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
60531 , p_source_33 => l_array_source_33(Idx)
60532 , p_source_34 => l_array_source_34(Idx)
60533 , p_source_34_meaning => l_array_source_34_meaning(Idx)
60534 , p_source_35 => l_array_source_35(Idx)
60535 , p_source_44 => l_array_source_44(Idx)
60536 , p_source_45 => l_array_source_45(Idx)
60537 , p_source_46 => l_array_source_46(Idx)
60538 , p_source_47 => l_array_source_47(Idx)
60539 , p_source_48 => l_array_source_48(Idx)
60540 , p_source_49 => l_array_source_49(Idx)
60541 , p_source_50 => l_array_source_50(Idx)
60542 , p_source_51 => l_array_source_51(Idx)
60543 , p_source_52 => l_array_source_52(Idx)
60544 , p_source_53 => l_array_source_53(Idx)
60545 , p_source_54 => l_array_source_54(Idx)
60546 , p_source_55 => l_array_source_55(Idx)
60547 , p_source_56 => l_array_source_56(Idx)
60548 , p_source_57 => l_array_source_57(Idx)
60549 );
60550 If(l_balance_type_code = 'A') THEN
60551 l_actual_gain_loss_ref := l_gain_or_loss_ref;
60552 END IF;
60553
60554 --
60555
60556 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
60557 -- or secondary ledger that has different currency with primary
60558 -- or alc that is calculated by sla
60559 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
60560 (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'))
60561
60562 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
60563 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
60564 AND (l_actual_flag = 'A')) THEN
60565 XLA_AE_LINES_PKG.CreateGainOrLossLines(
60566 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
60567 ,p_application_id => p_application_id
60568 ,p_amb_context_code => 'DEFAULT'
60569 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
60570 ,p_event_class_code => C_EVENT_CLASS_CODE
60571 ,p_event_type_code => C_EVENT_TYPE_CODE
60572
60573 ,p_gain_ccid => -1
60574 ,p_loss_ccid => -1
60575
60576 ,p_actual_flag => l_actual_flag
60577 ,p_enc_flag => null
60578 ,p_actual_g_l_ref => l_actual_gain_loss_ref
60579 ,p_enc_g_l_ref => null
60580 );
60581 END IF;
60582 END IF;
60583 END IF;
60584
60585 ELSE
60586 --
60587 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
60588 --
60589 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60590 trace
60591 (p_msg => 'Trancaction revesal option is Y'
60592 ,p_level => C_LEVEL_STATEMENT
60593 ,p_module => l_log_module);
60594 END IF;
60595 END IF;
60596
60597 END LOOP;
60598 l_result := XLA_AE_LINES_PKG.InsertLines ;
60599 end loop;
60600 close line_cur;
60601
60602
60603 --
60604 -- insert headers into xla_ae_headers_gt table
60605 --
60606 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
60607
60608 -- insert into errors table here.
60609
60610 END LOOP;
60611
60612 --
60613 -- 4865292
60614 --
60615 -- Compare g_hdr_extract_count with event count in
60616 -- CreateHeadersAndLines.
60617 --
60618 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
60619
60620 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60621 trace (p_msg => '# rows extracted from header extract objects '
60622 || ' (running total): '
60623 || g_hdr_extract_count
60624 ,p_level => C_LEVEL_STATEMENT
60625 ,p_module => l_log_module);
60626 END IF;
60627
60628 CLOSE header_cur;
60629 --
60630
60631 --
60632 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60633 trace
60634 (p_msg => 'END of EventClass_113'
60635 ,p_level => C_LEVEL_PROCEDURE
60636 ,p_module => l_log_module);
60637 END IF;
60638 --
60639 RETURN l_result;
60640 EXCEPTION
60641 WHEN xla_exceptions_pkg.application_exception THEN
60642
60643 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
60644
60645
60646 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
60647
60648 RAISE;
60649 WHEN OTHERS THEN
60650 xla_exceptions_pkg.raise_message
60651 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_113');
60652 END EventClass_113;
60653 --
60654
60655 ---------------------------------------
60656 --
60657 -- PRIVATE PROCEDURE
60658 -- insert_sources_114
60659 --
60660 ----------------------------------------
60661 --
60662 PROCEDURE insert_sources_114(
60663 p_target_ledger_id IN NUMBER
60664 , p_language IN VARCHAR2
60665 , p_sla_ledger_id IN NUMBER
60666 , p_pad_start_date IN DATE
60667 , p_pad_end_date IN DATE
60668 )
60669 IS
60670
60671 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ALL';
60672 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST';
60673 p_apps_owner VARCHAR2(30);
60674 l_log_module VARCHAR2(240);
60675 BEGIN
60676 IF g_log_enabled THEN
60680
60677 l_log_module := C_DEFAULT_MODULE||'.insert_sources_114';
60678 END IF;
60679 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60681 trace
60682 (p_msg => 'BEGIN of insert_sources_114'
60683 ,p_level => C_LEVEL_PROCEDURE
60684 ,p_module => l_log_module);
60685
60686 END IF;
60687
60688 -- select APPS owner
60689 SELECT oracle_username
60690 INTO p_apps_owner
60691 FROM fnd_oracle_userid
60692 WHERE read_only_flag = 'U'
60693 ;
60694
60695 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60696 trace
60697 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
60698 ' - p_language = '||p_language||
60699 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
60700 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
60701 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
60702 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
60703 ,p_level => C_LEVEL_STATEMENT
60704 ,p_module => l_log_module);
60705 END IF;
60706
60707
60708 --
60709 INSERT INTO xla_diag_sources --hdr2
60710 (
60711 event_id
60712 , ledger_id
60713 , sla_ledger_id
60714 , description_language
60715 , object_name
60716 , object_type_code
60717 , line_number
60718 , source_application_id
60719 , source_type_code
60720 , source_code
60721 , source_value
60722 , source_meaning
60723 , created_by
60724 , creation_date
60725 , last_update_date
60726 , last_updated_by
60727 , last_update_login
60728 , program_update_date
60729 , program_application_id
60730 , program_id
60731 , request_id
60732 )
60733 SELECT
60734 event_id
60735 , p_target_ledger_id
60736 , p_sla_ledger_id
60737 , p_language
60738 , object_name
60739 , object_type_code
60740 , line_number
60741 , source_application_id
60742 , source_type_code
60743 , source_code
60744 , SUBSTR(source_value ,1,1996)
60745 , SUBSTR(source_meaning ,1,200)
60746 , xla_environment_pkg.g_Usr_Id
60747 , TRUNC(SYSDATE)
60748 , TRUNC(SYSDATE)
60749 , xla_environment_pkg.g_Usr_Id
60750 , xla_environment_pkg.g_Login_Id
60751 , TRUNC(SYSDATE)
60752 , xla_environment_pkg.g_Prog_Appl_Id
60753 , xla_environment_pkg.g_Prog_Id
60754 , xla_environment_pkg.g_Req_Id
60755 FROM (
60756 SELECT xet.event_id event_id
60757 , 0 line_number
60758 , CASE r
60759 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
60760 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
60761 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
60762
60763 ELSE null
60764 END object_name
60765 , CASE r
60766 WHEN 1 THEN 'HEADER'
60767 WHEN 2 THEN 'HEADER'
60768 WHEN 3 THEN 'HEADER'
60769
60770 ELSE null
60771 END object_type_code
60772 , CASE r
60773 WHEN 1 THEN '275'
60774 WHEN 2 THEN '275'
60775 WHEN 3 THEN '275'
60776
60777 ELSE null
60778 END source_application_id
60779 , 'S' source_type_code
60780 , CASE r
60781 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
60782 WHEN 2 THEN 'SYSTEM_LINKAGE_FUNCTION'
60783 WHEN 3 THEN 'GL_DATE'
60784
60785 ELSE null
60786 END source_code
60787 , CASE r
60788 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
60789 WHEN 2 THEN TO_CHAR(h2.SYSTEM_LINKAGE_FUNCTION)
60790 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
60791
60792 ELSE null
60793 END source_value
60794 , null source_meaning
60795 FROM xla_events_gt xet
60796 , PA_XLA_EXP_HEADER_V h2
60797 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
60798 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
60799 AND xet.event_class_code = C_EVENT_CLASS_CODE
60800 AND h2.event_id = xet.event_id
60801
60802 )
60803 ;
60804 --
60805 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60806
60807 trace
60808 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
60809 ,p_level => C_LEVEL_STATEMENT
60810 ,p_module => l_log_module);
60811
60812 END IF;
60813 --
60814
60815
60816
60817 --
60818 INSERT INTO xla_diag_sources --line2
60819 (
60820 event_id
60821 , ledger_id
60822 , sla_ledger_id
60823 , description_language
60824 , object_name
60825 , object_type_code
60826 , line_number
60827 , source_application_id
60828 , source_type_code
60829 , source_code
60830 , source_value
60831 , source_meaning
60832 , created_by
60833 , creation_date
60834 , last_update_date
60835 , last_updated_by
60836 , last_update_login
60837 , program_update_date
60838 , program_application_id
60839 , program_id
60843 , p_target_ledger_id
60840 , request_id
60841 )
60842 SELECT event_id
60844 , p_sla_ledger_id
60845 , p_language
60846 , object_name
60847 , object_type_code
60848 , line_number
60849 , source_application_id
60850 , source_type_code
60851 , source_code
60852 , SUBSTR(source_value,1,1996)
60853 , SUBSTR(source_meaning ,1,200)
60854 , xla_environment_pkg.g_Usr_Id
60855 , TRUNC(SYSDATE)
60856 , TRUNC(SYSDATE)
60857 , xla_environment_pkg.g_Usr_Id
60858 , xla_environment_pkg.g_Login_Id
60859 , TRUNC(SYSDATE)
60860 , xla_environment_pkg.g_Prog_Appl_Id
60861 , xla_environment_pkg.g_Prog_Id
60862 , xla_environment_pkg.g_Req_Id
60863 FROM (
60864 SELECT xet.event_id event_id
60865 , l1.line_number line_number
60866 , CASE r
60867 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
60868 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
60869 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
60870 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
60871 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
60872 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
60873 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
60874 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
60875 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
60876 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
60877 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
60878 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
60879 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
60880 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
60881 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
60882 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
60883 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
60884 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
60885 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
60886 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
60887 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
60888 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
60889 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
60890 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
60891 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
60892 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
60893 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
60894 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
60895 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
60896 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
60897 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
60898 WHEN 32 THEN 'PA_XLA_CDL_LINES_V'
60899 WHEN 33 THEN 'PA_XLA_CDL_LINES_V'
60900 WHEN 34 THEN 'PA_XLA_CDL_LINES_V'
60901 WHEN 35 THEN 'PA_XLA_CDL_LINES_V'
60902 WHEN 36 THEN 'PA_XLA_CDL_LINES_V'
60903 WHEN 37 THEN 'PA_XLA_CDL_LINES_V'
60904 WHEN 38 THEN 'PA_XLA_CDL_LINES_V'
60905 WHEN 39 THEN 'PA_XLA_CDL_LINES_V'
60906 WHEN 40 THEN 'PA_XLA_CDL_LINES_V'
60907 WHEN 41 THEN 'PA_XLA_CDL_LINES_V'
60908 WHEN 42 THEN 'PA_XLA_CDL_LINES_V'
60909 WHEN 43 THEN 'PA_XLA_CDL_LINES_V'
60910 WHEN 44 THEN 'PA_XLA_CDL_LINES_V'
60911 WHEN 45 THEN 'PA_XLA_CDL_LINES_V'
60912 WHEN 46 THEN 'PA_XLA_CDL_LINES_V'
60913 WHEN 47 THEN 'PA_XLA_CDL_LINES_V'
60914 WHEN 48 THEN 'PA_XLA_CDL_LINES_V'
60915 WHEN 49 THEN 'PA_XLA_CDL_LINES_V'
60916
60917 ELSE null
60918 END object_name
60919 , CASE r
60920 WHEN 1 THEN 'LINE'
60921 WHEN 2 THEN 'LINE'
60922 WHEN 3 THEN 'LINE'
60923 WHEN 4 THEN 'LINE'
60924 WHEN 5 THEN 'LINE'
60925 WHEN 6 THEN 'LINE'
60926 WHEN 7 THEN 'LINE'
60927 WHEN 8 THEN 'LINE'
60928 WHEN 9 THEN 'LINE'
60929 WHEN 10 THEN 'LINE'
60930 WHEN 11 THEN 'LINE'
60931 WHEN 12 THEN 'LINE'
60932 WHEN 13 THEN 'LINE'
60933 WHEN 14 THEN 'LINE'
60934 WHEN 15 THEN 'LINE'
60935 WHEN 16 THEN 'LINE'
60936 WHEN 17 THEN 'LINE'
60937 WHEN 18 THEN 'LINE'
60938 WHEN 19 THEN 'LINE'
60939 WHEN 20 THEN 'LINE'
60940 WHEN 21 THEN 'LINE'
60941 WHEN 22 THEN 'LINE'
60942 WHEN 23 THEN 'LINE'
60943 WHEN 24 THEN 'LINE'
60944 WHEN 25 THEN 'LINE'
60945 WHEN 26 THEN 'LINE'
60946 WHEN 27 THEN 'LINE'
60947 WHEN 28 THEN 'LINE'
60948 WHEN 29 THEN 'LINE'
60949 WHEN 30 THEN 'LINE'
60950 WHEN 31 THEN 'LINE'
60951 WHEN 32 THEN 'LINE'
60952 WHEN 33 THEN 'LINE'
60953 WHEN 34 THEN 'LINE'
60954 WHEN 35 THEN 'LINE'
60955 WHEN 36 THEN 'LINE'
60956 WHEN 37 THEN 'LINE'
60957 WHEN 38 THEN 'LINE'
60958 WHEN 39 THEN 'LINE'
60959 WHEN 40 THEN 'LINE'
60960 WHEN 41 THEN 'LINE'
60961 WHEN 42 THEN 'LINE'
60962 WHEN 43 THEN 'LINE'
60963 WHEN 44 THEN 'LINE'
60964 WHEN 45 THEN 'LINE'
60965 WHEN 46 THEN 'LINE'
60966 WHEN 47 THEN 'LINE'
60967 WHEN 48 THEN 'LINE'
60968 WHEN 49 THEN 'LINE'
60969
60973 WHEN 1 THEN '275'
60970 ELSE null
60971 END object_type_code
60972 , CASE r
60974 WHEN 2 THEN '275'
60975 WHEN 3 THEN '275'
60976 WHEN 4 THEN '275'
60977 WHEN 5 THEN '275'
60978 WHEN 6 THEN '275'
60979 WHEN 7 THEN '275'
60980 WHEN 8 THEN '275'
60981 WHEN 9 THEN '275'
60982 WHEN 10 THEN '275'
60983 WHEN 11 THEN '275'
60984 WHEN 12 THEN '275'
60985 WHEN 13 THEN '275'
60986 WHEN 14 THEN '275'
60987 WHEN 15 THEN '275'
60988 WHEN 16 THEN '275'
60989 WHEN 17 THEN '275'
60990 WHEN 18 THEN '275'
60991 WHEN 19 THEN '275'
60992 WHEN 20 THEN '275'
60993 WHEN 21 THEN '275'
60994 WHEN 22 THEN '275'
60995 WHEN 23 THEN '275'
60996 WHEN 24 THEN '275'
60997 WHEN 25 THEN '275'
60998 WHEN 26 THEN '275'
60999 WHEN 27 THEN '275'
61000 WHEN 28 THEN '275'
61001 WHEN 29 THEN '275'
61002 WHEN 30 THEN '275'
61003 WHEN 31 THEN '275'
61004 WHEN 32 THEN '275'
61005 WHEN 33 THEN '275'
61006 WHEN 34 THEN '275'
61007 WHEN 35 THEN '275'
61008 WHEN 36 THEN '275'
61009 WHEN 37 THEN '275'
61010 WHEN 38 THEN '275'
61011 WHEN 39 THEN '275'
61012 WHEN 40 THEN '275'
61013 WHEN 41 THEN '275'
61014 WHEN 42 THEN '275'
61015 WHEN 43 THEN '275'
61016 WHEN 44 THEN '275'
61017 WHEN 45 THEN '275'
61018 WHEN 46 THEN '275'
61019 WHEN 47 THEN '275'
61020 WHEN 48 THEN '275'
61021 WHEN 49 THEN '275'
61022
61023 ELSE null
61024 END source_application_id
61025 , 'S' source_type_code
61026 , CASE r
61027 WHEN 1 THEN 'BUDGET_CCID'
61028 WHEN 2 THEN 'COST_CCID'
61029 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
61030 WHEN 4 THEN 'ADJ_COST_CCID'
61031 WHEN 5 THEN 'COST_CLEARING_CCID'
61032 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
61033 WHEN 7 THEN 'REVERSING_LINE_FLAG'
61034 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
61035 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
61036 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
61037 WHEN 11 THEN 'EXCHANGE_RATE'
61038 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
61039 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
61040 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
61041 WHEN 15 THEN 'LINE_NUMBER'
61042 WHEN 16 THEN 'LINE_TYPE'
61043 WHEN 17 THEN 'LINE_NUM_REVERSED'
61044 WHEN 18 THEN 'ENTERED_BURDENED_COST'
61045 WHEN 19 THEN 'ACCT_BURDENED_COST'
61046 WHEN 20 THEN 'ENCUMBRANCE_AMOUNT'
61047 WHEN 21 THEN 'PA_APPLICATION_ID'
61048 WHEN 22 THEN 'PA_DISTRIBUTION_TYPE'
61049 WHEN 23 THEN 'PA_ENTITY_CODE'
61050 WHEN 24 THEN 'PA_FIRST_DIST_ID'
61051 WHEN 25 THEN 'PA_FIRST_SYS_TRANS_ID'
61052 WHEN 26 THEN 'PA_SECOND_DIST_ID'
61053 WHEN 27 THEN 'ENC_UPG_DR_ACCT_CLASS'
61054 WHEN 28 THEN 'ENC_UPG_CR_ACCT_CLASS'
61055 WHEN 29 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
61056 WHEN 30 THEN 'ENCUMBRANCE_TYPE_ID'
61057 WHEN 31 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
61058 WHEN 32 THEN 'DOCUMENT_TYPE'
61059 WHEN 33 THEN 'ENC_JE_LINES_REVERSED_FLAG'
61060 WHEN 34 THEN 'PO_RELEASE_ID'
61061 WHEN 35 THEN 'CWK_RATE_BASED_TC_FLAG'
61062 WHEN 36 THEN 'INVOICE_APPLICATION_ID'
61063 WHEN 37 THEN 'INVOICE_DISTRIBUTION_TYPE'
61064 WHEN 38 THEN 'INVOICE_ENTITY_CODE'
61065 WHEN 39 THEN 'INVOICE_FIRST_DIST_ID'
61066 WHEN 40 THEN 'INVOICE_FIRST_SYS_TRANS_ID'
61067 WHEN 41 THEN 'INVOICE_SECOND_DIST_ID'
61068 WHEN 42 THEN 'PO_APPLICATION_ID'
61069 WHEN 43 THEN 'PO_DISTRIBUTION_TYPE'
61070 WHEN 44 THEN 'PO_ENTITY_CODE'
61071 WHEN 45 THEN 'PO_FIRST_DIST_ID'
61072 WHEN 46 THEN 'PO_FIRST_SYS_TRANS_ID'
61073 WHEN 47 THEN 'PO_SECOND_DIST_ID'
61074 WHEN 48 THEN 'ENC_ACCT_ENABLED'
61075 WHEN 49 THEN 'LIQUIDATE_ENCUM_FLAG'
61076
61077 ELSE null
61078 END source_code
61079 , CASE r
61080 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
61081 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
61082 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
61083 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
61084 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
61085 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
61086 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
61087 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
61088 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
61089 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
61090 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
61094 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
61091 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
61092 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
61093 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
61095 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
61096 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
61097 WHEN 18 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
61098 WHEN 19 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
61099 WHEN 20 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
61100 WHEN 21 THEN TO_CHAR(l1.PA_APPLICATION_ID)
61101 WHEN 22 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
61102 WHEN 23 THEN TO_CHAR(l1.PA_ENTITY_CODE)
61103 WHEN 24 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
61104 WHEN 25 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
61105 WHEN 26 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
61106 WHEN 27 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
61107 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
61108 WHEN 29 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
61109 WHEN 30 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
61110 WHEN 31 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
61111 WHEN 32 THEN TO_CHAR(l1.DOCUMENT_TYPE)
61112 WHEN 33 THEN TO_CHAR(l1.ENC_JE_LINES_REVERSED_FLAG)
61113 WHEN 34 THEN TO_CHAR(l1.PO_RELEASE_ID)
61114 WHEN 35 THEN TO_CHAR(l1.CWK_RATE_BASED_TC_FLAG)
61115 WHEN 36 THEN TO_CHAR(l1.INVOICE_APPLICATION_ID)
61116 WHEN 37 THEN TO_CHAR(l1.INVOICE_DISTRIBUTION_TYPE)
61117 WHEN 38 THEN TO_CHAR(l1.INVOICE_ENTITY_CODE)
61118 WHEN 39 THEN TO_CHAR(l1.INVOICE_FIRST_DIST_ID)
61119 WHEN 40 THEN TO_CHAR(l1.INVOICE_FIRST_SYS_TRANS_ID)
61120 WHEN 41 THEN TO_CHAR(l1.INVOICE_SECOND_DIST_ID)
61121 WHEN 42 THEN TO_CHAR(l1.PO_APPLICATION_ID)
61122 WHEN 43 THEN TO_CHAR(l1.PO_DISTRIBUTION_TYPE)
61123 WHEN 44 THEN TO_CHAR(l1.PO_ENTITY_CODE)
61124 WHEN 45 THEN TO_CHAR(l1.PO_FIRST_DIST_ID)
61125 WHEN 46 THEN TO_CHAR(l1.PO_FIRST_SYS_TRANS_ID)
61126 WHEN 47 THEN TO_CHAR(l1.PO_SECOND_DIST_ID)
61127 WHEN 48 THEN TO_CHAR(l1.ENC_ACCT_ENABLED)
61128 WHEN 49 THEN TO_CHAR(l1.LIQUIDATE_ENCUM_FLAG)
61129
61130 ELSE null
61131 END source_value
61132 , CASE r
61133 WHEN 3 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
61134 103371
61135 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
61136 ,'ALLOW_OVERRIDE_CCID_FLAG'
61137 ,'S'
61138 ,275)
61139 WHEN 16 THEN fvl34.meaning
61140 WHEN 32 THEN fvl70.meaning
61141
61142 ELSE null
61143 END source_meaning
61144 FROM xla_events_gt xet
61145 , PA_XLA_CDL_LINES_V l1
61146 , fnd_lookup_values fvl34
61147 , fnd_lookup_values fvl70
61148 , (select rownum r from all_objects where rownum <= 49 and owner = p_apps_owner)
61149 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
61150 AND xet.event_class_code = C_EVENT_CLASS_CODE
61151 AND l1.event_id = xet.event_id
61152 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
61153 AND fvl34.lookup_code(+) = l1.LINE_TYPE
61154 AND fvl34.view_application_id(+) = 275
61155 AND fvl34.language(+) = USERENV('LANG')
61156 AND fvl70.lookup_type(+) = 'FC_DOC_TYPE'
61157 AND fvl70.lookup_code(+) = l1.DOCUMENT_TYPE
61158 AND fvl70.view_application_id(+) = 275
61159 AND fvl70.language(+) = USERENV('LANG')
61160
61161 )
61162 ;
61163 --
61164 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61165
61166 trace
61167 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
61168 ,p_level => C_LEVEL_STATEMENT
61169 ,p_module => l_log_module);
61170
61171 END IF;
61172
61173
61174 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61175 trace
61176 (p_msg => 'END of insert_sources_114'
61177 ,p_level => C_LEVEL_PROCEDURE
61178 ,p_module => l_log_module);
61179 END IF;
61180 EXCEPTION
61181 WHEN xla_exceptions_pkg.application_exception THEN
61182 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
61183 trace
61184 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
61185 ,p_level => C_LEVEL_EXCEPTION
61186 ,p_module => l_log_module);
61187 END IF;
61188 RAISE;
61189 WHEN OTHERS THEN
61190 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
61191 trace
61192 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
61193 ,p_level => C_LEVEL_EXCEPTION
61194 ,p_module => l_log_module);
61195 END IF;
61196 xla_exceptions_pkg.raise_message
61197 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_114');
61198 END insert_sources_114;
61199 --
61200
61201 ---------------------------------------
61202 --
61203 -- PRIVATE FUNCTION
61204 -- EventClass_114
61205 --
61206 ----------------------------------------
61207 --
61208 FUNCTION EventClass_114
61209 (p_application_id IN NUMBER
61210 ,p_base_ledger_id IN NUMBER
61211 ,p_target_ledger_id IN NUMBER
61212 ,p_language IN VARCHAR2
61213 ,p_currency_code IN VARCHAR2
61214 ,p_sla_ledger_id IN NUMBER
61218 RETURN BOOLEAN IS
61215 ,p_pad_start_date IN DATE
61216 ,p_pad_end_date IN DATE
61217 ,p_primary_ledger_id IN NUMBER)
61219 --
61220 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ALL';
61221 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST';
61222
61223 l_calculate_acctd_flag VARCHAR2(1) :='N';
61224 l_calculate_g_l_flag VARCHAR2(1) :='N';
61225 --
61226 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61227 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61228 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
61229 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61230 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61231 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
61232 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
61233 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61234 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61235 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61236 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61237 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61238 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61239 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61240 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61241 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61242 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61243 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61244 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61245 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61246 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61247 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61248 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
61249 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
61250
61251 l_event_id NUMBER;
61252 l_previous_event_id NUMBER;
61253 l_first_event_id NUMBER;
61254 l_last_event_id NUMBER;
61255
61256 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
61257 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
61258 --
61259 --
61260 l_result BOOLEAN := TRUE;
61261 l_rows NUMBER := 1000;
61262 l_event_type_name VARCHAR2(80) := 'All';
61263 l_event_class_name VARCHAR2(80) := 'Burden Cost';
61264 l_description VARCHAR2(4000);
61265 l_transaction_reversal NUMBER;
61266 l_ae_header_id NUMBER;
61267 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
61268 l_log_module VARCHAR2(240);
61269 --
61270 l_acct_reversal_source VARCHAR2(30);
61271 l_trx_reversal_source VARCHAR2(30);
61272
61273 l_continue_with_lines BOOLEAN := TRUE;
61274 --
61275 l_acc_rev_gl_date_source DATE; -- 4262811
61276 --
61277 type t_array_event_id is table of number index by binary_integer;
61278
61279 l_rec_array_event t_rec_array_event;
61280 l_null_rec_array_event t_rec_array_event;
61281 l_array_ae_header_id xla_number_array_type;
61282 l_actual_flag VARCHAR2(1) := NULL;
61283 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
61284 l_balance_type_code VARCHAR2(1) :=NULL;
61285 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
61286
61287 --
61288 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
61289 --
61290
61291 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
61292 TYPE t_array_source_37 IS TABLE OF PA_XLA_EXP_HEADER_V.SYSTEM_LINKAGE_FUNCTION%TYPE INDEX BY BINARY_INTEGER;
61293 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
61294
61295 TYPE t_array_source_2 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
61296 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
61297 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
61298 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
61299 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
61300 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
61301 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
61302 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
61303 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
61304 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
61305 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
61306 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
61307 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
61308 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
61309 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
61310 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
61314 TYPE t_array_source_46 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
61311 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
61312 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
61313 TYPE t_array_source_45 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
61315 TYPE t_array_source_47 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
61316 TYPE t_array_source_48 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
61317 TYPE t_array_source_49 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
61318 TYPE t_array_source_50 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61319 TYPE t_array_source_51 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
61320 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61321 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
61322 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
61323 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
61324 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
61325 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
61326 TYPE t_array_source_70 IS TABLE OF PA_XLA_CDL_LINES_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
61327 TYPE t_array_source_71 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_JE_LINES_REVERSED_FLAG%TYPE INDEX BY BINARY_INTEGER;
61328 TYPE t_array_source_72 IS TABLE OF PA_XLA_CDL_LINES_V.PO_RELEASE_ID%TYPE INDEX BY BINARY_INTEGER;
61329 TYPE t_array_source_73 IS TABLE OF PA_XLA_CDL_LINES_V.CWK_RATE_BASED_TC_FLAG%TYPE INDEX BY BINARY_INTEGER;
61330 TYPE t_array_source_74 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
61331 TYPE t_array_source_75 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
61332 TYPE t_array_source_76 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
61333 TYPE t_array_source_77 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61334 TYPE t_array_source_78 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
61335 TYPE t_array_source_79 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61336 TYPE t_array_source_80 IS TABLE OF PA_XLA_CDL_LINES_V.PO_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
61337 TYPE t_array_source_81 IS TABLE OF PA_XLA_CDL_LINES_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
61338 TYPE t_array_source_82 IS TABLE OF PA_XLA_CDL_LINES_V.PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
61339 TYPE t_array_source_83 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61340 TYPE t_array_source_84 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
61341 TYPE t_array_source_85 IS TABLE OF PA_XLA_CDL_LINES_V.PO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61342 TYPE t_array_source_86 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_ACCT_ENABLED%TYPE INDEX BY BINARY_INTEGER;
61343 TYPE t_array_source_87 IS TABLE OF PA_XLA_CDL_LINES_V.LIQUIDATE_ENCUM_FLAG%TYPE INDEX BY BINARY_INTEGER;
61344
61345 l_array_source_32 t_array_source_32;
61346 l_array_source_37 t_array_source_37;
61347 l_array_source_88 t_array_source_88;
61348
61349 l_array_source_2 t_array_source_2;
61350 l_array_source_3 t_array_source_3;
61351 l_array_source_4 t_array_source_4;
61352 l_array_source_5 t_array_source_5;
61353 l_array_source_6 t_array_source_6;
61354 l_array_source_7 t_array_source_7;
61355 l_array_source_22 t_array_source_22;
61356 l_array_source_23 t_array_source_23;
61357 l_array_source_25 t_array_source_25;
61358 l_array_source_27 t_array_source_27;
61359 l_array_source_28 t_array_source_28;
61360 l_array_source_29 t_array_source_29;
61361 l_array_source_30 t_array_source_30;
61362 l_array_source_31 t_array_source_31;
61363 l_array_source_33 t_array_source_33;
61364 l_array_source_34 t_array_source_34;
61365 l_array_source_34_meaning t_array_lookup_meaning;
61366 l_array_source_35 t_array_source_35;
61367 l_array_source_44 t_array_source_44;
61368 l_array_source_45 t_array_source_45;
61369 l_array_source_46 t_array_source_46;
61370 l_array_source_47 t_array_source_47;
61371 l_array_source_48 t_array_source_48;
61372 l_array_source_49 t_array_source_49;
61373 l_array_source_50 t_array_source_50;
61374 l_array_source_51 t_array_source_51;
61375 l_array_source_52 t_array_source_52;
61376 l_array_source_53 t_array_source_53;
61377 l_array_source_54 t_array_source_54;
61378 l_array_source_55 t_array_source_55;
61379 l_array_source_56 t_array_source_56;
61380 l_array_source_57 t_array_source_57;
61381 l_array_source_70 t_array_source_70;
61382 l_array_source_70_meaning t_array_lookup_meaning;
61383 l_array_source_71 t_array_source_71;
61384 l_array_source_72 t_array_source_72;
61385 l_array_source_73 t_array_source_73;
61386 l_array_source_74 t_array_source_74;
61387 l_array_source_75 t_array_source_75;
61388 l_array_source_76 t_array_source_76;
61389 l_array_source_77 t_array_source_77;
61390 l_array_source_78 t_array_source_78;
61391 l_array_source_79 t_array_source_79;
61392 l_array_source_80 t_array_source_80;
61393 l_array_source_81 t_array_source_81;
61394 l_array_source_82 t_array_source_82;
61395 l_array_source_83 t_array_source_83;
61396 l_array_source_84 t_array_source_84;
61397 l_array_source_85 t_array_source_85;
61398 l_array_source_86 t_array_source_86;
61399 l_array_source_87 t_array_source_87;
61400
61401 --
61402 CURSOR header_cur
61403 IS
61407 ,xet.legal_entity_id
61404 SELECT /*+ leading(xet) cardinality(xet,1) */
61405 -- Event Class Code: BURDEN_COST
61406 xet.entity_id
61408 ,xet.entity_code
61409 ,xet.transaction_number
61410 ,xet.event_id
61411 ,xet.event_class_code
61412 ,xet.event_type_code
61413 ,xet.event_number
61414 ,xet.event_date
61415 ,xet.transaction_date
61416 ,xet.reference_num_1
61417 ,xet.reference_num_2
61418 ,xet.reference_num_3
61419 ,xet.reference_num_4
61420 ,xet.reference_char_1
61421 ,xet.reference_char_2
61422 ,xet.reference_char_3
61423 ,xet.reference_char_4
61424 ,xet.reference_date_1
61425 ,xet.reference_date_2
61426 ,xet.reference_date_3
61427 ,xet.reference_date_4
61428 ,xet.event_created_by
61429 ,xet.budgetary_control_flag
61430 , h2.EXPENDITURE_ITEM_ID source_32
61431 , h2.SYSTEM_LINKAGE_FUNCTION source_37
61432 , h2.GL_DATE source_88
61433 FROM xla_events_gt xet
61434 , PA_XLA_EXP_HEADER_V h2
61435 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
61436 and xet.event_class_code = C_EVENT_CLASS_CODE
61437 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
61438
61439 ORDER BY event_id
61440 ;
61441
61442
61443 --
61444 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
61445 IS
61446 SELECT /*+ leading(xet) cardinality(xet,1) */
61447 -- Event Class Code: BURDEN_COST
61448 xet.entity_id
61449 ,xet.legal_entity_id
61450 ,xet.entity_code
61451 ,xet.transaction_number
61452 ,xet.event_id
61453 ,xet.event_class_code
61454 ,xet.event_type_code
61455 ,xet.event_number
61456 ,xet.event_date
61457 ,xet.transaction_date
61458 ,xet.reference_num_1
61459 ,xet.reference_num_2
61460 ,xet.reference_num_3
61461 ,xet.reference_num_4
61462 ,xet.reference_char_1
61463 ,xet.reference_char_2
61464 ,xet.reference_char_3
61465 ,xet.reference_char_4
61466 ,xet.reference_date_1
61467 ,xet.reference_date_2
61468 ,xet.reference_date_3
61469 ,xet.reference_date_4
61470 ,xet.event_created_by
61471 ,xet.budgetary_control_flag
61472 , l1.LINE_NUMBER
61473 , l1.BUDGET_CCID source_2
61474 , l1.COST_CCID source_3
61475 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
61476 , l1.ADJ_COST_CCID source_5
61477 , l1.COST_CLEARING_CCID source_6
61478 , l1.ADJ_COST_CLEARING_CCID source_7
61479 , l1.REVERSING_LINE_FLAG source_22
61480 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
61481 , l1.ENTERED_CURRENCY_CODE source_25
61482 , l1.EXCHANGE_RATE_DATE source_27
61483 , l1.EXCHANGE_RATE source_28
61484 , l1.EXCHANGE_RATE_TYPE source_29
61485 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
61486 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
61487 , l1.LINE_NUMBER source_33
61488 , l1.LINE_TYPE source_34
61489 , fvl34.meaning source_34_meaning
61490 , l1.LINE_NUM_REVERSED source_35
61491 , l1.ENTERED_BURDENED_COST source_44
61492 , l1.ACCT_BURDENED_COST source_45
61493 , l1.ENCUMBRANCE_AMOUNT source_46
61494 , l1.PA_APPLICATION_ID source_47
61495 , l1.PA_DISTRIBUTION_TYPE source_48
61496 , l1.PA_ENTITY_CODE source_49
61497 , l1.PA_FIRST_DIST_ID source_50
61498 , l1.PA_FIRST_SYS_TRANS_ID source_51
61499 , l1.PA_SECOND_DIST_ID source_52
61500 , l1.ENC_UPG_DR_ACCT_CLASS source_53
61501 , l1.ENC_UPG_CR_ACCT_CLASS source_54
61502 , l1.USE_ENC_UPG_ATTRIB_FLAG source_55
61503 , l1.ENCUMBRANCE_TYPE_ID source_56
61504 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_57
61505 , l1.DOCUMENT_TYPE source_70
61506 , fvl70.meaning source_70_meaning
61507 , l1.ENC_JE_LINES_REVERSED_FLAG source_71
61508 , l1.PO_RELEASE_ID source_72
61509 , l1.CWK_RATE_BASED_TC_FLAG source_73
61510 , l1.INVOICE_APPLICATION_ID source_74
61511 , l1.INVOICE_DISTRIBUTION_TYPE source_75
61512 , l1.INVOICE_ENTITY_CODE source_76
61513 , l1.INVOICE_FIRST_DIST_ID source_77
61514 , l1.INVOICE_FIRST_SYS_TRANS_ID source_78
61515 , l1.INVOICE_SECOND_DIST_ID source_79
61516 , l1.PO_APPLICATION_ID source_80
61517 , l1.PO_DISTRIBUTION_TYPE source_81
61518 , l1.PO_ENTITY_CODE source_82
61519 , l1.PO_FIRST_DIST_ID source_83
61520 , l1.PO_FIRST_SYS_TRANS_ID source_84
61521 , l1.PO_SECOND_DIST_ID source_85
61522 , l1.ENC_ACCT_ENABLED source_86
61523 , l1.LIQUIDATE_ENCUM_FLAG source_87
61524 FROM xla_events_gt xet
61525 , PA_XLA_CDL_LINES_V l1
61526 , fnd_lookup_values fvl34
61527 , fnd_lookup_values fvl70
61528 WHERE xet.event_id between x_first_event_id and x_last_event_id
61529 and xet.event_date between p_pad_start_date and p_pad_end_date
61530 and xet.event_class_code = C_EVENT_CLASS_CODE
61531 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
61532 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
61533 AND fvl34.lookup_code(+) = l1.LINE_TYPE
61534 AND fvl34.view_application_id(+) = 275
61535 AND fvl34.language(+) = USERENV('LANG')
61536 AND fvl70.lookup_type(+) = 'FC_DOC_TYPE'
61537 AND fvl70.lookup_code(+) = l1.DOCUMENT_TYPE
61538 AND fvl70.view_application_id(+) = 275
61539 AND fvl70.language(+) = USERENV('LANG')
61540 ;
61541
61542 --
61543 BEGIN
61544 IF g_log_enabled THEN
61545 l_log_module := C_DEFAULT_MODULE||'.EventClass_114';
61546 END IF;
61547 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61548 trace
61549 (p_msg => 'BEGIN of EventClass_114'
61550 ,p_level => C_LEVEL_PROCEDURE
61551 ,p_module => l_log_module);
61552 END IF;
61553
61557 ' - p_base_ledger_id = '||p_base_ledger_id||
61554 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61555 trace
61556 (p_msg => 'p_application_id = '||p_application_id||
61558 ' - p_target_ledger_id = '||p_target_ledger_id||
61559 ' - p_language = '||p_language||
61560 ' - p_currency_code = '||p_currency_code||
61561 ' - p_sla_ledger_id = '||p_sla_ledger_id
61562 ,p_level => C_LEVEL_STATEMENT
61563 ,p_module => l_log_module);
61564 END IF;
61565 --
61566 -- initialze arrays
61567 --
61568 g_array_event.DELETE;
61569 l_rec_array_event := l_null_rec_array_event;
61570 --
61571 --------------------------------------
61572 -- 4262811 Initialze MPA Line Number
61573 --------------------------------------
61574 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
61575
61576 --
61577
61578 --
61579 OPEN header_cur;
61580 --
61581 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61582 trace
61583 (p_msg => 'SQL - FETCH header_cur'
61584 ,p_level => C_LEVEL_STATEMENT
61585 ,p_module => l_log_module);
61586 END IF;
61587 --
61588 LOOP
61589 FETCH header_cur BULK COLLECT INTO
61590 l_array_entity_id
61591 , l_array_legal_entity_id
61592 , l_array_entity_code
61593 , l_array_transaction_num
61594 , l_array_event_id
61595 , l_array_class_code
61596 , l_array_event_type
61597 , l_array_event_number
61598 , l_array_event_date
61599 , l_array_transaction_date
61600 , l_array_reference_num_1
61601 , l_array_reference_num_2
61602 , l_array_reference_num_3
61603 , l_array_reference_num_4
61604 , l_array_reference_char_1
61605 , l_array_reference_char_2
61606 , l_array_reference_char_3
61607 , l_array_reference_char_4
61608 , l_array_reference_date_1
61609 , l_array_reference_date_2
61610 , l_array_reference_date_3
61611 , l_array_reference_date_4
61612 , l_array_event_created_by
61613 , l_array_budgetary_control_flag
61614 , l_array_source_32
61615 , l_array_source_37
61616 , l_array_source_88
61617 LIMIT l_rows;
61618 --
61619 IF (C_LEVEL_EVENT >= g_log_level) THEN
61620 trace
61621 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
61622 ,p_level => C_LEVEL_EVENT
61623 ,p_module => l_log_module);
61624 END IF;
61625 --
61626 EXIT WHEN l_array_entity_id.COUNT = 0;
61627
61628 -- initialize arrays
61629 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
61630 XLA_AE_LINES_PKG.g_rec_lines := NULL;
61631
61632 --
61633 -- Bug 4458708
61634 --
61635 XLA_AE_LINES_PKG.g_LineNumber := 0;
61636
61637
61638 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
61639 g_last_hdr_idx := l_array_event_id.LAST;
61640 --
61641 -- loop for the headers. Each iteration is for each header extract row
61642 -- fetched in header cursor
61643 --
61644 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
61645
61646 --
61647 -- set event info as cache for other routines to refer event attributes
61648 --
61649 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
61650 (p_application_id => p_application_id
61651 ,p_primary_ledger_id => p_primary_ledger_id
61652 ,p_base_ledger_id => p_base_ledger_id
61653 ,p_target_ledger_id => p_target_ledger_id
61654 ,p_entity_id => l_array_entity_id(hdr_idx)
61655 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
61656 ,p_entity_code => l_array_entity_code(hdr_idx)
61657 ,p_transaction_num => l_array_transaction_num(hdr_idx)
61658 ,p_event_id => l_array_event_id(hdr_idx)
61659 ,p_event_class_code => l_array_class_code(hdr_idx)
61660 ,p_event_type_code => l_array_event_type(hdr_idx)
61661 ,p_event_number => l_array_event_number(hdr_idx)
61662 ,p_event_date => l_array_event_date(hdr_idx)
61663 ,p_transaction_date => l_array_transaction_date(hdr_idx)
61664 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
61665 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
61666 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
61667 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
61668 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
61669 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
61670 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
61671 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
61672 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
61673 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
61674 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
61675 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
61676 ,p_event_created_by => l_array_event_created_by(hdr_idx)
61677 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
61678
61679 --
61680 -- set the status of entry to C_VALID (0)
61681 --
61682 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
61683
61684 --
61685 -- initialize a row for ae header
61686 --
61687 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
61688
61689 l_event_id := l_array_event_id(hdr_idx);
61690
61691 --
61692 -- storing the hdr_idx for event. May be used by line cursor.
61693 --
61694 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
61695
61696 --
61700
61697 -- store sources from header extract. This can be improved to
61698 -- store only those sources from header extract that may be used in lines
61699 --
61701 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
61702 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
61703 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
61704
61705 --
61706 -- initilaize the status of ae headers for diffrent balance types
61707 -- the status is initialised to C_NOT_CREATED (2)
61708 --
61709 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
61710 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
61711 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
61712
61713 --
61714 -- call api to validate and store accounting attributes for header
61715 --
61716
61717 ------------------------------------------------------------
61718 -- Accrual Reversal : to get date for Standard Source (NONE)
61719 ------------------------------------------------------------
61720 l_acc_rev_gl_date_source := NULL;
61721
61722 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
61723 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
61724
61725
61726 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
61727
61728 XLA_AE_HEADER_PKG.SetJeCategoryName;
61729
61730 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
61731 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
61732 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
61733 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
61734 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
61735
61736
61737 -- No header level analytical criteria
61738
61739 --
61740 --accounting attribute enhancement, bug 3612931
61741 --
61742 l_trx_reversal_source := SUBSTR(NULL, 1,30);
61743
61744 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
61745 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
61746
61747 xla_accounting_err_pkg.build_message
61748 (p_appli_s_name => 'XLA'
61749 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
61750 ,p_token_1 => 'ACCT_ATTR_NAME'
61751 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
61752 ,p_token_2 => 'PRODUCT_NAME'
61753 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
61754 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
61755 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
61756 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
61757
61758 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
61759 --
61760 -- following sets the accounting attributes needed to reverse
61761 -- accounting for a distributeion
61762 --
61763 xla_ae_lines_pkg.SetTrxReversalAttrs
61764 (p_event_id => l_event_id
61765 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
61766 ,p_trx_reversal_source => l_trx_reversal_source);
61767
61768 END IF;
61769
61770
61771 ----------------------------------------------------------------
61772 -- 4262811 - update the header statuses to invalid in need be
61773 ----------------------------------------------------------------
61774 --
61775 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
61776
61777
61778 -----------------------------------------------
61779 -- No accrual reversal for the event class/type
61780 -----------------------------------------------
61781 ----------------------------------------------------------------
61782
61783 --
61784 -- this ends the header loop iteration for one bulk fetch
61785 --
61786 END LOOP;
61787
61788 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
61789 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
61790
61791 --
61792 -- insert dummy rows into lines gt table that were created due to
61793 -- transaction reversals
61794 --
61795 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
61796 l_result := XLA_AE_LINES_PKG.InsertLines;
61797 END IF;
61798
61799 --
61800 -- reset the temp_line_num for each set of events fetched from header
61801 -- cursor rather than doing it for each new event in line cursor
61802 -- Bug 3939231
61803 --
61804 xla_ae_lines_pkg.g_temp_line_num := 0;
61805
61806
61807
61808 --
61809 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
61810 --
61811 --
61812 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61813
61814 trace
61815 (p_msg => 'SQL - FETCH line_cur'
61816 ,p_level => C_LEVEL_STATEMENT
61817 ,p_module => l_log_module);
61818
61819 END IF;
61820 --
61821 --
61822 LOOP
61823 --
61824 FETCH line_cur BULK COLLECT INTO
61825 l_array_entity_id
61826 , l_array_legal_entity_id
61827 , l_array_entity_code
61828 , l_array_transaction_num
61829 , l_array_event_id
61830 , l_array_class_code
61831 , l_array_event_type
61832 , l_array_event_number
61833 , l_array_event_date
61834 , l_array_transaction_date
61835 , l_array_reference_num_1
61839 , l_array_reference_char_1
61836 , l_array_reference_num_2
61837 , l_array_reference_num_3
61838 , l_array_reference_num_4
61840 , l_array_reference_char_2
61841 , l_array_reference_char_3
61842 , l_array_reference_char_4
61843 , l_array_reference_date_1
61844 , l_array_reference_date_2
61845 , l_array_reference_date_3
61846 , l_array_reference_date_4
61847 , l_array_event_created_by
61848 , l_array_budgetary_control_flag
61849 , l_array_extract_line_num
61850 , l_array_source_2
61851 , l_array_source_3
61852 , l_array_source_4
61853 , l_array_source_5
61854 , l_array_source_6
61855 , l_array_source_7
61856 , l_array_source_22
61857 , l_array_source_23
61858 , l_array_source_25
61859 , l_array_source_27
61860 , l_array_source_28
61861 , l_array_source_29
61862 , l_array_source_30
61863 , l_array_source_31
61864 , l_array_source_33
61865 , l_array_source_34
61866 , l_array_source_34_meaning
61867 , l_array_source_35
61868 , l_array_source_44
61869 , l_array_source_45
61870 , l_array_source_46
61871 , l_array_source_47
61872 , l_array_source_48
61873 , l_array_source_49
61874 , l_array_source_50
61875 , l_array_source_51
61876 , l_array_source_52
61877 , l_array_source_53
61878 , l_array_source_54
61879 , l_array_source_55
61880 , l_array_source_56
61881 , l_array_source_57
61882 , l_array_source_70
61883 , l_array_source_70_meaning
61884 , l_array_source_71
61885 , l_array_source_72
61886 , l_array_source_73
61887 , l_array_source_74
61888 , l_array_source_75
61889 , l_array_source_76
61890 , l_array_source_77
61891 , l_array_source_78
61892 , l_array_source_79
61893 , l_array_source_80
61894 , l_array_source_81
61895 , l_array_source_82
61896 , l_array_source_83
61897 , l_array_source_84
61898 , l_array_source_85
61899 , l_array_source_86
61900 , l_array_source_87
61901 LIMIT l_rows;
61902
61903 --
61904 IF (C_LEVEL_EVENT >= g_log_level) THEN
61905 trace
61906 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
61907 ,p_level => C_LEVEL_EVENT
61908 ,p_module => l_log_module);
61909 END IF;
61910 --
61911 EXIT WHEN l_array_entity_id.count = 0;
61912
61913 XLA_AE_LINES_PKG.g_rec_lines := null;
61914
61915 --
61916 -- Bug 4458708
61917 --
61918 XLA_AE_LINES_PKG.g_LineNumber := 0;
61919 --
61920 --
61921
61922 FOR Idx IN 1..l_array_event_id.count LOOP
61923 --
61924 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
61925 --
61926 l_event_id := l_array_event_id(idx); -- 5648433
61927
61928 --
61929 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
61930 --
61931
61932 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
61933 (g_array_event(l_event_id).array_value_num('header_index'))
61934 ,'N'
61935 ) <> 'Y'
61936 THEN
61937 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61938 trace
61939 (p_msg => 'Trancaction revesal option is not Y '
61940 ,p_level => C_LEVEL_STATEMENT
61941 ,p_module => l_log_module);
61942 END IF;
61943
61944 --
61945 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
61946 --
61947 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
61948 --
61949 -- set event info as cache for other routines to refer event attributes
61950 --
61951
61952 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
61953 l_previous_event_id := l_event_id;
61954
61955 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
61956 (p_application_id => p_application_id
61957 ,p_primary_ledger_id => p_primary_ledger_id
61958 ,p_base_ledger_id => p_base_ledger_id
61959 ,p_target_ledger_id => p_target_ledger_id
61960 ,p_entity_id => l_array_entity_id(Idx)
61961 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
61962 ,p_entity_code => l_array_entity_code(Idx)
61963 ,p_transaction_num => l_array_transaction_num(Idx)
61964 ,p_event_id => l_array_event_id(Idx)
61965 ,p_event_class_code => l_array_class_code(Idx)
61966 ,p_event_type_code => l_array_event_type(Idx)
61967 ,p_event_number => l_array_event_number(Idx)
61968 ,p_event_date => l_array_event_date(Idx)
61969 ,p_transaction_date => l_array_transaction_date(Idx)
61970 ,p_reference_num_1 => l_array_reference_num_1(Idx)
61971 ,p_reference_num_2 => l_array_reference_num_2(Idx)
61972 ,p_reference_num_3 => l_array_reference_num_3(Idx)
61973 ,p_reference_num_4 => l_array_reference_num_4(Idx)
61974 ,p_reference_char_1 => l_array_reference_char_1(Idx)
61975 ,p_reference_char_2 => l_array_reference_char_2(Idx)
61976 ,p_reference_char_3 => l_array_reference_char_3(Idx)
61977 ,p_reference_char_4 => l_array_reference_char_4(Idx)
61978 ,p_reference_date_1 => l_array_reference_date_1(Idx)
61979 ,p_reference_date_2 => l_array_reference_date_2(Idx)
61980 ,p_reference_date_3 => l_array_reference_date_3(Idx)
61984 --
61981 ,p_reference_date_4 => l_array_reference_date_4(Idx)
61982 ,p_event_created_by => l_array_event_created_by(Idx)
61983 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
61985 END IF;
61986
61987
61988
61989 --
61990 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
61991
61992 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
61993
61994 IF l_continue_with_lines THEN
61995 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
61996 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
61997
61998 xla_accounting_err_pkg.build_message
61999 (p_appli_s_name => 'XLA'
62000 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
62001 ,p_token_1 => 'LINE_NUMBER'
62002 ,p_value_1 => l_array_extract_line_num(Idx)
62003 ,p_token_2 => 'PRODUCT_NAME'
62004 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
62005 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
62006 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
62007 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
62008
62009 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
62010 --
62011 -- following sets the accounting attributes needed to reverse
62012 -- accounting for a distributeion
62013 --
62014
62015 --
62016 -- 5217187
62017 --
62018 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
62019 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
62020 g_array_event(l_event_id).array_value_num('header_index'));
62021 --
62022 --
62023
62024 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
62025 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
62026 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
62027 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
62028 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
62029 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
62030 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
62031 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_44(Idx);
62032 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
62033 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
62034 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
62035 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_45(Idx);
62036 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
62037 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
62038 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
62039 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
62040 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
62041 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
62042 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
62043 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
62044 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
62045 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
62046 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
62047 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_44(Idx);
62048 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
62049 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
62050 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
62051 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_45(Idx);
62052 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
62053 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
62054 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
62055 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
62056 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
62057 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
62058 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
62059 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
62060 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
62061 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
62062 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
62063 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
62064 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
62065 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
62066 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_CR_ACCT_CLASS';
62067 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_53(Idx);
62068 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_CR_CCID';
62069 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_2(Idx);
62070 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_CR_ENTERED_AMT';
62071 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_46(Idx);
62072 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_CR_ENTERED_CURR';
62073 l_rec_rev_acct_attrs.array_char_value(26) := l_array_source_25(Idx);
62074 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_CR_LEDGER_AMT';
62075 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_46(Idx);
62076 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
62077 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_54(Idx);
62078 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
62079 l_rec_rev_acct_attrs.array_num_value(29) := l_array_source_2(Idx);
62080 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
62081 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_46(Idx);
62082 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
62083 l_rec_rev_acct_attrs.array_char_value(31) := l_array_source_25(Idx);
62084 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
62085 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_46(Idx);
62086 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
62087 l_rec_rev_acct_attrs.array_char_value(33) := l_array_source_55(Idx);
62088 l_rec_rev_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID1';
62089 l_rec_rev_acct_attrs.array_num_value(34) := g_array_event(l_event_id).array_value_num('source_32');
62090 l_rec_rev_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_ID2';
62091 l_rec_rev_acct_attrs.array_num_value(35) := l_array_source_35(Idx);
62092 l_rec_rev_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_TYPE';
62093 l_rec_rev_acct_attrs.array_char_value(36) := l_array_source_34(Idx);
62094 l_rec_rev_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
62095 l_rec_rev_acct_attrs.array_num_value(37) := l_array_source_56(Idx);
62096 l_rec_rev_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
62097 l_rec_rev_acct_attrs.array_num_value(38) := l_array_source_57(Idx);
62098
62099
62100 xla_ae_lines_pkg.SetAcctReversalAttrs
62101 (p_event_id => l_event_id
62102 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
62106
62103 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62104 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
62105 END IF;
62107 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
62108 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
62109
62110 --
62111 AcctLineType_25 (
62112 p_application_id => p_application_id
62113 ,p_event_id => l_event_id
62114 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62115 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62116 ,p_actual_flag => l_actual_flag
62117 ,p_balance_type_code => l_balance_type_code
62118 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62119
62120 , p_source_2 => l_array_source_2(Idx)
62121 , p_source_3 => l_array_source_3(Idx)
62122 , p_source_4 => l_array_source_4(Idx)
62123 , p_source_5 => l_array_source_5(Idx)
62124 , p_source_6 => l_array_source_6(Idx)
62125 , p_source_22 => l_array_source_22(Idx)
62126 , p_source_23 => l_array_source_23(Idx)
62127 , p_source_25 => l_array_source_25(Idx)
62128 , p_source_27 => l_array_source_27(Idx)
62129 , p_source_28 => l_array_source_28(Idx)
62130 , p_source_29 => l_array_source_29(Idx)
62131 , p_source_30 => l_array_source_30(Idx)
62132 , p_source_31 => l_array_source_31(Idx)
62133 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62134 , p_source_33 => l_array_source_33(Idx)
62135 , p_source_34 => l_array_source_34(Idx)
62136 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62137 , p_source_35 => l_array_source_35(Idx)
62138 , p_source_44 => l_array_source_44(Idx)
62139 , p_source_45 => l_array_source_45(Idx)
62140 , p_source_46 => l_array_source_46(Idx)
62141 , p_source_47 => l_array_source_47(Idx)
62142 , p_source_48 => l_array_source_48(Idx)
62143 , p_source_49 => l_array_source_49(Idx)
62144 , p_source_50 => l_array_source_50(Idx)
62145 , p_source_51 => l_array_source_51(Idx)
62146 , p_source_52 => l_array_source_52(Idx)
62147 , p_source_53 => l_array_source_53(Idx)
62148 , p_source_54 => l_array_source_54(Idx)
62149 , p_source_55 => l_array_source_55(Idx)
62150 , p_source_56 => l_array_source_56(Idx)
62151 , p_source_57 => l_array_source_57(Idx)
62152 );
62153 If(l_balance_type_code = 'A') THEN
62154 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62155 END IF;
62156
62157 --
62158
62159
62160 --
62161 AcctLineType_28 (
62162 p_application_id => p_application_id
62163 ,p_event_id => l_event_id
62164 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62165 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62166 ,p_actual_flag => l_actual_flag
62167 ,p_balance_type_code => l_balance_type_code
62168 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62169
62170 , p_source_2 => l_array_source_2(Idx)
62171 , p_source_3 => l_array_source_3(Idx)
62172 , p_source_4 => l_array_source_4(Idx)
62173 , p_source_6 => l_array_source_6(Idx)
62174 , p_source_7 => l_array_source_7(Idx)
62175 , p_source_22 => l_array_source_22(Idx)
62176 , p_source_23 => l_array_source_23(Idx)
62177 , p_source_25 => l_array_source_25(Idx)
62178 , p_source_27 => l_array_source_27(Idx)
62179 , p_source_28 => l_array_source_28(Idx)
62180 , p_source_29 => l_array_source_29(Idx)
62181 , p_source_30 => l_array_source_30(Idx)
62182 , p_source_31 => l_array_source_31(Idx)
62183 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62184 , p_source_33 => l_array_source_33(Idx)
62185 , p_source_34 => l_array_source_34(Idx)
62186 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62187 , p_source_35 => l_array_source_35(Idx)
62188 , p_source_44 => l_array_source_44(Idx)
62189 , p_source_45 => l_array_source_45(Idx)
62190 , p_source_46 => l_array_source_46(Idx)
62191 , p_source_47 => l_array_source_47(Idx)
62192 , p_source_48 => l_array_source_48(Idx)
62193 , p_source_49 => l_array_source_49(Idx)
62194 , p_source_50 => l_array_source_50(Idx)
62195 , p_source_51 => l_array_source_51(Idx)
62196 , p_source_52 => l_array_source_52(Idx)
62197 , p_source_53 => l_array_source_53(Idx)
62198 , p_source_54 => l_array_source_54(Idx)
62199 , p_source_55 => l_array_source_55(Idx)
62200 , p_source_56 => l_array_source_56(Idx)
62201 , p_source_57 => l_array_source_57(Idx)
62202 );
62203 If(l_balance_type_code = 'A') THEN
62204 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62205 END IF;
62206
62207 --
62208
62209
62210 --
62211 AcctLineType_90 (
62212 p_application_id => p_application_id
62213 ,p_event_id => l_event_id
62214 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62215 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62216 ,p_actual_flag => l_actual_flag
62217 ,p_balance_type_code => l_balance_type_code
62218 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62219
62220 , p_source_2 => l_array_source_2(Idx)
62221 , p_source_3 => l_array_source_3(Idx)
62222 , p_source_6 => l_array_source_6(Idx)
62223 , p_source_22 => l_array_source_22(Idx)
62224 , p_source_23 => l_array_source_23(Idx)
62225 , p_source_25 => l_array_source_25(Idx)
62226 , p_source_27 => l_array_source_27(Idx)
62227 , p_source_28 => l_array_source_28(Idx)
62228 , p_source_29 => l_array_source_29(Idx)
62229 , p_source_30 => l_array_source_30(Idx)
62230 , p_source_31 => l_array_source_31(Idx)
62231 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62232 , p_source_33 => l_array_source_33(Idx)
62233 , p_source_34 => l_array_source_34(Idx)
62234 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62235 , p_source_35 => l_array_source_35(Idx)
62236 , p_source_44 => l_array_source_44(Idx)
62237 , p_source_45 => l_array_source_45(Idx)
62238 , p_source_46 => l_array_source_46(Idx)
62239 , p_source_47 => l_array_source_47(Idx)
62240 , p_source_48 => l_array_source_48(Idx)
62241 , p_source_49 => l_array_source_49(Idx)
62245 , p_source_53 => l_array_source_53(Idx)
62242 , p_source_50 => l_array_source_50(Idx)
62243 , p_source_51 => l_array_source_51(Idx)
62244 , p_source_52 => l_array_source_52(Idx)
62246 , p_source_54 => l_array_source_54(Idx)
62247 , p_source_55 => l_array_source_55(Idx)
62248 , p_source_56 => l_array_source_56(Idx)
62249 , p_source_57 => l_array_source_57(Idx)
62250 );
62251 If(l_balance_type_code = 'A') THEN
62252 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62253 END IF;
62254
62255 --
62256
62257
62258 --
62259 AcctLineType_94 (
62260 p_application_id => p_application_id
62261 ,p_event_id => l_event_id
62262 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62263 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62264 ,p_actual_flag => l_actual_flag
62265 ,p_balance_type_code => l_balance_type_code
62266 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62267
62268 , p_source_2 => l_array_source_2(Idx)
62269 , p_source_3 => l_array_source_3(Idx)
62270 , p_source_6 => l_array_source_6(Idx)
62271 , p_source_22 => l_array_source_22(Idx)
62272 , p_source_23 => l_array_source_23(Idx)
62273 , p_source_25 => l_array_source_25(Idx)
62274 , p_source_27 => l_array_source_27(Idx)
62275 , p_source_28 => l_array_source_28(Idx)
62276 , p_source_29 => l_array_source_29(Idx)
62277 , p_source_30 => l_array_source_30(Idx)
62278 , p_source_31 => l_array_source_31(Idx)
62279 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62280 , p_source_33 => l_array_source_33(Idx)
62281 , p_source_34 => l_array_source_34(Idx)
62282 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62283 , p_source_35 => l_array_source_35(Idx)
62284 , p_source_44 => l_array_source_44(Idx)
62285 , p_source_45 => l_array_source_45(Idx)
62286 , p_source_46 => l_array_source_46(Idx)
62287 , p_source_47 => l_array_source_47(Idx)
62288 , p_source_48 => l_array_source_48(Idx)
62289 , p_source_49 => l_array_source_49(Idx)
62290 , p_source_50 => l_array_source_50(Idx)
62291 , p_source_51 => l_array_source_51(Idx)
62292 , p_source_52 => l_array_source_52(Idx)
62293 , p_source_53 => l_array_source_53(Idx)
62294 , p_source_54 => l_array_source_54(Idx)
62295 , p_source_55 => l_array_source_55(Idx)
62296 , p_source_56 => l_array_source_56(Idx)
62297 , p_source_57 => l_array_source_57(Idx)
62298 , p_source_70 => l_array_source_70(Idx)
62299 , p_source_70_meaning => l_array_source_70_meaning(Idx)
62300 , p_source_71 => l_array_source_71(Idx)
62301 );
62302 If(l_balance_type_code = 'A') THEN
62303 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62304 END IF;
62305
62306 --
62307
62308
62309 --
62310 AcctLineType_97 (
62311 p_application_id => p_application_id
62312 ,p_event_id => l_event_id
62313 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62314 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62315 ,p_actual_flag => l_actual_flag
62316 ,p_balance_type_code => l_balance_type_code
62317 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62318
62319 , p_source_2 => l_array_source_2(Idx)
62320 , p_source_3 => l_array_source_3(Idx)
62321 , p_source_6 => l_array_source_6(Idx)
62322 , p_source_22 => l_array_source_22(Idx)
62323 , p_source_23 => l_array_source_23(Idx)
62324 , p_source_25 => l_array_source_25(Idx)
62325 , p_source_27 => l_array_source_27(Idx)
62326 , p_source_28 => l_array_source_28(Idx)
62327 , p_source_29 => l_array_source_29(Idx)
62328 , p_source_30 => l_array_source_30(Idx)
62329 , p_source_31 => l_array_source_31(Idx)
62330 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62331 , p_source_33 => l_array_source_33(Idx)
62332 , p_source_34 => l_array_source_34(Idx)
62333 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62334 , p_source_35 => l_array_source_35(Idx)
62335 , p_source_44 => l_array_source_44(Idx)
62336 , p_source_45 => l_array_source_45(Idx)
62337 , p_source_46 => l_array_source_46(Idx)
62338 , p_source_47 => l_array_source_47(Idx)
62339 , p_source_48 => l_array_source_48(Idx)
62340 , p_source_49 => l_array_source_49(Idx)
62341 , p_source_50 => l_array_source_50(Idx)
62342 , p_source_51 => l_array_source_51(Idx)
62343 , p_source_52 => l_array_source_52(Idx)
62344 , p_source_53 => l_array_source_53(Idx)
62345 , p_source_54 => l_array_source_54(Idx)
62346 , p_source_55 => l_array_source_55(Idx)
62347 , p_source_56 => l_array_source_56(Idx)
62348 , p_source_57 => l_array_source_57(Idx)
62349 , p_source_70 => l_array_source_70(Idx)
62350 , p_source_70_meaning => l_array_source_70_meaning(Idx)
62351 , p_source_72 => l_array_source_72(Idx)
62352 , p_source_73 => l_array_source_73(Idx)
62353 );
62354 If(l_balance_type_code = 'A') THEN
62355 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62356 END IF;
62357
62358 --
62359
62360
62361 --
62362 AcctLineType_100 (
62363 p_application_id => p_application_id
62364 ,p_event_id => l_event_id
62365 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62366 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62367 ,p_actual_flag => l_actual_flag
62368 ,p_balance_type_code => l_balance_type_code
62369 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62370
62371 , p_source_2 => l_array_source_2(Idx)
62372 , p_source_3 => l_array_source_3(Idx)
62373 , p_source_6 => l_array_source_6(Idx)
62374 , p_source_22 => l_array_source_22(Idx)
62375 , p_source_23 => l_array_source_23(Idx)
62376 , p_source_25 => l_array_source_25(Idx)
62377 , p_source_27 => l_array_source_27(Idx)
62378 , p_source_28 => l_array_source_28(Idx)
62379 , p_source_29 => l_array_source_29(Idx)
62380 , p_source_30 => l_array_source_30(Idx)
62381 , p_source_31 => l_array_source_31(Idx)
62382 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62383 , p_source_33 => l_array_source_33(Idx)
62387 , p_source_44 => l_array_source_44(Idx)
62384 , p_source_34 => l_array_source_34(Idx)
62385 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62386 , p_source_35 => l_array_source_35(Idx)
62388 , p_source_45 => l_array_source_45(Idx)
62389 , p_source_46 => l_array_source_46(Idx)
62390 , p_source_53 => l_array_source_53(Idx)
62391 , p_source_54 => l_array_source_54(Idx)
62392 , p_source_55 => l_array_source_55(Idx)
62393 , p_source_56 => l_array_source_56(Idx)
62394 , p_source_57 => l_array_source_57(Idx)
62395 , p_source_70 => l_array_source_70(Idx)
62396 , p_source_70_meaning => l_array_source_70_meaning(Idx)
62397 , p_source_71 => l_array_source_71(Idx)
62398 , p_source_74 => l_array_source_74(Idx)
62399 , p_source_75 => l_array_source_75(Idx)
62400 , p_source_76 => l_array_source_76(Idx)
62401 , p_source_77 => l_array_source_77(Idx)
62402 , p_source_78 => l_array_source_78(Idx)
62403 , p_source_79 => l_array_source_79(Idx)
62404 );
62405 If(l_balance_type_code = 'A') THEN
62406 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62407 END IF;
62408
62409 --
62410
62411
62412 --
62413 AcctLineType_103 (
62414 p_application_id => p_application_id
62415 ,p_event_id => l_event_id
62416 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62417 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62418 ,p_actual_flag => l_actual_flag
62419 ,p_balance_type_code => l_balance_type_code
62420 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62421
62422 , p_source_2 => l_array_source_2(Idx)
62423 , p_source_3 => l_array_source_3(Idx)
62424 , p_source_6 => l_array_source_6(Idx)
62425 , p_source_22 => l_array_source_22(Idx)
62426 , p_source_23 => l_array_source_23(Idx)
62427 , p_source_25 => l_array_source_25(Idx)
62428 , p_source_27 => l_array_source_27(Idx)
62429 , p_source_28 => l_array_source_28(Idx)
62430 , p_source_29 => l_array_source_29(Idx)
62431 , p_source_30 => l_array_source_30(Idx)
62432 , p_source_31 => l_array_source_31(Idx)
62433 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62434 , p_source_33 => l_array_source_33(Idx)
62435 , p_source_34 => l_array_source_34(Idx)
62436 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62437 , p_source_35 => l_array_source_35(Idx)
62438 , p_source_44 => l_array_source_44(Idx)
62439 , p_source_45 => l_array_source_45(Idx)
62440 , p_source_46 => l_array_source_46(Idx)
62441 , p_source_53 => l_array_source_53(Idx)
62442 , p_source_54 => l_array_source_54(Idx)
62443 , p_source_55 => l_array_source_55(Idx)
62444 , p_source_56 => l_array_source_56(Idx)
62445 , p_source_57 => l_array_source_57(Idx)
62446 , p_source_70 => l_array_source_70(Idx)
62447 , p_source_70_meaning => l_array_source_70_meaning(Idx)
62448 , p_source_72 => l_array_source_72(Idx)
62449 , p_source_73 => l_array_source_73(Idx)
62450 , p_source_80 => l_array_source_80(Idx)
62451 , p_source_81 => l_array_source_81(Idx)
62452 , p_source_82 => l_array_source_82(Idx)
62453 , p_source_83 => l_array_source_83(Idx)
62454 , p_source_84 => l_array_source_84(Idx)
62455 , p_source_85 => l_array_source_85(Idx)
62456 );
62457 If(l_balance_type_code = 'A') THEN
62458 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62459 END IF;
62460
62461 --
62462
62463
62464 --
62465 AcctLineType_105 (
62466 p_application_id => p_application_id
62467 ,p_event_id => l_event_id
62468 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62469 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62470 ,p_actual_flag => l_actual_flag
62471 ,p_balance_type_code => l_balance_type_code
62472 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62473
62474 , p_source_2 => l_array_source_2(Idx)
62475 , p_source_3 => l_array_source_3(Idx)
62476 , p_source_6 => l_array_source_6(Idx)
62477 , p_source_22 => l_array_source_22(Idx)
62478 , p_source_23 => l_array_source_23(Idx)
62479 , p_source_25 => l_array_source_25(Idx)
62480 , p_source_27 => l_array_source_27(Idx)
62481 , p_source_28 => l_array_source_28(Idx)
62482 , p_source_29 => l_array_source_29(Idx)
62483 , p_source_30 => l_array_source_30(Idx)
62484 , p_source_31 => l_array_source_31(Idx)
62485 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62486 , p_source_33 => l_array_source_33(Idx)
62487 , p_source_34 => l_array_source_34(Idx)
62488 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62489 , p_source_35 => l_array_source_35(Idx)
62490 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
62491 , p_source_44 => l_array_source_44(Idx)
62492 , p_source_45 => l_array_source_45(Idx)
62493 , p_source_46 => l_array_source_46(Idx)
62494 , p_source_47 => l_array_source_47(Idx)
62495 , p_source_48 => l_array_source_48(Idx)
62496 , p_source_49 => l_array_source_49(Idx)
62497 , p_source_50 => l_array_source_50(Idx)
62498 , p_source_51 => l_array_source_51(Idx)
62499 , p_source_52 => l_array_source_52(Idx)
62500 , p_source_53 => l_array_source_53(Idx)
62501 , p_source_54 => l_array_source_54(Idx)
62502 , p_source_55 => l_array_source_55(Idx)
62503 , p_source_56 => l_array_source_56(Idx)
62504 , p_source_57 => l_array_source_57(Idx)
62505 , p_source_86 => l_array_source_86(Idx)
62506 , p_source_87 => l_array_source_87(Idx)
62507 );
62508 If(l_balance_type_code = 'A') THEN
62509 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62510 END IF;
62511
62512 --
62513
62514
62515 --
62516 AcctLineType_109 (
62517 p_application_id => p_application_id
62518 ,p_event_id => l_event_id
62519 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62520 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62521 ,p_actual_flag => l_actual_flag
62522 ,p_balance_type_code => l_balance_type_code
62523 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62524
62525 , p_source_2 => l_array_source_2(Idx)
62529 , p_source_23 => l_array_source_23(Idx)
62526 , p_source_3 => l_array_source_3(Idx)
62527 , p_source_6 => l_array_source_6(Idx)
62528 , p_source_22 => l_array_source_22(Idx)
62530 , p_source_25 => l_array_source_25(Idx)
62531 , p_source_27 => l_array_source_27(Idx)
62532 , p_source_28 => l_array_source_28(Idx)
62533 , p_source_29 => l_array_source_29(Idx)
62534 , p_source_30 => l_array_source_30(Idx)
62535 , p_source_31 => l_array_source_31(Idx)
62536 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62537 , p_source_33 => l_array_source_33(Idx)
62538 , p_source_34 => l_array_source_34(Idx)
62539 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62540 , p_source_35 => l_array_source_35(Idx)
62541 , p_source_44 => l_array_source_44(Idx)
62542 , p_source_45 => l_array_source_45(Idx)
62543 , p_source_46 => l_array_source_46(Idx)
62544 , p_source_53 => l_array_source_53(Idx)
62545 , p_source_54 => l_array_source_54(Idx)
62546 , p_source_55 => l_array_source_55(Idx)
62547 , p_source_56 => l_array_source_56(Idx)
62548 , p_source_57 => l_array_source_57(Idx)
62549 , p_source_70 => l_array_source_70(Idx)
62550 , p_source_70_meaning => l_array_source_70_meaning(Idx)
62551 , p_source_72 => l_array_source_72(Idx)
62552 , p_source_73 => l_array_source_73(Idx)
62553 , p_source_80 => l_array_source_80(Idx)
62554 , p_source_81 => l_array_source_81(Idx)
62555 , p_source_82 => l_array_source_82(Idx)
62556 , p_source_83 => l_array_source_83(Idx)
62557 , p_source_84 => l_array_source_84(Idx)
62558 , p_source_85 => l_array_source_85(Idx)
62559 );
62560 If(l_balance_type_code = 'A') THEN
62561 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62562 END IF;
62563
62564 --
62565
62566 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
62567 -- or secondary ledger that has different currency with primary
62568 -- or alc that is calculated by sla
62569 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
62570 (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'))
62571
62572 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
62573 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
62574 AND (l_actual_flag = 'A')) THEN
62575 XLA_AE_LINES_PKG.CreateGainOrLossLines(
62576 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
62577 ,p_application_id => p_application_id
62578 ,p_amb_context_code => 'DEFAULT'
62579 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
62580 ,p_event_class_code => C_EVENT_CLASS_CODE
62581 ,p_event_type_code => C_EVENT_TYPE_CODE
62582
62583 ,p_gain_ccid => -1
62584 ,p_loss_ccid => -1
62585
62586 ,p_actual_flag => l_actual_flag
62587 ,p_enc_flag => null
62588 ,p_actual_g_l_ref => l_actual_gain_loss_ref
62589 ,p_enc_g_l_ref => null
62590 );
62591 END IF;
62592 END IF;
62593 END IF;
62594
62595 ELSE
62596 --
62597 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
62598 --
62599 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62600 trace
62601 (p_msg => 'Trancaction revesal option is Y'
62602 ,p_level => C_LEVEL_STATEMENT
62603 ,p_module => l_log_module);
62604 END IF;
62605 END IF;
62606
62607 END LOOP;
62608 l_result := XLA_AE_LINES_PKG.InsertLines ;
62609 end loop;
62610 close line_cur;
62611
62612
62613 --
62614 -- insert headers into xla_ae_headers_gt table
62615 --
62616 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
62617
62618 -- insert into errors table here.
62619
62620 END LOOP;
62621
62622 --
62623 -- 4865292
62624 --
62625 -- Compare g_hdr_extract_count with event count in
62626 -- CreateHeadersAndLines.
62627 --
62628 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
62629
62630 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62631 trace (p_msg => '# rows extracted from header extract objects '
62632 || ' (running total): '
62633 || g_hdr_extract_count
62634 ,p_level => C_LEVEL_STATEMENT
62635 ,p_module => l_log_module);
62636 END IF;
62637
62638 CLOSE header_cur;
62639 --
62640
62641 --
62642 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62643 trace
62644 (p_msg => 'END of EventClass_114'
62645 ,p_level => C_LEVEL_PROCEDURE
62646 ,p_module => l_log_module);
62647 END IF;
62648 --
62649 RETURN l_result;
62650 EXCEPTION
62651 WHEN xla_exceptions_pkg.application_exception THEN
62652
62653 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
62654
62655
62656 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
62657
62658 RAISE;
62659 WHEN OTHERS THEN
62660 xla_exceptions_pkg.raise_message
62661 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_114');
62662 END EventClass_114;
62663 --
62664
62665 ---------------------------------------
62666 --
62667 -- PRIVATE PROCEDURE
62668 -- insert_sources_115
62669 --
62670 ----------------------------------------
62671 --
62672 PROCEDURE insert_sources_115(
62673 p_target_ledger_id IN NUMBER
62674 , p_language IN VARCHAR2
62675 , p_sla_ledger_id IN NUMBER
62679 IS
62676 , p_pad_start_date IN DATE
62677 , p_pad_end_date IN DATE
62678 )
62680
62681 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ_ALL';
62682 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ';
62683 p_apps_owner VARCHAR2(30);
62684 l_log_module VARCHAR2(240);
62685 BEGIN
62686 IF g_log_enabled THEN
62687 l_log_module := C_DEFAULT_MODULE||'.insert_sources_115';
62688 END IF;
62689 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62690
62691 trace
62692 (p_msg => 'BEGIN of insert_sources_115'
62693 ,p_level => C_LEVEL_PROCEDURE
62694 ,p_module => l_log_module);
62695
62696 END IF;
62697
62698 -- select APPS owner
62699 SELECT oracle_username
62700 INTO p_apps_owner
62701 FROM fnd_oracle_userid
62702 WHERE read_only_flag = 'U'
62703 ;
62704
62705 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62706 trace
62707 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
62708 ' - p_language = '||p_language||
62709 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
62710 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
62711 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
62712 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
62713 ,p_level => C_LEVEL_STATEMENT
62714 ,p_module => l_log_module);
62715 END IF;
62716
62717
62718 --
62719 INSERT INTO xla_diag_sources --hdr2
62720 (
62721 event_id
62722 , ledger_id
62723 , sla_ledger_id
62724 , description_language
62725 , object_name
62726 , object_type_code
62727 , line_number
62728 , source_application_id
62729 , source_type_code
62730 , source_code
62731 , source_value
62732 , source_meaning
62733 , created_by
62734 , creation_date
62735 , last_update_date
62736 , last_updated_by
62737 , last_update_login
62738 , program_update_date
62739 , program_application_id
62740 , program_id
62741 , request_id
62742 )
62743 SELECT
62744 event_id
62745 , p_target_ledger_id
62746 , p_sla_ledger_id
62747 , p_language
62748 , object_name
62749 , object_type_code
62750 , line_number
62751 , source_application_id
62752 , source_type_code
62753 , source_code
62754 , SUBSTR(source_value ,1,1996)
62755 , SUBSTR(source_meaning ,1,200)
62756 , xla_environment_pkg.g_Usr_Id
62757 , TRUNC(SYSDATE)
62758 , TRUNC(SYSDATE)
62759 , xla_environment_pkg.g_Usr_Id
62760 , xla_environment_pkg.g_Login_Id
62761 , TRUNC(SYSDATE)
62762 , xla_environment_pkg.g_Prog_Appl_Id
62763 , xla_environment_pkg.g_Prog_Id
62764 , xla_environment_pkg.g_Req_Id
62765 FROM (
62766 SELECT xet.event_id event_id
62767 , 0 line_number
62768 , CASE r
62769 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
62770 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
62771
62772 ELSE null
62773 END object_name
62774 , CASE r
62775 WHEN 1 THEN 'HEADER'
62776 WHEN 2 THEN 'HEADER'
62777
62778 ELSE null
62779 END object_type_code
62780 , CASE r
62781 WHEN 1 THEN '275'
62782 WHEN 2 THEN '275'
62783
62784 ELSE null
62785 END source_application_id
62786 , 'S' source_type_code
62787 , CASE r
62788 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
62789 WHEN 2 THEN 'GL_DATE'
62790
62791 ELSE null
62792 END source_code
62793 , CASE r
62794 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
62795 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
62796
62797 ELSE null
62798 END source_value
62799 , null source_meaning
62800 FROM xla_events_gt xet
62801 , PA_XLA_EXP_HEADER_V h2
62802 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
62803 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
62804 AND xet.event_class_code = C_EVENT_CLASS_CODE
62805 AND h2.event_id = xet.event_id
62806
62807 )
62808 ;
62809 --
62810 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62811
62812 trace
62813 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
62814 ,p_level => C_LEVEL_STATEMENT
62815 ,p_module => l_log_module);
62816
62817 END IF;
62818 --
62819
62820
62821
62822 --
62823 INSERT INTO xla_diag_sources --line2
62824 (
62825 event_id
62826 , ledger_id
62827 , sla_ledger_id
62828 , description_language
62829 , object_name
62830 , object_type_code
62831 , line_number
62832 , source_application_id
62833 , source_type_code
62834 , source_code
62835 , source_value
62836 , source_meaning
62837 , created_by
62841 , last_update_login
62838 , creation_date
62839 , last_update_date
62840 , last_updated_by
62842 , program_update_date
62843 , program_application_id
62844 , program_id
62845 , request_id
62846 )
62847 SELECT event_id
62848 , p_target_ledger_id
62849 , p_sla_ledger_id
62850 , p_language
62851 , object_name
62852 , object_type_code
62853 , line_number
62854 , source_application_id
62855 , source_type_code
62856 , source_code
62857 , SUBSTR(source_value,1,1996)
62858 , SUBSTR(source_meaning ,1,200)
62859 , xla_environment_pkg.g_Usr_Id
62860 , TRUNC(SYSDATE)
62861 , TRUNC(SYSDATE)
62862 , xla_environment_pkg.g_Usr_Id
62863 , xla_environment_pkg.g_Login_Id
62864 , TRUNC(SYSDATE)
62865 , xla_environment_pkg.g_Prog_Appl_Id
62866 , xla_environment_pkg.g_Prog_Id
62867 , xla_environment_pkg.g_Req_Id
62868 FROM (
62869 SELECT xet.event_id event_id
62870 , l1.line_number line_number
62871 , CASE r
62872 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
62873 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
62874 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
62875 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
62876 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
62877 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
62878 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
62879 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
62880 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
62881 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
62882 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
62883 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
62884 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
62885 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
62886 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
62887 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
62888 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
62889 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
62890
62891 ELSE null
62892 END object_name
62893 , CASE r
62894 WHEN 1 THEN 'LINE'
62895 WHEN 2 THEN 'LINE'
62896 WHEN 3 THEN 'LINE'
62897 WHEN 4 THEN 'LINE'
62898 WHEN 5 THEN 'LINE'
62899 WHEN 6 THEN 'LINE'
62900 WHEN 7 THEN 'LINE'
62901 WHEN 8 THEN 'LINE'
62902 WHEN 9 THEN 'LINE'
62903 WHEN 10 THEN 'LINE'
62904 WHEN 11 THEN 'LINE'
62905 WHEN 12 THEN 'LINE'
62906 WHEN 13 THEN 'LINE'
62907 WHEN 14 THEN 'LINE'
62908 WHEN 15 THEN 'LINE'
62909 WHEN 16 THEN 'LINE'
62910 WHEN 17 THEN 'LINE'
62911 WHEN 18 THEN 'LINE'
62912
62913 ELSE null
62914 END object_type_code
62915 , CASE r
62916 WHEN 1 THEN '275'
62917 WHEN 2 THEN '275'
62918 WHEN 3 THEN '275'
62919 WHEN 4 THEN '275'
62920 WHEN 5 THEN '275'
62921 WHEN 6 THEN '275'
62922 WHEN 7 THEN '275'
62923 WHEN 8 THEN '275'
62924 WHEN 9 THEN '275'
62925 WHEN 10 THEN '275'
62926 WHEN 11 THEN '275'
62927 WHEN 12 THEN '275'
62928 WHEN 13 THEN '275'
62929 WHEN 14 THEN '275'
62930 WHEN 15 THEN '275'
62931 WHEN 16 THEN '275'
62932 WHEN 17 THEN '275'
62933 WHEN 18 THEN '275'
62934
62935 ELSE null
62936 END source_application_id
62937 , 'S' source_type_code
62938 , CASE r
62939 WHEN 1 THEN 'COST_CCID'
62940 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
62941 WHEN 3 THEN 'ADJ_COST_CCID'
62942 WHEN 4 THEN 'COST_CLEARING_CCID'
62943 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
62944 WHEN 6 THEN 'REVERSING_LINE_FLAG'
62945 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
62946 WHEN 8 THEN 'ENTERED_RAW_COST'
62947 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
62948 WHEN 10 THEN 'ACCT_RAW_COST'
62949 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
62950 WHEN 12 THEN 'EXCHANGE_RATE'
62951 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
62952 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
62953 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
62954 WHEN 16 THEN 'LINE_NUMBER'
62955 WHEN 17 THEN 'LINE_TYPE'
62956 WHEN 18 THEN 'LINE_NUM_REVERSED'
62957
62958 ELSE null
62959 END source_code
62960 , CASE r
62961 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
62962 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
62963 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
62964 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
62965 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
62966 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
62967 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
62968 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
62969 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
62973 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
62970 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
62971 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
62972 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
62974 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
62975 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
62976 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
62977 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
62978 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
62979
62980 ELSE null
62981 END source_value
62982 , CASE r
62983 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
62984 103371
62985 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
62986 ,'ALLOW_OVERRIDE_CCID_FLAG'
62987 ,'S'
62988 ,275)
62989 WHEN 17 THEN fvl34.meaning
62990
62991 ELSE null
62992 END source_meaning
62993 FROM xla_events_gt xet
62994 , PA_XLA_CDL_LINES_V l1
62995 , fnd_lookup_values fvl34
62996 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
62997 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
62998 AND xet.event_class_code = C_EVENT_CLASS_CODE
62999 AND l1.event_id = xet.event_id
63000 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
63001 AND fvl34.lookup_code(+) = l1.LINE_TYPE
63002 AND fvl34.view_application_id(+) = 275
63003 AND fvl34.language(+) = USERENV('LANG')
63004
63005 )
63006 ;
63007 --
63008 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63009
63010 trace
63011 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
63012 ,p_level => C_LEVEL_STATEMENT
63013 ,p_module => l_log_module);
63014
63015 END IF;
63016
63017
63018 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63019 trace
63020 (p_msg => 'END of insert_sources_115'
63021 ,p_level => C_LEVEL_PROCEDURE
63022 ,p_module => l_log_module);
63023 END IF;
63024 EXCEPTION
63025 WHEN xla_exceptions_pkg.application_exception THEN
63026 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
63027 trace
63028 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
63029 ,p_level => C_LEVEL_EXCEPTION
63030 ,p_module => l_log_module);
63031 END IF;
63032 RAISE;
63033 WHEN OTHERS THEN
63034 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
63035 trace
63036 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
63037 ,p_level => C_LEVEL_EXCEPTION
63038 ,p_module => l_log_module);
63039 END IF;
63040 xla_exceptions_pkg.raise_message
63041 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_115');
63042 END insert_sources_115;
63043 --
63044
63045 ---------------------------------------
63046 --
63047 -- PRIVATE FUNCTION
63048 -- EventClass_115
63049 --
63050 ----------------------------------------
63051 --
63052 FUNCTION EventClass_115
63053 (p_application_id IN NUMBER
63054 ,p_base_ledger_id IN NUMBER
63055 ,p_target_ledger_id IN NUMBER
63056 ,p_language IN VARCHAR2
63057 ,p_currency_code IN VARCHAR2
63058 ,p_sla_ledger_id IN NUMBER
63059 ,p_pad_start_date IN DATE
63060 ,p_pad_end_date IN DATE
63061 ,p_primary_ledger_id IN NUMBER)
63062 RETURN BOOLEAN IS
63063 --
63064 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ_ALL';
63065 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ';
63066
63067 l_calculate_acctd_flag VARCHAR2(1) :='N';
63068 l_calculate_g_l_flag VARCHAR2(1) :='N';
63069 --
63070 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63071 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63072 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
63073 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63074 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63075 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
63076 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
63077 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63078 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63079 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63080 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63081 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63085 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63082 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63083 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63084 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63086 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63087 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63088 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63089 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63090 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63091 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63092 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
63093 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
63094
63095 l_event_id NUMBER;
63096 l_previous_event_id NUMBER;
63097 l_first_event_id NUMBER;
63098 l_last_event_id NUMBER;
63099
63100 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
63101 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
63102 --
63103 --
63104 l_result BOOLEAN := TRUE;
63105 l_rows NUMBER := 1000;
63106 l_event_type_name VARCHAR2(80) := 'All';
63107 l_event_class_name VARCHAR2(80) := 'Inventory Cost Adjustment';
63108 l_description VARCHAR2(4000);
63109 l_transaction_reversal NUMBER;
63110 l_ae_header_id NUMBER;
63111 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
63112 l_log_module VARCHAR2(240);
63113 --
63114 l_acct_reversal_source VARCHAR2(30);
63115 l_trx_reversal_source VARCHAR2(30);
63116
63117 l_continue_with_lines BOOLEAN := TRUE;
63118 --
63119 l_acc_rev_gl_date_source DATE; -- 4262811
63120 --
63121 type t_array_event_id is table of number index by binary_integer;
63122
63123 l_rec_array_event t_rec_array_event;
63124 l_null_rec_array_event t_rec_array_event;
63125 l_array_ae_header_id xla_number_array_type;
63126 l_actual_flag VARCHAR2(1) := NULL;
63127 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
63128 l_balance_type_code VARCHAR2(1) :=NULL;
63129 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
63130
63131 --
63132 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
63133 --
63134
63135 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
63136 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
63137
63138 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
63139 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
63140 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
63141 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
63142 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
63143 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
63144 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
63145 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
63146 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
63147 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
63148 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
63149 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
63150 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
63151 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
63152 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
63153 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
63154 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
63155 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
63159
63156
63157 l_array_source_32 t_array_source_32;
63158 l_array_source_88 t_array_source_88;
63160 l_array_source_3 t_array_source_3;
63161 l_array_source_4 t_array_source_4;
63162 l_array_source_5 t_array_source_5;
63163 l_array_source_6 t_array_source_6;
63164 l_array_source_7 t_array_source_7;
63165 l_array_source_22 t_array_source_22;
63166 l_array_source_23 t_array_source_23;
63167 l_array_source_24 t_array_source_24;
63168 l_array_source_25 t_array_source_25;
63169 l_array_source_26 t_array_source_26;
63170 l_array_source_27 t_array_source_27;
63171 l_array_source_28 t_array_source_28;
63172 l_array_source_29 t_array_source_29;
63173 l_array_source_30 t_array_source_30;
63174 l_array_source_31 t_array_source_31;
63175 l_array_source_33 t_array_source_33;
63176 l_array_source_34 t_array_source_34;
63177 l_array_source_34_meaning t_array_lookup_meaning;
63178 l_array_source_35 t_array_source_35;
63179
63180 --
63181 CURSOR header_cur
63182 IS
63183 SELECT /*+ leading(xet) cardinality(xet,1) */
63184 -- Event Class Code: INVENTORY_COST_ADJ
63185 xet.entity_id
63186 ,xet.legal_entity_id
63187 ,xet.entity_code
63188 ,xet.transaction_number
63189 ,xet.event_id
63190 ,xet.event_class_code
63191 ,xet.event_type_code
63192 ,xet.event_number
63193 ,xet.event_date
63194 ,xet.transaction_date
63195 ,xet.reference_num_1
63196 ,xet.reference_num_2
63197 ,xet.reference_num_3
63198 ,xet.reference_num_4
63199 ,xet.reference_char_1
63200 ,xet.reference_char_2
63201 ,xet.reference_char_3
63202 ,xet.reference_char_4
63203 ,xet.reference_date_1
63204 ,xet.reference_date_2
63205 ,xet.reference_date_3
63206 ,xet.reference_date_4
63207 ,xet.event_created_by
63208 ,xet.budgetary_control_flag
63209 , h2.EXPENDITURE_ITEM_ID source_32
63210 , h2.GL_DATE source_88
63211 FROM xla_events_gt xet
63212 , PA_XLA_EXP_HEADER_V h2
63213 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
63214 and xet.event_class_code = C_EVENT_CLASS_CODE
63215 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
63216
63217 ORDER BY event_id
63218 ;
63219
63220
63221 --
63222 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
63223 IS
63224 SELECT /*+ leading(xet) cardinality(xet,1) */
63225 -- Event Class Code: INVENTORY_COST_ADJ
63226 xet.entity_id
63227 ,xet.legal_entity_id
63228 ,xet.entity_code
63229 ,xet.transaction_number
63230 ,xet.event_id
63231 ,xet.event_class_code
63232 ,xet.event_type_code
63233 ,xet.event_number
63234 ,xet.event_date
63235 ,xet.transaction_date
63236 ,xet.reference_num_1
63237 ,xet.reference_num_2
63238 ,xet.reference_num_3
63239 ,xet.reference_num_4
63240 ,xet.reference_char_1
63241 ,xet.reference_char_2
63242 ,xet.reference_char_3
63243 ,xet.reference_char_4
63244 ,xet.reference_date_1
63245 ,xet.reference_date_2
63246 ,xet.reference_date_3
63247 ,xet.reference_date_4
63248 ,xet.event_created_by
63249 ,xet.budgetary_control_flag
63250 , l1.LINE_NUMBER
63251 , l1.COST_CCID source_3
63252 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
63253 , l1.ADJ_COST_CCID source_5
63254 , l1.COST_CLEARING_CCID source_6
63255 , l1.ADJ_COST_CLEARING_CCID source_7
63256 , l1.REVERSING_LINE_FLAG source_22
63257 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
63258 , l1.ENTERED_RAW_COST source_24
63259 , l1.ENTERED_CURRENCY_CODE source_25
63260 , l1.ACCT_RAW_COST source_26
63261 , l1.EXCHANGE_RATE_DATE source_27
63262 , l1.EXCHANGE_RATE source_28
63263 , l1.EXCHANGE_RATE_TYPE source_29
63264 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
63265 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
63266 , l1.LINE_NUMBER source_33
63267 , l1.LINE_TYPE source_34
63268 , fvl34.meaning source_34_meaning
63269 , l1.LINE_NUM_REVERSED source_35
63270 FROM xla_events_gt xet
63271 , PA_XLA_CDL_LINES_V l1
63272 , fnd_lookup_values fvl34
63273 WHERE xet.event_id between x_first_event_id and x_last_event_id
63274 and xet.event_date between p_pad_start_date and p_pad_end_date
63275 and xet.event_class_code = C_EVENT_CLASS_CODE
63276 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
63277 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
63278 AND fvl34.lookup_code(+) = l1.LINE_TYPE
63279 AND fvl34.view_application_id(+) = 275
63280 AND fvl34.language(+) = USERENV('LANG')
63281 ;
63282
63283 --
63284 BEGIN
63285 IF g_log_enabled THEN
63286 l_log_module := C_DEFAULT_MODULE||'.EventClass_115';
63287 END IF;
63288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63289 trace
63290 (p_msg => 'BEGIN of EventClass_115'
63291 ,p_level => C_LEVEL_PROCEDURE
63292 ,p_module => l_log_module);
63293 END IF;
63294
63295 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63296 trace
63297 (p_msg => 'p_application_id = '||p_application_id||
63298 ' - p_base_ledger_id = '||p_base_ledger_id||
63299 ' - p_target_ledger_id = '||p_target_ledger_id||
63300 ' - p_language = '||p_language||
63301 ' - p_currency_code = '||p_currency_code||
63302 ' - p_sla_ledger_id = '||p_sla_ledger_id
63303 ,p_level => C_LEVEL_STATEMENT
63304 ,p_module => l_log_module);
63305 END IF;
63306 --
63307 -- initialze arrays
63308 --
63309 g_array_event.DELETE;
63313 -- 4262811 Initialze MPA Line Number
63310 l_rec_array_event := l_null_rec_array_event;
63311 --
63312 --------------------------------------
63314 --------------------------------------
63315 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
63316
63317 --
63318
63319 --
63320 OPEN header_cur;
63321 --
63322 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63323 trace
63324 (p_msg => 'SQL - FETCH header_cur'
63325 ,p_level => C_LEVEL_STATEMENT
63326 ,p_module => l_log_module);
63327 END IF;
63328 --
63329 LOOP
63330 FETCH header_cur BULK COLLECT INTO
63331 l_array_entity_id
63332 , l_array_legal_entity_id
63333 , l_array_entity_code
63334 , l_array_transaction_num
63335 , l_array_event_id
63336 , l_array_class_code
63337 , l_array_event_type
63338 , l_array_event_number
63339 , l_array_event_date
63340 , l_array_transaction_date
63341 , l_array_reference_num_1
63342 , l_array_reference_num_2
63343 , l_array_reference_num_3
63344 , l_array_reference_num_4
63345 , l_array_reference_char_1
63346 , l_array_reference_char_2
63347 , l_array_reference_char_3
63348 , l_array_reference_char_4
63349 , l_array_reference_date_1
63350 , l_array_reference_date_2
63351 , l_array_reference_date_3
63352 , l_array_reference_date_4
63353 , l_array_event_created_by
63354 , l_array_budgetary_control_flag
63355 , l_array_source_32
63356 , l_array_source_88
63357 LIMIT l_rows;
63358 --
63359 IF (C_LEVEL_EVENT >= g_log_level) THEN
63360 trace
63361 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
63362 ,p_level => C_LEVEL_EVENT
63363 ,p_module => l_log_module);
63364 END IF;
63365 --
63366 EXIT WHEN l_array_entity_id.COUNT = 0;
63367
63368 -- initialize arrays
63369 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
63370 XLA_AE_LINES_PKG.g_rec_lines := NULL;
63371
63372 --
63373 -- Bug 4458708
63374 --
63375 XLA_AE_LINES_PKG.g_LineNumber := 0;
63376
63377
63378 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
63379 g_last_hdr_idx := l_array_event_id.LAST;
63380 --
63381 -- loop for the headers. Each iteration is for each header extract row
63382 -- fetched in header cursor
63383 --
63384 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
63385
63386 --
63387 -- set event info as cache for other routines to refer event attributes
63388 --
63389 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
63390 (p_application_id => p_application_id
63391 ,p_primary_ledger_id => p_primary_ledger_id
63392 ,p_base_ledger_id => p_base_ledger_id
63393 ,p_target_ledger_id => p_target_ledger_id
63394 ,p_entity_id => l_array_entity_id(hdr_idx)
63395 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
63396 ,p_entity_code => l_array_entity_code(hdr_idx)
63397 ,p_transaction_num => l_array_transaction_num(hdr_idx)
63398 ,p_event_id => l_array_event_id(hdr_idx)
63399 ,p_event_class_code => l_array_class_code(hdr_idx)
63400 ,p_event_type_code => l_array_event_type(hdr_idx)
63401 ,p_event_number => l_array_event_number(hdr_idx)
63402 ,p_event_date => l_array_event_date(hdr_idx)
63403 ,p_transaction_date => l_array_transaction_date(hdr_idx)
63404 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
63405 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
63406 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
63407 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
63408 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
63409 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
63410 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
63411 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
63412 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
63413 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
63414 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
63415 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
63416 ,p_event_created_by => l_array_event_created_by(hdr_idx)
63417 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
63418
63419 --
63420 -- set the status of entry to C_VALID (0)
63421 --
63422 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
63423
63424 --
63425 -- initialize a row for ae header
63426 --
63427 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
63428
63429 l_event_id := l_array_event_id(hdr_idx);
63430
63431 --
63432 -- storing the hdr_idx for event. May be used by line cursor.
63433 --
63434 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
63435
63436 --
63437 -- store sources from header extract. This can be improved to
63438 -- store only those sources from header extract that may be used in lines
63439 --
63440
63441 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
63442 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
63443
63444 --
63445 -- initilaize the status of ae headers for diffrent balance types
63446 -- the status is initialised to C_NOT_CREATED (2)
63447 --
63448 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
63449 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
63453 -- call api to validate and store accounting attributes for header
63450 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
63451
63452 --
63454 --
63455
63456 ------------------------------------------------------------
63457 -- Accrual Reversal : to get date for Standard Source (NONE)
63458 ------------------------------------------------------------
63459 l_acc_rev_gl_date_source := NULL;
63460
63461 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
63462 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
63463
63464
63465 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
63466
63467 XLA_AE_HEADER_PKG.SetJeCategoryName;
63468
63469 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
63470 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
63471 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
63472 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
63473 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
63474
63475
63476 -- No header level analytical criteria
63477
63478 --
63479 --accounting attribute enhancement, bug 3612931
63480 --
63481 l_trx_reversal_source := SUBSTR(NULL, 1,30);
63482
63483 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
63484 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
63485
63486 xla_accounting_err_pkg.build_message
63487 (p_appli_s_name => 'XLA'
63488 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
63489 ,p_token_1 => 'ACCT_ATTR_NAME'
63490 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
63491 ,p_token_2 => 'PRODUCT_NAME'
63492 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
63493 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
63494 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
63495 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
63496
63497 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
63498 --
63499 -- following sets the accounting attributes needed to reverse
63500 -- accounting for a distributeion
63501 --
63502 xla_ae_lines_pkg.SetTrxReversalAttrs
63503 (p_event_id => l_event_id
63504 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
63505 ,p_trx_reversal_source => l_trx_reversal_source);
63506
63507 END IF;
63508
63509
63510 ----------------------------------------------------------------
63511 -- 4262811 - update the header statuses to invalid in need be
63512 ----------------------------------------------------------------
63513 --
63514 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
63515
63516
63517 -----------------------------------------------
63518 -- No accrual reversal for the event class/type
63519 -----------------------------------------------
63520 ----------------------------------------------------------------
63521
63522 --
63523 -- this ends the header loop iteration for one bulk fetch
63524 --
63525 END LOOP;
63526
63527 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
63528 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
63529
63530 --
63531 -- insert dummy rows into lines gt table that were created due to
63532 -- transaction reversals
63533 --
63534 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
63535 l_result := XLA_AE_LINES_PKG.InsertLines;
63536 END IF;
63537
63538 --
63539 -- reset the temp_line_num for each set of events fetched from header
63540 -- cursor rather than doing it for each new event in line cursor
63541 -- Bug 3939231
63542 --
63543 xla_ae_lines_pkg.g_temp_line_num := 0;
63544
63545
63546
63547 --
63548 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
63549 --
63550 --
63551 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63552
63553 trace
63554 (p_msg => 'SQL - FETCH line_cur'
63555 ,p_level => C_LEVEL_STATEMENT
63556 ,p_module => l_log_module);
63557
63558 END IF;
63559 --
63560 --
63561 LOOP
63562 --
63563 FETCH line_cur BULK COLLECT INTO
63564 l_array_entity_id
63565 , l_array_legal_entity_id
63566 , l_array_entity_code
63567 , l_array_transaction_num
63568 , l_array_event_id
63569 , l_array_class_code
63570 , l_array_event_type
63571 , l_array_event_number
63572 , l_array_event_date
63573 , l_array_transaction_date
63574 , l_array_reference_num_1
63575 , l_array_reference_num_2
63576 , l_array_reference_num_3
63577 , l_array_reference_num_4
63578 , l_array_reference_char_1
63579 , l_array_reference_char_2
63580 , l_array_reference_char_3
63581 , l_array_reference_char_4
63582 , l_array_reference_date_1
63583 , l_array_reference_date_2
63584 , l_array_reference_date_3
63585 , l_array_reference_date_4
63586 , l_array_event_created_by
63587 , l_array_budgetary_control_flag
63588 , l_array_extract_line_num
63589 , l_array_source_3
63590 , l_array_source_4
63591 , l_array_source_5
63592 , l_array_source_6
63593 , l_array_source_7
63594 , l_array_source_22
63598 , l_array_source_26
63595 , l_array_source_23
63596 , l_array_source_24
63597 , l_array_source_25
63599 , l_array_source_27
63600 , l_array_source_28
63601 , l_array_source_29
63602 , l_array_source_30
63603 , l_array_source_31
63604 , l_array_source_33
63605 , l_array_source_34
63606 , l_array_source_34_meaning
63607 , l_array_source_35
63608 LIMIT l_rows;
63609
63610 --
63611 IF (C_LEVEL_EVENT >= g_log_level) THEN
63612 trace
63613 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
63614 ,p_level => C_LEVEL_EVENT
63615 ,p_module => l_log_module);
63616 END IF;
63617 --
63618 EXIT WHEN l_array_entity_id.count = 0;
63619
63620 XLA_AE_LINES_PKG.g_rec_lines := null;
63621
63622 --
63623 -- Bug 4458708
63624 --
63625 XLA_AE_LINES_PKG.g_LineNumber := 0;
63626 --
63627 --
63628
63629 FOR Idx IN 1..l_array_event_id.count LOOP
63630 --
63631 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
63632 --
63633 l_event_id := l_array_event_id(idx); -- 5648433
63634
63635 --
63636 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
63637 --
63638
63639 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
63640 (g_array_event(l_event_id).array_value_num('header_index'))
63641 ,'N'
63642 ) <> 'Y'
63643 THEN
63644 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63645 trace
63646 (p_msg => 'Trancaction revesal option is not Y '
63647 ,p_level => C_LEVEL_STATEMENT
63648 ,p_module => l_log_module);
63649 END IF;
63650
63651 --
63652 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
63653 --
63654 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
63655 --
63656 -- set event info as cache for other routines to refer event attributes
63657 --
63658
63659 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
63660 l_previous_event_id := l_event_id;
63661
63662 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
63663 (p_application_id => p_application_id
63664 ,p_primary_ledger_id => p_primary_ledger_id
63665 ,p_base_ledger_id => p_base_ledger_id
63666 ,p_target_ledger_id => p_target_ledger_id
63667 ,p_entity_id => l_array_entity_id(Idx)
63668 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
63669 ,p_entity_code => l_array_entity_code(Idx)
63670 ,p_transaction_num => l_array_transaction_num(Idx)
63671 ,p_event_id => l_array_event_id(Idx)
63672 ,p_event_class_code => l_array_class_code(Idx)
63673 ,p_event_type_code => l_array_event_type(Idx)
63674 ,p_event_number => l_array_event_number(Idx)
63675 ,p_event_date => l_array_event_date(Idx)
63676 ,p_transaction_date => l_array_transaction_date(Idx)
63677 ,p_reference_num_1 => l_array_reference_num_1(Idx)
63678 ,p_reference_num_2 => l_array_reference_num_2(Idx)
63679 ,p_reference_num_3 => l_array_reference_num_3(Idx)
63680 ,p_reference_num_4 => l_array_reference_num_4(Idx)
63681 ,p_reference_char_1 => l_array_reference_char_1(Idx)
63682 ,p_reference_char_2 => l_array_reference_char_2(Idx)
63683 ,p_reference_char_3 => l_array_reference_char_3(Idx)
63684 ,p_reference_char_4 => l_array_reference_char_4(Idx)
63685 ,p_reference_date_1 => l_array_reference_date_1(Idx)
63686 ,p_reference_date_2 => l_array_reference_date_2(Idx)
63687 ,p_reference_date_3 => l_array_reference_date_3(Idx)
63688 ,p_reference_date_4 => l_array_reference_date_4(Idx)
63689 ,p_event_created_by => l_array_event_created_by(Idx)
63690 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
63691 --
63692 END IF;
63693
63694
63695
63696 --
63697 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
63698
63699 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
63700
63701 IF l_continue_with_lines THEN
63702 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
63703 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
63704
63705 xla_accounting_err_pkg.build_message
63706 (p_appli_s_name => 'XLA'
63707 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
63708 ,p_token_1 => 'LINE_NUMBER'
63709 ,p_value_1 => l_array_extract_line_num(Idx)
63710 ,p_token_2 => 'PRODUCT_NAME'
63711 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
63712 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
63713 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
63714 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
63715
63716 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
63717 --
63718 -- following sets the accounting attributes needed to reverse
63719 -- accounting for a distributeion
63720 --
63721
63722 --
63723 -- 5217187
63724 --
63725 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
63726 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
63730
63727 g_array_event(l_event_id).array_value_num('header_index'));
63728 --
63729 --
63731 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
63732 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
63733 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
63734 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
63735 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
63736 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
63737 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
63738 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
63739 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
63740 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
63741 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
63742 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
63743 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
63744 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
63745 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
63746 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
63747 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
63748 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
63749 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
63750 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
63751 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
63752 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
63753 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
63754 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
63755 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
63756 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
63757 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
63758 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
63759 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
63760 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
63761 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
63762 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
63763 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
63764 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
63765 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
63766 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
63767 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
63768 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
63769 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
63770 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
63771 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
63772 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
63773 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
63774 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
63775 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
63776 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
63777 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
63778 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
63779
63780
63781 xla_ae_lines_pkg.SetAcctReversalAttrs
63782 (p_event_id => l_event_id
63783 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
63784 ,p_calculate_acctd_flag => l_calculate_acctd_flag
63785 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
63786 END IF;
63787
63788 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
63789 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
63790
63791 --
63792 AcctLineType_50 (
63793 p_application_id => p_application_id
63794 ,p_event_id => l_event_id
63795 ,p_calculate_acctd_flag => l_calculate_acctd_flag
63796 ,p_calculate_g_l_flag => l_calculate_g_l_flag
63797 ,p_actual_flag => l_actual_flag
63798 ,p_balance_type_code => l_balance_type_code
63799 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
63800
63801 , p_source_3 => l_array_source_3(Idx)
63802 , p_source_4 => l_array_source_4(Idx)
63803 , p_source_5 => l_array_source_5(Idx)
63804 , p_source_6 => l_array_source_6(Idx)
63805 , p_source_22 => l_array_source_22(Idx)
63806 , p_source_23 => l_array_source_23(Idx)
63807 , p_source_24 => l_array_source_24(Idx)
63808 , p_source_25 => l_array_source_25(Idx)
63809 , p_source_26 => l_array_source_26(Idx)
63810 , p_source_27 => l_array_source_27(Idx)
63811 , p_source_28 => l_array_source_28(Idx)
63812 , p_source_29 => l_array_source_29(Idx)
63813 , p_source_30 => l_array_source_30(Idx)
63814 , p_source_31 => l_array_source_31(Idx)
63815 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
63816 , p_source_33 => l_array_source_33(Idx)
63817 , p_source_34 => l_array_source_34(Idx)
63818 , p_source_34_meaning => l_array_source_34_meaning(Idx)
63819 , p_source_35 => l_array_source_35(Idx)
63820 );
63821 If(l_balance_type_code = 'A') THEN
63822 l_actual_gain_loss_ref := l_gain_or_loss_ref;
63823 END IF;
63824
63825 --
63826
63827
63828 --
63829 AcctLineType_64 (
63830 p_application_id => p_application_id
63831 ,p_event_id => l_event_id
63832 ,p_calculate_acctd_flag => l_calculate_acctd_flag
63833 ,p_calculate_g_l_flag => l_calculate_g_l_flag
63837
63834 ,p_actual_flag => l_actual_flag
63835 ,p_balance_type_code => l_balance_type_code
63836 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
63838 , p_source_3 => l_array_source_3(Idx)
63839 , p_source_4 => l_array_source_4(Idx)
63840 , p_source_6 => l_array_source_6(Idx)
63841 , p_source_7 => l_array_source_7(Idx)
63842 , p_source_22 => l_array_source_22(Idx)
63843 , p_source_23 => l_array_source_23(Idx)
63844 , p_source_24 => l_array_source_24(Idx)
63845 , p_source_25 => l_array_source_25(Idx)
63846 , p_source_26 => l_array_source_26(Idx)
63847 , p_source_27 => l_array_source_27(Idx)
63848 , p_source_28 => l_array_source_28(Idx)
63849 , p_source_29 => l_array_source_29(Idx)
63850 , p_source_30 => l_array_source_30(Idx)
63851 , p_source_31 => l_array_source_31(Idx)
63852 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
63853 , p_source_33 => l_array_source_33(Idx)
63854 , p_source_34 => l_array_source_34(Idx)
63855 , p_source_34_meaning => l_array_source_34_meaning(Idx)
63856 , p_source_35 => l_array_source_35(Idx)
63857 );
63858 If(l_balance_type_code = 'A') THEN
63859 l_actual_gain_loss_ref := l_gain_or_loss_ref;
63860 END IF;
63861
63862 --
63863
63864 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
63865 -- or secondary ledger that has different currency with primary
63866 -- or alc that is calculated by sla
63867 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
63868 (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'))
63869
63870 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
63871 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
63872 AND (l_actual_flag = 'A')) THEN
63873 XLA_AE_LINES_PKG.CreateGainOrLossLines(
63874 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
63875 ,p_application_id => p_application_id
63876 ,p_amb_context_code => 'DEFAULT'
63877 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
63878 ,p_event_class_code => C_EVENT_CLASS_CODE
63879 ,p_event_type_code => C_EVENT_TYPE_CODE
63880
63881 ,p_gain_ccid => -1
63882 ,p_loss_ccid => -1
63883
63884 ,p_actual_flag => l_actual_flag
63885 ,p_enc_flag => null
63886 ,p_actual_g_l_ref => l_actual_gain_loss_ref
63887 ,p_enc_g_l_ref => null
63888 );
63889 END IF;
63890 END IF;
63891 END IF;
63892
63893 ELSE
63894 --
63895 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
63896 --
63897 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63898 trace
63899 (p_msg => 'Trancaction revesal option is Y'
63900 ,p_level => C_LEVEL_STATEMENT
63901 ,p_module => l_log_module);
63902 END IF;
63903 END IF;
63904
63905 END LOOP;
63906 l_result := XLA_AE_LINES_PKG.InsertLines ;
63907 end loop;
63908 close line_cur;
63909
63910
63911 --
63912 -- insert headers into xla_ae_headers_gt table
63913 --
63914 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
63915
63916 -- insert into errors table here.
63917
63918 END LOOP;
63919
63920 --
63921 -- 4865292
63922 --
63923 -- Compare g_hdr_extract_count with event count in
63924 -- CreateHeadersAndLines.
63925 --
63926 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
63927
63928 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63929 trace (p_msg => '# rows extracted from header extract objects '
63930 || ' (running total): '
63931 || g_hdr_extract_count
63932 ,p_level => C_LEVEL_STATEMENT
63933 ,p_module => l_log_module);
63934 END IF;
63935
63936 CLOSE header_cur;
63937 --
63938
63939 --
63940 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63941 trace
63942 (p_msg => 'END of EventClass_115'
63943 ,p_level => C_LEVEL_PROCEDURE
63944 ,p_module => l_log_module);
63945 END IF;
63946 --
63947 RETURN l_result;
63948 EXCEPTION
63949 WHEN xla_exceptions_pkg.application_exception THEN
63950
63951 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
63952
63953
63957 WHEN OTHERS THEN
63954 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
63955
63956 RAISE;
63958 xla_exceptions_pkg.raise_message
63959 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_115');
63960 END EventClass_115;
63961 --
63962
63963 ---------------------------------------
63964 --
63965 -- PRIVATE PROCEDURE
63966 -- insert_sources_116
63967 --
63968 ----------------------------------------
63969 --
63970 PROCEDURE insert_sources_116(
63971 p_target_ledger_id IN NUMBER
63972 , p_language IN VARCHAR2
63973 , p_sla_ledger_id IN NUMBER
63974 , p_pad_start_date IN DATE
63975 , p_pad_end_date IN DATE
63976 )
63977 IS
63978
63979 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ALL';
63980 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST';
63981 p_apps_owner VARCHAR2(30);
63982 l_log_module VARCHAR2(240);
63983 BEGIN
63984 IF g_log_enabled THEN
63985 l_log_module := C_DEFAULT_MODULE||'.insert_sources_116';
63986 END IF;
63987 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63988
63989 trace
63990 (p_msg => 'BEGIN of insert_sources_116'
63991 ,p_level => C_LEVEL_PROCEDURE
63992 ,p_module => l_log_module);
63993
63994 END IF;
63995
63996 -- select APPS owner
63997 SELECT oracle_username
63998 INTO p_apps_owner
63999 FROM fnd_oracle_userid
64000 WHERE read_only_flag = 'U'
64001 ;
64002
64003 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64004 trace
64005 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
64006 ' - p_language = '||p_language||
64007 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
64008 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
64009 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
64010 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
64011 ,p_level => C_LEVEL_STATEMENT
64012 ,p_module => l_log_module);
64013 END IF;
64014
64015
64016 --
64017 INSERT INTO xla_diag_sources --hdr2
64018 (
64019 event_id
64020 , ledger_id
64021 , sla_ledger_id
64022 , description_language
64023 , object_name
64024 , object_type_code
64025 , line_number
64026 , source_application_id
64027 , source_type_code
64028 , source_code
64029 , source_value
64030 , source_meaning
64031 , created_by
64032 , creation_date
64033 , last_update_date
64034 , last_updated_by
64035 , last_update_login
64036 , program_update_date
64037 , program_application_id
64038 , program_id
64039 , request_id
64040 )
64041 SELECT
64042 event_id
64043 , p_target_ledger_id
64044 , p_sla_ledger_id
64045 , p_language
64046 , object_name
64047 , object_type_code
64048 , line_number
64049 , source_application_id
64050 , source_type_code
64051 , source_code
64052 , SUBSTR(source_value ,1,1996)
64053 , SUBSTR(source_meaning ,1,200)
64054 , xla_environment_pkg.g_Usr_Id
64055 , TRUNC(SYSDATE)
64056 , TRUNC(SYSDATE)
64057 , xla_environment_pkg.g_Usr_Id
64058 , xla_environment_pkg.g_Login_Id
64059 , TRUNC(SYSDATE)
64060 , xla_environment_pkg.g_Prog_Appl_Id
64061 , xla_environment_pkg.g_Prog_Id
64062 , xla_environment_pkg.g_Req_Id
64063 FROM (
64064 SELECT xet.event_id event_id
64065 , 0 line_number
64066 , CASE r
64067 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
64068 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
64069
64070 ELSE null
64071 END object_name
64072 , CASE r
64073 WHEN 1 THEN 'HEADER'
64074 WHEN 2 THEN 'HEADER'
64075
64076 ELSE null
64077 END object_type_code
64078 , CASE r
64079 WHEN 1 THEN '275'
64080 WHEN 2 THEN '275'
64081
64082 ELSE null
64083 END source_application_id
64084 , 'S' source_type_code
64085 , CASE r
64086 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
64087 WHEN 2 THEN 'GL_DATE'
64088
64089 ELSE null
64090 END source_code
64091 , CASE r
64092 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
64093 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
64094
64095 ELSE null
64096 END source_value
64097 , null source_meaning
64098 FROM xla_events_gt xet
64099 , PA_XLA_EXP_HEADER_V h2
64100 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
64101 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
64102 AND xet.event_class_code = C_EVENT_CLASS_CODE
64103 AND h2.event_id = xet.event_id
64104
64105 )
64106 ;
64107 --
64108 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64109
64110 trace
64114
64111 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
64112 ,p_level => C_LEVEL_STATEMENT
64113 ,p_module => l_log_module);
64115 END IF;
64116 --
64117
64118
64119
64120 --
64121 INSERT INTO xla_diag_sources --line2
64122 (
64123 event_id
64124 , ledger_id
64125 , sla_ledger_id
64126 , description_language
64127 , object_name
64128 , object_type_code
64129 , line_number
64130 , source_application_id
64131 , source_type_code
64132 , source_code
64133 , source_value
64134 , source_meaning
64135 , created_by
64136 , creation_date
64137 , last_update_date
64138 , last_updated_by
64139 , last_update_login
64140 , program_update_date
64141 , program_application_id
64142 , program_id
64143 , request_id
64144 )
64145 SELECT event_id
64146 , p_target_ledger_id
64147 , p_sla_ledger_id
64148 , p_language
64149 , object_name
64150 , object_type_code
64151 , line_number
64152 , source_application_id
64153 , source_type_code
64154 , source_code
64155 , SUBSTR(source_value,1,1996)
64156 , SUBSTR(source_meaning ,1,200)
64157 , xla_environment_pkg.g_Usr_Id
64158 , TRUNC(SYSDATE)
64159 , TRUNC(SYSDATE)
64160 , xla_environment_pkg.g_Usr_Id
64161 , xla_environment_pkg.g_Login_Id
64162 , TRUNC(SYSDATE)
64163 , xla_environment_pkg.g_Prog_Appl_Id
64164 , xla_environment_pkg.g_Prog_Id
64165 , xla_environment_pkg.g_Req_Id
64166 FROM (
64167 SELECT xet.event_id event_id
64168 , l1.line_number line_number
64169 , CASE r
64170 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
64171 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
64172 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
64173 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
64174 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
64175 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
64176 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
64177 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
64178 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
64179 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
64180 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
64181 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
64182 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
64183 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
64184 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
64185 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
64186 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
64187 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
64188
64189 ELSE null
64190 END object_name
64191 , CASE r
64192 WHEN 1 THEN 'LINE'
64193 WHEN 2 THEN 'LINE'
64194 WHEN 3 THEN 'LINE'
64195 WHEN 4 THEN 'LINE'
64196 WHEN 5 THEN 'LINE'
64197 WHEN 6 THEN 'LINE'
64198 WHEN 7 THEN 'LINE'
64199 WHEN 8 THEN 'LINE'
64200 WHEN 9 THEN 'LINE'
64201 WHEN 10 THEN 'LINE'
64202 WHEN 11 THEN 'LINE'
64203 WHEN 12 THEN 'LINE'
64204 WHEN 13 THEN 'LINE'
64205 WHEN 14 THEN 'LINE'
64206 WHEN 15 THEN 'LINE'
64207 WHEN 16 THEN 'LINE'
64208 WHEN 17 THEN 'LINE'
64209 WHEN 18 THEN 'LINE'
64210
64211 ELSE null
64212 END object_type_code
64213 , CASE r
64214 WHEN 1 THEN '275'
64215 WHEN 2 THEN '275'
64216 WHEN 3 THEN '275'
64217 WHEN 4 THEN '275'
64218 WHEN 5 THEN '275'
64219 WHEN 6 THEN '275'
64220 WHEN 7 THEN '275'
64221 WHEN 8 THEN '275'
64222 WHEN 9 THEN '275'
64223 WHEN 10 THEN '275'
64224 WHEN 11 THEN '275'
64225 WHEN 12 THEN '275'
64226 WHEN 13 THEN '275'
64227 WHEN 14 THEN '275'
64228 WHEN 15 THEN '275'
64229 WHEN 16 THEN '275'
64230 WHEN 17 THEN '275'
64231 WHEN 18 THEN '275'
64232
64233 ELSE null
64234 END source_application_id
64235 , 'S' source_type_code
64236 , CASE r
64237 WHEN 1 THEN 'COST_CCID'
64238 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
64239 WHEN 3 THEN 'ADJ_COST_CCID'
64240 WHEN 4 THEN 'COST_CLEARING_CCID'
64241 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
64242 WHEN 6 THEN 'REVERSING_LINE_FLAG'
64243 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
64244 WHEN 8 THEN 'ENTERED_RAW_COST'
64245 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
64246 WHEN 10 THEN 'ACCT_RAW_COST'
64247 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
64248 WHEN 12 THEN 'EXCHANGE_RATE'
64249 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
64250 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
64251 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
64252 WHEN 16 THEN 'LINE_NUMBER'
64253 WHEN 17 THEN 'LINE_TYPE'
64254 WHEN 18 THEN 'LINE_NUM_REVERSED'
64258 , CASE r
64255
64256 ELSE null
64257 END source_code
64259 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
64260 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
64261 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
64262 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
64263 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
64264 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
64265 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
64266 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
64267 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
64268 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
64269 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
64270 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
64271 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
64272 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
64273 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
64274 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
64275 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
64276 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
64277
64278 ELSE null
64279 END source_value
64280 , CASE r
64281 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
64282 103371
64283 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
64284 ,'ALLOW_OVERRIDE_CCID_FLAG'
64285 ,'S'
64286 ,275)
64287 WHEN 17 THEN fvl34.meaning
64288
64289 ELSE null
64290 END source_meaning
64291 FROM xla_events_gt xet
64292 , PA_XLA_CDL_LINES_V l1
64293 , fnd_lookup_values fvl34
64294 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
64295 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
64296 AND xet.event_class_code = C_EVENT_CLASS_CODE
64297 AND l1.event_id = xet.event_id
64298 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
64299 AND fvl34.lookup_code(+) = l1.LINE_TYPE
64300 AND fvl34.view_application_id(+) = 275
64301 AND fvl34.language(+) = USERENV('LANG')
64302
64303 )
64304 ;
64305 --
64306 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64307
64308 trace
64309 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
64310 ,p_level => C_LEVEL_STATEMENT
64311 ,p_module => l_log_module);
64312
64313 END IF;
64314
64315
64316 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64317 trace
64318 (p_msg => 'END of insert_sources_116'
64319 ,p_level => C_LEVEL_PROCEDURE
64320 ,p_module => l_log_module);
64321 END IF;
64322 EXCEPTION
64323 WHEN xla_exceptions_pkg.application_exception THEN
64324 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
64325 trace
64326 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
64327 ,p_level => C_LEVEL_EXCEPTION
64328 ,p_module => l_log_module);
64329 END IF;
64330 RAISE;
64331 WHEN OTHERS THEN
64332 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
64333 trace
64334 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
64335 ,p_level => C_LEVEL_EXCEPTION
64336 ,p_module => l_log_module);
64337 END IF;
64338 xla_exceptions_pkg.raise_message
64339 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_116');
64340 END insert_sources_116;
64341 --
64342
64343 ---------------------------------------
64344 --
64345 -- PRIVATE FUNCTION
64346 -- EventClass_116
64347 --
64348 ----------------------------------------
64349 --
64350 FUNCTION EventClass_116
64351 (p_application_id IN NUMBER
64352 ,p_base_ledger_id IN NUMBER
64353 ,p_target_ledger_id IN NUMBER
64354 ,p_language IN VARCHAR2
64355 ,p_currency_code IN VARCHAR2
64356 ,p_sla_ledger_id IN NUMBER
64357 ,p_pad_start_date IN DATE
64358 ,p_pad_end_date IN DATE
64359 ,p_primary_ledger_id IN NUMBER)
64360 RETURN BOOLEAN IS
64361 --
64362 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ALL';
64363 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST';
64364
64365 l_calculate_acctd_flag VARCHAR2(1) :='N';
64366 l_calculate_g_l_flag VARCHAR2(1) :='N';
64367 --
64368 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64369 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64370 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64371 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64372 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64373 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64374 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64375 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64376 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64377 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64378 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64379 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64380 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64384 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64381 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64382 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64383 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64385 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64386 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64387 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64388 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64389 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64390 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
64391 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64392
64393 l_event_id NUMBER;
64394 l_previous_event_id NUMBER;
64395 l_first_event_id NUMBER;
64396 l_last_event_id NUMBER;
64397
64398 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
64399 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64400 --
64401 --
64402 l_result BOOLEAN := TRUE;
64403 l_rows NUMBER := 1000;
64404 l_event_type_name VARCHAR2(80) := 'All';
64405 l_event_class_name VARCHAR2(80) := 'Inventory Cost';
64406 l_description VARCHAR2(4000);
64407 l_transaction_reversal NUMBER;
64408 l_ae_header_id NUMBER;
64409 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
64410 l_log_module VARCHAR2(240);
64411 --
64412 l_acct_reversal_source VARCHAR2(30);
64413 l_trx_reversal_source VARCHAR2(30);
64414
64415 l_continue_with_lines BOOLEAN := TRUE;
64416 --
64417 l_acc_rev_gl_date_source DATE; -- 4262811
64418 --
64419 type t_array_event_id is table of number index by binary_integer;
64420
64421 l_rec_array_event t_rec_array_event;
64422 l_null_rec_array_event t_rec_array_event;
64423 l_array_ae_header_id xla_number_array_type;
64424 l_actual_flag VARCHAR2(1) := NULL;
64425 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
64426 l_balance_type_code VARCHAR2(1) :=NULL;
64427 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
64428
64429 --
64430 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
64431 --
64432
64433 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
64434 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
64435
64436 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
64437 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
64438 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
64439 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
64440 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
64441 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
64442 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
64443 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
64444 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
64445 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
64446 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
64447 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
64448 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
64449 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
64450 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
64451 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
64452 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
64453 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
64454
64455 l_array_source_32 t_array_source_32;
64456 l_array_source_88 t_array_source_88;
64457
64458 l_array_source_3 t_array_source_3;
64459 l_array_source_4 t_array_source_4;
64460 l_array_source_5 t_array_source_5;
64461 l_array_source_6 t_array_source_6;
64462 l_array_source_7 t_array_source_7;
64463 l_array_source_22 t_array_source_22;
64464 l_array_source_23 t_array_source_23;
64465 l_array_source_24 t_array_source_24;
64466 l_array_source_25 t_array_source_25;
64467 l_array_source_26 t_array_source_26;
64468 l_array_source_27 t_array_source_27;
64469 l_array_source_28 t_array_source_28;
64470 l_array_source_29 t_array_source_29;
64471 l_array_source_30 t_array_source_30;
64472 l_array_source_31 t_array_source_31;
64473 l_array_source_33 t_array_source_33;
64474 l_array_source_34 t_array_source_34;
64475 l_array_source_34_meaning t_array_lookup_meaning;
64476 l_array_source_35 t_array_source_35;
64477
64478 --
64479 CURSOR header_cur
64480 IS
64481 SELECT /*+ leading(xet) cardinality(xet,1) */
64482 -- Event Class Code: INVENTORY_COST
64483 xet.entity_id
64484 ,xet.legal_entity_id
64485 ,xet.entity_code
64486 ,xet.transaction_number
64487 ,xet.event_id
64491 ,xet.event_date
64488 ,xet.event_class_code
64489 ,xet.event_type_code
64490 ,xet.event_number
64492 ,xet.transaction_date
64493 ,xet.reference_num_1
64494 ,xet.reference_num_2
64495 ,xet.reference_num_3
64496 ,xet.reference_num_4
64497 ,xet.reference_char_1
64498 ,xet.reference_char_2
64499 ,xet.reference_char_3
64500 ,xet.reference_char_4
64501 ,xet.reference_date_1
64502 ,xet.reference_date_2
64503 ,xet.reference_date_3
64504 ,xet.reference_date_4
64505 ,xet.event_created_by
64506 ,xet.budgetary_control_flag
64507 , h2.EXPENDITURE_ITEM_ID source_32
64508 , h2.GL_DATE source_88
64509 FROM xla_events_gt xet
64510 , PA_XLA_EXP_HEADER_V h2
64511 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
64512 and xet.event_class_code = C_EVENT_CLASS_CODE
64513 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
64514
64515 ORDER BY event_id
64516 ;
64517
64518
64519 --
64520 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
64521 IS
64522 SELECT /*+ leading(xet) cardinality(xet,1) */
64523 -- Event Class Code: INVENTORY_COST
64524 xet.entity_id
64525 ,xet.legal_entity_id
64526 ,xet.entity_code
64527 ,xet.transaction_number
64528 ,xet.event_id
64529 ,xet.event_class_code
64530 ,xet.event_type_code
64531 ,xet.event_number
64532 ,xet.event_date
64533 ,xet.transaction_date
64534 ,xet.reference_num_1
64535 ,xet.reference_num_2
64536 ,xet.reference_num_3
64537 ,xet.reference_num_4
64538 ,xet.reference_char_1
64539 ,xet.reference_char_2
64540 ,xet.reference_char_3
64541 ,xet.reference_char_4
64542 ,xet.reference_date_1
64543 ,xet.reference_date_2
64544 ,xet.reference_date_3
64545 ,xet.reference_date_4
64546 ,xet.event_created_by
64547 ,xet.budgetary_control_flag
64548 , l1.LINE_NUMBER
64549 , l1.COST_CCID source_3
64550 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
64551 , l1.ADJ_COST_CCID source_5
64552 , l1.COST_CLEARING_CCID source_6
64553 , l1.ADJ_COST_CLEARING_CCID source_7
64554 , l1.REVERSING_LINE_FLAG source_22
64555 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
64556 , l1.ENTERED_RAW_COST source_24
64557 , l1.ENTERED_CURRENCY_CODE source_25
64558 , l1.ACCT_RAW_COST source_26
64559 , l1.EXCHANGE_RATE_DATE source_27
64560 , l1.EXCHANGE_RATE source_28
64561 , l1.EXCHANGE_RATE_TYPE source_29
64562 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
64563 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
64564 , l1.LINE_NUMBER source_33
64565 , l1.LINE_TYPE source_34
64566 , fvl34.meaning source_34_meaning
64567 , l1.LINE_NUM_REVERSED source_35
64568 FROM xla_events_gt xet
64569 , PA_XLA_CDL_LINES_V l1
64570 , fnd_lookup_values fvl34
64571 WHERE xet.event_id between x_first_event_id and x_last_event_id
64572 and xet.event_date between p_pad_start_date and p_pad_end_date
64573 and xet.event_class_code = C_EVENT_CLASS_CODE
64574 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
64575 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
64576 AND fvl34.lookup_code(+) = l1.LINE_TYPE
64577 AND fvl34.view_application_id(+) = 275
64578 AND fvl34.language(+) = USERENV('LANG')
64579 ;
64580
64581 --
64582 BEGIN
64583 IF g_log_enabled THEN
64584 l_log_module := C_DEFAULT_MODULE||'.EventClass_116';
64585 END IF;
64586 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64587 trace
64588 (p_msg => 'BEGIN of EventClass_116'
64589 ,p_level => C_LEVEL_PROCEDURE
64590 ,p_module => l_log_module);
64591 END IF;
64592
64593 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64594 trace
64595 (p_msg => 'p_application_id = '||p_application_id||
64596 ' - p_base_ledger_id = '||p_base_ledger_id||
64597 ' - p_target_ledger_id = '||p_target_ledger_id||
64598 ' - p_language = '||p_language||
64599 ' - p_currency_code = '||p_currency_code||
64600 ' - p_sla_ledger_id = '||p_sla_ledger_id
64601 ,p_level => C_LEVEL_STATEMENT
64602 ,p_module => l_log_module);
64603 END IF;
64604 --
64605 -- initialze arrays
64606 --
64607 g_array_event.DELETE;
64608 l_rec_array_event := l_null_rec_array_event;
64609 --
64610 --------------------------------------
64611 -- 4262811 Initialze MPA Line Number
64612 --------------------------------------
64613 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
64614
64615 --
64616
64617 --
64618 OPEN header_cur;
64619 --
64620 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64621 trace
64622 (p_msg => 'SQL - FETCH header_cur'
64623 ,p_level => C_LEVEL_STATEMENT
64624 ,p_module => l_log_module);
64625 END IF;
64626 --
64627 LOOP
64628 FETCH header_cur BULK COLLECT INTO
64629 l_array_entity_id
64630 , l_array_legal_entity_id
64631 , l_array_entity_code
64632 , l_array_transaction_num
64633 , l_array_event_id
64634 , l_array_class_code
64635 , l_array_event_type
64636 , l_array_event_number
64637 , l_array_event_date
64638 , l_array_transaction_date
64639 , l_array_reference_num_1
64640 , l_array_reference_num_2
64641 , l_array_reference_num_3
64642 , l_array_reference_num_4
64643 , l_array_reference_char_1
64644 , l_array_reference_char_2
64645 , l_array_reference_char_3
64646 , l_array_reference_char_4
64647 , l_array_reference_date_1
64651 , l_array_event_created_by
64648 , l_array_reference_date_2
64649 , l_array_reference_date_3
64650 , l_array_reference_date_4
64652 , l_array_budgetary_control_flag
64653 , l_array_source_32
64654 , l_array_source_88
64655 LIMIT l_rows;
64656 --
64657 IF (C_LEVEL_EVENT >= g_log_level) THEN
64658 trace
64659 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
64660 ,p_level => C_LEVEL_EVENT
64661 ,p_module => l_log_module);
64662 END IF;
64663 --
64664 EXIT WHEN l_array_entity_id.COUNT = 0;
64665
64666 -- initialize arrays
64667 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
64668 XLA_AE_LINES_PKG.g_rec_lines := NULL;
64669
64670 --
64671 -- Bug 4458708
64672 --
64673 XLA_AE_LINES_PKG.g_LineNumber := 0;
64674
64675
64676 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
64677 g_last_hdr_idx := l_array_event_id.LAST;
64678 --
64679 -- loop for the headers. Each iteration is for each header extract row
64680 -- fetched in header cursor
64681 --
64682 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
64683
64684 --
64685 -- set event info as cache for other routines to refer event attributes
64686 --
64687 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
64688 (p_application_id => p_application_id
64689 ,p_primary_ledger_id => p_primary_ledger_id
64690 ,p_base_ledger_id => p_base_ledger_id
64691 ,p_target_ledger_id => p_target_ledger_id
64692 ,p_entity_id => l_array_entity_id(hdr_idx)
64693 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
64694 ,p_entity_code => l_array_entity_code(hdr_idx)
64695 ,p_transaction_num => l_array_transaction_num(hdr_idx)
64696 ,p_event_id => l_array_event_id(hdr_idx)
64697 ,p_event_class_code => l_array_class_code(hdr_idx)
64698 ,p_event_type_code => l_array_event_type(hdr_idx)
64699 ,p_event_number => l_array_event_number(hdr_idx)
64700 ,p_event_date => l_array_event_date(hdr_idx)
64701 ,p_transaction_date => l_array_transaction_date(hdr_idx)
64702 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
64703 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
64704 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
64705 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
64706 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
64707 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
64708 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
64709 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
64710 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
64711 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
64712 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
64713 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
64714 ,p_event_created_by => l_array_event_created_by(hdr_idx)
64715 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
64716
64717 --
64718 -- set the status of entry to C_VALID (0)
64719 --
64720 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
64721
64722 --
64723 -- initialize a row for ae header
64724 --
64725 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
64726
64727 l_event_id := l_array_event_id(hdr_idx);
64728
64729 --
64730 -- storing the hdr_idx for event. May be used by line cursor.
64731 --
64732 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
64733
64734 --
64735 -- store sources from header extract. This can be improved to
64736 -- store only those sources from header extract that may be used in lines
64737 --
64738
64739 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
64740 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
64741
64742 --
64743 -- initilaize the status of ae headers for diffrent balance types
64744 -- the status is initialised to C_NOT_CREATED (2)
64745 --
64746 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
64747 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
64748 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
64749
64750 --
64751 -- call api to validate and store accounting attributes for header
64752 --
64753
64754 ------------------------------------------------------------
64755 -- Accrual Reversal : to get date for Standard Source (NONE)
64756 ------------------------------------------------------------
64757 l_acc_rev_gl_date_source := NULL;
64758
64759 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
64760 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
64761
64762
64763 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
64764
64765 XLA_AE_HEADER_PKG.SetJeCategoryName;
64766
64767 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
64768 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
64769 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
64770 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
64771 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
64772
64773
64774 -- No header level analytical criteria
64775
64776 --
64780
64777 --accounting attribute enhancement, bug 3612931
64778 --
64779 l_trx_reversal_source := SUBSTR(NULL, 1,30);
64781 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
64782 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
64783
64784 xla_accounting_err_pkg.build_message
64785 (p_appli_s_name => 'XLA'
64786 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
64787 ,p_token_1 => 'ACCT_ATTR_NAME'
64788 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
64789 ,p_token_2 => 'PRODUCT_NAME'
64790 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
64791 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
64792 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
64793 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
64794
64795 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
64796 --
64797 -- following sets the accounting attributes needed to reverse
64798 -- accounting for a distributeion
64799 --
64800 xla_ae_lines_pkg.SetTrxReversalAttrs
64801 (p_event_id => l_event_id
64802 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
64803 ,p_trx_reversal_source => l_trx_reversal_source);
64804
64805 END IF;
64806
64807
64808 ----------------------------------------------------------------
64809 -- 4262811 - update the header statuses to invalid in need be
64810 ----------------------------------------------------------------
64811 --
64812 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
64813
64814
64815 -----------------------------------------------
64816 -- No accrual reversal for the event class/type
64817 -----------------------------------------------
64818 ----------------------------------------------------------------
64819
64820 --
64821 -- this ends the header loop iteration for one bulk fetch
64822 --
64823 END LOOP;
64824
64825 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
64826 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
64827
64828 --
64829 -- insert dummy rows into lines gt table that were created due to
64830 -- transaction reversals
64831 --
64832 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
64833 l_result := XLA_AE_LINES_PKG.InsertLines;
64834 END IF;
64835
64836 --
64837 -- reset the temp_line_num for each set of events fetched from header
64838 -- cursor rather than doing it for each new event in line cursor
64839 -- Bug 3939231
64840 --
64841 xla_ae_lines_pkg.g_temp_line_num := 0;
64842
64843
64844
64845 --
64846 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
64847 --
64848 --
64849 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64850
64851 trace
64852 (p_msg => 'SQL - FETCH line_cur'
64853 ,p_level => C_LEVEL_STATEMENT
64854 ,p_module => l_log_module);
64855
64856 END IF;
64857 --
64858 --
64859 LOOP
64860 --
64861 FETCH line_cur BULK COLLECT INTO
64862 l_array_entity_id
64863 , l_array_legal_entity_id
64864 , l_array_entity_code
64865 , l_array_transaction_num
64866 , l_array_event_id
64867 , l_array_class_code
64868 , l_array_event_type
64869 , l_array_event_number
64870 , l_array_event_date
64871 , l_array_transaction_date
64872 , l_array_reference_num_1
64873 , l_array_reference_num_2
64874 , l_array_reference_num_3
64875 , l_array_reference_num_4
64876 , l_array_reference_char_1
64877 , l_array_reference_char_2
64878 , l_array_reference_char_3
64879 , l_array_reference_char_4
64880 , l_array_reference_date_1
64881 , l_array_reference_date_2
64882 , l_array_reference_date_3
64883 , l_array_reference_date_4
64884 , l_array_event_created_by
64885 , l_array_budgetary_control_flag
64886 , l_array_extract_line_num
64887 , l_array_source_3
64888 , l_array_source_4
64889 , l_array_source_5
64890 , l_array_source_6
64891 , l_array_source_7
64892 , l_array_source_22
64893 , l_array_source_23
64894 , l_array_source_24
64895 , l_array_source_25
64896 , l_array_source_26
64897 , l_array_source_27
64898 , l_array_source_28
64899 , l_array_source_29
64900 , l_array_source_30
64901 , l_array_source_31
64902 , l_array_source_33
64903 , l_array_source_34
64904 , l_array_source_34_meaning
64905 , l_array_source_35
64906 LIMIT l_rows;
64907
64908 --
64909 IF (C_LEVEL_EVENT >= g_log_level) THEN
64910 trace
64911 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
64912 ,p_level => C_LEVEL_EVENT
64913 ,p_module => l_log_module);
64914 END IF;
64915 --
64916 EXIT WHEN l_array_entity_id.count = 0;
64917
64918 XLA_AE_LINES_PKG.g_rec_lines := null;
64919
64920 --
64921 -- Bug 4458708
64922 --
64923 XLA_AE_LINES_PKG.g_LineNumber := 0;
64924 --
64925 --
64926
64927 FOR Idx IN 1..l_array_event_id.count LOOP
64928 --
64929 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
64930 --
64931 l_event_id := l_array_event_id(idx); -- 5648433
64932
64933 --
64937 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
64934 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
64935 --
64936
64938 (g_array_event(l_event_id).array_value_num('header_index'))
64939 ,'N'
64940 ) <> 'Y'
64941 THEN
64942 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64943 trace
64944 (p_msg => 'Trancaction revesal option is not Y '
64945 ,p_level => C_LEVEL_STATEMENT
64946 ,p_module => l_log_module);
64947 END IF;
64948
64949 --
64950 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
64951 --
64952 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
64953 --
64954 -- set event info as cache for other routines to refer event attributes
64955 --
64956
64957 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
64958 l_previous_event_id := l_event_id;
64959
64960 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
64961 (p_application_id => p_application_id
64962 ,p_primary_ledger_id => p_primary_ledger_id
64963 ,p_base_ledger_id => p_base_ledger_id
64964 ,p_target_ledger_id => p_target_ledger_id
64965 ,p_entity_id => l_array_entity_id(Idx)
64966 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
64967 ,p_entity_code => l_array_entity_code(Idx)
64968 ,p_transaction_num => l_array_transaction_num(Idx)
64969 ,p_event_id => l_array_event_id(Idx)
64970 ,p_event_class_code => l_array_class_code(Idx)
64971 ,p_event_type_code => l_array_event_type(Idx)
64972 ,p_event_number => l_array_event_number(Idx)
64973 ,p_event_date => l_array_event_date(Idx)
64974 ,p_transaction_date => l_array_transaction_date(Idx)
64975 ,p_reference_num_1 => l_array_reference_num_1(Idx)
64976 ,p_reference_num_2 => l_array_reference_num_2(Idx)
64977 ,p_reference_num_3 => l_array_reference_num_3(Idx)
64978 ,p_reference_num_4 => l_array_reference_num_4(Idx)
64979 ,p_reference_char_1 => l_array_reference_char_1(Idx)
64980 ,p_reference_char_2 => l_array_reference_char_2(Idx)
64981 ,p_reference_char_3 => l_array_reference_char_3(Idx)
64982 ,p_reference_char_4 => l_array_reference_char_4(Idx)
64983 ,p_reference_date_1 => l_array_reference_date_1(Idx)
64984 ,p_reference_date_2 => l_array_reference_date_2(Idx)
64985 ,p_reference_date_3 => l_array_reference_date_3(Idx)
64986 ,p_reference_date_4 => l_array_reference_date_4(Idx)
64987 ,p_event_created_by => l_array_event_created_by(Idx)
64988 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
64989 --
64990 END IF;
64991
64992
64993
64994 --
64995 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
64996
64997 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
64998
64999 IF l_continue_with_lines THEN
65000 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
65001 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
65002
65003 xla_accounting_err_pkg.build_message
65004 (p_appli_s_name => 'XLA'
65005 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
65006 ,p_token_1 => 'LINE_NUMBER'
65007 ,p_value_1 => l_array_extract_line_num(Idx)
65008 ,p_token_2 => 'PRODUCT_NAME'
65009 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
65010 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
65011 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
65012 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
65013
65014 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
65015 --
65016 -- following sets the accounting attributes needed to reverse
65017 -- accounting for a distributeion
65018 --
65019
65020 --
65021 -- 5217187
65022 --
65023 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
65024 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
65025 g_array_event(l_event_id).array_value_num('header_index'));
65026 --
65027 --
65028
65029 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
65030 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
65031 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
65032 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
65033 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
65034 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
65035 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
65036 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
65037 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
65038 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
65039 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
65040 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
65041 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
65042 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
65043 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
65044 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
65048 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
65045 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
65046 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
65047 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
65049 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
65050 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
65051 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
65052 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
65053 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
65054 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
65055 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
65056 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
65057 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
65058 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
65059 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
65060 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
65061 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
65062 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
65063 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
65064 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
65065 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
65066 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
65067 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
65068 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
65069 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
65070 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
65071 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
65072 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
65073 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
65074 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
65075 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
65076 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
65077
65078
65079 xla_ae_lines_pkg.SetAcctReversalAttrs
65080 (p_event_id => l_event_id
65081 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
65082 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65083 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
65084 END IF;
65085
65086 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
65087 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
65088
65089 --
65090 AcctLineType_43 (
65091 p_application_id => p_application_id
65092 ,p_event_id => l_event_id
65093 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65094 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65095 ,p_actual_flag => l_actual_flag
65096 ,p_balance_type_code => l_balance_type_code
65097 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65098
65099 , p_source_3 => l_array_source_3(Idx)
65100 , p_source_4 => l_array_source_4(Idx)
65101 , p_source_5 => l_array_source_5(Idx)
65102 , p_source_6 => l_array_source_6(Idx)
65103 , p_source_22 => l_array_source_22(Idx)
65104 , p_source_23 => l_array_source_23(Idx)
65105 , p_source_24 => l_array_source_24(Idx)
65106 , p_source_25 => l_array_source_25(Idx)
65107 , p_source_26 => l_array_source_26(Idx)
65108 , p_source_27 => l_array_source_27(Idx)
65109 , p_source_28 => l_array_source_28(Idx)
65110 , p_source_29 => l_array_source_29(Idx)
65111 , p_source_30 => l_array_source_30(Idx)
65112 , p_source_31 => l_array_source_31(Idx)
65113 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
65114 , p_source_33 => l_array_source_33(Idx)
65115 , p_source_34 => l_array_source_34(Idx)
65116 , p_source_34_meaning => l_array_source_34_meaning(Idx)
65117 , p_source_35 => l_array_source_35(Idx)
65118 );
65119 If(l_balance_type_code = 'A') THEN
65120 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65121 END IF;
65122
65123 --
65124
65125
65126 --
65127 AcctLineType_57 (
65128 p_application_id => p_application_id
65129 ,p_event_id => l_event_id
65130 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65131 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65132 ,p_actual_flag => l_actual_flag
65133 ,p_balance_type_code => l_balance_type_code
65134 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65135
65136 , p_source_3 => l_array_source_3(Idx)
65137 , p_source_4 => l_array_source_4(Idx)
65138 , p_source_6 => l_array_source_6(Idx)
65139 , p_source_7 => l_array_source_7(Idx)
65140 , p_source_22 => l_array_source_22(Idx)
65141 , p_source_23 => l_array_source_23(Idx)
65142 , p_source_24 => l_array_source_24(Idx)
65143 , p_source_25 => l_array_source_25(Idx)
65144 , p_source_26 => l_array_source_26(Idx)
65145 , p_source_27 => l_array_source_27(Idx)
65146 , p_source_28 => l_array_source_28(Idx)
65147 , p_source_29 => l_array_source_29(Idx)
65148 , p_source_30 => l_array_source_30(Idx)
65149 , p_source_31 => l_array_source_31(Idx)
65150 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
65151 , p_source_33 => l_array_source_33(Idx)
65152 , p_source_34 => l_array_source_34(Idx)
65153 , p_source_34_meaning => l_array_source_34_meaning(Idx)
65154 , p_source_35 => l_array_source_35(Idx)
65155 );
65156 If(l_balance_type_code = 'A') THEN
65157 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65158 END IF;
65159
65163 -- or secondary ledger that has different currency with primary
65160 --
65161
65162 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
65164 -- or alc that is calculated by sla
65165 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
65166 (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'))
65167
65168 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
65169 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
65170 AND (l_actual_flag = 'A')) THEN
65171 XLA_AE_LINES_PKG.CreateGainOrLossLines(
65172 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
65173 ,p_application_id => p_application_id
65174 ,p_amb_context_code => 'DEFAULT'
65175 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
65176 ,p_event_class_code => C_EVENT_CLASS_CODE
65177 ,p_event_type_code => C_EVENT_TYPE_CODE
65178
65179 ,p_gain_ccid => -1
65180 ,p_loss_ccid => -1
65181
65182 ,p_actual_flag => l_actual_flag
65183 ,p_enc_flag => null
65184 ,p_actual_g_l_ref => l_actual_gain_loss_ref
65185 ,p_enc_g_l_ref => null
65186 );
65187 END IF;
65188 END IF;
65189 END IF;
65190
65191 ELSE
65192 --
65193 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
65194 --
65195 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65196 trace
65197 (p_msg => 'Trancaction revesal option is Y'
65198 ,p_level => C_LEVEL_STATEMENT
65199 ,p_module => l_log_module);
65200 END IF;
65201 END IF;
65202
65203 END LOOP;
65204 l_result := XLA_AE_LINES_PKG.InsertLines ;
65205 end loop;
65206 close line_cur;
65207
65208
65209 --
65210 -- insert headers into xla_ae_headers_gt table
65211 --
65212 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
65213
65214 -- insert into errors table here.
65215
65216 END LOOP;
65217
65218 --
65219 -- 4865292
65220 --
65221 -- Compare g_hdr_extract_count with event count in
65222 -- CreateHeadersAndLines.
65223 --
65224 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
65225
65226 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65227 trace (p_msg => '# rows extracted from header extract objects '
65228 || ' (running total): '
65229 || g_hdr_extract_count
65230 ,p_level => C_LEVEL_STATEMENT
65231 ,p_module => l_log_module);
65232 END IF;
65233
65234 CLOSE header_cur;
65235 --
65236
65237 --
65238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65239 trace
65240 (p_msg => 'END of EventClass_116'
65241 ,p_level => C_LEVEL_PROCEDURE
65242 ,p_module => l_log_module);
65243 END IF;
65244 --
65245 RETURN l_result;
65246 EXCEPTION
65247 WHEN xla_exceptions_pkg.application_exception THEN
65248
65249 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
65250
65251
65252 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
65253
65254 RAISE;
65255 WHEN OTHERS THEN
65256 xla_exceptions_pkg.raise_message
65257 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_116');
65258 END EventClass_116;
65259 --
65260
65261 ---------------------------------------
65262 --
65263 -- PRIVATE PROCEDURE
65264 -- insert_sources_117
65265 --
65266 ----------------------------------------
65267 --
65268 PROCEDURE insert_sources_117(
65269 p_target_ledger_id IN NUMBER
65270 , p_language IN VARCHAR2
65271 , p_sla_ledger_id IN NUMBER
65272 , p_pad_start_date IN DATE
65273 , p_pad_end_date IN DATE
65274 )
65275 IS
65276
65277 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ_ALL';
65278 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ';
65279 p_apps_owner VARCHAR2(30);
65280 l_log_module VARCHAR2(240);
65281 BEGIN
65282 IF g_log_enabled THEN
65283 l_log_module := C_DEFAULT_MODULE||'.insert_sources_117';
65284 END IF;
65285 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65286
65287 trace
65288 (p_msg => 'BEGIN of insert_sources_117'
65289 ,p_level => C_LEVEL_PROCEDURE
65290 ,p_module => l_log_module);
65291
65292 END IF;
65293
65294 -- select APPS owner
65295 SELECT oracle_username
65296 INTO p_apps_owner
65297 FROM fnd_oracle_userid
65298 WHERE read_only_flag = 'U'
65299 ;
65300
65301 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65302 trace
65303 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
65304 ' - p_language = '||p_language||
65305 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
65306 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
65307 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
65308 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
65309 ,p_level => C_LEVEL_STATEMENT
65310 ,p_module => l_log_module);
65311 END IF;
65312
65313
65314 --
65315 INSERT INTO xla_diag_sources --hdr2
65319 , sla_ledger_id
65316 (
65317 event_id
65318 , ledger_id
65320 , description_language
65321 , object_name
65322 , object_type_code
65323 , line_number
65324 , source_application_id
65325 , source_type_code
65326 , source_code
65327 , source_value
65328 , source_meaning
65329 , created_by
65330 , creation_date
65331 , last_update_date
65332 , last_updated_by
65333 , last_update_login
65334 , program_update_date
65335 , program_application_id
65336 , program_id
65337 , request_id
65338 )
65339 SELECT
65340 event_id
65341 , p_target_ledger_id
65342 , p_sla_ledger_id
65343 , p_language
65344 , object_name
65345 , object_type_code
65346 , line_number
65347 , source_application_id
65348 , source_type_code
65349 , source_code
65350 , SUBSTR(source_value ,1,1996)
65351 , SUBSTR(source_meaning ,1,200)
65352 , xla_environment_pkg.g_Usr_Id
65353 , TRUNC(SYSDATE)
65354 , TRUNC(SYSDATE)
65355 , xla_environment_pkg.g_Usr_Id
65356 , xla_environment_pkg.g_Login_Id
65357 , TRUNC(SYSDATE)
65358 , xla_environment_pkg.g_Prog_Appl_Id
65359 , xla_environment_pkg.g_Prog_Id
65360 , xla_environment_pkg.g_Req_Id
65361 FROM (
65362 SELECT xet.event_id event_id
65363 , 0 line_number
65364 , CASE r
65365 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
65366 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
65367
65368 ELSE null
65369 END object_name
65370 , CASE r
65371 WHEN 1 THEN 'HEADER'
65372 WHEN 2 THEN 'HEADER'
65373
65374 ELSE null
65375 END object_type_code
65376 , CASE r
65377 WHEN 1 THEN '275'
65378 WHEN 2 THEN '275'
65379
65380 ELSE null
65381 END source_application_id
65382 , 'S' source_type_code
65383 , CASE r
65384 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
65385 WHEN 2 THEN 'GL_DATE'
65386
65387 ELSE null
65388 END source_code
65389 , CASE r
65390 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
65391 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
65392
65393 ELSE null
65394 END source_value
65395 , null source_meaning
65396 FROM xla_events_gt xet
65397 , PA_XLA_EXP_HEADER_V h2
65398 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
65399 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
65400 AND xet.event_class_code = C_EVENT_CLASS_CODE
65401 AND h2.event_id = xet.event_id
65402
65403 )
65404 ;
65405 --
65406 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65407
65408 trace
65409 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
65410 ,p_level => C_LEVEL_STATEMENT
65411 ,p_module => l_log_module);
65412
65413 END IF;
65414 --
65415
65416
65417
65418 --
65419 INSERT INTO xla_diag_sources --line2
65420 (
65421 event_id
65422 , ledger_id
65423 , sla_ledger_id
65424 , description_language
65425 , object_name
65426 , object_type_code
65427 , line_number
65428 , source_application_id
65429 , source_type_code
65430 , source_code
65431 , source_value
65432 , source_meaning
65433 , created_by
65434 , creation_date
65435 , last_update_date
65436 , last_updated_by
65437 , last_update_login
65438 , program_update_date
65439 , program_application_id
65440 , program_id
65441 , request_id
65442 )
65443 SELECT event_id
65444 , p_target_ledger_id
65445 , p_sla_ledger_id
65446 , p_language
65447 , object_name
65448 , object_type_code
65449 , line_number
65450 , source_application_id
65451 , source_type_code
65452 , source_code
65453 , SUBSTR(source_value,1,1996)
65454 , SUBSTR(source_meaning ,1,200)
65455 , xla_environment_pkg.g_Usr_Id
65456 , TRUNC(SYSDATE)
65457 , TRUNC(SYSDATE)
65458 , xla_environment_pkg.g_Usr_Id
65459 , xla_environment_pkg.g_Login_Id
65460 , TRUNC(SYSDATE)
65461 , xla_environment_pkg.g_Prog_Appl_Id
65462 , xla_environment_pkg.g_Prog_Id
65463 , xla_environment_pkg.g_Req_Id
65464 FROM (
65465 SELECT xet.event_id event_id
65466 , l1.line_number line_number
65467 , CASE r
65468 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
65469 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
65470 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
65471 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
65472 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
65473 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
65474 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
65475 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
65476 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
65480 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
65477 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
65478 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
65479 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
65481 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
65482 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
65483 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
65484 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
65485 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
65486
65487 ELSE null
65488 END object_name
65489 , CASE r
65490 WHEN 1 THEN 'LINE'
65491 WHEN 2 THEN 'LINE'
65492 WHEN 3 THEN 'LINE'
65493 WHEN 4 THEN 'LINE'
65494 WHEN 5 THEN 'LINE'
65495 WHEN 6 THEN 'LINE'
65496 WHEN 7 THEN 'LINE'
65497 WHEN 8 THEN 'LINE'
65498 WHEN 9 THEN 'LINE'
65499 WHEN 10 THEN 'LINE'
65500 WHEN 11 THEN 'LINE'
65501 WHEN 12 THEN 'LINE'
65502 WHEN 13 THEN 'LINE'
65503 WHEN 14 THEN 'LINE'
65504 WHEN 15 THEN 'LINE'
65505 WHEN 16 THEN 'LINE'
65506 WHEN 17 THEN 'LINE'
65507 WHEN 18 THEN 'LINE'
65508
65509 ELSE null
65510 END object_type_code
65511 , CASE r
65512 WHEN 1 THEN '275'
65513 WHEN 2 THEN '275'
65514 WHEN 3 THEN '275'
65515 WHEN 4 THEN '275'
65516 WHEN 5 THEN '275'
65517 WHEN 6 THEN '275'
65518 WHEN 7 THEN '275'
65519 WHEN 8 THEN '275'
65520 WHEN 9 THEN '275'
65521 WHEN 10 THEN '275'
65522 WHEN 11 THEN '275'
65523 WHEN 12 THEN '275'
65524 WHEN 13 THEN '275'
65525 WHEN 14 THEN '275'
65526 WHEN 15 THEN '275'
65527 WHEN 16 THEN '275'
65528 WHEN 17 THEN '275'
65529 WHEN 18 THEN '275'
65530
65531 ELSE null
65532 END source_application_id
65533 , 'S' source_type_code
65534 , CASE r
65535 WHEN 1 THEN 'COST_CCID'
65536 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
65537 WHEN 3 THEN 'ADJ_COST_CCID'
65538 WHEN 4 THEN 'COST_CLEARING_CCID'
65539 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
65540 WHEN 6 THEN 'REVERSING_LINE_FLAG'
65541 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
65542 WHEN 8 THEN 'ENTERED_RAW_COST'
65543 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
65544 WHEN 10 THEN 'ACCT_RAW_COST'
65545 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
65546 WHEN 12 THEN 'EXCHANGE_RATE'
65547 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
65548 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
65549 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
65550 WHEN 16 THEN 'LINE_NUMBER'
65551 WHEN 17 THEN 'LINE_TYPE'
65552 WHEN 18 THEN 'LINE_NUM_REVERSED'
65553
65554 ELSE null
65555 END source_code
65556 , CASE r
65557 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
65558 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
65559 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
65560 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
65561 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
65562 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
65563 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
65564 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
65565 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
65566 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
65567 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
65568 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
65569 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
65570 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
65571 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
65572 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
65573 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
65574 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
65575
65576 ELSE null
65577 END source_value
65578 , CASE r
65579 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
65580 103371
65581 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
65582 ,'ALLOW_OVERRIDE_CCID_FLAG'
65583 ,'S'
65584 ,275)
65585 WHEN 17 THEN fvl34.meaning
65586
65587 ELSE null
65588 END source_meaning
65589 FROM xla_events_gt xet
65590 , PA_XLA_CDL_LINES_V l1
65591 , fnd_lookup_values fvl34
65592 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
65593 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
65594 AND xet.event_class_code = C_EVENT_CLASS_CODE
65595 AND l1.event_id = xet.event_id
65596 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
65597 AND fvl34.lookup_code(+) = l1.LINE_TYPE
65598 AND fvl34.view_application_id(+) = 275
65602 ;
65599 AND fvl34.language(+) = USERENV('LANG')
65600
65601 )
65603 --
65604 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65605
65606 trace
65607 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
65608 ,p_level => C_LEVEL_STATEMENT
65609 ,p_module => l_log_module);
65610
65611 END IF;
65612
65613
65614 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65615 trace
65616 (p_msg => 'END of insert_sources_117'
65617 ,p_level => C_LEVEL_PROCEDURE
65618 ,p_module => l_log_module);
65619 END IF;
65620 EXCEPTION
65621 WHEN xla_exceptions_pkg.application_exception THEN
65622 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
65623 trace
65624 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
65625 ,p_level => C_LEVEL_EXCEPTION
65626 ,p_module => l_log_module);
65627 END IF;
65628 RAISE;
65629 WHEN OTHERS THEN
65630 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
65631 trace
65632 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
65633 ,p_level => C_LEVEL_EXCEPTION
65634 ,p_module => l_log_module);
65635 END IF;
65636 xla_exceptions_pkg.raise_message
65637 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_117');
65638 END insert_sources_117;
65639 --
65640
65641 ---------------------------------------
65642 --
65643 -- PRIVATE FUNCTION
65644 -- EventClass_117
65645 --
65646 ----------------------------------------
65647 --
65648 FUNCTION EventClass_117
65649 (p_application_id IN NUMBER
65650 ,p_base_ledger_id IN NUMBER
65651 ,p_target_ledger_id IN NUMBER
65652 ,p_language IN VARCHAR2
65653 ,p_currency_code IN VARCHAR2
65654 ,p_sla_ledger_id IN NUMBER
65655 ,p_pad_start_date IN DATE
65656 ,p_pad_end_date IN DATE
65657 ,p_primary_ledger_id IN NUMBER)
65658 RETURN BOOLEAN IS
65659 --
65660 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ_ALL';
65661 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ';
65662
65663 l_calculate_acctd_flag VARCHAR2(1) :='N';
65664 l_calculate_g_l_flag VARCHAR2(1) :='N';
65665 --
65666 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65667 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65668 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65669 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65670 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65671 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65672 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65673 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65674 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65675 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65676 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65677 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65678 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65679 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65680 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65681 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65682 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65683 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65684 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65685 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65686 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65687 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65688 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
65689 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65690
65691 l_event_id NUMBER;
65692 l_previous_event_id NUMBER;
65693 l_first_event_id NUMBER;
65694 l_last_event_id NUMBER;
65695
65696 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
65697 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
65698 --
65699 --
65700 l_result BOOLEAN := TRUE;
65701 l_rows NUMBER := 1000;
65702 l_event_type_name VARCHAR2(80) := 'All';
65703 l_event_class_name VARCHAR2(80) := 'Labor Cost Adjustment';
65704 l_description VARCHAR2(4000);
65705 l_transaction_reversal NUMBER;
65706 l_ae_header_id NUMBER;
65707 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
65708 l_log_module VARCHAR2(240);
65709 --
65710 l_acct_reversal_source VARCHAR2(30);
65711 l_trx_reversal_source VARCHAR2(30);
65712
65713 l_continue_with_lines BOOLEAN := TRUE;
65714 --
65715 l_acc_rev_gl_date_source DATE; -- 4262811
65716 --
65717 type t_array_event_id is table of number index by binary_integer;
65718
65719 l_rec_array_event t_rec_array_event;
65720 l_null_rec_array_event t_rec_array_event;
65721 l_array_ae_header_id xla_number_array_type;
65722 l_actual_flag VARCHAR2(1) := NULL;
65723 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
65727 --
65724 l_balance_type_code VARCHAR2(1) :=NULL;
65725 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
65726
65728 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
65729 --
65730
65731 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
65732 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
65733
65734 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
65735 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
65736 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
65737 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
65738 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
65739 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
65740 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
65741 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
65742 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
65743 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
65744 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
65745 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
65746 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
65747 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
65748 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
65749 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
65750 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
65751 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
65752
65753 l_array_source_32 t_array_source_32;
65754 l_array_source_88 t_array_source_88;
65755
65756 l_array_source_3 t_array_source_3;
65757 l_array_source_4 t_array_source_4;
65758 l_array_source_5 t_array_source_5;
65759 l_array_source_6 t_array_source_6;
65760 l_array_source_7 t_array_source_7;
65761 l_array_source_22 t_array_source_22;
65762 l_array_source_23 t_array_source_23;
65763 l_array_source_24 t_array_source_24;
65764 l_array_source_25 t_array_source_25;
65765 l_array_source_26 t_array_source_26;
65766 l_array_source_27 t_array_source_27;
65767 l_array_source_28 t_array_source_28;
65768 l_array_source_29 t_array_source_29;
65769 l_array_source_30 t_array_source_30;
65770 l_array_source_31 t_array_source_31;
65771 l_array_source_33 t_array_source_33;
65772 l_array_source_34 t_array_source_34;
65773 l_array_source_34_meaning t_array_lookup_meaning;
65774 l_array_source_35 t_array_source_35;
65775
65776 --
65777 CURSOR header_cur
65778 IS
65779 SELECT /*+ leading(xet) cardinality(xet,1) */
65780 -- Event Class Code: LABOR_COST_ADJ
65781 xet.entity_id
65782 ,xet.legal_entity_id
65783 ,xet.entity_code
65784 ,xet.transaction_number
65785 ,xet.event_id
65786 ,xet.event_class_code
65787 ,xet.event_type_code
65788 ,xet.event_number
65789 ,xet.event_date
65790 ,xet.transaction_date
65791 ,xet.reference_num_1
65792 ,xet.reference_num_2
65793 ,xet.reference_num_3
65794 ,xet.reference_num_4
65795 ,xet.reference_char_1
65796 ,xet.reference_char_2
65797 ,xet.reference_char_3
65798 ,xet.reference_char_4
65799 ,xet.reference_date_1
65800 ,xet.reference_date_2
65801 ,xet.reference_date_3
65802 ,xet.reference_date_4
65803 ,xet.event_created_by
65804 ,xet.budgetary_control_flag
65805 , h2.EXPENDITURE_ITEM_ID source_32
65806 , h2.GL_DATE source_88
65807 FROM xla_events_gt xet
65808 , PA_XLA_EXP_HEADER_V h2
65809 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
65810 and xet.event_class_code = C_EVENT_CLASS_CODE
65811 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
65812
65813 ORDER BY event_id
65814 ;
65815
65816
65817 --
65818 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
65819 IS
65820 SELECT /*+ leading(xet) cardinality(xet,1) */
65821 -- Event Class Code: LABOR_COST_ADJ
65822 xet.entity_id
65823 ,xet.legal_entity_id
65824 ,xet.entity_code
65825 ,xet.transaction_number
65826 ,xet.event_id
65827 ,xet.event_class_code
65828 ,xet.event_type_code
65829 ,xet.event_number
65830 ,xet.event_date
65831 ,xet.transaction_date
65832 ,xet.reference_num_1
65833 ,xet.reference_num_2
65834 ,xet.reference_num_3
65835 ,xet.reference_num_4
65836 ,xet.reference_char_1
65837 ,xet.reference_char_2
65838 ,xet.reference_char_3
65839 ,xet.reference_char_4
65840 ,xet.reference_date_1
65841 ,xet.reference_date_2
65842 ,xet.reference_date_3
65843 ,xet.reference_date_4
65844 ,xet.event_created_by
65845 ,xet.budgetary_control_flag
65846 , l1.LINE_NUMBER
65847 , l1.COST_CCID source_3
65848 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
65849 , l1.ADJ_COST_CCID source_5
65850 , l1.COST_CLEARING_CCID source_6
65851 , l1.ADJ_COST_CLEARING_CCID source_7
65852 , l1.REVERSING_LINE_FLAG source_22
65853 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
65857 , l1.EXCHANGE_RATE_DATE source_27
65854 , l1.ENTERED_RAW_COST source_24
65855 , l1.ENTERED_CURRENCY_CODE source_25
65856 , l1.ACCT_RAW_COST source_26
65858 , l1.EXCHANGE_RATE source_28
65859 , l1.EXCHANGE_RATE_TYPE source_29
65860 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
65861 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
65862 , l1.LINE_NUMBER source_33
65863 , l1.LINE_TYPE source_34
65864 , fvl34.meaning source_34_meaning
65865 , l1.LINE_NUM_REVERSED source_35
65866 FROM xla_events_gt xet
65867 , PA_XLA_CDL_LINES_V l1
65868 , fnd_lookup_values fvl34
65869 WHERE xet.event_id between x_first_event_id and x_last_event_id
65870 and xet.event_date between p_pad_start_date and p_pad_end_date
65871 and xet.event_class_code = C_EVENT_CLASS_CODE
65872 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
65873 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
65874 AND fvl34.lookup_code(+) = l1.LINE_TYPE
65875 AND fvl34.view_application_id(+) = 275
65876 AND fvl34.language(+) = USERENV('LANG')
65877 ;
65878
65879 --
65880 BEGIN
65881 IF g_log_enabled THEN
65882 l_log_module := C_DEFAULT_MODULE||'.EventClass_117';
65883 END IF;
65884 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65885 trace
65886 (p_msg => 'BEGIN of EventClass_117'
65887 ,p_level => C_LEVEL_PROCEDURE
65888 ,p_module => l_log_module);
65889 END IF;
65890
65891 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65892 trace
65893 (p_msg => 'p_application_id = '||p_application_id||
65894 ' - p_base_ledger_id = '||p_base_ledger_id||
65895 ' - p_target_ledger_id = '||p_target_ledger_id||
65896 ' - p_language = '||p_language||
65897 ' - p_currency_code = '||p_currency_code||
65898 ' - p_sla_ledger_id = '||p_sla_ledger_id
65899 ,p_level => C_LEVEL_STATEMENT
65900 ,p_module => l_log_module);
65901 END IF;
65902 --
65903 -- initialze arrays
65904 --
65905 g_array_event.DELETE;
65906 l_rec_array_event := l_null_rec_array_event;
65907 --
65908 --------------------------------------
65909 -- 4262811 Initialze MPA Line Number
65910 --------------------------------------
65911 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
65912
65913 --
65914
65915 --
65916 OPEN header_cur;
65917 --
65918 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65919 trace
65920 (p_msg => 'SQL - FETCH header_cur'
65921 ,p_level => C_LEVEL_STATEMENT
65922 ,p_module => l_log_module);
65923 END IF;
65924 --
65925 LOOP
65926 FETCH header_cur BULK COLLECT INTO
65927 l_array_entity_id
65928 , l_array_legal_entity_id
65929 , l_array_entity_code
65930 , l_array_transaction_num
65931 , l_array_event_id
65932 , l_array_class_code
65933 , l_array_event_type
65934 , l_array_event_number
65935 , l_array_event_date
65936 , l_array_transaction_date
65937 , l_array_reference_num_1
65938 , l_array_reference_num_2
65939 , l_array_reference_num_3
65940 , l_array_reference_num_4
65941 , l_array_reference_char_1
65942 , l_array_reference_char_2
65943 , l_array_reference_char_3
65944 , l_array_reference_char_4
65945 , l_array_reference_date_1
65946 , l_array_reference_date_2
65947 , l_array_reference_date_3
65948 , l_array_reference_date_4
65949 , l_array_event_created_by
65950 , l_array_budgetary_control_flag
65951 , l_array_source_32
65952 , l_array_source_88
65953 LIMIT l_rows;
65954 --
65955 IF (C_LEVEL_EVENT >= g_log_level) THEN
65956 trace
65957 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
65958 ,p_level => C_LEVEL_EVENT
65959 ,p_module => l_log_module);
65960 END IF;
65961 --
65962 EXIT WHEN l_array_entity_id.COUNT = 0;
65963
65964 -- initialize arrays
65965 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
65966 XLA_AE_LINES_PKG.g_rec_lines := NULL;
65967
65968 --
65969 -- Bug 4458708
65970 --
65971 XLA_AE_LINES_PKG.g_LineNumber := 0;
65972
65973
65974 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
65975 g_last_hdr_idx := l_array_event_id.LAST;
65976 --
65977 -- loop for the headers. Each iteration is for each header extract row
65978 -- fetched in header cursor
65979 --
65980 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
65981
65982 --
65983 -- set event info as cache for other routines to refer event attributes
65984 --
65985 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
65986 (p_application_id => p_application_id
65987 ,p_primary_ledger_id => p_primary_ledger_id
65988 ,p_base_ledger_id => p_base_ledger_id
65989 ,p_target_ledger_id => p_target_ledger_id
65990 ,p_entity_id => l_array_entity_id(hdr_idx)
65991 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
65992 ,p_entity_code => l_array_entity_code(hdr_idx)
65993 ,p_transaction_num => l_array_transaction_num(hdr_idx)
65994 ,p_event_id => l_array_event_id(hdr_idx)
65995 ,p_event_class_code => l_array_class_code(hdr_idx)
65996 ,p_event_type_code => l_array_event_type(hdr_idx)
65997 ,p_event_number => l_array_event_number(hdr_idx)
65998 ,p_event_date => l_array_event_date(hdr_idx)
65999 ,p_transaction_date => l_array_transaction_date(hdr_idx)
66000 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
66004 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
66001 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
66002 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
66003 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
66005 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
66006 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
66007 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
66008 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
66009 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
66010 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
66011 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
66012 ,p_event_created_by => l_array_event_created_by(hdr_idx)
66013 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
66014
66015 --
66016 -- set the status of entry to C_VALID (0)
66017 --
66018 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
66019
66020 --
66021 -- initialize a row for ae header
66022 --
66023 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
66024
66025 l_event_id := l_array_event_id(hdr_idx);
66026
66027 --
66028 -- storing the hdr_idx for event. May be used by line cursor.
66029 --
66030 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
66031
66032 --
66033 -- store sources from header extract. This can be improved to
66034 -- store only those sources from header extract that may be used in lines
66035 --
66036
66037 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
66038 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
66039
66040 --
66041 -- initilaize the status of ae headers for diffrent balance types
66042 -- the status is initialised to C_NOT_CREATED (2)
66043 --
66044 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
66045 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
66046 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
66047
66048 --
66049 -- call api to validate and store accounting attributes for header
66050 --
66051
66052 ------------------------------------------------------------
66053 -- Accrual Reversal : to get date for Standard Source (NONE)
66054 ------------------------------------------------------------
66055 l_acc_rev_gl_date_source := NULL;
66056
66057 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
66058 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
66059
66060
66061 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
66062
66063 XLA_AE_HEADER_PKG.SetJeCategoryName;
66064
66065 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
66066 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
66067 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
66068 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
66069 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
66070
66071
66072 -- No header level analytical criteria
66073
66074 --
66075 --accounting attribute enhancement, bug 3612931
66076 --
66077 l_trx_reversal_source := SUBSTR(NULL, 1,30);
66078
66079 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
66080 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
66081
66082 xla_accounting_err_pkg.build_message
66083 (p_appli_s_name => 'XLA'
66084 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
66085 ,p_token_1 => 'ACCT_ATTR_NAME'
66086 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
66087 ,p_token_2 => 'PRODUCT_NAME'
66088 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
66089 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
66090 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
66091 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
66092
66093 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
66094 --
66095 -- following sets the accounting attributes needed to reverse
66096 -- accounting for a distributeion
66097 --
66098 xla_ae_lines_pkg.SetTrxReversalAttrs
66099 (p_event_id => l_event_id
66100 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
66101 ,p_trx_reversal_source => l_trx_reversal_source);
66102
66103 END IF;
66104
66105
66106 ----------------------------------------------------------------
66107 -- 4262811 - update the header statuses to invalid in need be
66108 ----------------------------------------------------------------
66109 --
66110 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
66111
66112
66113 -----------------------------------------------
66114 -- No accrual reversal for the event class/type
66115 -----------------------------------------------
66116 ----------------------------------------------------------------
66117
66118 --
66119 -- this ends the header loop iteration for one bulk fetch
66120 --
66121 END LOOP;
66122
66123 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
66124 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
66125
66126 --
66127 -- insert dummy rows into lines gt table that were created due to
66131 l_result := XLA_AE_LINES_PKG.InsertLines;
66128 -- transaction reversals
66129 --
66130 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
66132 END IF;
66133
66134 --
66135 -- reset the temp_line_num for each set of events fetched from header
66136 -- cursor rather than doing it for each new event in line cursor
66137 -- Bug 3939231
66138 --
66139 xla_ae_lines_pkg.g_temp_line_num := 0;
66140
66141
66142
66143 --
66144 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
66145 --
66146 --
66147 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66148
66149 trace
66150 (p_msg => 'SQL - FETCH line_cur'
66151 ,p_level => C_LEVEL_STATEMENT
66152 ,p_module => l_log_module);
66153
66154 END IF;
66155 --
66156 --
66157 LOOP
66158 --
66159 FETCH line_cur BULK COLLECT INTO
66160 l_array_entity_id
66161 , l_array_legal_entity_id
66162 , l_array_entity_code
66163 , l_array_transaction_num
66164 , l_array_event_id
66165 , l_array_class_code
66166 , l_array_event_type
66167 , l_array_event_number
66168 , l_array_event_date
66169 , l_array_transaction_date
66170 , l_array_reference_num_1
66171 , l_array_reference_num_2
66172 , l_array_reference_num_3
66173 , l_array_reference_num_4
66174 , l_array_reference_char_1
66175 , l_array_reference_char_2
66176 , l_array_reference_char_3
66177 , l_array_reference_char_4
66178 , l_array_reference_date_1
66179 , l_array_reference_date_2
66180 , l_array_reference_date_3
66181 , l_array_reference_date_4
66182 , l_array_event_created_by
66183 , l_array_budgetary_control_flag
66184 , l_array_extract_line_num
66185 , l_array_source_3
66186 , l_array_source_4
66187 , l_array_source_5
66188 , l_array_source_6
66189 , l_array_source_7
66190 , l_array_source_22
66191 , l_array_source_23
66192 , l_array_source_24
66193 , l_array_source_25
66194 , l_array_source_26
66195 , l_array_source_27
66196 , l_array_source_28
66197 , l_array_source_29
66198 , l_array_source_30
66199 , l_array_source_31
66200 , l_array_source_33
66201 , l_array_source_34
66202 , l_array_source_34_meaning
66203 , l_array_source_35
66204 LIMIT l_rows;
66205
66206 --
66207 IF (C_LEVEL_EVENT >= g_log_level) THEN
66208 trace
66209 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
66210 ,p_level => C_LEVEL_EVENT
66211 ,p_module => l_log_module);
66212 END IF;
66213 --
66214 EXIT WHEN l_array_entity_id.count = 0;
66215
66216 XLA_AE_LINES_PKG.g_rec_lines := null;
66217
66218 --
66219 -- Bug 4458708
66220 --
66221 XLA_AE_LINES_PKG.g_LineNumber := 0;
66222 --
66223 --
66224
66225 FOR Idx IN 1..l_array_event_id.count LOOP
66226 --
66227 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
66228 --
66229 l_event_id := l_array_event_id(idx); -- 5648433
66230
66231 --
66232 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
66233 --
66234
66235 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
66236 (g_array_event(l_event_id).array_value_num('header_index'))
66237 ,'N'
66238 ) <> 'Y'
66239 THEN
66240 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66241 trace
66242 (p_msg => 'Trancaction revesal option is not Y '
66243 ,p_level => C_LEVEL_STATEMENT
66244 ,p_module => l_log_module);
66245 END IF;
66246
66247 --
66248 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
66249 --
66250 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
66251 --
66252 -- set event info as cache for other routines to refer event attributes
66253 --
66254
66255 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
66256 l_previous_event_id := l_event_id;
66257
66258 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
66259 (p_application_id => p_application_id
66260 ,p_primary_ledger_id => p_primary_ledger_id
66261 ,p_base_ledger_id => p_base_ledger_id
66262 ,p_target_ledger_id => p_target_ledger_id
66263 ,p_entity_id => l_array_entity_id(Idx)
66264 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
66265 ,p_entity_code => l_array_entity_code(Idx)
66266 ,p_transaction_num => l_array_transaction_num(Idx)
66267 ,p_event_id => l_array_event_id(Idx)
66268 ,p_event_class_code => l_array_class_code(Idx)
66269 ,p_event_type_code => l_array_event_type(Idx)
66270 ,p_event_number => l_array_event_number(Idx)
66271 ,p_event_date => l_array_event_date(Idx)
66272 ,p_transaction_date => l_array_transaction_date(Idx)
66273 ,p_reference_num_1 => l_array_reference_num_1(Idx)
66274 ,p_reference_num_2 => l_array_reference_num_2(Idx)
66275 ,p_reference_num_3 => l_array_reference_num_3(Idx)
66276 ,p_reference_num_4 => l_array_reference_num_4(Idx)
66277 ,p_reference_char_1 => l_array_reference_char_1(Idx)
66278 ,p_reference_char_2 => l_array_reference_char_2(Idx)
66279 ,p_reference_char_3 => l_array_reference_char_3(Idx)
66283 ,p_reference_date_3 => l_array_reference_date_3(Idx)
66280 ,p_reference_char_4 => l_array_reference_char_4(Idx)
66281 ,p_reference_date_1 => l_array_reference_date_1(Idx)
66282 ,p_reference_date_2 => l_array_reference_date_2(Idx)
66284 ,p_reference_date_4 => l_array_reference_date_4(Idx)
66285 ,p_event_created_by => l_array_event_created_by(Idx)
66286 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
66287 --
66288 END IF;
66289
66290
66291
66292 --
66293 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
66294
66295 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
66296
66297 IF l_continue_with_lines THEN
66298 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
66299 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
66300
66301 xla_accounting_err_pkg.build_message
66302 (p_appli_s_name => 'XLA'
66303 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
66304 ,p_token_1 => 'LINE_NUMBER'
66305 ,p_value_1 => l_array_extract_line_num(Idx)
66306 ,p_token_2 => 'PRODUCT_NAME'
66307 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
66308 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
66309 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
66310 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
66311
66312 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
66313 --
66314 -- following sets the accounting attributes needed to reverse
66315 -- accounting for a distributeion
66316 --
66317
66318 --
66319 -- 5217187
66320 --
66321 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
66322 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
66323 g_array_event(l_event_id).array_value_num('header_index'));
66324 --
66325 --
66326
66327 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
66328 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
66329 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
66330 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
66331 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
66332 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
66333 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
66334 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
66335 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
66336 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
66337 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
66338 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
66339 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
66340 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
66341 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
66342 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
66343 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
66344 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
66345 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
66346 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
66347 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
66348 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
66349 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
66350 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
66351 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
66352 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
66353 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
66354 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
66355 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
66356 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
66357 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
66358 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
66359 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
66360 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
66364 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
66361 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
66362 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
66363 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
66365 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
66366 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
66367 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
66368 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
66369 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
66370 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
66371 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
66372 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
66373 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
66374 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
66375
66376
66377 xla_ae_lines_pkg.SetAcctReversalAttrs
66378 (p_event_id => l_event_id
66379 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
66380 ,p_calculate_acctd_flag => l_calculate_acctd_flag
66381 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
66382 END IF;
66383
66384 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
66385 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
66386
66387 --
66388 AcctLineType_51 (
66389 p_application_id => p_application_id
66390 ,p_event_id => l_event_id
66391 ,p_calculate_acctd_flag => l_calculate_acctd_flag
66392 ,p_calculate_g_l_flag => l_calculate_g_l_flag
66393 ,p_actual_flag => l_actual_flag
66394 ,p_balance_type_code => l_balance_type_code
66395 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66396
66397 , p_source_3 => l_array_source_3(Idx)
66398 , p_source_4 => l_array_source_4(Idx)
66399 , p_source_5 => l_array_source_5(Idx)
66400 , p_source_6 => l_array_source_6(Idx)
66401 , p_source_22 => l_array_source_22(Idx)
66402 , p_source_23 => l_array_source_23(Idx)
66403 , p_source_24 => l_array_source_24(Idx)
66404 , p_source_25 => l_array_source_25(Idx)
66405 , p_source_26 => l_array_source_26(Idx)
66406 , p_source_27 => l_array_source_27(Idx)
66407 , p_source_28 => l_array_source_28(Idx)
66408 , p_source_29 => l_array_source_29(Idx)
66409 , p_source_30 => l_array_source_30(Idx)
66410 , p_source_31 => l_array_source_31(Idx)
66411 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
66412 , p_source_33 => l_array_source_33(Idx)
66413 , p_source_34 => l_array_source_34(Idx)
66414 , p_source_34_meaning => l_array_source_34_meaning(Idx)
66415 , p_source_35 => l_array_source_35(Idx)
66416 );
66417 If(l_balance_type_code = 'A') THEN
66418 l_actual_gain_loss_ref := l_gain_or_loss_ref;
66419 END IF;
66420
66421 --
66422
66423
66424 --
66425 AcctLineType_60 (
66426 p_application_id => p_application_id
66427 ,p_event_id => l_event_id
66428 ,p_calculate_acctd_flag => l_calculate_acctd_flag
66429 ,p_calculate_g_l_flag => l_calculate_g_l_flag
66430 ,p_actual_flag => l_actual_flag
66431 ,p_balance_type_code => l_balance_type_code
66432 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66433
66434 , p_source_3 => l_array_source_3(Idx)
66435 , p_source_4 => l_array_source_4(Idx)
66436 , p_source_6 => l_array_source_6(Idx)
66437 , p_source_7 => l_array_source_7(Idx)
66438 , p_source_22 => l_array_source_22(Idx)
66439 , p_source_23 => l_array_source_23(Idx)
66440 , p_source_24 => l_array_source_24(Idx)
66441 , p_source_25 => l_array_source_25(Idx)
66442 , p_source_26 => l_array_source_26(Idx)
66443 , p_source_27 => l_array_source_27(Idx)
66444 , p_source_28 => l_array_source_28(Idx)
66445 , p_source_29 => l_array_source_29(Idx)
66446 , p_source_30 => l_array_source_30(Idx)
66447 , p_source_31 => l_array_source_31(Idx)
66448 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
66449 , p_source_33 => l_array_source_33(Idx)
66450 , p_source_34 => l_array_source_34(Idx)
66451 , p_source_34_meaning => l_array_source_34_meaning(Idx)
66452 , p_source_35 => l_array_source_35(Idx)
66453 );
66454 If(l_balance_type_code = 'A') THEN
66455 l_actual_gain_loss_ref := l_gain_or_loss_ref;
66456 END IF;
66457
66458 --
66459
66460 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
66461 -- or secondary ledger that has different currency with primary
66462 -- or alc that is calculated by sla
66463 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
66464 (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'))
66465
66466 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
66467 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
66468 AND (l_actual_flag = 'A')) THEN
66469 XLA_AE_LINES_PKG.CreateGainOrLossLines(
66470 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
66471 ,p_application_id => p_application_id
66472 ,p_amb_context_code => 'DEFAULT'
66473 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
66474 ,p_event_class_code => C_EVENT_CLASS_CODE
66475 ,p_event_type_code => C_EVENT_TYPE_CODE
66476
66477 ,p_gain_ccid => -1
66478 ,p_loss_ccid => -1
66479
66480 ,p_actual_flag => l_actual_flag
66481 ,p_enc_flag => null
66485 END IF;
66482 ,p_actual_g_l_ref => l_actual_gain_loss_ref
66483 ,p_enc_g_l_ref => null
66484 );
66486 END IF;
66487 END IF;
66488
66489 ELSE
66490 --
66491 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
66492 --
66493 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66494 trace
66495 (p_msg => 'Trancaction revesal option is Y'
66496 ,p_level => C_LEVEL_STATEMENT
66497 ,p_module => l_log_module);
66498 END IF;
66499 END IF;
66500
66501 END LOOP;
66502 l_result := XLA_AE_LINES_PKG.InsertLines ;
66503 end loop;
66504 close line_cur;
66505
66506
66507 --
66508 -- insert headers into xla_ae_headers_gt table
66509 --
66510 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
66511
66512 -- insert into errors table here.
66513
66514 END LOOP;
66515
66516 --
66517 -- 4865292
66518 --
66519 -- Compare g_hdr_extract_count with event count in
66520 -- CreateHeadersAndLines.
66521 --
66522 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
66523
66524 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66525 trace (p_msg => '# rows extracted from header extract objects '
66526 || ' (running total): '
66527 || g_hdr_extract_count
66528 ,p_level => C_LEVEL_STATEMENT
66529 ,p_module => l_log_module);
66530 END IF;
66531
66532 CLOSE header_cur;
66533 --
66534
66535 --
66536 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66537 trace
66538 (p_msg => 'END of EventClass_117'
66539 ,p_level => C_LEVEL_PROCEDURE
66540 ,p_module => l_log_module);
66541 END IF;
66542 --
66543 RETURN l_result;
66544 EXCEPTION
66545 WHEN xla_exceptions_pkg.application_exception THEN
66546
66547 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
66548
66549
66550 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
66551
66552 RAISE;
66553 WHEN OTHERS THEN
66554 xla_exceptions_pkg.raise_message
66555 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_117');
66556 END EventClass_117;
66557 --
66558
66559 ---------------------------------------
66560 --
66561 -- PRIVATE PROCEDURE
66562 -- insert_sources_118
66563 --
66564 ----------------------------------------
66565 --
66566 PROCEDURE insert_sources_118(
66567 p_target_ledger_id IN NUMBER
66568 , p_language IN VARCHAR2
66569 , p_sla_ledger_id IN NUMBER
66570 , p_pad_start_date IN DATE
66571 , p_pad_end_date IN DATE
66572 )
66573 IS
66574
66575 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ALL';
66576 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST';
66577 p_apps_owner VARCHAR2(30);
66578 l_log_module VARCHAR2(240);
66579 BEGIN
66580 IF g_log_enabled THEN
66581 l_log_module := C_DEFAULT_MODULE||'.insert_sources_118';
66582 END IF;
66583 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66584
66585 trace
66586 (p_msg => 'BEGIN of insert_sources_118'
66587 ,p_level => C_LEVEL_PROCEDURE
66588 ,p_module => l_log_module);
66589
66590 END IF;
66591
66592 -- select APPS owner
66593 SELECT oracle_username
66594 INTO p_apps_owner
66595 FROM fnd_oracle_userid
66596 WHERE read_only_flag = 'U'
66597 ;
66598
66599 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66600 trace
66601 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
66602 ' - p_language = '||p_language||
66603 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
66604 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
66605 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
66606 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
66607 ,p_level => C_LEVEL_STATEMENT
66608 ,p_module => l_log_module);
66609 END IF;
66610
66611
66612 --
66613 INSERT INTO xla_diag_sources --hdr2
66614 (
66615 event_id
66616 , ledger_id
66617 , sla_ledger_id
66618 , description_language
66619 , object_name
66620 , object_type_code
66621 , line_number
66622 , source_application_id
66623 , source_type_code
66624 , source_code
66625 , source_value
66626 , source_meaning
66627 , created_by
66628 , creation_date
66629 , last_update_date
66630 , last_updated_by
66631 , last_update_login
66632 , program_update_date
66633 , program_application_id
66634 , program_id
66635 , request_id
66636 )
66637 SELECT
66638 event_id
66639 , p_target_ledger_id
66640 , p_sla_ledger_id
66641 , p_language
66642 , object_name
66643 , object_type_code
66644 , line_number
66645 , source_application_id
66646 , source_type_code
66647 , source_code
66648 , SUBSTR(source_value ,1,1996)
66649 , SUBSTR(source_meaning ,1,200)
66650 , xla_environment_pkg.g_Usr_Id
66651 , TRUNC(SYSDATE)
66652 , TRUNC(SYSDATE)
66653 , xla_environment_pkg.g_Usr_Id
66654 , xla_environment_pkg.g_Login_Id
66655 , TRUNC(SYSDATE)
66656 , xla_environment_pkg.g_Prog_Appl_Id
66657 , xla_environment_pkg.g_Prog_Id
66658 , xla_environment_pkg.g_Req_Id
66659 FROM (
66660 SELECT xet.event_id event_id
66661 , 0 line_number
66662 , CASE r
66663 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
66664 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
66665
66666 ELSE null
66667 END object_name
66668 , CASE r
66669 WHEN 1 THEN 'HEADER'
66670 WHEN 2 THEN 'HEADER'
66671
66672 ELSE null
66673 END object_type_code
66674 , CASE r
66675 WHEN 1 THEN '275'
66676 WHEN 2 THEN '275'
66677
66678 ELSE null
66679 END source_application_id
66680 , 'S' source_type_code
66681 , CASE r
66682 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
66683 WHEN 2 THEN 'GL_DATE'
66684
66685 ELSE null
66686 END source_code
66687 , CASE r
66688 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
66689 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
66690
66691 ELSE null
66692 END source_value
66693 , null source_meaning
66694 FROM xla_events_gt xet
66695 , PA_XLA_EXP_HEADER_V h2
66696 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
66697 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
66698 AND xet.event_class_code = C_EVENT_CLASS_CODE
66702 ;
66699 AND h2.event_id = xet.event_id
66700
66701 )
66703 --
66704 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66705
66706 trace
66707 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
66708 ,p_level => C_LEVEL_STATEMENT
66709 ,p_module => l_log_module);
66710
66711 END IF;
66712 --
66713
66714
66715
66716 --
66717 INSERT INTO xla_diag_sources --line2
66718 (
66719 event_id
66720 , ledger_id
66721 , sla_ledger_id
66722 , description_language
66723 , object_name
66724 , object_type_code
66725 , line_number
66726 , source_application_id
66727 , source_type_code
66728 , source_code
66729 , source_value
66730 , source_meaning
66731 , created_by
66732 , creation_date
66733 , last_update_date
66734 , last_updated_by
66735 , last_update_login
66736 , program_update_date
66737 , program_application_id
66738 , program_id
66739 , request_id
66740 )
66741 SELECT event_id
66742 , p_target_ledger_id
66743 , p_sla_ledger_id
66744 , p_language
66745 , object_name
66746 , object_type_code
66747 , line_number
66748 , source_application_id
66749 , source_type_code
66750 , source_code
66751 , SUBSTR(source_value,1,1996)
66752 , SUBSTR(source_meaning ,1,200)
66753 , xla_environment_pkg.g_Usr_Id
66754 , TRUNC(SYSDATE)
66755 , TRUNC(SYSDATE)
66756 , xla_environment_pkg.g_Usr_Id
66757 , xla_environment_pkg.g_Login_Id
66758 , TRUNC(SYSDATE)
66759 , xla_environment_pkg.g_Prog_Appl_Id
66760 , xla_environment_pkg.g_Prog_Id
66761 , xla_environment_pkg.g_Req_Id
66762 FROM (
66763 SELECT xet.event_id event_id
66764 , l1.line_number line_number
66765 , CASE r
66766 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
66767 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
66768 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
66769 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
66770 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
66771 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
66772 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
66773 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
66774 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
66775 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
66776 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
66777 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
66778 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
66779 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
66780 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
66784
66781 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
66782 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
66783 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
66785 ELSE null
66786 END object_name
66787 , CASE r
66788 WHEN 1 THEN 'LINE'
66789 WHEN 2 THEN 'LINE'
66790 WHEN 3 THEN 'LINE'
66791 WHEN 4 THEN 'LINE'
66792 WHEN 5 THEN 'LINE'
66793 WHEN 6 THEN 'LINE'
66794 WHEN 7 THEN 'LINE'
66795 WHEN 8 THEN 'LINE'
66796 WHEN 9 THEN 'LINE'
66797 WHEN 10 THEN 'LINE'
66798 WHEN 11 THEN 'LINE'
66799 WHEN 12 THEN 'LINE'
66800 WHEN 13 THEN 'LINE'
66801 WHEN 14 THEN 'LINE'
66802 WHEN 15 THEN 'LINE'
66803 WHEN 16 THEN 'LINE'
66804 WHEN 17 THEN 'LINE'
66805 WHEN 18 THEN 'LINE'
66806
66807 ELSE null
66808 END object_type_code
66809 , CASE r
66810 WHEN 1 THEN '275'
66811 WHEN 2 THEN '275'
66812 WHEN 3 THEN '275'
66813 WHEN 4 THEN '275'
66814 WHEN 5 THEN '275'
66815 WHEN 6 THEN '275'
66816 WHEN 7 THEN '275'
66817 WHEN 8 THEN '275'
66818 WHEN 9 THEN '275'
66819 WHEN 10 THEN '275'
66820 WHEN 11 THEN '275'
66821 WHEN 12 THEN '275'
66822 WHEN 13 THEN '275'
66823 WHEN 14 THEN '275'
66824 WHEN 15 THEN '275'
66825 WHEN 16 THEN '275'
66826 WHEN 17 THEN '275'
66827 WHEN 18 THEN '275'
66828
66829 ELSE null
66830 END source_application_id
66831 , 'S' source_type_code
66832 , CASE r
66833 WHEN 1 THEN 'COST_CCID'
66834 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
66835 WHEN 3 THEN 'ADJ_COST_CCID'
66836 WHEN 4 THEN 'COST_CLEARING_CCID'
66837 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
66838 WHEN 6 THEN 'REVERSING_LINE_FLAG'
66839 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
66840 WHEN 8 THEN 'ENTERED_RAW_COST'
66841 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
66842 WHEN 10 THEN 'ACCT_RAW_COST'
66843 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
66844 WHEN 12 THEN 'EXCHANGE_RATE'
66845 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
66846 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
66847 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
66848 WHEN 16 THEN 'LINE_NUMBER'
66849 WHEN 17 THEN 'LINE_TYPE'
66850 WHEN 18 THEN 'LINE_NUM_REVERSED'
66851
66852 ELSE null
66853 END source_code
66854 , CASE r
66855 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
66856 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
66857 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
66858 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
66859 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
66860 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
66861 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
66862 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
66863 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
66864 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
66865 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
66866 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
66867 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
66868 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
66869 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
66870 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
66871 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
66872 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
66873
66874 ELSE null
66875 END source_value
66876 , CASE r
66877 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
66878 103371
66879 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
66880 ,'ALLOW_OVERRIDE_CCID_FLAG'
66881 ,'S'
66882 ,275)
66883 WHEN 17 THEN fvl34.meaning
66884
66885 ELSE null
66886 END source_meaning
66887 FROM xla_events_gt xet
66888 , PA_XLA_CDL_LINES_V l1
66889 , fnd_lookup_values fvl34
66890 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
66891 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
66892 AND xet.event_class_code = C_EVENT_CLASS_CODE
66893 AND l1.event_id = xet.event_id
66894 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
66895 AND fvl34.lookup_code(+) = l1.LINE_TYPE
66896 AND fvl34.view_application_id(+) = 275
66897 AND fvl34.language(+) = USERENV('LANG')
66898
66899 )
66900 ;
66901 --
66902 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66903
66904 trace
66905 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
66906 ,p_level => C_LEVEL_STATEMENT
66910
66907 ,p_module => l_log_module);
66908
66909 END IF;
66911
66912 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66913 trace
66914 (p_msg => 'END of insert_sources_118'
66915 ,p_level => C_LEVEL_PROCEDURE
66916 ,p_module => l_log_module);
66917 END IF;
66918 EXCEPTION
66919 WHEN xla_exceptions_pkg.application_exception THEN
66920 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
66921 trace
66922 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
66923 ,p_level => C_LEVEL_EXCEPTION
66924 ,p_module => l_log_module);
66925 END IF;
66926 RAISE;
66927 WHEN OTHERS THEN
66928 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
66929 trace
66930 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
66931 ,p_level => C_LEVEL_EXCEPTION
66932 ,p_module => l_log_module);
66933 END IF;
66934 xla_exceptions_pkg.raise_message
66935 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_118');
66936 END insert_sources_118;
66937 --
66938
66939 ---------------------------------------
66940 --
66941 -- PRIVATE FUNCTION
66942 -- EventClass_118
66943 --
66944 ----------------------------------------
66945 --
66946 FUNCTION EventClass_118
66947 (p_application_id IN NUMBER
66948 ,p_base_ledger_id IN NUMBER
66949 ,p_target_ledger_id IN NUMBER
66950 ,p_language IN VARCHAR2
66951 ,p_currency_code IN VARCHAR2
66952 ,p_sla_ledger_id IN NUMBER
66953 ,p_pad_start_date IN DATE
66954 ,p_pad_end_date IN DATE
66955 ,p_primary_ledger_id IN NUMBER)
66956 RETURN BOOLEAN IS
66957 --
66958 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ALL';
66959 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST';
66960
66961 l_calculate_acctd_flag VARCHAR2(1) :='N';
66962 l_calculate_g_l_flag VARCHAR2(1) :='N';
66963 --
66964 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66965 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66966 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66967 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66968 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66969 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66970 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66971 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66972 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66973 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66974 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66975 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66976 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66977 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66978 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66979 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66980 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66981 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66982 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66983 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66984 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66985 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66986 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
66987 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66988
66989 l_event_id NUMBER;
66990 l_previous_event_id NUMBER;
66991 l_first_event_id NUMBER;
66992 l_last_event_id NUMBER;
66993
66994 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
66995 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
66996 --
66997 --
66998 l_result BOOLEAN := TRUE;
66999 l_rows NUMBER := 1000;
67000 l_event_type_name VARCHAR2(80) := 'All';
67001 l_event_class_name VARCHAR2(80) := 'Labor Cost';
67002 l_description VARCHAR2(4000);
67003 l_transaction_reversal NUMBER;
67004 l_ae_header_id NUMBER;
67005 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
67006 l_log_module VARCHAR2(240);
67007 --
67008 l_acct_reversal_source VARCHAR2(30);
67009 l_trx_reversal_source VARCHAR2(30);
67010
67011 l_continue_with_lines BOOLEAN := TRUE;
67012 --
67013 l_acc_rev_gl_date_source DATE; -- 4262811
67014 --
67015 type t_array_event_id is table of number index by binary_integer;
67016
67017 l_rec_array_event t_rec_array_event;
67018 l_null_rec_array_event t_rec_array_event;
67019 l_array_ae_header_id xla_number_array_type;
67020 l_actual_flag VARCHAR2(1) := NULL;
67021 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
67022 l_balance_type_code VARCHAR2(1) :=NULL;
67023 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
67024
67025 --
67026 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
67027 --
67028
67029 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
67033 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
67030 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
67031
67032 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
67034 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
67035 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
67036 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
67037 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
67038 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
67039 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
67040 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
67041 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
67042 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
67043 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
67044 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
67045 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
67046 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
67047 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
67048 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
67049 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
67050
67051 l_array_source_32 t_array_source_32;
67052 l_array_source_88 t_array_source_88;
67053
67054 l_array_source_3 t_array_source_3;
67055 l_array_source_4 t_array_source_4;
67056 l_array_source_5 t_array_source_5;
67057 l_array_source_6 t_array_source_6;
67058 l_array_source_7 t_array_source_7;
67059 l_array_source_22 t_array_source_22;
67060 l_array_source_23 t_array_source_23;
67061 l_array_source_24 t_array_source_24;
67062 l_array_source_25 t_array_source_25;
67063 l_array_source_26 t_array_source_26;
67064 l_array_source_27 t_array_source_27;
67065 l_array_source_28 t_array_source_28;
67066 l_array_source_29 t_array_source_29;
67067 l_array_source_30 t_array_source_30;
67068 l_array_source_31 t_array_source_31;
67069 l_array_source_33 t_array_source_33;
67070 l_array_source_34 t_array_source_34;
67071 l_array_source_34_meaning t_array_lookup_meaning;
67072 l_array_source_35 t_array_source_35;
67073
67074 --
67075 CURSOR header_cur
67076 IS
67077 SELECT /*+ leading(xet) cardinality(xet,1) */
67078 -- Event Class Code: LABOR_COST
67079 xet.entity_id
67080 ,xet.legal_entity_id
67081 ,xet.entity_code
67082 ,xet.transaction_number
67083 ,xet.event_id
67084 ,xet.event_class_code
67085 ,xet.event_type_code
67086 ,xet.event_number
67087 ,xet.event_date
67088 ,xet.transaction_date
67089 ,xet.reference_num_1
67090 ,xet.reference_num_2
67091 ,xet.reference_num_3
67092 ,xet.reference_num_4
67093 ,xet.reference_char_1
67094 ,xet.reference_char_2
67095 ,xet.reference_char_3
67096 ,xet.reference_char_4
67097 ,xet.reference_date_1
67098 ,xet.reference_date_2
67099 ,xet.reference_date_3
67100 ,xet.reference_date_4
67101 ,xet.event_created_by
67102 ,xet.budgetary_control_flag
67103 , h2.EXPENDITURE_ITEM_ID source_32
67104 , h2.GL_DATE source_88
67105 FROM xla_events_gt xet
67106 , PA_XLA_EXP_HEADER_V h2
67107 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
67108 and xet.event_class_code = C_EVENT_CLASS_CODE
67109 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
67110
67111 ORDER BY event_id
67112 ;
67113
67114
67115 --
67116 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
67117 IS
67118 SELECT /*+ leading(xet) cardinality(xet,1) */
67119 -- Event Class Code: LABOR_COST
67120 xet.entity_id
67121 ,xet.legal_entity_id
67122 ,xet.entity_code
67123 ,xet.transaction_number
67124 ,xet.event_id
67125 ,xet.event_class_code
67126 ,xet.event_type_code
67127 ,xet.event_number
67128 ,xet.event_date
67129 ,xet.transaction_date
67130 ,xet.reference_num_1
67131 ,xet.reference_num_2
67132 ,xet.reference_num_3
67133 ,xet.reference_num_4
67134 ,xet.reference_char_1
67135 ,xet.reference_char_2
67136 ,xet.reference_char_3
67137 ,xet.reference_char_4
67138 ,xet.reference_date_1
67139 ,xet.reference_date_2
67140 ,xet.reference_date_3
67141 ,xet.reference_date_4
67142 ,xet.event_created_by
67143 ,xet.budgetary_control_flag
67144 , l1.LINE_NUMBER
67145 , l1.COST_CCID source_3
67146 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
67147 , l1.ADJ_COST_CCID source_5
67148 , l1.COST_CLEARING_CCID source_6
67149 , l1.ADJ_COST_CLEARING_CCID source_7
67150 , l1.REVERSING_LINE_FLAG source_22
67151 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
67152 , l1.ENTERED_RAW_COST source_24
67153 , l1.ENTERED_CURRENCY_CODE source_25
67154 , l1.ACCT_RAW_COST source_26
67155 , l1.EXCHANGE_RATE_DATE source_27
67156 , l1.EXCHANGE_RATE source_28
67157 , l1.EXCHANGE_RATE_TYPE source_29
67158 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
67159 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
67163 , l1.LINE_NUM_REVERSED source_35
67160 , l1.LINE_NUMBER source_33
67161 , l1.LINE_TYPE source_34
67162 , fvl34.meaning source_34_meaning
67164 FROM xla_events_gt xet
67165 , PA_XLA_CDL_LINES_V l1
67166 , fnd_lookup_values fvl34
67167 WHERE xet.event_id between x_first_event_id and x_last_event_id
67168 and xet.event_date between p_pad_start_date and p_pad_end_date
67169 and xet.event_class_code = C_EVENT_CLASS_CODE
67170 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
67171 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
67172 AND fvl34.lookup_code(+) = l1.LINE_TYPE
67173 AND fvl34.view_application_id(+) = 275
67174 AND fvl34.language(+) = USERENV('LANG')
67175 ;
67176
67177 --
67178 BEGIN
67179 IF g_log_enabled THEN
67180 l_log_module := C_DEFAULT_MODULE||'.EventClass_118';
67181 END IF;
67182 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67183 trace
67184 (p_msg => 'BEGIN of EventClass_118'
67185 ,p_level => C_LEVEL_PROCEDURE
67186 ,p_module => l_log_module);
67187 END IF;
67188
67189 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67190 trace
67191 (p_msg => 'p_application_id = '||p_application_id||
67192 ' - p_base_ledger_id = '||p_base_ledger_id||
67193 ' - p_target_ledger_id = '||p_target_ledger_id||
67194 ' - p_language = '||p_language||
67195 ' - p_currency_code = '||p_currency_code||
67196 ' - p_sla_ledger_id = '||p_sla_ledger_id
67197 ,p_level => C_LEVEL_STATEMENT
67198 ,p_module => l_log_module);
67199 END IF;
67200 --
67201 -- initialze arrays
67202 --
67203 g_array_event.DELETE;
67204 l_rec_array_event := l_null_rec_array_event;
67205 --
67206 --------------------------------------
67207 -- 4262811 Initialze MPA Line Number
67208 --------------------------------------
67209 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
67210
67211 --
67212
67213 --
67214 OPEN header_cur;
67215 --
67216 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67217 trace
67218 (p_msg => 'SQL - FETCH header_cur'
67219 ,p_level => C_LEVEL_STATEMENT
67220 ,p_module => l_log_module);
67221 END IF;
67222 --
67223 LOOP
67224 FETCH header_cur BULK COLLECT INTO
67225 l_array_entity_id
67226 , l_array_legal_entity_id
67227 , l_array_entity_code
67228 , l_array_transaction_num
67229 , l_array_event_id
67230 , l_array_class_code
67231 , l_array_event_type
67232 , l_array_event_number
67233 , l_array_event_date
67234 , l_array_transaction_date
67235 , l_array_reference_num_1
67236 , l_array_reference_num_2
67237 , l_array_reference_num_3
67238 , l_array_reference_num_4
67239 , l_array_reference_char_1
67240 , l_array_reference_char_2
67241 , l_array_reference_char_3
67242 , l_array_reference_char_4
67243 , l_array_reference_date_1
67244 , l_array_reference_date_2
67245 , l_array_reference_date_3
67246 , l_array_reference_date_4
67247 , l_array_event_created_by
67248 , l_array_budgetary_control_flag
67249 , l_array_source_32
67250 , l_array_source_88
67251 LIMIT l_rows;
67252 --
67253 IF (C_LEVEL_EVENT >= g_log_level) THEN
67254 trace
67255 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
67256 ,p_level => C_LEVEL_EVENT
67257 ,p_module => l_log_module);
67258 END IF;
67259 --
67260 EXIT WHEN l_array_entity_id.COUNT = 0;
67261
67262 -- initialize arrays
67263 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
67264 XLA_AE_LINES_PKG.g_rec_lines := NULL;
67265
67266 --
67267 -- Bug 4458708
67268 --
67269 XLA_AE_LINES_PKG.g_LineNumber := 0;
67270
67271
67272 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
67273 g_last_hdr_idx := l_array_event_id.LAST;
67274 --
67275 -- loop for the headers. Each iteration is for each header extract row
67276 -- fetched in header cursor
67277 --
67278 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
67279
67280 --
67281 -- set event info as cache for other routines to refer event attributes
67282 --
67283 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
67284 (p_application_id => p_application_id
67285 ,p_primary_ledger_id => p_primary_ledger_id
67286 ,p_base_ledger_id => p_base_ledger_id
67287 ,p_target_ledger_id => p_target_ledger_id
67288 ,p_entity_id => l_array_entity_id(hdr_idx)
67289 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
67290 ,p_entity_code => l_array_entity_code(hdr_idx)
67291 ,p_transaction_num => l_array_transaction_num(hdr_idx)
67292 ,p_event_id => l_array_event_id(hdr_idx)
67293 ,p_event_class_code => l_array_class_code(hdr_idx)
67294 ,p_event_type_code => l_array_event_type(hdr_idx)
67295 ,p_event_number => l_array_event_number(hdr_idx)
67296 ,p_event_date => l_array_event_date(hdr_idx)
67297 ,p_transaction_date => l_array_transaction_date(hdr_idx)
67298 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
67299 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
67300 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
67301 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
67302 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
67303 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
67307 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
67304 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
67305 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
67306 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
67308 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
67309 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
67310 ,p_event_created_by => l_array_event_created_by(hdr_idx)
67311 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
67312
67313 --
67314 -- set the status of entry to C_VALID (0)
67315 --
67316 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
67317
67318 --
67319 -- initialize a row for ae header
67320 --
67321 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
67322
67323 l_event_id := l_array_event_id(hdr_idx);
67324
67325 --
67326 -- storing the hdr_idx for event. May be used by line cursor.
67327 --
67328 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
67329
67330 --
67331 -- store sources from header extract. This can be improved to
67332 -- store only those sources from header extract that may be used in lines
67333 --
67334
67335 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
67336 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
67337
67338 --
67339 -- initilaize the status of ae headers for diffrent balance types
67340 -- the status is initialised to C_NOT_CREATED (2)
67341 --
67342 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67343 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67344 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67345
67346 --
67347 -- call api to validate and store accounting attributes for header
67348 --
67349
67350 ------------------------------------------------------------
67351 -- Accrual Reversal : to get date for Standard Source (NONE)
67352 ------------------------------------------------------------
67353 l_acc_rev_gl_date_source := NULL;
67354
67355 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
67356 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
67357
67358
67359 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
67360
67361 XLA_AE_HEADER_PKG.SetJeCategoryName;
67362
67363 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
67364 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
67365 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
67366 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
67367 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
67368
67369
67370 -- No header level analytical criteria
67371
67372 --
67373 --accounting attribute enhancement, bug 3612931
67374 --
67375 l_trx_reversal_source := SUBSTR(NULL, 1,30);
67376
67377 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
67378 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
67379
67380 xla_accounting_err_pkg.build_message
67381 (p_appli_s_name => 'XLA'
67382 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
67383 ,p_token_1 => 'ACCT_ATTR_NAME'
67384 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
67385 ,p_token_2 => 'PRODUCT_NAME'
67386 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
67387 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
67388 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
67389 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
67390
67391 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
67392 --
67393 -- following sets the accounting attributes needed to reverse
67394 -- accounting for a distributeion
67395 --
67396 xla_ae_lines_pkg.SetTrxReversalAttrs
67397 (p_event_id => l_event_id
67398 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
67399 ,p_trx_reversal_source => l_trx_reversal_source);
67400
67401 END IF;
67402
67403
67404 ----------------------------------------------------------------
67405 -- 4262811 - update the header statuses to invalid in need be
67406 ----------------------------------------------------------------
67407 --
67408 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
67409
67410
67411 -----------------------------------------------
67412 -- No accrual reversal for the event class/type
67413 -----------------------------------------------
67414 ----------------------------------------------------------------
67415
67416 --
67417 -- this ends the header loop iteration for one bulk fetch
67418 --
67419 END LOOP;
67420
67421 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
67422 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
67423
67424 --
67425 -- insert dummy rows into lines gt table that were created due to
67426 -- transaction reversals
67427 --
67428 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
67429 l_result := XLA_AE_LINES_PKG.InsertLines;
67430 END IF;
67431
67432 --
67433 -- reset the temp_line_num for each set of events fetched from header
67437 xla_ae_lines_pkg.g_temp_line_num := 0;
67434 -- cursor rather than doing it for each new event in line cursor
67435 -- Bug 3939231
67436 --
67438
67439
67440
67441 --
67442 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
67443 --
67444 --
67445 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67446
67447 trace
67448 (p_msg => 'SQL - FETCH line_cur'
67449 ,p_level => C_LEVEL_STATEMENT
67450 ,p_module => l_log_module);
67451
67452 END IF;
67453 --
67454 --
67455 LOOP
67456 --
67457 FETCH line_cur BULK COLLECT INTO
67458 l_array_entity_id
67459 , l_array_legal_entity_id
67460 , l_array_entity_code
67461 , l_array_transaction_num
67462 , l_array_event_id
67463 , l_array_class_code
67464 , l_array_event_type
67465 , l_array_event_number
67466 , l_array_event_date
67467 , l_array_transaction_date
67468 , l_array_reference_num_1
67469 , l_array_reference_num_2
67470 , l_array_reference_num_3
67471 , l_array_reference_num_4
67472 , l_array_reference_char_1
67473 , l_array_reference_char_2
67474 , l_array_reference_char_3
67475 , l_array_reference_char_4
67476 , l_array_reference_date_1
67477 , l_array_reference_date_2
67478 , l_array_reference_date_3
67479 , l_array_reference_date_4
67480 , l_array_event_created_by
67481 , l_array_budgetary_control_flag
67482 , l_array_extract_line_num
67483 , l_array_source_3
67484 , l_array_source_4
67485 , l_array_source_5
67486 , l_array_source_6
67487 , l_array_source_7
67488 , l_array_source_22
67489 , l_array_source_23
67490 , l_array_source_24
67491 , l_array_source_25
67492 , l_array_source_26
67493 , l_array_source_27
67494 , l_array_source_28
67495 , l_array_source_29
67496 , l_array_source_30
67497 , l_array_source_31
67498 , l_array_source_33
67499 , l_array_source_34
67500 , l_array_source_34_meaning
67501 , l_array_source_35
67502 LIMIT l_rows;
67503
67504 --
67505 IF (C_LEVEL_EVENT >= g_log_level) THEN
67506 trace
67507 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
67508 ,p_level => C_LEVEL_EVENT
67509 ,p_module => l_log_module);
67510 END IF;
67511 --
67512 EXIT WHEN l_array_entity_id.count = 0;
67513
67514 XLA_AE_LINES_PKG.g_rec_lines := null;
67515
67516 --
67517 -- Bug 4458708
67518 --
67519 XLA_AE_LINES_PKG.g_LineNumber := 0;
67520 --
67521 --
67522
67523 FOR Idx IN 1..l_array_event_id.count LOOP
67524 --
67525 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
67526 --
67527 l_event_id := l_array_event_id(idx); -- 5648433
67528
67529 --
67530 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
67531 --
67532
67533 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
67534 (g_array_event(l_event_id).array_value_num('header_index'))
67535 ,'N'
67536 ) <> 'Y'
67537 THEN
67538 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67539 trace
67540 (p_msg => 'Trancaction revesal option is not Y '
67541 ,p_level => C_LEVEL_STATEMENT
67542 ,p_module => l_log_module);
67543 END IF;
67544
67545 --
67546 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
67547 --
67548 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
67549 --
67550 -- set event info as cache for other routines to refer event attributes
67551 --
67552
67553 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
67554 l_previous_event_id := l_event_id;
67555
67556 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
67557 (p_application_id => p_application_id
67558 ,p_primary_ledger_id => p_primary_ledger_id
67559 ,p_base_ledger_id => p_base_ledger_id
67560 ,p_target_ledger_id => p_target_ledger_id
67561 ,p_entity_id => l_array_entity_id(Idx)
67562 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
67563 ,p_entity_code => l_array_entity_code(Idx)
67564 ,p_transaction_num => l_array_transaction_num(Idx)
67565 ,p_event_id => l_array_event_id(Idx)
67566 ,p_event_class_code => l_array_class_code(Idx)
67567 ,p_event_type_code => l_array_event_type(Idx)
67568 ,p_event_number => l_array_event_number(Idx)
67569 ,p_event_date => l_array_event_date(Idx)
67570 ,p_transaction_date => l_array_transaction_date(Idx)
67571 ,p_reference_num_1 => l_array_reference_num_1(Idx)
67572 ,p_reference_num_2 => l_array_reference_num_2(Idx)
67573 ,p_reference_num_3 => l_array_reference_num_3(Idx)
67574 ,p_reference_num_4 => l_array_reference_num_4(Idx)
67575 ,p_reference_char_1 => l_array_reference_char_1(Idx)
67576 ,p_reference_char_2 => l_array_reference_char_2(Idx)
67577 ,p_reference_char_3 => l_array_reference_char_3(Idx)
67578 ,p_reference_char_4 => l_array_reference_char_4(Idx)
67579 ,p_reference_date_1 => l_array_reference_date_1(Idx)
67580 ,p_reference_date_2 => l_array_reference_date_2(Idx)
67581 ,p_reference_date_3 => l_array_reference_date_3(Idx)
67585 --
67582 ,p_reference_date_4 => l_array_reference_date_4(Idx)
67583 ,p_event_created_by => l_array_event_created_by(Idx)
67584 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
67586 END IF;
67587
67588
67589
67590 --
67591 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
67592
67593 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
67594
67595 IF l_continue_with_lines THEN
67596 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
67597 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
67598
67599 xla_accounting_err_pkg.build_message
67600 (p_appli_s_name => 'XLA'
67601 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
67602 ,p_token_1 => 'LINE_NUMBER'
67603 ,p_value_1 => l_array_extract_line_num(Idx)
67604 ,p_token_2 => 'PRODUCT_NAME'
67605 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
67606 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
67607 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
67608 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
67609
67610 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
67611 --
67612 -- following sets the accounting attributes needed to reverse
67613 -- accounting for a distributeion
67614 --
67615
67616 --
67617 -- 5217187
67618 --
67619 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
67620 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
67621 g_array_event(l_event_id).array_value_num('header_index'));
67622 --
67623 --
67624
67625 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
67626 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
67627 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
67628 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
67629 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
67630 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
67631 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
67632 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
67633 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
67634 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
67635 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
67636 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
67637 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
67638 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
67639 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
67640 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
67641 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
67642 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
67643 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
67644 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
67645 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
67646 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
67647 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
67648 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
67649 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
67650 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
67651 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
67652 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
67653 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
67654 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
67655 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
67656 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
67657 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
67658 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
67659 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
67660 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
67661 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
67662 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
67663 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
67664 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
67665 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
67666 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
67667 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
67668 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
67669 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
67670 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
67671 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
67672 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
67673
67674
67675 xla_ae_lines_pkg.SetAcctReversalAttrs
67676 (p_event_id => l_event_id
67680 END IF;
67677 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
67678 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67679 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
67681
67682 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
67683 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
67684
67685 --
67686 AcctLineType_45 (
67687 p_application_id => p_application_id
67688 ,p_event_id => l_event_id
67689 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67690 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67691 ,p_actual_flag => l_actual_flag
67692 ,p_balance_type_code => l_balance_type_code
67693 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67694
67695 , p_source_3 => l_array_source_3(Idx)
67696 , p_source_4 => l_array_source_4(Idx)
67697 , p_source_5 => l_array_source_5(Idx)
67698 , p_source_6 => l_array_source_6(Idx)
67699 , p_source_22 => l_array_source_22(Idx)
67700 , p_source_23 => l_array_source_23(Idx)
67701 , p_source_24 => l_array_source_24(Idx)
67702 , p_source_25 => l_array_source_25(Idx)
67703 , p_source_26 => l_array_source_26(Idx)
67704 , p_source_27 => l_array_source_27(Idx)
67705 , p_source_28 => l_array_source_28(Idx)
67706 , p_source_29 => l_array_source_29(Idx)
67707 , p_source_30 => l_array_source_30(Idx)
67708 , p_source_31 => l_array_source_31(Idx)
67709 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
67710 , p_source_33 => l_array_source_33(Idx)
67711 , p_source_34 => l_array_source_34(Idx)
67712 , p_source_34_meaning => l_array_source_34_meaning(Idx)
67713 , p_source_35 => l_array_source_35(Idx)
67714 );
67715 If(l_balance_type_code = 'A') THEN
67716 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67717 END IF;
67718
67719 --
67720
67721
67722 --
67723 AcctLineType_55 (
67724 p_application_id => p_application_id
67725 ,p_event_id => l_event_id
67726 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67727 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67728 ,p_actual_flag => l_actual_flag
67729 ,p_balance_type_code => l_balance_type_code
67730 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67731
67732 , p_source_3 => l_array_source_3(Idx)
67733 , p_source_4 => l_array_source_4(Idx)
67734 , p_source_6 => l_array_source_6(Idx)
67735 , p_source_7 => l_array_source_7(Idx)
67736 , p_source_22 => l_array_source_22(Idx)
67737 , p_source_23 => l_array_source_23(Idx)
67738 , p_source_24 => l_array_source_24(Idx)
67739 , p_source_25 => l_array_source_25(Idx)
67740 , p_source_26 => l_array_source_26(Idx)
67741 , p_source_27 => l_array_source_27(Idx)
67742 , p_source_28 => l_array_source_28(Idx)
67743 , p_source_29 => l_array_source_29(Idx)
67744 , p_source_30 => l_array_source_30(Idx)
67745 , p_source_31 => l_array_source_31(Idx)
67746 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
67747 , p_source_33 => l_array_source_33(Idx)
67748 , p_source_34 => l_array_source_34(Idx)
67749 , p_source_34_meaning => l_array_source_34_meaning(Idx)
67750 , p_source_35 => l_array_source_35(Idx)
67751 );
67752 If(l_balance_type_code = 'A') THEN
67753 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67754 END IF;
67755
67756 --
67757
67758 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
67759 -- or secondary ledger that has different currency with primary
67760 -- or alc that is calculated by sla
67761 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67762 (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'))
67763
67764 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
67765 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
67766 AND (l_actual_flag = 'A')) THEN
67767 XLA_AE_LINES_PKG.CreateGainOrLossLines(
67768 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
67769 ,p_application_id => p_application_id
67770 ,p_amb_context_code => 'DEFAULT'
67771 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
67772 ,p_event_class_code => C_EVENT_CLASS_CODE
67773 ,p_event_type_code => C_EVENT_TYPE_CODE
67774
67775 ,p_gain_ccid => -1
67776 ,p_loss_ccid => -1
67777
67778 ,p_actual_flag => l_actual_flag
67779 ,p_enc_flag => null
67780 ,p_actual_g_l_ref => l_actual_gain_loss_ref
67781 ,p_enc_g_l_ref => null
67782 );
67783 END IF;
67784 END IF;
67785 END IF;
67786
67787 ELSE
67788 --
67789 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
67790 --
67791 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67792 trace
67793 (p_msg => 'Trancaction revesal option is Y'
67794 ,p_level => C_LEVEL_STATEMENT
67795 ,p_module => l_log_module);
67796 END IF;
67797 END IF;
67798
67799 END LOOP;
67800 l_result := XLA_AE_LINES_PKG.InsertLines ;
67801 end loop;
67802 close line_cur;
67803
67804
67805 --
67806 -- insert headers into xla_ae_headers_gt table
67807 --
67808 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
67809
67810 -- insert into errors table here.
67811
67812 END LOOP;
67813
67814 --
67815 -- 4865292
67816 --
67817 -- Compare g_hdr_extract_count with event count in
67818 -- CreateHeadersAndLines.
67819 --
67820 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
67821
67825 || g_hdr_extract_count
67822 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67823 trace (p_msg => '# rows extracted from header extract objects '
67824 || ' (running total): '
67826 ,p_level => C_LEVEL_STATEMENT
67827 ,p_module => l_log_module);
67828 END IF;
67829
67830 CLOSE header_cur;
67831 --
67832
67833 --
67834 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67835 trace
67836 (p_msg => 'END of EventClass_118'
67837 ,p_level => C_LEVEL_PROCEDURE
67838 ,p_module => l_log_module);
67839 END IF;
67840 --
67841 RETURN l_result;
67842 EXCEPTION
67843 WHEN xla_exceptions_pkg.application_exception THEN
67844
67845 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
67846
67847
67848 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
67849
67850 RAISE;
67851 WHEN OTHERS THEN
67852 xla_exceptions_pkg.raise_message
67853 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_118');
67854 END EventClass_118;
67855 --
67856
67857 ---------------------------------------
67858 --
67859 -- PRIVATE PROCEDURE
67860 -- insert_sources_119
67861 --
67862 ----------------------------------------
67863 --
67864 PROCEDURE insert_sources_119(
67865 p_target_ledger_id IN NUMBER
67866 , p_language IN VARCHAR2
67867 , p_sla_ledger_id IN NUMBER
67868 , p_pad_start_date IN DATE
67869 , p_pad_end_date IN DATE
67870 )
67871 IS
67872
67873 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ_ALL';
67874 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ';
67875 p_apps_owner VARCHAR2(30);
67876 l_log_module VARCHAR2(240);
67877 BEGIN
67878 IF g_log_enabled THEN
67879 l_log_module := C_DEFAULT_MODULE||'.insert_sources_119';
67880 END IF;
67881 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67882
67883 trace
67884 (p_msg => 'BEGIN of insert_sources_119'
67885 ,p_level => C_LEVEL_PROCEDURE
67886 ,p_module => l_log_module);
67887
67888 END IF;
67889
67890 -- select APPS owner
67891 SELECT oracle_username
67892 INTO p_apps_owner
67893 FROM fnd_oracle_userid
67894 WHERE read_only_flag = 'U'
67895 ;
67896
67897 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67898 trace
67899 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
67900 ' - p_language = '||p_language||
67901 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
67902 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
67903 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
67904 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
67905 ,p_level => C_LEVEL_STATEMENT
67906 ,p_module => l_log_module);
67907 END IF;
67908
67909
67910 --
67911 INSERT INTO xla_diag_sources --hdr2
67912 (
67913 event_id
67914 , ledger_id
67915 , sla_ledger_id
67916 , description_language
67917 , object_name
67918 , object_type_code
67919 , line_number
67920 , source_application_id
67921 , source_type_code
67922 , source_code
67923 , source_value
67924 , source_meaning
67925 , created_by
67926 , creation_date
67927 , last_update_date
67928 , last_updated_by
67929 , last_update_login
67930 , program_update_date
67931 , program_application_id
67932 , program_id
67933 , request_id
67934 )
67935 SELECT
67936 event_id
67937 , p_target_ledger_id
67938 , p_sla_ledger_id
67939 , p_language
67940 , object_name
67941 , object_type_code
67942 , line_number
67943 , source_application_id
67944 , source_type_code
67945 , source_code
67946 , SUBSTR(source_value ,1,1996)
67947 , SUBSTR(source_meaning ,1,200)
67948 , xla_environment_pkg.g_Usr_Id
67949 , TRUNC(SYSDATE)
67950 , TRUNC(SYSDATE)
67951 , xla_environment_pkg.g_Usr_Id
67952 , xla_environment_pkg.g_Login_Id
67953 , TRUNC(SYSDATE)
67954 , xla_environment_pkg.g_Prog_Appl_Id
67955 , xla_environment_pkg.g_Prog_Id
67956 , xla_environment_pkg.g_Req_Id
67957 FROM (
67958 SELECT xet.event_id event_id
67959 , 0 line_number
67960 , CASE r
67961 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
67962 WHEN 2 THEN 'PA_XLA_PROJECT_REF_V'
67963 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
67964
67965 ELSE null
67966 END object_name
67967 , CASE r
67968 WHEN 1 THEN 'HEADER'
67969 WHEN 2 THEN 'HEADER'
67970 WHEN 3 THEN 'HEADER'
67971
67972 ELSE null
67973 END object_type_code
67974 , CASE r
67975 WHEN 1 THEN '275'
67976 WHEN 2 THEN '275'
67977 WHEN 3 THEN '275'
67978
67979 ELSE null
67980 END source_application_id
67981 , 'S' source_type_code
67982 , CASE r
67983 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
67987 ELSE null
67984 WHEN 2 THEN 'PROJECT_NUMBER'
67985 WHEN 3 THEN 'GL_DATE'
67986
67988 END source_code
67989 , CASE r
67990 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
67991 WHEN 2 THEN TO_CHAR(h3.PROJECT_NUMBER)
67992 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
67993
67994 ELSE null
67995 END source_value
67996 , null source_meaning
67997 FROM xla_events_gt xet
67998 , PA_XLA_EXP_HEADER_V h2
67999 , PA_XLA_PROJECT_REF_V h3
68000 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
68001 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
68002 AND xet.event_class_code = C_EVENT_CLASS_CODE
68003 AND h2.event_id = xet.event_id
68004 AND h3.project_id=h2.project_id
68005 )
68006 ;
68007 --
68008 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68009
68010 trace
68011 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
68012 ,p_level => C_LEVEL_STATEMENT
68013 ,p_module => l_log_module);
68014
68015 END IF;
68016 --
68017
68018
68019
68020 --
68021 INSERT INTO xla_diag_sources --line2
68022 (
68023 event_id
68024 , ledger_id
68025 , sla_ledger_id
68026 , description_language
68027 , object_name
68028 , object_type_code
68029 , line_number
68030 , source_application_id
68031 , source_type_code
68032 , source_code
68033 , source_value
68034 , source_meaning
68035 , created_by
68036 , creation_date
68037 , last_update_date
68038 , last_updated_by
68039 , last_update_login
68040 , program_update_date
68041 , program_application_id
68042 , program_id
68043 , request_id
68044 )
68045 SELECT event_id
68046 , p_target_ledger_id
68047 , p_sla_ledger_id
68048 , p_language
68049 , object_name
68050 , object_type_code
68051 , line_number
68052 , source_application_id
68053 , source_type_code
68054 , source_code
68055 , SUBSTR(source_value,1,1996)
68056 , SUBSTR(source_meaning ,1,200)
68057 , xla_environment_pkg.g_Usr_Id
68058 , TRUNC(SYSDATE)
68059 , TRUNC(SYSDATE)
68060 , xla_environment_pkg.g_Usr_Id
68061 , xla_environment_pkg.g_Login_Id
68062 , TRUNC(SYSDATE)
68063 , xla_environment_pkg.g_Prog_Appl_Id
68064 , xla_environment_pkg.g_Prog_Id
68065 , xla_environment_pkg.g_Req_Id
68066 FROM (
68067 SELECT xet.event_id event_id
68068 , l1.line_number line_number
68069 , CASE r
68070 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
68071 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
68072 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
68073 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
68074 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
68075 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
68076 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
68077 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
68078 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
68079 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
68080 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
68081 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
68082 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
68083 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
68084 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
68085 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
68086 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
68087 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
68088
68089 ELSE null
68090 END object_name
68091 , CASE r
68092 WHEN 1 THEN 'LINE'
68093 WHEN 2 THEN 'LINE'
68094 WHEN 3 THEN 'LINE'
68095 WHEN 4 THEN 'LINE'
68096 WHEN 5 THEN 'LINE'
68097 WHEN 6 THEN 'LINE'
68098 WHEN 7 THEN 'LINE'
68099 WHEN 8 THEN 'LINE'
68100 WHEN 9 THEN 'LINE'
68101 WHEN 10 THEN 'LINE'
68102 WHEN 11 THEN 'LINE'
68103 WHEN 12 THEN 'LINE'
68104 WHEN 13 THEN 'LINE'
68105 WHEN 14 THEN 'LINE'
68106 WHEN 15 THEN 'LINE'
68107 WHEN 16 THEN 'LINE'
68108 WHEN 17 THEN 'LINE'
68109 WHEN 18 THEN 'LINE'
68110
68111 ELSE null
68112 END object_type_code
68113 , CASE r
68114 WHEN 1 THEN '275'
68115 WHEN 2 THEN '275'
68116 WHEN 3 THEN '275'
68117 WHEN 4 THEN '275'
68118 WHEN 5 THEN '275'
68119 WHEN 6 THEN '275'
68120 WHEN 7 THEN '275'
68121 WHEN 8 THEN '275'
68122 WHEN 9 THEN '275'
68123 WHEN 10 THEN '275'
68124 WHEN 11 THEN '275'
68125 WHEN 12 THEN '275'
68126 WHEN 13 THEN '275'
68127 WHEN 14 THEN '275'
68128 WHEN 15 THEN '275'
68129 WHEN 16 THEN '275'
68130 WHEN 17 THEN '275'
68131 WHEN 18 THEN '275'
68132
68136 , CASE r
68133 ELSE null
68134 END source_application_id
68135 , 'S' source_type_code
68137 WHEN 1 THEN 'COST_CCID'
68138 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
68139 WHEN 3 THEN 'ADJ_COST_CCID'
68140 WHEN 4 THEN 'COST_CLEARING_CCID'
68141 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
68142 WHEN 6 THEN 'REVERSING_LINE_FLAG'
68143 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
68144 WHEN 8 THEN 'ENTERED_RAW_COST'
68145 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
68146 WHEN 10 THEN 'ACCT_RAW_COST'
68147 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
68148 WHEN 12 THEN 'EXCHANGE_RATE'
68149 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
68150 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
68151 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
68152 WHEN 16 THEN 'LINE_NUMBER'
68153 WHEN 17 THEN 'LINE_TYPE'
68154 WHEN 18 THEN 'LINE_NUM_REVERSED'
68155
68156 ELSE null
68157 END source_code
68158 , CASE r
68159 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
68160 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
68161 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
68162 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
68163 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
68164 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
68165 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
68166 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
68167 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
68168 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
68169 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
68170 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
68171 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
68172 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
68173 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
68174 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
68175 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
68176 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
68177
68178 ELSE null
68179 END source_value
68180 , CASE r
68181 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
68182 103371
68183 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
68184 ,'ALLOW_OVERRIDE_CCID_FLAG'
68185 ,'S'
68186 ,275)
68187 WHEN 17 THEN fvl34.meaning
68188
68189 ELSE null
68190 END source_meaning
68191 FROM xla_events_gt xet
68192 , PA_XLA_CDL_LINES_V l1
68193 , fnd_lookup_values fvl34
68194 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
68195 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
68196 AND xet.event_class_code = C_EVENT_CLASS_CODE
68197 AND l1.event_id = xet.event_id
68198 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
68199 AND fvl34.lookup_code(+) = l1.LINE_TYPE
68200 AND fvl34.view_application_id(+) = 275
68201 AND fvl34.language(+) = USERENV('LANG')
68202
68203 )
68204 ;
68205 --
68206 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68207
68208 trace
68209 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
68210 ,p_level => C_LEVEL_STATEMENT
68211 ,p_module => l_log_module);
68212
68213 END IF;
68214
68215
68216 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68217 trace
68218 (p_msg => 'END of insert_sources_119'
68219 ,p_level => C_LEVEL_PROCEDURE
68220 ,p_module => l_log_module);
68221 END IF;
68222 EXCEPTION
68223 WHEN xla_exceptions_pkg.application_exception THEN
68224 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
68225 trace
68226 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
68227 ,p_level => C_LEVEL_EXCEPTION
68228 ,p_module => l_log_module);
68229 END IF;
68230 RAISE;
68231 WHEN OTHERS THEN
68232 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
68233 trace
68234 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
68235 ,p_level => C_LEVEL_EXCEPTION
68236 ,p_module => l_log_module);
68237 END IF;
68238 xla_exceptions_pkg.raise_message
68239 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_119');
68240 END insert_sources_119;
68241 --
68242
68243 ---------------------------------------
68244 --
68245 -- PRIVATE FUNCTION
68246 -- EventClass_119
68247 --
68248 ----------------------------------------
68249 --
68250 FUNCTION EventClass_119
68251 (p_application_id IN NUMBER
68252 ,p_base_ledger_id IN NUMBER
68253 ,p_target_ledger_id IN NUMBER
68254 ,p_language IN VARCHAR2
68255 ,p_currency_code IN VARCHAR2
68256 ,p_sla_ledger_id IN NUMBER
68257 ,p_pad_start_date IN DATE
68258 ,p_pad_end_date IN DATE
68259 ,p_primary_ledger_id IN NUMBER)
68260 RETURN BOOLEAN IS
68261 --
68262 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ_ALL';
68266 l_calculate_g_l_flag VARCHAR2(1) :='N';
68263 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ';
68264
68265 l_calculate_acctd_flag VARCHAR2(1) :='N';
68267 --
68268 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68269 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68270 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68271 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68272 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68273 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68274 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68275 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68276 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68277 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68278 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68279 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68280 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68281 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68282 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68283 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68284 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68285 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68286 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68287 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68288 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68289 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68290 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
68291 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68292
68293 l_event_id NUMBER;
68294 l_previous_event_id NUMBER;
68295 l_first_event_id NUMBER;
68296 l_last_event_id NUMBER;
68297
68298 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
68299 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
68300 --
68301 --
68302 l_result BOOLEAN := TRUE;
68303 l_rows NUMBER := 1000;
68304 l_event_type_name VARCHAR2(80) := 'All';
68305 l_event_class_name VARCHAR2(80) := 'Miscelleneous Cost Adjustment';
68306 l_description VARCHAR2(4000);
68307 l_transaction_reversal NUMBER;
68308 l_ae_header_id NUMBER;
68309 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
68310 l_log_module VARCHAR2(240);
68311 --
68312 l_acct_reversal_source VARCHAR2(30);
68313 l_trx_reversal_source VARCHAR2(30);
68314
68315 l_continue_with_lines BOOLEAN := TRUE;
68316 --
68317 l_acc_rev_gl_date_source DATE; -- 4262811
68318 --
68319 type t_array_event_id is table of number index by binary_integer;
68320
68321 l_rec_array_event t_rec_array_event;
68322 l_null_rec_array_event t_rec_array_event;
68323 l_array_ae_header_id xla_number_array_type;
68324 l_actual_flag VARCHAR2(1) := NULL;
68325 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
68326 l_balance_type_code VARCHAR2(1) :=NULL;
68327 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
68328
68329 --
68330 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
68331 --
68332
68333 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
68334 TYPE t_array_source_68 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJECT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
68335 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
68336
68337 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
68338 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
68339 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
68340 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
68341 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
68342 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
68343 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
68344 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
68345 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
68346 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
68347 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
68348 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
68349 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
68350 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
68351 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
68352 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
68353 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
68354 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
68355
68356 l_array_source_32 t_array_source_32;
68360 l_array_source_3 t_array_source_3;
68357 l_array_source_68 t_array_source_68;
68358 l_array_source_88 t_array_source_88;
68359
68361 l_array_source_4 t_array_source_4;
68362 l_array_source_5 t_array_source_5;
68363 l_array_source_6 t_array_source_6;
68364 l_array_source_7 t_array_source_7;
68365 l_array_source_22 t_array_source_22;
68366 l_array_source_23 t_array_source_23;
68367 l_array_source_24 t_array_source_24;
68368 l_array_source_25 t_array_source_25;
68369 l_array_source_26 t_array_source_26;
68370 l_array_source_27 t_array_source_27;
68371 l_array_source_28 t_array_source_28;
68372 l_array_source_29 t_array_source_29;
68373 l_array_source_30 t_array_source_30;
68374 l_array_source_31 t_array_source_31;
68375 l_array_source_33 t_array_source_33;
68376 l_array_source_34 t_array_source_34;
68377 l_array_source_34_meaning t_array_lookup_meaning;
68378 l_array_source_35 t_array_source_35;
68379
68380 --
68381 CURSOR header_cur
68382 IS
68383 SELECT /*+ leading(xet) cardinality(xet,1) */
68384 -- Event Class Code: MISC_COST_ADJ
68385 xet.entity_id
68386 ,xet.legal_entity_id
68387 ,xet.entity_code
68388 ,xet.transaction_number
68389 ,xet.event_id
68390 ,xet.event_class_code
68391 ,xet.event_type_code
68392 ,xet.event_number
68393 ,xet.event_date
68394 ,xet.transaction_date
68395 ,xet.reference_num_1
68396 ,xet.reference_num_2
68397 ,xet.reference_num_3
68398 ,xet.reference_num_4
68399 ,xet.reference_char_1
68400 ,xet.reference_char_2
68401 ,xet.reference_char_3
68402 ,xet.reference_char_4
68403 ,xet.reference_date_1
68404 ,xet.reference_date_2
68405 ,xet.reference_date_3
68406 ,xet.reference_date_4
68407 ,xet.event_created_by
68408 ,xet.budgetary_control_flag
68409 , h2.EXPENDITURE_ITEM_ID source_32
68410 , h3.PROJECT_NUMBER source_68
68411 , h2.GL_DATE source_88
68412 FROM xla_events_gt xet
68413 , PA_XLA_EXP_HEADER_V h2
68414 , PA_XLA_PROJECT_REF_V h3
68415 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
68416 and xet.event_class_code = C_EVENT_CLASS_CODE
68417 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
68418 AND h3.PROJECT_ID=h2.PROJECT_ID
68419 ORDER BY event_id
68420 ;
68421
68422
68423 --
68424 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
68425 IS
68426 SELECT /*+ leading(xet) cardinality(xet,1) */
68427 -- Event Class Code: MISC_COST_ADJ
68428 xet.entity_id
68429 ,xet.legal_entity_id
68430 ,xet.entity_code
68431 ,xet.transaction_number
68432 ,xet.event_id
68433 ,xet.event_class_code
68434 ,xet.event_type_code
68435 ,xet.event_number
68436 ,xet.event_date
68437 ,xet.transaction_date
68438 ,xet.reference_num_1
68439 ,xet.reference_num_2
68440 ,xet.reference_num_3
68441 ,xet.reference_num_4
68442 ,xet.reference_char_1
68443 ,xet.reference_char_2
68444 ,xet.reference_char_3
68445 ,xet.reference_char_4
68446 ,xet.reference_date_1
68447 ,xet.reference_date_2
68448 ,xet.reference_date_3
68449 ,xet.reference_date_4
68450 ,xet.event_created_by
68451 ,xet.budgetary_control_flag
68452 , l1.LINE_NUMBER
68453 , l1.COST_CCID source_3
68454 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
68455 , l1.ADJ_COST_CCID source_5
68456 , l1.COST_CLEARING_CCID source_6
68457 , l1.ADJ_COST_CLEARING_CCID source_7
68458 , l1.REVERSING_LINE_FLAG source_22
68459 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
68460 , l1.ENTERED_RAW_COST source_24
68464 , l1.EXCHANGE_RATE source_28
68461 , l1.ENTERED_CURRENCY_CODE source_25
68462 , l1.ACCT_RAW_COST source_26
68463 , l1.EXCHANGE_RATE_DATE source_27
68465 , l1.EXCHANGE_RATE_TYPE source_29
68466 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
68467 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
68468 , l1.LINE_NUMBER source_33
68469 , l1.LINE_TYPE source_34
68470 , fvl34.meaning source_34_meaning
68471 , l1.LINE_NUM_REVERSED source_35
68472 FROM xla_events_gt xet
68473 , PA_XLA_CDL_LINES_V l1
68474 , fnd_lookup_values fvl34
68475 WHERE xet.event_id between x_first_event_id and x_last_event_id
68476 and xet.event_date between p_pad_start_date and p_pad_end_date
68477 and xet.event_class_code = C_EVENT_CLASS_CODE
68478 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
68479 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
68480 AND fvl34.lookup_code(+) = l1.LINE_TYPE
68481 AND fvl34.view_application_id(+) = 275
68482 AND fvl34.language(+) = USERENV('LANG')
68483 ;
68484
68485 --
68486 BEGIN
68487 IF g_log_enabled THEN
68488 l_log_module := C_DEFAULT_MODULE||'.EventClass_119';
68489 END IF;
68490 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68491 trace
68492 (p_msg => 'BEGIN of EventClass_119'
68493 ,p_level => C_LEVEL_PROCEDURE
68494 ,p_module => l_log_module);
68495 END IF;
68496
68497 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68498 trace
68499 (p_msg => 'p_application_id = '||p_application_id||
68500 ' - p_base_ledger_id = '||p_base_ledger_id||
68501 ' - p_target_ledger_id = '||p_target_ledger_id||
68502 ' - p_language = '||p_language||
68503 ' - p_currency_code = '||p_currency_code||
68504 ' - p_sla_ledger_id = '||p_sla_ledger_id
68505 ,p_level => C_LEVEL_STATEMENT
68506 ,p_module => l_log_module);
68507 END IF;
68508 --
68509 -- initialze arrays
68510 --
68511 g_array_event.DELETE;
68512 l_rec_array_event := l_null_rec_array_event;
68513 --
68514 --------------------------------------
68515 -- 4262811 Initialze MPA Line Number
68516 --------------------------------------
68517 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
68518
68519 --
68520
68521 --
68522 OPEN header_cur;
68523 --
68524 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68525 trace
68526 (p_msg => 'SQL - FETCH header_cur'
68527 ,p_level => C_LEVEL_STATEMENT
68528 ,p_module => l_log_module);
68529 END IF;
68530 --
68531 LOOP
68532 FETCH header_cur BULK COLLECT INTO
68533 l_array_entity_id
68534 , l_array_legal_entity_id
68535 , l_array_entity_code
68536 , l_array_transaction_num
68537 , l_array_event_id
68538 , l_array_class_code
68539 , l_array_event_type
68540 , l_array_event_number
68541 , l_array_event_date
68542 , l_array_transaction_date
68543 , l_array_reference_num_1
68544 , l_array_reference_num_2
68545 , l_array_reference_num_3
68546 , l_array_reference_num_4
68547 , l_array_reference_char_1
68548 , l_array_reference_char_2
68549 , l_array_reference_char_3
68550 , l_array_reference_char_4
68551 , l_array_reference_date_1
68552 , l_array_reference_date_2
68553 , l_array_reference_date_3
68554 , l_array_reference_date_4
68555 , l_array_event_created_by
68556 , l_array_budgetary_control_flag
68557 , l_array_source_32
68558 , l_array_source_68
68559 , l_array_source_88
68560 LIMIT l_rows;
68561 --
68562 IF (C_LEVEL_EVENT >= g_log_level) THEN
68563 trace
68564 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
68565 ,p_level => C_LEVEL_EVENT
68566 ,p_module => l_log_module);
68567 END IF;
68568 --
68569 EXIT WHEN l_array_entity_id.COUNT = 0;
68570
68571 -- initialize arrays
68572 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
68573 XLA_AE_LINES_PKG.g_rec_lines := NULL;
68574
68575 --
68576 -- Bug 4458708
68577 --
68578 XLA_AE_LINES_PKG.g_LineNumber := 0;
68579
68580
68581 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
68582 g_last_hdr_idx := l_array_event_id.LAST;
68583 --
68584 -- loop for the headers. Each iteration is for each header extract row
68585 -- fetched in header cursor
68586 --
68587 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
68588
68589 --
68590 -- set event info as cache for other routines to refer event attributes
68591 --
68592 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
68593 (p_application_id => p_application_id
68594 ,p_primary_ledger_id => p_primary_ledger_id
68595 ,p_base_ledger_id => p_base_ledger_id
68596 ,p_target_ledger_id => p_target_ledger_id
68597 ,p_entity_id => l_array_entity_id(hdr_idx)
68598 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
68599 ,p_entity_code => l_array_entity_code(hdr_idx)
68600 ,p_transaction_num => l_array_transaction_num(hdr_idx)
68601 ,p_event_id => l_array_event_id(hdr_idx)
68602 ,p_event_class_code => l_array_class_code(hdr_idx)
68603 ,p_event_type_code => l_array_event_type(hdr_idx)
68604 ,p_event_number => l_array_event_number(hdr_idx)
68605 ,p_event_date => l_array_event_date(hdr_idx)
68606 ,p_transaction_date => l_array_transaction_date(hdr_idx)
68607 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
68611 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
68608 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
68609 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
68610 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
68612 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
68613 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
68614 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
68615 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
68616 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
68617 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
68618 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
68619 ,p_event_created_by => l_array_event_created_by(hdr_idx)
68620 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
68621
68622 --
68623 -- set the status of entry to C_VALID (0)
68624 --
68625 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
68626
68627 --
68628 -- initialize a row for ae header
68629 --
68630 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
68631
68632 l_event_id := l_array_event_id(hdr_idx);
68633
68634 --
68635 -- storing the hdr_idx for event. May be used by line cursor.
68636 --
68637 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
68638
68639 --
68640 -- store sources from header extract. This can be improved to
68641 -- store only those sources from header extract that may be used in lines
68642 --
68643
68644 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
68645 g_array_event(l_event_id).array_value_char('source_68') := l_array_source_68(hdr_idx);
68646 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
68647
68648 --
68649 -- initilaize the status of ae headers for diffrent balance types
68650 -- the status is initialised to C_NOT_CREATED (2)
68651 --
68652 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
68653 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
68654 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
68655
68656 --
68657 -- call api to validate and store accounting attributes for header
68658 --
68659
68660 ------------------------------------------------------------
68661 -- Accrual Reversal : to get date for Standard Source (NONE)
68662 ------------------------------------------------------------
68663 l_acc_rev_gl_date_source := NULL;
68664
68665 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
68666 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
68667
68668
68669 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
68670
68671 XLA_AE_HEADER_PKG.SetJeCategoryName;
68672
68673 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
68674 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
68675 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
68676 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
68677 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
68678
68679
68680 -- No header level analytical criteria
68681
68682 --
68683 --accounting attribute enhancement, bug 3612931
68684 --
68685 l_trx_reversal_source := SUBSTR(NULL, 1,30);
68686
68687 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
68688 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
68689
68690 xla_accounting_err_pkg.build_message
68691 (p_appli_s_name => 'XLA'
68692 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
68693 ,p_token_1 => 'ACCT_ATTR_NAME'
68694 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
68695 ,p_token_2 => 'PRODUCT_NAME'
68696 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
68697 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
68698 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68699 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
68700
68701 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
68702 --
68703 -- following sets the accounting attributes needed to reverse
68704 -- accounting for a distributeion
68705 --
68706 xla_ae_lines_pkg.SetTrxReversalAttrs
68707 (p_event_id => l_event_id
68708 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
68709 ,p_trx_reversal_source => l_trx_reversal_source);
68710
68711 END IF;
68712
68713
68714 ----------------------------------------------------------------
68715 -- 4262811 - update the header statuses to invalid in need be
68716 ----------------------------------------------------------------
68717 --
68718 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
68719
68720
68721 -----------------------------------------------
68722 -- No accrual reversal for the event class/type
68723 -----------------------------------------------
68724 ----------------------------------------------------------------
68725
68726 --
68727 -- this ends the header loop iteration for one bulk fetch
68728 --
68729 END LOOP;
68730
68731 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
68732 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
68733
68737 --
68734 --
68735 -- insert dummy rows into lines gt table that were created due to
68736 -- transaction reversals
68738 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
68739 l_result := XLA_AE_LINES_PKG.InsertLines;
68740 END IF;
68741
68742 --
68743 -- reset the temp_line_num for each set of events fetched from header
68744 -- cursor rather than doing it for each new event in line cursor
68745 -- Bug 3939231
68746 --
68747 xla_ae_lines_pkg.g_temp_line_num := 0;
68748
68749
68750
68751 --
68752 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
68753 --
68754 --
68755 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68756
68757 trace
68758 (p_msg => 'SQL - FETCH line_cur'
68759 ,p_level => C_LEVEL_STATEMENT
68760 ,p_module => l_log_module);
68761
68762 END IF;
68763 --
68764 --
68765 LOOP
68766 --
68767 FETCH line_cur BULK COLLECT INTO
68768 l_array_entity_id
68769 , l_array_legal_entity_id
68770 , l_array_entity_code
68771 , l_array_transaction_num
68772 , l_array_event_id
68773 , l_array_class_code
68774 , l_array_event_type
68775 , l_array_event_number
68776 , l_array_event_date
68777 , l_array_transaction_date
68778 , l_array_reference_num_1
68779 , l_array_reference_num_2
68780 , l_array_reference_num_3
68781 , l_array_reference_num_4
68782 , l_array_reference_char_1
68783 , l_array_reference_char_2
68784 , l_array_reference_char_3
68785 , l_array_reference_char_4
68786 , l_array_reference_date_1
68787 , l_array_reference_date_2
68788 , l_array_reference_date_3
68789 , l_array_reference_date_4
68790 , l_array_event_created_by
68791 , l_array_budgetary_control_flag
68792 , l_array_extract_line_num
68793 , l_array_source_3
68794 , l_array_source_4
68795 , l_array_source_5
68796 , l_array_source_6
68797 , l_array_source_7
68798 , l_array_source_22
68799 , l_array_source_23
68800 , l_array_source_24
68801 , l_array_source_25
68802 , l_array_source_26
68803 , l_array_source_27
68804 , l_array_source_28
68805 , l_array_source_29
68806 , l_array_source_30
68807 , l_array_source_31
68808 , l_array_source_33
68809 , l_array_source_34
68810 , l_array_source_34_meaning
68811 , l_array_source_35
68812 LIMIT l_rows;
68813
68814 --
68815 IF (C_LEVEL_EVENT >= g_log_level) THEN
68816 trace
68817 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
68818 ,p_level => C_LEVEL_EVENT
68819 ,p_module => l_log_module);
68820 END IF;
68821 --
68822 EXIT WHEN l_array_entity_id.count = 0;
68823
68824 XLA_AE_LINES_PKG.g_rec_lines := null;
68825
68826 --
68827 -- Bug 4458708
68828 --
68829 XLA_AE_LINES_PKG.g_LineNumber := 0;
68830 --
68831 --
68832
68833 FOR Idx IN 1..l_array_event_id.count LOOP
68834 --
68835 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
68836 --
68837 l_event_id := l_array_event_id(idx); -- 5648433
68838
68839 --
68840 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
68841 --
68842
68843 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
68844 (g_array_event(l_event_id).array_value_num('header_index'))
68845 ,'N'
68846 ) <> 'Y'
68847 THEN
68848 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68849 trace
68850 (p_msg => 'Trancaction revesal option is not Y '
68851 ,p_level => C_LEVEL_STATEMENT
68852 ,p_module => l_log_module);
68853 END IF;
68854
68855 --
68856 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
68857 --
68858 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
68859 --
68860 -- set event info as cache for other routines to refer event attributes
68861 --
68862
68863 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
68864 l_previous_event_id := l_event_id;
68865
68866 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
68867 (p_application_id => p_application_id
68868 ,p_primary_ledger_id => p_primary_ledger_id
68869 ,p_base_ledger_id => p_base_ledger_id
68870 ,p_target_ledger_id => p_target_ledger_id
68871 ,p_entity_id => l_array_entity_id(Idx)
68872 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
68873 ,p_entity_code => l_array_entity_code(Idx)
68874 ,p_transaction_num => l_array_transaction_num(Idx)
68875 ,p_event_id => l_array_event_id(Idx)
68876 ,p_event_class_code => l_array_class_code(Idx)
68877 ,p_event_type_code => l_array_event_type(Idx)
68878 ,p_event_number => l_array_event_number(Idx)
68879 ,p_event_date => l_array_event_date(Idx)
68880 ,p_transaction_date => l_array_transaction_date(Idx)
68881 ,p_reference_num_1 => l_array_reference_num_1(Idx)
68882 ,p_reference_num_2 => l_array_reference_num_2(Idx)
68883 ,p_reference_num_3 => l_array_reference_num_3(Idx)
68884 ,p_reference_num_4 => l_array_reference_num_4(Idx)
68885 ,p_reference_char_1 => l_array_reference_char_1(Idx)
68886 ,p_reference_char_2 => l_array_reference_char_2(Idx)
68890 ,p_reference_date_2 => l_array_reference_date_2(Idx)
68887 ,p_reference_char_3 => l_array_reference_char_3(Idx)
68888 ,p_reference_char_4 => l_array_reference_char_4(Idx)
68889 ,p_reference_date_1 => l_array_reference_date_1(Idx)
68891 ,p_reference_date_3 => l_array_reference_date_3(Idx)
68892 ,p_reference_date_4 => l_array_reference_date_4(Idx)
68893 ,p_event_created_by => l_array_event_created_by(Idx)
68894 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
68895 --
68896 END IF;
68897
68898
68899
68900 --
68901 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
68902
68903 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
68904
68905 IF l_continue_with_lines THEN
68906 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
68907 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
68908
68909 xla_accounting_err_pkg.build_message
68910 (p_appli_s_name => 'XLA'
68911 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
68912 ,p_token_1 => 'LINE_NUMBER'
68913 ,p_value_1 => l_array_extract_line_num(Idx)
68914 ,p_token_2 => 'PRODUCT_NAME'
68915 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
68916 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
68917 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68918 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
68919
68920 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
68921 --
68922 -- following sets the accounting attributes needed to reverse
68923 -- accounting for a distributeion
68924 --
68925
68926 --
68927 -- 5217187
68928 --
68929 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
68930 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
68931 g_array_event(l_event_id).array_value_num('header_index'));
68932 --
68933 --
68934
68935 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
68936 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
68937 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
68938 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
68939 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
68940 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
68941 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
68942 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
68943 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
68944 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
68945 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
68946 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
68947 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
68948 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
68949 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
68950 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
68951 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
68952 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
68953 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
68954 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
68955 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
68956 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
68957 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
68958 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
68959 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
68960 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
68961 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
68962 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
68963 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
68964 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
68965 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
68966 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
68967 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
68968 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
68969 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
68970 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
68971 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
68972 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
68973 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
68974 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
68975 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
68976 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
68977 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
68978 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
68979 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
68980 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
68981 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
68982 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
68983
68984
68985 xla_ae_lines_pkg.SetAcctReversalAttrs
68986 (p_event_id => l_event_id
68987 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
68988 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68989 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
68990 END IF;
68991
68992 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
68993 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
68994
68995 --
68996 AcctLineType_48 (
68997 p_application_id => p_application_id
68998 ,p_event_id => l_event_id
68999 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69000 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69001 ,p_actual_flag => l_actual_flag
69002 ,p_balance_type_code => l_balance_type_code
69003 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69004
69005 , p_source_3 => l_array_source_3(Idx)
69006 , p_source_4 => l_array_source_4(Idx)
69007 , p_source_5 => l_array_source_5(Idx)
69008 , p_source_6 => l_array_source_6(Idx)
69009 , p_source_22 => l_array_source_22(Idx)
69010 , p_source_23 => l_array_source_23(Idx)
69011 , p_source_24 => l_array_source_24(Idx)
69012 , p_source_25 => l_array_source_25(Idx)
69013 , p_source_26 => l_array_source_26(Idx)
69014 , p_source_27 => l_array_source_27(Idx)
69015 , p_source_28 => l_array_source_28(Idx)
69016 , p_source_29 => l_array_source_29(Idx)
69017 , p_source_30 => l_array_source_30(Idx)
69018 , p_source_31 => l_array_source_31(Idx)
69019 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
69020 , p_source_33 => l_array_source_33(Idx)
69021 , p_source_34 => l_array_source_34(Idx)
69022 , p_source_34_meaning => l_array_source_34_meaning(Idx)
69026 If(l_balance_type_code = 'A') THEN
69023 , p_source_35 => l_array_source_35(Idx)
69024 , p_source_68 => g_array_event(l_event_id).array_value_char('source_68')
69025 );
69027 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69028 END IF;
69029
69030 --
69031
69032
69033 --
69034 AcctLineType_62 (
69035 p_application_id => p_application_id
69036 ,p_event_id => l_event_id
69037 ,p_calculate_acctd_flag => l_calculate_acctd_flag
69038 ,p_calculate_g_l_flag => l_calculate_g_l_flag
69039 ,p_actual_flag => l_actual_flag
69040 ,p_balance_type_code => l_balance_type_code
69041 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
69042
69043 , p_source_3 => l_array_source_3(Idx)
69044 , p_source_4 => l_array_source_4(Idx)
69045 , p_source_6 => l_array_source_6(Idx)
69046 , p_source_7 => l_array_source_7(Idx)
69047 , p_source_22 => l_array_source_22(Idx)
69048 , p_source_23 => l_array_source_23(Idx)
69049 , p_source_24 => l_array_source_24(Idx)
69050 , p_source_25 => l_array_source_25(Idx)
69051 , p_source_26 => l_array_source_26(Idx)
69052 , p_source_27 => l_array_source_27(Idx)
69053 , p_source_28 => l_array_source_28(Idx)
69054 , p_source_29 => l_array_source_29(Idx)
69055 , p_source_30 => l_array_source_30(Idx)
69056 , p_source_31 => l_array_source_31(Idx)
69057 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
69058 , p_source_33 => l_array_source_33(Idx)
69059 , p_source_34 => l_array_source_34(Idx)
69060 , p_source_34_meaning => l_array_source_34_meaning(Idx)
69061 , p_source_35 => l_array_source_35(Idx)
69062 , p_source_68 => g_array_event(l_event_id).array_value_char('source_68')
69063 );
69064 If(l_balance_type_code = 'A') THEN
69065 l_actual_gain_loss_ref := l_gain_or_loss_ref;
69066 END IF;
69067
69068 --
69069
69070 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
69071 -- or secondary ledger that has different currency with primary
69072 -- or alc that is calculated by sla
69073 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
69074 (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'))
69075
69076 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
69077 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
69078 AND (l_actual_flag = 'A')) THEN
69079 XLA_AE_LINES_PKG.CreateGainOrLossLines(
69080 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
69081 ,p_application_id => p_application_id
69082 ,p_amb_context_code => 'DEFAULT'
69083 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
69084 ,p_event_class_code => C_EVENT_CLASS_CODE
69085 ,p_event_type_code => C_EVENT_TYPE_CODE
69086
69087 ,p_gain_ccid => -1
69088 ,p_loss_ccid => -1
69089
69090 ,p_actual_flag => l_actual_flag
69091 ,p_enc_flag => null
69092 ,p_actual_g_l_ref => l_actual_gain_loss_ref
69093 ,p_enc_g_l_ref => null
69094 );
69095 END IF;
69096 END IF;
69097 END IF;
69098
69099 ELSE
69100 --
69101 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
69102 --
69103 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69104 trace
69105 (p_msg => 'Trancaction revesal option is Y'
69106 ,p_level => C_LEVEL_STATEMENT
69107 ,p_module => l_log_module);
69108 END IF;
69109 END IF;
69110
69111 END LOOP;
69112 l_result := XLA_AE_LINES_PKG.InsertLines ;
69113 end loop;
69114 close line_cur;
69115
69116
69117 --
69118 -- insert headers into xla_ae_headers_gt table
69119 --
69120 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
69121
69122 -- insert into errors table here.
69123
69124 END LOOP;
69125
69126 --
69127 -- 4865292
69128 --
69129 -- Compare g_hdr_extract_count with event count in
69130 -- CreateHeadersAndLines.
69131 --
69132 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
69133
69134 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69135 trace (p_msg => '# rows extracted from header extract objects '
69136 || ' (running total): '
69137 || g_hdr_extract_count
69138 ,p_level => C_LEVEL_STATEMENT
69139 ,p_module => l_log_module);
69140 END IF;
69141
69142 CLOSE header_cur;
69143 --
69144
69145 --
69146 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69147 trace
69148 (p_msg => 'END of EventClass_119'
69149 ,p_level => C_LEVEL_PROCEDURE
69150 ,p_module => l_log_module);
69151 END IF;
69152 --
69153 RETURN l_result;
69154 EXCEPTION
69155 WHEN xla_exceptions_pkg.application_exception THEN
69156
69157 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
69158
69159
69160 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
69161
69162 RAISE;
69163 WHEN OTHERS THEN
69164 xla_exceptions_pkg.raise_message
69165 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_119');
69166 END EventClass_119;
69167 --
69168
69169 ---------------------------------------
69170 --
69171 -- PRIVATE PROCEDURE
69172 -- insert_sources_120
69173 --
69174 ----------------------------------------
69175 --
69176 PROCEDURE insert_sources_120(
69177 p_target_ledger_id IN NUMBER
69181 , p_pad_end_date IN DATE
69178 , p_language IN VARCHAR2
69179 , p_sla_ledger_id IN NUMBER
69180 , p_pad_start_date IN DATE
69182 )
69183 IS
69184
69185 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ALL';
69186 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST';
69187 p_apps_owner VARCHAR2(30);
69188 l_log_module VARCHAR2(240);
69189 BEGIN
69190 IF g_log_enabled THEN
69191 l_log_module := C_DEFAULT_MODULE||'.insert_sources_120';
69192 END IF;
69193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69194
69195 trace
69196 (p_msg => 'BEGIN of insert_sources_120'
69197 ,p_level => C_LEVEL_PROCEDURE
69198 ,p_module => l_log_module);
69199
69200 END IF;
69201
69202 -- select APPS owner
69203 SELECT oracle_username
69204 INTO p_apps_owner
69205 FROM fnd_oracle_userid
69206 WHERE read_only_flag = 'U'
69207 ;
69208
69209 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69210 trace
69211 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
69212 ' - p_language = '||p_language||
69213 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
69214 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
69215 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
69216 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
69217 ,p_level => C_LEVEL_STATEMENT
69218 ,p_module => l_log_module);
69219 END IF;
69220
69221
69222 --
69223 INSERT INTO xla_diag_sources --hdr2
69224 (
69225 event_id
69226 , ledger_id
69227 , sla_ledger_id
69228 , description_language
69229 , object_name
69230 , object_type_code
69231 , line_number
69232 , source_application_id
69233 , source_type_code
69234 , source_code
69235 , source_value
69236 , source_meaning
69237 , created_by
69238 , creation_date
69239 , last_update_date
69240 , last_updated_by
69241 , last_update_login
69242 , program_update_date
69243 , program_application_id
69244 , program_id
69245 , request_id
69246 )
69247 SELECT
69248 event_id
69249 , p_target_ledger_id
69250 , p_sla_ledger_id
69251 , p_language
69252 , object_name
69253 , object_type_code
69254 , line_number
69255 , source_application_id
69256 , source_type_code
69257 , source_code
69258 , SUBSTR(source_value ,1,1996)
69259 , SUBSTR(source_meaning ,1,200)
69260 , xla_environment_pkg.g_Usr_Id
69261 , TRUNC(SYSDATE)
69262 , TRUNC(SYSDATE)
69263 , xla_environment_pkg.g_Usr_Id
69264 , xla_environment_pkg.g_Login_Id
69265 , TRUNC(SYSDATE)
69266 , xla_environment_pkg.g_Prog_Appl_Id
69267 , xla_environment_pkg.g_Prog_Id
69268 , xla_environment_pkg.g_Req_Id
69269 FROM (
69270 SELECT xet.event_id event_id
69271 , 0 line_number
69272 , CASE r
69273 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
69274 WHEN 2 THEN 'PA_XLA_PROJECT_REF_V'
69275 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
69276
69277 ELSE null
69278 END object_name
69279 , CASE r
69280 WHEN 1 THEN 'HEADER'
69281 WHEN 2 THEN 'HEADER'
69282 WHEN 3 THEN 'HEADER'
69283
69284 ELSE null
69285 END object_type_code
69286 , CASE r
69287 WHEN 1 THEN '275'
69288 WHEN 2 THEN '275'
69289 WHEN 3 THEN '275'
69290
69291 ELSE null
69292 END source_application_id
69293 , 'S' source_type_code
69294 , CASE r
69295 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
69296 WHEN 2 THEN 'PROJECT_NUMBER'
69297 WHEN 3 THEN 'GL_DATE'
69298
69299 ELSE null
69300 END source_code
69301 , CASE r
69302 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
69303 WHEN 2 THEN TO_CHAR(h3.PROJECT_NUMBER)
69304 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
69305
69306 ELSE null
69307 END source_value
69308 , null source_meaning
69309 FROM xla_events_gt xet
69310 , PA_XLA_EXP_HEADER_V h2
69311 , PA_XLA_PROJECT_REF_V h3
69312 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
69313 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
69314 AND xet.event_class_code = C_EVENT_CLASS_CODE
69315 AND h2.event_id = xet.event_id
69316 AND h3.project_id=h2.project_id
69317 )
69318 ;
69319 --
69320 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69321
69322 trace
69323 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
69324 ,p_level => C_LEVEL_STATEMENT
69325 ,p_module => l_log_module);
69326
69327 END IF;
69328 --
69329
69330
69331
69332 --
69333 INSERT INTO xla_diag_sources --line2
69334 (
69335 event_id
69336 , ledger_id
69337 , sla_ledger_id
69338 , description_language
69339 , object_name
69340 , object_type_code
69341 , line_number
69342 , source_application_id
69343 , source_type_code
69344 , source_code
69345 , source_value
69346 , source_meaning
69347 , created_by
69348 , creation_date
69349 , last_update_date
69350 , last_updated_by
69351 , last_update_login
69352 , program_update_date
69353 , program_application_id
69354 , program_id
69355 , request_id
69356 )
69357 SELECT event_id
69358 , p_target_ledger_id
69359 , p_sla_ledger_id
69360 , p_language
69361 , object_name
69362 , object_type_code
69363 , line_number
69364 , source_application_id
69365 , source_type_code
69366 , source_code
69367 , SUBSTR(source_value,1,1996)
69368 , SUBSTR(source_meaning ,1,200)
69369 , xla_environment_pkg.g_Usr_Id
69370 , TRUNC(SYSDATE)
69371 , TRUNC(SYSDATE)
69372 , xla_environment_pkg.g_Usr_Id
69373 , xla_environment_pkg.g_Login_Id
69374 , TRUNC(SYSDATE)
69375 , xla_environment_pkg.g_Prog_Appl_Id
69376 , xla_environment_pkg.g_Prog_Id
69377 , xla_environment_pkg.g_Req_Id
69378 FROM (
69379 SELECT xet.event_id event_id
69380 , l1.line_number line_number
69381 , CASE r
69382 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
69383 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
69384 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
69385 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
69386 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
69387 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
69391 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
69388 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
69389 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
69390 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
69392 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
69393 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
69394 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
69395 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
69396 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
69397 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
69398 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
69399 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
69400
69401 ELSE null
69402 END object_name
69403 , CASE r
69404 WHEN 1 THEN 'LINE'
69405 WHEN 2 THEN 'LINE'
69406 WHEN 3 THEN 'LINE'
69407 WHEN 4 THEN 'LINE'
69408 WHEN 5 THEN 'LINE'
69409 WHEN 6 THEN 'LINE'
69410 WHEN 7 THEN 'LINE'
69411 WHEN 8 THEN 'LINE'
69412 WHEN 9 THEN 'LINE'
69413 WHEN 10 THEN 'LINE'
69414 WHEN 11 THEN 'LINE'
69415 WHEN 12 THEN 'LINE'
69416 WHEN 13 THEN 'LINE'
69417 WHEN 14 THEN 'LINE'
69418 WHEN 15 THEN 'LINE'
69419 WHEN 16 THEN 'LINE'
69420 WHEN 17 THEN 'LINE'
69421 WHEN 18 THEN 'LINE'
69422
69423 ELSE null
69424 END object_type_code
69425 , CASE r
69426 WHEN 1 THEN '275'
69427 WHEN 2 THEN '275'
69428 WHEN 3 THEN '275'
69429 WHEN 4 THEN '275'
69430 WHEN 5 THEN '275'
69431 WHEN 6 THEN '275'
69432 WHEN 7 THEN '275'
69433 WHEN 8 THEN '275'
69434 WHEN 9 THEN '275'
69435 WHEN 10 THEN '275'
69436 WHEN 11 THEN '275'
69437 WHEN 12 THEN '275'
69438 WHEN 13 THEN '275'
69439 WHEN 14 THEN '275'
69440 WHEN 15 THEN '275'
69441 WHEN 16 THEN '275'
69442 WHEN 17 THEN '275'
69443 WHEN 18 THEN '275'
69444
69445 ELSE null
69446 END source_application_id
69447 , 'S' source_type_code
69448 , CASE r
69449 WHEN 1 THEN 'COST_CCID'
69450 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
69451 WHEN 3 THEN 'ADJ_COST_CCID'
69452 WHEN 4 THEN 'COST_CLEARING_CCID'
69453 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
69457 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
69454 WHEN 6 THEN 'REVERSING_LINE_FLAG'
69455 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
69456 WHEN 8 THEN 'ENTERED_RAW_COST'
69458 WHEN 10 THEN 'ACCT_RAW_COST'
69459 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
69460 WHEN 12 THEN 'EXCHANGE_RATE'
69461 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
69462 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
69463 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
69464 WHEN 16 THEN 'LINE_NUMBER'
69465 WHEN 17 THEN 'LINE_TYPE'
69466 WHEN 18 THEN 'LINE_NUM_REVERSED'
69467
69468 ELSE null
69469 END source_code
69470 , CASE r
69471 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
69472 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
69473 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
69474 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
69475 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
69476 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
69477 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
69478 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
69479 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
69480 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
69481 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
69482 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
69483 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
69484 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
69485 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
69486 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
69487 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
69488 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
69489
69490 ELSE null
69491 END source_value
69492 , CASE r
69493 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
69494 103371
69495 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
69496 ,'ALLOW_OVERRIDE_CCID_FLAG'
69497 ,'S'
69498 ,275)
69499 WHEN 17 THEN fvl34.meaning
69500
69501 ELSE null
69502 END source_meaning
69503 FROM xla_events_gt xet
69504 , PA_XLA_CDL_LINES_V l1
69505 , fnd_lookup_values fvl34
69506 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
69507 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
69508 AND xet.event_class_code = C_EVENT_CLASS_CODE
69509 AND l1.event_id = xet.event_id
69510 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
69511 AND fvl34.lookup_code(+) = l1.LINE_TYPE
69512 AND fvl34.view_application_id(+) = 275
69513 AND fvl34.language(+) = USERENV('LANG')
69514
69515 )
69516 ;
69517 --
69518 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69519
69520 trace
69521 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
69522 ,p_level => C_LEVEL_STATEMENT
69523 ,p_module => l_log_module);
69524
69525 END IF;
69526
69527
69528 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69529 trace
69530 (p_msg => 'END of insert_sources_120'
69531 ,p_level => C_LEVEL_PROCEDURE
69532 ,p_module => l_log_module);
69533 END IF;
69534 EXCEPTION
69535 WHEN xla_exceptions_pkg.application_exception THEN
69536 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
69537 trace
69538 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
69539 ,p_level => C_LEVEL_EXCEPTION
69540 ,p_module => l_log_module);
69541 END IF;
69542 RAISE;
69543 WHEN OTHERS THEN
69544 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
69545 trace
69546 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
69547 ,p_level => C_LEVEL_EXCEPTION
69548 ,p_module => l_log_module);
69549 END IF;
69550 xla_exceptions_pkg.raise_message
69551 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_120');
69552 END insert_sources_120;
69553 --
69554
69555 ---------------------------------------
69556 --
69557 -- PRIVATE FUNCTION
69558 -- EventClass_120
69559 --
69560 ----------------------------------------
69561 --
69562 FUNCTION EventClass_120
69563 (p_application_id IN NUMBER
69564 ,p_base_ledger_id IN NUMBER
69565 ,p_target_ledger_id IN NUMBER
69566 ,p_language IN VARCHAR2
69567 ,p_currency_code IN VARCHAR2
69568 ,p_sla_ledger_id IN NUMBER
69569 ,p_pad_start_date IN DATE
69570 ,p_pad_end_date IN DATE
69571 ,p_primary_ledger_id IN NUMBER)
69572 RETURN BOOLEAN IS
69573 --
69574 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ALL';
69575 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST';
69576
69577 l_calculate_acctd_flag VARCHAR2(1) :='N';
69578 l_calculate_g_l_flag VARCHAR2(1) :='N';
69579 --
69580 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69581 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69582 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69583 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69587 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69584 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69585 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69586 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69588 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69589 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69590 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69591 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69592 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69593 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69594 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69595 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69596 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69597 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69598 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69599 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69600 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69601 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69602 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
69603 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69604
69605 l_event_id NUMBER;
69606 l_previous_event_id NUMBER;
69607 l_first_event_id NUMBER;
69608 l_last_event_id NUMBER;
69609
69610 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
69611 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
69612 --
69613 --
69614 l_result BOOLEAN := TRUE;
69615 l_rows NUMBER := 1000;
69616 l_event_type_name VARCHAR2(80) := 'All';
69617 l_event_class_name VARCHAR2(80) := 'Miscellaneous Cost';
69618 l_description VARCHAR2(4000);
69619 l_transaction_reversal NUMBER;
69620 l_ae_header_id NUMBER;
69621 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
69622 l_log_module VARCHAR2(240);
69623 --
69624 l_acct_reversal_source VARCHAR2(30);
69625 l_trx_reversal_source VARCHAR2(30);
69626
69627 l_continue_with_lines BOOLEAN := TRUE;
69628 --
69629 l_acc_rev_gl_date_source DATE; -- 4262811
69630 --
69631 type t_array_event_id is table of number index by binary_integer;
69632
69633 l_rec_array_event t_rec_array_event;
69634 l_null_rec_array_event t_rec_array_event;
69635 l_array_ae_header_id xla_number_array_type;
69636 l_actual_flag VARCHAR2(1) := NULL;
69637 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
69638 l_balance_type_code VARCHAR2(1) :=NULL;
69639 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
69640
69641 --
69642 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
69643 --
69644
69645 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
69646 TYPE t_array_source_68 IS TABLE OF PA_XLA_PROJECT_REF_V.PROJECT_NUMBER%TYPE INDEX BY BINARY_INTEGER;
69647 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
69648
69649 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
69650 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
69651 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
69652 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
69653 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
69654 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
69655 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
69656 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
69657 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
69658 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
69659 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
69660 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
69661 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
69662 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
69663 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
69664 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
69665 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
69666 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
69667
69668 l_array_source_32 t_array_source_32;
69669 l_array_source_68 t_array_source_68;
69670 l_array_source_88 t_array_source_88;
69671
69672 l_array_source_3 t_array_source_3;
69673 l_array_source_4 t_array_source_4;
69674 l_array_source_5 t_array_source_5;
69675 l_array_source_6 t_array_source_6;
69676 l_array_source_7 t_array_source_7;
69677 l_array_source_22 t_array_source_22;
69678 l_array_source_23 t_array_source_23;
69679 l_array_source_24 t_array_source_24;
69683 l_array_source_28 t_array_source_28;
69680 l_array_source_25 t_array_source_25;
69681 l_array_source_26 t_array_source_26;
69682 l_array_source_27 t_array_source_27;
69684 l_array_source_29 t_array_source_29;
69685 l_array_source_30 t_array_source_30;
69686 l_array_source_31 t_array_source_31;
69687 l_array_source_33 t_array_source_33;
69688 l_array_source_34 t_array_source_34;
69689 l_array_source_34_meaning t_array_lookup_meaning;
69690 l_array_source_35 t_array_source_35;
69691
69692 --
69693 CURSOR header_cur
69694 IS
69695 SELECT /*+ leading(xet) cardinality(xet,1) */
69696 -- Event Class Code: MISC_COST
69697 xet.entity_id
69698 ,xet.legal_entity_id
69699 ,xet.entity_code
69700 ,xet.transaction_number
69701 ,xet.event_id
69702 ,xet.event_class_code
69703 ,xet.event_type_code
69704 ,xet.event_number
69705 ,xet.event_date
69706 ,xet.transaction_date
69707 ,xet.reference_num_1
69708 ,xet.reference_num_2
69709 ,xet.reference_num_3
69710 ,xet.reference_num_4
69711 ,xet.reference_char_1
69712 ,xet.reference_char_2
69713 ,xet.reference_char_3
69714 ,xet.reference_char_4
69715 ,xet.reference_date_1
69716 ,xet.reference_date_2
69717 ,xet.reference_date_3
69718 ,xet.reference_date_4
69719 ,xet.event_created_by
69720 ,xet.budgetary_control_flag
69721 , h2.EXPENDITURE_ITEM_ID source_32
69722 , h3.PROJECT_NUMBER source_68
69723 , h2.GL_DATE source_88
69724 FROM xla_events_gt xet
69725 , PA_XLA_EXP_HEADER_V h2
69726 , PA_XLA_PROJECT_REF_V h3
69727 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
69728 and xet.event_class_code = C_EVENT_CLASS_CODE
69729 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
69730 AND h3.PROJECT_ID=h2.PROJECT_ID
69731 ORDER BY event_id
69732 ;
69733
69734
69735 --
69736 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
69737 IS
69738 SELECT /*+ leading(xet) cardinality(xet,1) */
69739 -- Event Class Code: MISC_COST
69740 xet.entity_id
69741 ,xet.legal_entity_id
69742 ,xet.entity_code
69743 ,xet.transaction_number
69744 ,xet.event_id
69745 ,xet.event_class_code
69746 ,xet.event_type_code
69747 ,xet.event_number
69748 ,xet.event_date
69749 ,xet.transaction_date
69750 ,xet.reference_num_1
69751 ,xet.reference_num_2
69752 ,xet.reference_num_3
69753 ,xet.reference_num_4
69754 ,xet.reference_char_1
69755 ,xet.reference_char_2
69756 ,xet.reference_char_3
69757 ,xet.reference_char_4
69758 ,xet.reference_date_1
69759 ,xet.reference_date_2
69760 ,xet.reference_date_3
69761 ,xet.reference_date_4
69762 ,xet.event_created_by
69763 ,xet.budgetary_control_flag
69764 , l1.LINE_NUMBER
69765 , l1.COST_CCID source_3
69766 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
69767 , l1.ADJ_COST_CCID source_5
69768 , l1.COST_CLEARING_CCID source_6
69769 , l1.ADJ_COST_CLEARING_CCID source_7
69770 , l1.REVERSING_LINE_FLAG source_22
69771 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
69772 , l1.ENTERED_RAW_COST source_24
69773 , l1.ENTERED_CURRENCY_CODE source_25
69774 , l1.ACCT_RAW_COST source_26
69775 , l1.EXCHANGE_RATE_DATE source_27
69776 , l1.EXCHANGE_RATE source_28
69777 , l1.EXCHANGE_RATE_TYPE source_29
69778 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
69779 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
69780 , l1.LINE_NUMBER source_33
69781 , l1.LINE_TYPE source_34
69782 , fvl34.meaning source_34_meaning
69783 , l1.LINE_NUM_REVERSED source_35
69784 FROM xla_events_gt xet
69785 , PA_XLA_CDL_LINES_V l1
69786 , fnd_lookup_values fvl34
69787 WHERE xet.event_id between x_first_event_id and x_last_event_id
69788 and xet.event_date between p_pad_start_date and p_pad_end_date
69789 and xet.event_class_code = C_EVENT_CLASS_CODE
69790 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
69791 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
69792 AND fvl34.lookup_code(+) = l1.LINE_TYPE
69793 AND fvl34.view_application_id(+) = 275
69794 AND fvl34.language(+) = USERENV('LANG')
69795 ;
69796
69797 --
69798 BEGIN
69799 IF g_log_enabled THEN
69800 l_log_module := C_DEFAULT_MODULE||'.EventClass_120';
69801 END IF;
69802 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69803 trace
69804 (p_msg => 'BEGIN of EventClass_120'
69805 ,p_level => C_LEVEL_PROCEDURE
69806 ,p_module => l_log_module);
69807 END IF;
69808
69809 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69810 trace
69811 (p_msg => 'p_application_id = '||p_application_id||
69812 ' - p_base_ledger_id = '||p_base_ledger_id||
69813 ' - p_target_ledger_id = '||p_target_ledger_id||
69814 ' - p_language = '||p_language||
69815 ' - p_currency_code = '||p_currency_code||
69816 ' - p_sla_ledger_id = '||p_sla_ledger_id
69817 ,p_level => C_LEVEL_STATEMENT
69818 ,p_module => l_log_module);
69819 END IF;
69820 --
69821 -- initialze arrays
69822 --
69823 g_array_event.DELETE;
69824 l_rec_array_event := l_null_rec_array_event;
69825 --
69826 --------------------------------------
69827 -- 4262811 Initialze MPA Line Number
69828 --------------------------------------
69829 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
69830
69831 --
69832
69833 --
69834 OPEN header_cur;
69835 --
69836 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69837 trace
69841 END IF;
69838 (p_msg => 'SQL - FETCH header_cur'
69839 ,p_level => C_LEVEL_STATEMENT
69840 ,p_module => l_log_module);
69842 --
69843 LOOP
69844 FETCH header_cur BULK COLLECT INTO
69845 l_array_entity_id
69846 , l_array_legal_entity_id
69847 , l_array_entity_code
69848 , l_array_transaction_num
69849 , l_array_event_id
69850 , l_array_class_code
69851 , l_array_event_type
69852 , l_array_event_number
69853 , l_array_event_date
69854 , l_array_transaction_date
69855 , l_array_reference_num_1
69856 , l_array_reference_num_2
69857 , l_array_reference_num_3
69858 , l_array_reference_num_4
69859 , l_array_reference_char_1
69860 , l_array_reference_char_2
69861 , l_array_reference_char_3
69862 , l_array_reference_char_4
69863 , l_array_reference_date_1
69864 , l_array_reference_date_2
69865 , l_array_reference_date_3
69866 , l_array_reference_date_4
69867 , l_array_event_created_by
69868 , l_array_budgetary_control_flag
69869 , l_array_source_32
69870 , l_array_source_68
69871 , l_array_source_88
69872 LIMIT l_rows;
69873 --
69874 IF (C_LEVEL_EVENT >= g_log_level) THEN
69875 trace
69876 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
69877 ,p_level => C_LEVEL_EVENT
69878 ,p_module => l_log_module);
69879 END IF;
69880 --
69881 EXIT WHEN l_array_entity_id.COUNT = 0;
69882
69883 -- initialize arrays
69884 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
69885 XLA_AE_LINES_PKG.g_rec_lines := NULL;
69886
69887 --
69888 -- Bug 4458708
69889 --
69890 XLA_AE_LINES_PKG.g_LineNumber := 0;
69891
69892
69893 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
69894 g_last_hdr_idx := l_array_event_id.LAST;
69895 --
69896 -- loop for the headers. Each iteration is for each header extract row
69897 -- fetched in header cursor
69898 --
69899 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
69900
69901 --
69902 -- set event info as cache for other routines to refer event attributes
69903 --
69904 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
69905 (p_application_id => p_application_id
69906 ,p_primary_ledger_id => p_primary_ledger_id
69907 ,p_base_ledger_id => p_base_ledger_id
69908 ,p_target_ledger_id => p_target_ledger_id
69909 ,p_entity_id => l_array_entity_id(hdr_idx)
69910 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
69911 ,p_entity_code => l_array_entity_code(hdr_idx)
69912 ,p_transaction_num => l_array_transaction_num(hdr_idx)
69913 ,p_event_id => l_array_event_id(hdr_idx)
69914 ,p_event_class_code => l_array_class_code(hdr_idx)
69915 ,p_event_type_code => l_array_event_type(hdr_idx)
69916 ,p_event_number => l_array_event_number(hdr_idx)
69917 ,p_event_date => l_array_event_date(hdr_idx)
69918 ,p_transaction_date => l_array_transaction_date(hdr_idx)
69919 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
69920 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
69921 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
69922 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
69923 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
69924 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
69925 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
69926 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
69927 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
69928 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
69929 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
69930 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
69931 ,p_event_created_by => l_array_event_created_by(hdr_idx)
69932 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
69933
69934 --
69935 -- set the status of entry to C_VALID (0)
69936 --
69937 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
69938
69939 --
69940 -- initialize a row for ae header
69941 --
69942 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
69943
69944 l_event_id := l_array_event_id(hdr_idx);
69945
69946 --
69947 -- storing the hdr_idx for event. May be used by line cursor.
69948 --
69949 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
69950
69951 --
69952 -- store sources from header extract. This can be improved to
69953 -- store only those sources from header extract that may be used in lines
69954 --
69955
69956 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
69957 g_array_event(l_event_id).array_value_char('source_68') := l_array_source_68(hdr_idx);
69958 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
69959
69960 --
69961 -- initilaize the status of ae headers for diffrent balance types
69962 -- the status is initialised to C_NOT_CREATED (2)
69963 --
69964 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69965 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69966 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69967
69968 --
69969 -- call api to validate and store accounting attributes for header
69970 --
69971
69972 ------------------------------------------------------------
69976
69973 -- Accrual Reversal : to get date for Standard Source (NONE)
69974 ------------------------------------------------------------
69975 l_acc_rev_gl_date_source := NULL;
69977 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
69978 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
69979
69980
69981 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
69982
69983 XLA_AE_HEADER_PKG.SetJeCategoryName;
69984
69985 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
69986 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
69987 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
69988 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
69989 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
69990
69991
69992 -- No header level analytical criteria
69993
69994 --
69995 --accounting attribute enhancement, bug 3612931
69996 --
69997 l_trx_reversal_source := SUBSTR(NULL, 1,30);
69998
69999 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
70000 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
70001
70002 xla_accounting_err_pkg.build_message
70003 (p_appli_s_name => 'XLA'
70004 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
70005 ,p_token_1 => 'ACCT_ATTR_NAME'
70006 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
70007 ,p_token_2 => 'PRODUCT_NAME'
70008 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
70009 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
70010 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
70011 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
70012
70013 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
70014 --
70015 -- following sets the accounting attributes needed to reverse
70016 -- accounting for a distributeion
70017 --
70018 xla_ae_lines_pkg.SetTrxReversalAttrs
70019 (p_event_id => l_event_id
70020 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
70021 ,p_trx_reversal_source => l_trx_reversal_source);
70022
70023 END IF;
70024
70025
70026 ----------------------------------------------------------------
70027 -- 4262811 - update the header statuses to invalid in need be
70028 ----------------------------------------------------------------
70029 --
70030 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
70031
70032
70033 -----------------------------------------------
70034 -- No accrual reversal for the event class/type
70035 -----------------------------------------------
70036 ----------------------------------------------------------------
70037
70038 --
70039 -- this ends the header loop iteration for one bulk fetch
70040 --
70041 END LOOP;
70042
70043 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
70044 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
70045
70046 --
70047 -- insert dummy rows into lines gt table that were created due to
70048 -- transaction reversals
70049 --
70050 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
70051 l_result := XLA_AE_LINES_PKG.InsertLines;
70052 END IF;
70053
70054 --
70055 -- reset the temp_line_num for each set of events fetched from header
70056 -- cursor rather than doing it for each new event in line cursor
70057 -- Bug 3939231
70058 --
70059 xla_ae_lines_pkg.g_temp_line_num := 0;
70060
70061
70062
70063 --
70064 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
70065 --
70066 --
70067 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70068
70069 trace
70070 (p_msg => 'SQL - FETCH line_cur'
70071 ,p_level => C_LEVEL_STATEMENT
70072 ,p_module => l_log_module);
70073
70074 END IF;
70075 --
70076 --
70077 LOOP
70078 --
70079 FETCH line_cur BULK COLLECT INTO
70080 l_array_entity_id
70081 , l_array_legal_entity_id
70082 , l_array_entity_code
70083 , l_array_transaction_num
70084 , l_array_event_id
70085 , l_array_class_code
70086 , l_array_event_type
70087 , l_array_event_number
70088 , l_array_event_date
70089 , l_array_transaction_date
70090 , l_array_reference_num_1
70091 , l_array_reference_num_2
70092 , l_array_reference_num_3
70093 , l_array_reference_num_4
70094 , l_array_reference_char_1
70095 , l_array_reference_char_2
70096 , l_array_reference_char_3
70097 , l_array_reference_char_4
70098 , l_array_reference_date_1
70099 , l_array_reference_date_2
70100 , l_array_reference_date_3
70101 , l_array_reference_date_4
70102 , l_array_event_created_by
70103 , l_array_budgetary_control_flag
70104 , l_array_extract_line_num
70105 , l_array_source_3
70106 , l_array_source_4
70107 , l_array_source_5
70108 , l_array_source_6
70109 , l_array_source_7
70110 , l_array_source_22
70111 , l_array_source_23
70112 , l_array_source_24
70113 , l_array_source_25
70114 , l_array_source_26
70115 , l_array_source_27
70116 , l_array_source_28
70117 , l_array_source_29
70118 , l_array_source_30
70119 , l_array_source_31
70123 , l_array_source_35
70120 , l_array_source_33
70121 , l_array_source_34
70122 , l_array_source_34_meaning
70124 LIMIT l_rows;
70125
70126 --
70127 IF (C_LEVEL_EVENT >= g_log_level) THEN
70128 trace
70129 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
70130 ,p_level => C_LEVEL_EVENT
70131 ,p_module => l_log_module);
70132 END IF;
70133 --
70134 EXIT WHEN l_array_entity_id.count = 0;
70135
70136 XLA_AE_LINES_PKG.g_rec_lines := null;
70137
70138 --
70139 -- Bug 4458708
70140 --
70141 XLA_AE_LINES_PKG.g_LineNumber := 0;
70142 --
70143 --
70144
70145 FOR Idx IN 1..l_array_event_id.count LOOP
70146 --
70147 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
70148 --
70149 l_event_id := l_array_event_id(idx); -- 5648433
70150
70151 --
70152 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
70153 --
70154
70155 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
70156 (g_array_event(l_event_id).array_value_num('header_index'))
70157 ,'N'
70158 ) <> 'Y'
70159 THEN
70160 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70161 trace
70162 (p_msg => 'Trancaction revesal option is not Y '
70163 ,p_level => C_LEVEL_STATEMENT
70164 ,p_module => l_log_module);
70165 END IF;
70166
70167 --
70168 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
70169 --
70170 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
70171 --
70172 -- set event info as cache for other routines to refer event attributes
70173 --
70174
70175 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
70176 l_previous_event_id := l_event_id;
70177
70178 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
70179 (p_application_id => p_application_id
70180 ,p_primary_ledger_id => p_primary_ledger_id
70181 ,p_base_ledger_id => p_base_ledger_id
70182 ,p_target_ledger_id => p_target_ledger_id
70183 ,p_entity_id => l_array_entity_id(Idx)
70184 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
70185 ,p_entity_code => l_array_entity_code(Idx)
70186 ,p_transaction_num => l_array_transaction_num(Idx)
70187 ,p_event_id => l_array_event_id(Idx)
70188 ,p_event_class_code => l_array_class_code(Idx)
70189 ,p_event_type_code => l_array_event_type(Idx)
70190 ,p_event_number => l_array_event_number(Idx)
70191 ,p_event_date => l_array_event_date(Idx)
70192 ,p_transaction_date => l_array_transaction_date(Idx)
70193 ,p_reference_num_1 => l_array_reference_num_1(Idx)
70194 ,p_reference_num_2 => l_array_reference_num_2(Idx)
70195 ,p_reference_num_3 => l_array_reference_num_3(Idx)
70196 ,p_reference_num_4 => l_array_reference_num_4(Idx)
70197 ,p_reference_char_1 => l_array_reference_char_1(Idx)
70198 ,p_reference_char_2 => l_array_reference_char_2(Idx)
70199 ,p_reference_char_3 => l_array_reference_char_3(Idx)
70200 ,p_reference_char_4 => l_array_reference_char_4(Idx)
70201 ,p_reference_date_1 => l_array_reference_date_1(Idx)
70202 ,p_reference_date_2 => l_array_reference_date_2(Idx)
70203 ,p_reference_date_3 => l_array_reference_date_3(Idx)
70204 ,p_reference_date_4 => l_array_reference_date_4(Idx)
70205 ,p_event_created_by => l_array_event_created_by(Idx)
70206 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
70207 --
70208 END IF;
70209
70210
70211
70212 --
70213 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
70214
70215 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
70216
70217 IF l_continue_with_lines THEN
70218 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
70219 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
70220
70221 xla_accounting_err_pkg.build_message
70222 (p_appli_s_name => 'XLA'
70223 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
70224 ,p_token_1 => 'LINE_NUMBER'
70225 ,p_value_1 => l_array_extract_line_num(Idx)
70226 ,p_token_2 => 'PRODUCT_NAME'
70227 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
70228 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
70229 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
70230 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
70231
70232 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
70233 --
70234 -- following sets the accounting attributes needed to reverse
70235 -- accounting for a distributeion
70236 --
70237
70238 --
70239 -- 5217187
70240 --
70241 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
70242 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
70243 g_array_event(l_event_id).array_value_num('header_index'));
70244 --
70245 --
70246
70247 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
70248 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
70252 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
70249 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
70250 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
70251 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
70253 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
70254 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
70255 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
70256 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
70257 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
70258 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
70259 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
70260 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
70261 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
70262 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
70263 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
70264 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
70265 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
70266 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
70267 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
70268 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
70269 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
70270 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
70271 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
70272 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
70273 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
70274 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
70275 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
70276 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
70277 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
70278 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
70279 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
70280 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
70281 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
70282 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
70283 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
70284 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
70285 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
70286 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
70287 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
70288 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
70289 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
70290 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
70291 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
70292 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
70293 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
70294 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
70295
70296
70297 xla_ae_lines_pkg.SetAcctReversalAttrs
70298 (p_event_id => l_event_id
70299 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
70300 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70301 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
70302 END IF;
70303
70304 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
70305 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
70306
70307 --
70308 AcctLineType_46 (
70309 p_application_id => p_application_id
70310 ,p_event_id => l_event_id
70311 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70312 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70313 ,p_actual_flag => l_actual_flag
70314 ,p_balance_type_code => l_balance_type_code
70315 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70316
70317 , p_source_3 => l_array_source_3(Idx)
70318 , p_source_4 => l_array_source_4(Idx)
70319 , p_source_5 => l_array_source_5(Idx)
70320 , p_source_6 => l_array_source_6(Idx)
70321 , p_source_22 => l_array_source_22(Idx)
70322 , p_source_23 => l_array_source_23(Idx)
70323 , p_source_24 => l_array_source_24(Idx)
70324 , p_source_25 => l_array_source_25(Idx)
70325 , p_source_26 => l_array_source_26(Idx)
70326 , p_source_27 => l_array_source_27(Idx)
70327 , p_source_28 => l_array_source_28(Idx)
70328 , p_source_29 => l_array_source_29(Idx)
70329 , p_source_30 => l_array_source_30(Idx)
70330 , p_source_31 => l_array_source_31(Idx)
70331 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
70332 , p_source_33 => l_array_source_33(Idx)
70333 , p_source_34 => l_array_source_34(Idx)
70334 , p_source_34_meaning => l_array_source_34_meaning(Idx)
70335 , p_source_35 => l_array_source_35(Idx)
70336 , p_source_68 => g_array_event(l_event_id).array_value_char('source_68')
70337 );
70338 If(l_balance_type_code = 'A') THEN
70339 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70340 END IF;
70341
70342 --
70343
70344
70345 --
70346 AcctLineType_58 (
70347 p_application_id => p_application_id
70348 ,p_event_id => l_event_id
70349 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70350 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70351 ,p_actual_flag => l_actual_flag
70355 , p_source_3 => l_array_source_3(Idx)
70352 ,p_balance_type_code => l_balance_type_code
70353 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70354
70356 , p_source_4 => l_array_source_4(Idx)
70357 , p_source_6 => l_array_source_6(Idx)
70358 , p_source_7 => l_array_source_7(Idx)
70359 , p_source_22 => l_array_source_22(Idx)
70360 , p_source_23 => l_array_source_23(Idx)
70361 , p_source_24 => l_array_source_24(Idx)
70362 , p_source_25 => l_array_source_25(Idx)
70363 , p_source_26 => l_array_source_26(Idx)
70364 , p_source_27 => l_array_source_27(Idx)
70365 , p_source_28 => l_array_source_28(Idx)
70366 , p_source_29 => l_array_source_29(Idx)
70367 , p_source_30 => l_array_source_30(Idx)
70368 , p_source_31 => l_array_source_31(Idx)
70369 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
70370 , p_source_33 => l_array_source_33(Idx)
70371 , p_source_34 => l_array_source_34(Idx)
70372 , p_source_34_meaning => l_array_source_34_meaning(Idx)
70373 , p_source_35 => l_array_source_35(Idx)
70374 , p_source_68 => g_array_event(l_event_id).array_value_char('source_68')
70375 );
70376 If(l_balance_type_code = 'A') THEN
70377 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70378 END IF;
70379
70380 --
70381
70382 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
70383 -- or secondary ledger that has different currency with primary
70384 -- or alc that is calculated by sla
70385 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70386 (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'))
70387
70388 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
70389 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
70390 AND (l_actual_flag = 'A')) THEN
70391 XLA_AE_LINES_PKG.CreateGainOrLossLines(
70392 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
70393 ,p_application_id => p_application_id
70394 ,p_amb_context_code => 'DEFAULT'
70395 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
70396 ,p_event_class_code => C_EVENT_CLASS_CODE
70397 ,p_event_type_code => C_EVENT_TYPE_CODE
70398
70399 ,p_gain_ccid => -1
70400 ,p_loss_ccid => -1
70401
70402 ,p_actual_flag => l_actual_flag
70403 ,p_enc_flag => null
70404 ,p_actual_g_l_ref => l_actual_gain_loss_ref
70405 ,p_enc_g_l_ref => null
70406 );
70407 END IF;
70408 END IF;
70409 END IF;
70410
70411 ELSE
70412 --
70413 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
70414 --
70415 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70416 trace
70417 (p_msg => 'Trancaction revesal option is Y'
70418 ,p_level => C_LEVEL_STATEMENT
70419 ,p_module => l_log_module);
70420 END IF;
70421 END IF;
70422
70423 END LOOP;
70424 l_result := XLA_AE_LINES_PKG.InsertLines ;
70425 end loop;
70426 close line_cur;
70427
70428
70429 --
70430 -- insert headers into xla_ae_headers_gt table
70431 --
70432 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
70433
70434 -- insert into errors table here.
70435
70436 END LOOP;
70437
70438 --
70439 -- 4865292
70440 --
70441 -- Compare g_hdr_extract_count with event count in
70442 -- CreateHeadersAndLines.
70443 --
70444 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
70445
70446 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70447 trace (p_msg => '# rows extracted from header extract objects '
70448 || ' (running total): '
70449 || g_hdr_extract_count
70450 ,p_level => C_LEVEL_STATEMENT
70451 ,p_module => l_log_module);
70452 END IF;
70453
70454 CLOSE header_cur;
70455 --
70456
70457 --
70458 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70459 trace
70460 (p_msg => 'END of EventClass_120'
70461 ,p_level => C_LEVEL_PROCEDURE
70462 ,p_module => l_log_module);
70463 END IF;
70464 --
70465 RETURN l_result;
70466 EXCEPTION
70467 WHEN xla_exceptions_pkg.application_exception THEN
70468
70469 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
70470
70471
70472 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
70473
70474 RAISE;
70475 WHEN OTHERS THEN
70476 xla_exceptions_pkg.raise_message
70477 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_120');
70478 END EventClass_120;
70479 --
70480
70481 ---------------------------------------
70482 --
70483 -- PRIVATE PROCEDURE
70484 -- insert_sources_121
70485 --
70486 ----------------------------------------
70487 --
70488 PROCEDURE insert_sources_121(
70489 p_target_ledger_id IN NUMBER
70490 , p_language IN VARCHAR2
70491 , p_sla_ledger_id IN NUMBER
70492 , p_pad_start_date IN DATE
70493 , p_pad_end_date IN DATE
70494 )
70495 IS
70496
70497 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
70498 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ';
70499 p_apps_owner VARCHAR2(30);
70500 l_log_module VARCHAR2(240);
70501 BEGIN
70505 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70502 IF g_log_enabled THEN
70503 l_log_module := C_DEFAULT_MODULE||'.insert_sources_121';
70504 END IF;
70506
70507 trace
70508 (p_msg => 'BEGIN of insert_sources_121'
70509 ,p_level => C_LEVEL_PROCEDURE
70510 ,p_module => l_log_module);
70511
70512 END IF;
70513
70514 -- select APPS owner
70515 SELECT oracle_username
70516 INTO p_apps_owner
70517 FROM fnd_oracle_userid
70518 WHERE read_only_flag = 'U'
70519 ;
70520
70521 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70522 trace
70523 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
70524 ' - p_language = '||p_language||
70525 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
70526 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
70527 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
70528 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
70529 ,p_level => C_LEVEL_STATEMENT
70530 ,p_module => l_log_module);
70531 END IF;
70532
70533
70534 --
70535 INSERT INTO xla_diag_sources --hdr2
70536 (
70537 event_id
70538 , ledger_id
70539 , sla_ledger_id
70540 , description_language
70541 , object_name
70542 , object_type_code
70543 , line_number
70544 , source_application_id
70545 , source_type_code
70546 , source_code
70547 , source_value
70548 , source_meaning
70549 , created_by
70550 , creation_date
70551 , last_update_date
70552 , last_updated_by
70553 , last_update_login
70554 , program_update_date
70555 , program_application_id
70556 , program_id
70557 , request_id
70558 )
70559 SELECT
70560 event_id
70561 , p_target_ledger_id
70562 , p_sla_ledger_id
70563 , p_language
70564 , object_name
70565 , object_type_code
70566 , line_number
70567 , source_application_id
70568 , source_type_code
70569 , source_code
70570 , SUBSTR(source_value ,1,1996)
70571 , SUBSTR(source_meaning ,1,200)
70572 , xla_environment_pkg.g_Usr_Id
70573 , TRUNC(SYSDATE)
70574 , TRUNC(SYSDATE)
70575 , xla_environment_pkg.g_Usr_Id
70576 , xla_environment_pkg.g_Login_Id
70577 , TRUNC(SYSDATE)
70578 , xla_environment_pkg.g_Prog_Appl_Id
70579 , xla_environment_pkg.g_Prog_Id
70580 , xla_environment_pkg.g_Req_Id
70581 FROM (
70582 SELECT xet.event_id event_id
70583 , 0 line_number
70584 , CASE r
70585 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
70586 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
70587
70588 ELSE null
70589 END object_name
70590 , CASE r
70591 WHEN 1 THEN 'HEADER'
70592 WHEN 2 THEN 'HEADER'
70593
70594 ELSE null
70595 END object_type_code
70596 , CASE r
70597 WHEN 1 THEN '275'
70598 WHEN 2 THEN '275'
70599
70600 ELSE null
70601 END source_application_id
70602 , 'S' source_type_code
70603 , CASE r
70604 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
70605 WHEN 2 THEN 'GL_DATE'
70606
70607 ELSE null
70608 END source_code
70609 , CASE r
70610 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
70611 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
70612
70613 ELSE null
70614 END source_value
70615 , null source_meaning
70616 FROM xla_events_gt xet
70617 , PA_XLA_EXP_HEADER_V h2
70618 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
70619 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
70620 AND xet.event_class_code = C_EVENT_CLASS_CODE
70621 AND h2.event_id = xet.event_id
70622
70623 )
70624 ;
70625 --
70626 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70627
70628 trace
70629 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
70630 ,p_level => C_LEVEL_STATEMENT
70634 --
70631 ,p_module => l_log_module);
70632
70633 END IF;
70635
70636
70637
70638 --
70639 INSERT INTO xla_diag_sources --line2
70640 (
70641 event_id
70642 , ledger_id
70643 , sla_ledger_id
70644 , description_language
70645 , object_name
70646 , object_type_code
70647 , line_number
70648 , source_application_id
70649 , source_type_code
70650 , source_code
70651 , source_value
70652 , source_meaning
70653 , created_by
70654 , creation_date
70655 , last_update_date
70656 , last_updated_by
70657 , last_update_login
70658 , program_update_date
70659 , program_application_id
70660 , program_id
70661 , request_id
70662 )
70663 SELECT event_id
70664 , p_target_ledger_id
70665 , p_sla_ledger_id
70666 , p_language
70667 , object_name
70668 , object_type_code
70669 , line_number
70670 , source_application_id
70671 , source_type_code
70672 , source_code
70673 , SUBSTR(source_value,1,1996)
70674 , SUBSTR(source_meaning ,1,200)
70675 , xla_environment_pkg.g_Usr_Id
70676 , TRUNC(SYSDATE)
70677 , TRUNC(SYSDATE)
70678 , xla_environment_pkg.g_Usr_Id
70679 , xla_environment_pkg.g_Login_Id
70680 , TRUNC(SYSDATE)
70681 , xla_environment_pkg.g_Prog_Appl_Id
70682 , xla_environment_pkg.g_Prog_Id
70683 , xla_environment_pkg.g_Req_Id
70684 FROM (
70685 SELECT xet.event_id event_id
70686 , l1.line_number line_number
70687 , CASE r
70688 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
70689 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
70690 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
70691 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
70692 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
70693 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
70694 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
70695 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
70696 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
70697 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
70698 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
70699 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
70700 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
70701 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
70702 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
70703 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
70704 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
70705 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
70706
70707 ELSE null
70708 END object_name
70709 , CASE r
70710 WHEN 1 THEN 'LINE'
70711 WHEN 2 THEN 'LINE'
70712 WHEN 3 THEN 'LINE'
70713 WHEN 4 THEN 'LINE'
70714 WHEN 5 THEN 'LINE'
70715 WHEN 6 THEN 'LINE'
70716 WHEN 7 THEN 'LINE'
70717 WHEN 8 THEN 'LINE'
70718 WHEN 9 THEN 'LINE'
70719 WHEN 10 THEN 'LINE'
70720 WHEN 11 THEN 'LINE'
70721 WHEN 12 THEN 'LINE'
70722 WHEN 13 THEN 'LINE'
70723 WHEN 14 THEN 'LINE'
70724 WHEN 15 THEN 'LINE'
70725 WHEN 16 THEN 'LINE'
70726 WHEN 17 THEN 'LINE'
70727 WHEN 18 THEN 'LINE'
70728
70729 ELSE null
70730 END object_type_code
70731 , CASE r
70732 WHEN 1 THEN '275'
70733 WHEN 2 THEN '275'
70734 WHEN 3 THEN '275'
70735 WHEN 4 THEN '275'
70736 WHEN 5 THEN '275'
70737 WHEN 6 THEN '275'
70738 WHEN 7 THEN '275'
70739 WHEN 8 THEN '275'
70740 WHEN 9 THEN '275'
70741 WHEN 10 THEN '275'
70742 WHEN 11 THEN '275'
70743 WHEN 12 THEN '275'
70744 WHEN 13 THEN '275'
70745 WHEN 14 THEN '275'
70746 WHEN 15 THEN '275'
70747 WHEN 16 THEN '275'
70748 WHEN 17 THEN '275'
70749 WHEN 18 THEN '275'
70750
70751 ELSE null
70752 END source_application_id
70753 , 'S' source_type_code
70754 , CASE r
70755 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
70756 WHEN 2 THEN 'DESTINATION_CCID'
70757 WHEN 3 THEN 'ADJ_DESTINATION_CCID'
70758 WHEN 4 THEN 'SOURCE_CCID'
70759 WHEN 5 THEN 'ADJ_SOURCE_CCID'
70760 WHEN 6 THEN 'REVERSING_LINE_FLAG'
70761 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
70762 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
70763 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
70764 WHEN 10 THEN 'EXCHANGE_RATE'
70765 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
70766 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
70767 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
70768 WHEN 14 THEN 'LINE_NUMBER'
70769 WHEN 15 THEN 'LINE_TYPE'
70770 WHEN 16 THEN 'LINE_NUM_REVERSED'
70771 WHEN 17 THEN 'ENTERED_AMOUNT'
70772 WHEN 18 THEN 'ACCT_AMOUNT'
70773
70774 ELSE null
70775 END source_code
70779 WHEN 3 THEN TO_CHAR(l1.ADJ_DESTINATION_CCID)
70776 , CASE r
70777 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
70778 WHEN 2 THEN TO_CHAR(l1.DESTINATION_CCID)
70780 WHEN 4 THEN TO_CHAR(l1.SOURCE_CCID)
70781 WHEN 5 THEN TO_CHAR(l1.ADJ_SOURCE_CCID)
70782 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
70783 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
70784 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
70785 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
70786 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
70787 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
70788 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
70789 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
70790 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
70791 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
70792 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
70793 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
70794 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
70795
70796 ELSE null
70797 END source_value
70798 , CASE r
70799 WHEN 1 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
70800 103371
70801 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
70802 ,'ALLOW_OVERRIDE_CCID_FLAG'
70803 ,'S'
70804 ,275)
70805 WHEN 15 THEN fvl34.meaning
70806
70807 ELSE null
70808 END source_meaning
70809 FROM xla_events_gt xet
70810 , PA_XLA_CCDL_LINES_V l1
70811 , fnd_lookup_values fvl34
70812 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
70813 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
70814 AND xet.event_class_code = C_EVENT_CLASS_CODE
70815 AND l1.event_id = xet.event_id
70816 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
70817 AND fvl34.lookup_code(+) = l1.LINE_TYPE
70818 AND fvl34.view_application_id(+) = 275
70819 AND fvl34.language(+) = USERENV('LANG')
70820
70821 )
70822 ;
70823 --
70824 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70825
70826 trace
70827 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
70828 ,p_level => C_LEVEL_STATEMENT
70829 ,p_module => l_log_module);
70830
70831 END IF;
70832
70833
70834 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70835 trace
70836 (p_msg => 'END of insert_sources_121'
70837 ,p_level => C_LEVEL_PROCEDURE
70838 ,p_module => l_log_module);
70839 END IF;
70840 EXCEPTION
70841 WHEN xla_exceptions_pkg.application_exception THEN
70842 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
70843 trace
70844 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
70845 ,p_level => C_LEVEL_EXCEPTION
70846 ,p_module => l_log_module);
70847 END IF;
70848 RAISE;
70849 WHEN OTHERS THEN
70850 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
70851 trace
70852 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
70853 ,p_level => C_LEVEL_EXCEPTION
70854 ,p_module => l_log_module);
70855 END IF;
70856 xla_exceptions_pkg.raise_message
70857 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_121');
70858 END insert_sources_121;
70859 --
70860
70861 ---------------------------------------
70862 --
70863 -- PRIVATE FUNCTION
70864 -- EventClass_121
70865 --
70866 ----------------------------------------
70867 --
70868 FUNCTION EventClass_121
70869 (p_application_id IN NUMBER
70870 ,p_base_ledger_id IN NUMBER
70871 ,p_target_ledger_id IN NUMBER
70872 ,p_language IN VARCHAR2
70873 ,p_currency_code IN VARCHAR2
70874 ,p_sla_ledger_id IN NUMBER
70875 ,p_pad_start_date IN DATE
70876 ,p_pad_end_date IN DATE
70877 ,p_primary_ledger_id IN NUMBER)
70878 RETURN BOOLEAN IS
70879 --
70880 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
70881 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ';
70882
70883 l_calculate_acctd_flag VARCHAR2(1) :='N';
70884 l_calculate_g_l_flag VARCHAR2(1) :='N';
70885 --
70886 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70887 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70888 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70889 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70890 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70891 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70892 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70893 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70894 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70895 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70896 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70897 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70898 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70899 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70903 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70900 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70901 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70902 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70904 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70905 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70906 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70907 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70908 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
70909 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70910
70911 l_event_id NUMBER;
70912 l_previous_event_id NUMBER;
70913 l_first_event_id NUMBER;
70914 l_last_event_id NUMBER;
70915
70916 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
70917 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
70918 --
70919 --
70920 l_result BOOLEAN := TRUE;
70921 l_rows NUMBER := 1000;
70922 l_event_type_name VARCHAR2(80) := 'All';
70923 l_event_class_name VARCHAR2(80) := 'Provider and Receiver Reclass Adjustment';
70924 l_description VARCHAR2(4000);
70925 l_transaction_reversal NUMBER;
70926 l_ae_header_id NUMBER;
70927 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
70928 l_log_module VARCHAR2(240);
70929 --
70930 l_acct_reversal_source VARCHAR2(30);
70931 l_trx_reversal_source VARCHAR2(30);
70932
70933 l_continue_with_lines BOOLEAN := TRUE;
70934 --
70935 l_acc_rev_gl_date_source DATE; -- 4262811
70936 --
70937 type t_array_event_id is table of number index by binary_integer;
70938
70939 l_rec_array_event t_rec_array_event;
70940 l_null_rec_array_event t_rec_array_event;
70941 l_array_ae_header_id xla_number_array_type;
70942 l_actual_flag VARCHAR2(1) := NULL;
70943 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
70944 l_balance_type_code VARCHAR2(1) :=NULL;
70945 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
70946
70947 --
70948 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
70949 --
70950
70951 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
70952 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
70953
70954 TYPE t_array_source_4 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
70955 TYPE t_array_source_11 IS TABLE OF PA_XLA_CCDL_LINES_V.DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
70956 TYPE t_array_source_12 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
70957 TYPE t_array_source_13 IS TABLE OF PA_XLA_CCDL_LINES_V.SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
70958 TYPE t_array_source_14 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
70959 TYPE t_array_source_22 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
70960 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
70961 TYPE t_array_source_25 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
70962 TYPE t_array_source_27 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
70963 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
70964 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
70965 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
70966 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
70967 TYPE t_array_source_33 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
70968 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
70969 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
70970 TYPE t_array_source_41 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
70971 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
70972
70973 l_array_source_32 t_array_source_32;
70974 l_array_source_88 t_array_source_88;
70975
70976 l_array_source_4 t_array_source_4;
70977 l_array_source_11 t_array_source_11;
70978 l_array_source_12 t_array_source_12;
70979 l_array_source_13 t_array_source_13;
70980 l_array_source_14 t_array_source_14;
70981 l_array_source_22 t_array_source_22;
70982 l_array_source_23 t_array_source_23;
70983 l_array_source_25 t_array_source_25;
70984 l_array_source_27 t_array_source_27;
70985 l_array_source_28 t_array_source_28;
70986 l_array_source_29 t_array_source_29;
70987 l_array_source_30 t_array_source_30;
70988 l_array_source_31 t_array_source_31;
70989 l_array_source_33 t_array_source_33;
70990 l_array_source_34 t_array_source_34;
70991 l_array_source_34_meaning t_array_lookup_meaning;
70992 l_array_source_35 t_array_source_35;
70993 l_array_source_41 t_array_source_41;
70994 l_array_source_43 t_array_source_43;
70995
70996 --
70997 CURSOR header_cur
70998 IS
70999 SELECT /*+ leading(xet) cardinality(xet,1) */
71000 -- Event Class Code: PRVDR_RECVR_RECLASS_ADJ
71001 xet.entity_id
71002 ,xet.legal_entity_id
71003 ,xet.entity_code
71004 ,xet.transaction_number
71005 ,xet.event_id
71006 ,xet.event_class_code
71010 ,xet.transaction_date
71007 ,xet.event_type_code
71008 ,xet.event_number
71009 ,xet.event_date
71011 ,xet.reference_num_1
71012 ,xet.reference_num_2
71013 ,xet.reference_num_3
71014 ,xet.reference_num_4
71015 ,xet.reference_char_1
71016 ,xet.reference_char_2
71017 ,xet.reference_char_3
71018 ,xet.reference_char_4
71019 ,xet.reference_date_1
71020 ,xet.reference_date_2
71021 ,xet.reference_date_3
71022 ,xet.reference_date_4
71023 ,xet.event_created_by
71024 ,xet.budgetary_control_flag
71025 , h2.EXPENDITURE_ITEM_ID source_32
71026 , h2.GL_DATE source_88
71027 FROM xla_events_gt xet
71028 , PA_XLA_EXP_HEADER_V h2
71029 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
71030 and xet.event_class_code = C_EVENT_CLASS_CODE
71031 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
71032
71033 ORDER BY event_id
71034 ;
71035
71036
71037 --
71038 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
71039 IS
71040 SELECT /*+ leading(xet) cardinality(xet,1) */
71041 -- Event Class Code: PRVDR_RECVR_RECLASS_ADJ
71042 xet.entity_id
71043 ,xet.legal_entity_id
71044 ,xet.entity_code
71045 ,xet.transaction_number
71046 ,xet.event_id
71047 ,xet.event_class_code
71048 ,xet.event_type_code
71049 ,xet.event_number
71050 ,xet.event_date
71051 ,xet.transaction_date
71052 ,xet.reference_num_1
71053 ,xet.reference_num_2
71054 ,xet.reference_num_3
71055 ,xet.reference_num_4
71056 ,xet.reference_char_1
71057 ,xet.reference_char_2
71058 ,xet.reference_char_3
71059 ,xet.reference_char_4
71060 ,xet.reference_date_1
71061 ,xet.reference_date_2
71062 ,xet.reference_date_3
71063 ,xet.reference_date_4
71064 ,xet.event_created_by
71065 ,xet.budgetary_control_flag
71066 , l1.LINE_NUMBER
71067 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
71068 , l1.DESTINATION_CCID source_11
71069 , l1.ADJ_DESTINATION_CCID source_12
71070 , l1.SOURCE_CCID source_13
71071 , l1.ADJ_SOURCE_CCID source_14
71072 , l1.REVERSING_LINE_FLAG source_22
71073 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
71074 , l1.ENTERED_CURRENCY_CODE source_25
71075 , l1.EXCHANGE_RATE_DATE source_27
71076 , l1.EXCHANGE_RATE source_28
71077 , l1.EXCHANGE_RATE_TYPE source_29
71078 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
71079 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
71080 , l1.LINE_NUMBER source_33
71081 , l1.LINE_TYPE source_34
71082 , fvl34.meaning source_34_meaning
71083 , l1.LINE_NUM_REVERSED source_35
71084 , l1.ENTERED_AMOUNT source_41
71085 , l1.ACCT_AMOUNT source_43
71086 FROM xla_events_gt xet
71087 , PA_XLA_CCDL_LINES_V l1
71088 , fnd_lookup_values fvl34
71089 WHERE xet.event_id between x_first_event_id and x_last_event_id
71090 and xet.event_date between p_pad_start_date and p_pad_end_date
71091 and xet.event_class_code = C_EVENT_CLASS_CODE
71092 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
71093 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
71094 AND fvl34.lookup_code(+) = l1.LINE_TYPE
71095 AND fvl34.view_application_id(+) = 275
71096 AND fvl34.language(+) = USERENV('LANG')
71097 ;
71098
71099 --
71100 BEGIN
71101 IF g_log_enabled THEN
71102 l_log_module := C_DEFAULT_MODULE||'.EventClass_121';
71103 END IF;
71104 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71105 trace
71106 (p_msg => 'BEGIN of EventClass_121'
71107 ,p_level => C_LEVEL_PROCEDURE
71108 ,p_module => l_log_module);
71109 END IF;
71110
71111 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71112 trace
71113 (p_msg => 'p_application_id = '||p_application_id||
71114 ' - p_base_ledger_id = '||p_base_ledger_id||
71115 ' - p_target_ledger_id = '||p_target_ledger_id||
71116 ' - p_language = '||p_language||
71117 ' - p_currency_code = '||p_currency_code||
71118 ' - p_sla_ledger_id = '||p_sla_ledger_id
71119 ,p_level => C_LEVEL_STATEMENT
71120 ,p_module => l_log_module);
71121 END IF;
71122 --
71123 -- initialze arrays
71124 --
71125 g_array_event.DELETE;
71126 l_rec_array_event := l_null_rec_array_event;
71127 --
71128 --------------------------------------
71129 -- 4262811 Initialze MPA Line Number
71130 --------------------------------------
71131 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
71132
71133 --
71134
71135 --
71136 OPEN header_cur;
71137 --
71138 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71139 trace
71140 (p_msg => 'SQL - FETCH header_cur'
71141 ,p_level => C_LEVEL_STATEMENT
71142 ,p_module => l_log_module);
71143 END IF;
71144 --
71145 LOOP
71146 FETCH header_cur BULK COLLECT INTO
71147 l_array_entity_id
71148 , l_array_legal_entity_id
71149 , l_array_entity_code
71150 , l_array_transaction_num
71151 , l_array_event_id
71152 , l_array_class_code
71153 , l_array_event_type
71154 , l_array_event_number
71155 , l_array_event_date
71156 , l_array_transaction_date
71157 , l_array_reference_num_1
71158 , l_array_reference_num_2
71159 , l_array_reference_num_3
71160 , l_array_reference_num_4
71161 , l_array_reference_char_1
71162 , l_array_reference_char_2
71163 , l_array_reference_char_3
71164 , l_array_reference_char_4
71165 , l_array_reference_date_1
71166 , l_array_reference_date_2
71170 , l_array_budgetary_control_flag
71167 , l_array_reference_date_3
71168 , l_array_reference_date_4
71169 , l_array_event_created_by
71171 , l_array_source_32
71172 , l_array_source_88
71173 LIMIT l_rows;
71174 --
71175 IF (C_LEVEL_EVENT >= g_log_level) THEN
71176 trace
71177 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
71178 ,p_level => C_LEVEL_EVENT
71179 ,p_module => l_log_module);
71180 END IF;
71181 --
71182 EXIT WHEN l_array_entity_id.COUNT = 0;
71183
71184 -- initialize arrays
71185 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
71186 XLA_AE_LINES_PKG.g_rec_lines := NULL;
71187
71188 --
71189 -- Bug 4458708
71190 --
71191 XLA_AE_LINES_PKG.g_LineNumber := 0;
71192
71193
71194 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
71195 g_last_hdr_idx := l_array_event_id.LAST;
71196 --
71197 -- loop for the headers. Each iteration is for each header extract row
71198 -- fetched in header cursor
71199 --
71200 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
71201
71202 --
71203 -- set event info as cache for other routines to refer event attributes
71204 --
71205 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
71206 (p_application_id => p_application_id
71207 ,p_primary_ledger_id => p_primary_ledger_id
71208 ,p_base_ledger_id => p_base_ledger_id
71209 ,p_target_ledger_id => p_target_ledger_id
71210 ,p_entity_id => l_array_entity_id(hdr_idx)
71211 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
71212 ,p_entity_code => l_array_entity_code(hdr_idx)
71213 ,p_transaction_num => l_array_transaction_num(hdr_idx)
71214 ,p_event_id => l_array_event_id(hdr_idx)
71215 ,p_event_class_code => l_array_class_code(hdr_idx)
71216 ,p_event_type_code => l_array_event_type(hdr_idx)
71217 ,p_event_number => l_array_event_number(hdr_idx)
71218 ,p_event_date => l_array_event_date(hdr_idx)
71219 ,p_transaction_date => l_array_transaction_date(hdr_idx)
71220 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
71221 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
71222 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
71223 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
71224 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
71225 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
71226 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
71227 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
71228 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
71229 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
71230 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
71231 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
71232 ,p_event_created_by => l_array_event_created_by(hdr_idx)
71233 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
71234
71235 --
71236 -- set the status of entry to C_VALID (0)
71237 --
71238 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
71239
71240 --
71241 -- initialize a row for ae header
71242 --
71243 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
71244
71245 l_event_id := l_array_event_id(hdr_idx);
71246
71247 --
71248 -- storing the hdr_idx for event. May be used by line cursor.
71249 --
71250 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
71251
71252 --
71253 -- store sources from header extract. This can be improved to
71254 -- store only those sources from header extract that may be used in lines
71255 --
71256
71257 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
71258 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
71259
71260 --
71261 -- initilaize the status of ae headers for diffrent balance types
71262 -- the status is initialised to C_NOT_CREATED (2)
71263 --
71264 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71265 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71266 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71267
71268 --
71269 -- call api to validate and store accounting attributes for header
71270 --
71271
71272 ------------------------------------------------------------
71273 -- Accrual Reversal : to get date for Standard Source (NONE)
71274 ------------------------------------------------------------
71275 l_acc_rev_gl_date_source := NULL;
71276
71277 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
71278 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
71279
71280
71281 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
71282
71283 XLA_AE_HEADER_PKG.SetJeCategoryName;
71284
71285 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
71286 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
71287 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
71288 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
71289 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
71290
71291
71292 -- No header level analytical criteria
71293
71294 --
71295 --accounting attribute enhancement, bug 3612931
71296 --
71300 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
71297 l_trx_reversal_source := SUBSTR(NULL, 1,30);
71298
71299 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
71301
71302 xla_accounting_err_pkg.build_message
71303 (p_appli_s_name => 'XLA'
71304 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
71305 ,p_token_1 => 'ACCT_ATTR_NAME'
71306 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
71307 ,p_token_2 => 'PRODUCT_NAME'
71308 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
71309 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
71310 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71311 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
71312
71313 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
71314 --
71315 -- following sets the accounting attributes needed to reverse
71316 -- accounting for a distributeion
71317 --
71318 xla_ae_lines_pkg.SetTrxReversalAttrs
71319 (p_event_id => l_event_id
71320 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
71321 ,p_trx_reversal_source => l_trx_reversal_source);
71322
71323 END IF;
71324
71325
71326 ----------------------------------------------------------------
71327 -- 4262811 - update the header statuses to invalid in need be
71328 ----------------------------------------------------------------
71329 --
71330 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
71331
71332
71333 -----------------------------------------------
71334 -- No accrual reversal for the event class/type
71335 -----------------------------------------------
71336 ----------------------------------------------------------------
71337
71338 --
71339 -- this ends the header loop iteration for one bulk fetch
71340 --
71341 END LOOP;
71342
71343 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
71344 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
71345
71346 --
71347 -- insert dummy rows into lines gt table that were created due to
71348 -- transaction reversals
71349 --
71350 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
71351 l_result := XLA_AE_LINES_PKG.InsertLines;
71352 END IF;
71353
71354 --
71355 -- reset the temp_line_num for each set of events fetched from header
71356 -- cursor rather than doing it for each new event in line cursor
71357 -- Bug 3939231
71358 --
71359 xla_ae_lines_pkg.g_temp_line_num := 0;
71360
71361
71362
71363 --
71364 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
71365 --
71366 --
71367 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71368
71369 trace
71370 (p_msg => 'SQL - FETCH line_cur'
71371 ,p_level => C_LEVEL_STATEMENT
71372 ,p_module => l_log_module);
71373
71374 END IF;
71375 --
71376 --
71377 LOOP
71378 --
71379 FETCH line_cur BULK COLLECT INTO
71380 l_array_entity_id
71381 , l_array_legal_entity_id
71382 , l_array_entity_code
71383 , l_array_transaction_num
71384 , l_array_event_id
71385 , l_array_class_code
71386 , l_array_event_type
71387 , l_array_event_number
71388 , l_array_event_date
71389 , l_array_transaction_date
71390 , l_array_reference_num_1
71391 , l_array_reference_num_2
71392 , l_array_reference_num_3
71393 , l_array_reference_num_4
71394 , l_array_reference_char_1
71395 , l_array_reference_char_2
71396 , l_array_reference_char_3
71397 , l_array_reference_char_4
71398 , l_array_reference_date_1
71399 , l_array_reference_date_2
71400 , l_array_reference_date_3
71401 , l_array_reference_date_4
71402 , l_array_event_created_by
71403 , l_array_budgetary_control_flag
71404 , l_array_extract_line_num
71405 , l_array_source_4
71406 , l_array_source_11
71407 , l_array_source_12
71408 , l_array_source_13
71409 , l_array_source_14
71410 , l_array_source_22
71411 , l_array_source_23
71412 , l_array_source_25
71413 , l_array_source_27
71414 , l_array_source_28
71415 , l_array_source_29
71416 , l_array_source_30
71417 , l_array_source_31
71418 , l_array_source_33
71419 , l_array_source_34
71420 , l_array_source_34_meaning
71421 , l_array_source_35
71422 , l_array_source_41
71423 , l_array_source_43
71424 LIMIT l_rows;
71425
71426 --
71427 IF (C_LEVEL_EVENT >= g_log_level) THEN
71428 trace
71429 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
71430 ,p_level => C_LEVEL_EVENT
71431 ,p_module => l_log_module);
71432 END IF;
71433 --
71434 EXIT WHEN l_array_entity_id.count = 0;
71435
71436 XLA_AE_LINES_PKG.g_rec_lines := null;
71437
71438 --
71439 -- Bug 4458708
71440 --
71441 XLA_AE_LINES_PKG.g_LineNumber := 0;
71442 --
71443 --
71444
71445 FOR Idx IN 1..l_array_event_id.count LOOP
71446 --
71447 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
71448 --
71449 l_event_id := l_array_event_id(idx); -- 5648433
71450
71451 --
71452 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
71453 --
71454
71455 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
71456 (g_array_event(l_event_id).array_value_num('header_index'))
71457 ,'N'
71458 ) <> 'Y'
71459 THEN
71460 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71461 trace
71462 (p_msg => 'Trancaction revesal option is not Y '
71463 ,p_level => C_LEVEL_STATEMENT
71464 ,p_module => l_log_module);
71465 END IF;
71466
71467 --
71468 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
71469 --
71470 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
71471 --
71472 -- set event info as cache for other routines to refer event attributes
71473 --
71474
71475 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
71476 l_previous_event_id := l_event_id;
71477
71478 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
71479 (p_application_id => p_application_id
71480 ,p_primary_ledger_id => p_primary_ledger_id
71481 ,p_base_ledger_id => p_base_ledger_id
71482 ,p_target_ledger_id => p_target_ledger_id
71483 ,p_entity_id => l_array_entity_id(Idx)
71484 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
71485 ,p_entity_code => l_array_entity_code(Idx)
71486 ,p_transaction_num => l_array_transaction_num(Idx)
71487 ,p_event_id => l_array_event_id(Idx)
71488 ,p_event_class_code => l_array_class_code(Idx)
71489 ,p_event_type_code => l_array_event_type(Idx)
71490 ,p_event_number => l_array_event_number(Idx)
71491 ,p_event_date => l_array_event_date(Idx)
71492 ,p_transaction_date => l_array_transaction_date(Idx)
71493 ,p_reference_num_1 => l_array_reference_num_1(Idx)
71494 ,p_reference_num_2 => l_array_reference_num_2(Idx)
71498 ,p_reference_char_2 => l_array_reference_char_2(Idx)
71495 ,p_reference_num_3 => l_array_reference_num_3(Idx)
71496 ,p_reference_num_4 => l_array_reference_num_4(Idx)
71497 ,p_reference_char_1 => l_array_reference_char_1(Idx)
71499 ,p_reference_char_3 => l_array_reference_char_3(Idx)
71500 ,p_reference_char_4 => l_array_reference_char_4(Idx)
71501 ,p_reference_date_1 => l_array_reference_date_1(Idx)
71502 ,p_reference_date_2 => l_array_reference_date_2(Idx)
71503 ,p_reference_date_3 => l_array_reference_date_3(Idx)
71504 ,p_reference_date_4 => l_array_reference_date_4(Idx)
71505 ,p_event_created_by => l_array_event_created_by(Idx)
71506 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
71507 --
71508 END IF;
71509
71510
71511
71512 --
71513 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
71514
71515 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
71516
71517 IF l_continue_with_lines THEN
71518 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
71519 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
71520
71521 xla_accounting_err_pkg.build_message
71522 (p_appli_s_name => 'XLA'
71523 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
71524 ,p_token_1 => 'LINE_NUMBER'
71525 ,p_value_1 => l_array_extract_line_num(Idx)
71526 ,p_token_2 => 'PRODUCT_NAME'
71527 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
71528 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
71529 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71530 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
71531
71532 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
71533 --
71534 -- following sets the accounting attributes needed to reverse
71535 -- accounting for a distributeion
71536 --
71537
71538 --
71539 -- 5217187
71540 --
71541 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
71542 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
71543 g_array_event(l_event_id).array_value_num('header_index'));
71544 --
71545 --
71546
71547 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
71548 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
71549 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
71550 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
71551 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
71552 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_13(Idx));
71553 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
71554 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_41(Idx);
71555 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
71556 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
71557 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
71558 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
71559 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
71560 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
71561 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
71562 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
71563 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
71564 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
71565 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
71566 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
71567 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
71568 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_11(Idx));
71569 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
71570 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_41(Idx);
71571 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
71572 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
71573 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
71574 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
71575 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
71576 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
71577 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
71578 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
71579 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
71580 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
71581 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
71582 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
71583 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
71584 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
71585 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
71586 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
71587 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
71588 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
71592 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
71589 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
71590 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
71591 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
71593 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
71594 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
71595
71596
71597 xla_ae_lines_pkg.SetAcctReversalAttrs
71598 (p_event_id => l_event_id
71599 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
71600 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71601 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
71602 END IF;
71603
71604 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
71605 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
71606
71607 --
71608 AcctLineType_74 (
71609 p_application_id => p_application_id
71610 ,p_event_id => l_event_id
71611 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71612 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71613 ,p_actual_flag => l_actual_flag
71614 ,p_balance_type_code => l_balance_type_code
71615 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71616
71617 , p_source_4 => l_array_source_4(Idx)
71618 , p_source_11 => l_array_source_11(Idx)
71619 , p_source_12 => l_array_source_12(Idx)
71620 , p_source_13 => l_array_source_13(Idx)
71621 , p_source_22 => l_array_source_22(Idx)
71622 , p_source_23 => l_array_source_23(Idx)
71623 , p_source_25 => l_array_source_25(Idx)
71624 , p_source_27 => l_array_source_27(Idx)
71625 , p_source_28 => l_array_source_28(Idx)
71626 , p_source_29 => l_array_source_29(Idx)
71627 , p_source_30 => l_array_source_30(Idx)
71628 , p_source_31 => l_array_source_31(Idx)
71629 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
71630 , p_source_33 => l_array_source_33(Idx)
71631 , p_source_34 => l_array_source_34(Idx)
71632 , p_source_34_meaning => l_array_source_34_meaning(Idx)
71633 , p_source_35 => l_array_source_35(Idx)
71634 , p_source_41 => l_array_source_41(Idx)
71635 , p_source_43 => l_array_source_43(Idx)
71636 );
71637 If(l_balance_type_code = 'A') THEN
71638 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71639 END IF;
71640
71641 --
71642
71643
71644 --
71645 AcctLineType_76 (
71646 p_application_id => p_application_id
71647 ,p_event_id => l_event_id
71648 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71649 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71650 ,p_actual_flag => l_actual_flag
71651 ,p_balance_type_code => l_balance_type_code
71652 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71653
71654 , p_source_4 => l_array_source_4(Idx)
71655 , p_source_11 => l_array_source_11(Idx)
71656 , p_source_13 => l_array_source_13(Idx)
71657 , p_source_14 => l_array_source_14(Idx)
71658 , p_source_22 => l_array_source_22(Idx)
71659 , p_source_23 => l_array_source_23(Idx)
71660 , p_source_25 => l_array_source_25(Idx)
71661 , p_source_27 => l_array_source_27(Idx)
71662 , p_source_28 => l_array_source_28(Idx)
71663 , p_source_29 => l_array_source_29(Idx)
71664 , p_source_30 => l_array_source_30(Idx)
71665 , p_source_31 => l_array_source_31(Idx)
71666 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
71667 , p_source_33 => l_array_source_33(Idx)
71668 , p_source_34 => l_array_source_34(Idx)
71669 , p_source_34_meaning => l_array_source_34_meaning(Idx)
71670 , p_source_35 => l_array_source_35(Idx)
71671 , p_source_41 => l_array_source_41(Idx)
71672 , p_source_43 => l_array_source_43(Idx)
71673 );
71674 If(l_balance_type_code = 'A') THEN
71675 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71676 END IF;
71677
71678 --
71679
71680 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
71681 -- or secondary ledger that has different currency with primary
71682 -- or alc that is calculated by sla
71683 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
71684 (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'))
71685
71686 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
71687 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
71688 AND (l_actual_flag = 'A')) THEN
71689 XLA_AE_LINES_PKG.CreateGainOrLossLines(
71690 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71691 ,p_application_id => p_application_id
71692 ,p_amb_context_code => 'DEFAULT'
71693 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
71694 ,p_event_class_code => C_EVENT_CLASS_CODE
71695 ,p_event_type_code => C_EVENT_TYPE_CODE
71696
71697 ,p_gain_ccid => -1
71698 ,p_loss_ccid => -1
71699
71700 ,p_actual_flag => l_actual_flag
71701 ,p_enc_flag => null
71702 ,p_actual_g_l_ref => l_actual_gain_loss_ref
71703 ,p_enc_g_l_ref => null
71704 );
71705 END IF;
71706 END IF;
71707 END IF;
71708
71709 ELSE
71710 --
71711 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
71712 --
71713 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71714 trace
71715 (p_msg => 'Trancaction revesal option is Y'
71716 ,p_level => C_LEVEL_STATEMENT
71717 ,p_module => l_log_module);
71718 END IF;
71719 END IF;
71720
71721 END LOOP;
71725
71722 l_result := XLA_AE_LINES_PKG.InsertLines ;
71723 end loop;
71724 close line_cur;
71726
71727 --
71728 -- insert headers into xla_ae_headers_gt table
71729 --
71730 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
71731
71732 -- insert into errors table here.
71733
71734 END LOOP;
71735
71736 --
71737 -- 4865292
71738 --
71739 -- Compare g_hdr_extract_count with event count in
71740 -- CreateHeadersAndLines.
71741 --
71742 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
71743
71744 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71745 trace (p_msg => '# rows extracted from header extract objects '
71746 || ' (running total): '
71747 || g_hdr_extract_count
71748 ,p_level => C_LEVEL_STATEMENT
71749 ,p_module => l_log_module);
71750 END IF;
71751
71752 CLOSE header_cur;
71753 --
71754
71755 --
71756 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71757 trace
71758 (p_msg => 'END of EventClass_121'
71759 ,p_level => C_LEVEL_PROCEDURE
71760 ,p_module => l_log_module);
71761 END IF;
71762 --
71763 RETURN l_result;
71764 EXCEPTION
71765 WHEN xla_exceptions_pkg.application_exception THEN
71766
71767 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
71768
71769
71770 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
71771
71772 RAISE;
71773 WHEN OTHERS THEN
71774 xla_exceptions_pkg.raise_message
71775 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_121');
71776 END EventClass_121;
71777 --
71778
71779 ---------------------------------------
71780 --
71781 -- PRIVATE PROCEDURE
71782 -- insert_sources_122
71783 --
71784 ----------------------------------------
71785 --
71786 PROCEDURE insert_sources_122(
71787 p_target_ledger_id IN NUMBER
71788 , p_language IN VARCHAR2
71789 , p_sla_ledger_id IN NUMBER
71790 , p_pad_start_date IN DATE
71791 , p_pad_end_date IN DATE
71792 )
71793 IS
71794
71795 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ALL';
71796 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS';
71797 p_apps_owner VARCHAR2(30);
71798 l_log_module VARCHAR2(240);
71799 BEGIN
71800 IF g_log_enabled THEN
71801 l_log_module := C_DEFAULT_MODULE||'.insert_sources_122';
71802 END IF;
71803 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71804
71805 trace
71806 (p_msg => 'BEGIN of insert_sources_122'
71807 ,p_level => C_LEVEL_PROCEDURE
71808 ,p_module => l_log_module);
71809
71810 END IF;
71811
71812 -- select APPS owner
71813 SELECT oracle_username
71814 INTO p_apps_owner
71815 FROM fnd_oracle_userid
71816 WHERE read_only_flag = 'U'
71817 ;
71818
71819 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71820 trace
71821 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
71822 ' - p_language = '||p_language||
71823 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
71824 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
71825 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
71826 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
71827 ,p_level => C_LEVEL_STATEMENT
71828 ,p_module => l_log_module);
71829 END IF;
71830
71831
71832 --
71833 INSERT INTO xla_diag_sources --hdr2
71834 (
71835 event_id
71836 , ledger_id
71837 , sla_ledger_id
71838 , description_language
71839 , object_name
71840 , object_type_code
71841 , line_number
71842 , source_application_id
71843 , source_type_code
71844 , source_code
71845 , source_value
71846 , source_meaning
71847 , created_by
71848 , creation_date
71849 , last_update_date
71850 , last_updated_by
71851 , last_update_login
71852 , program_update_date
71853 , program_application_id
71854 , program_id
71855 , request_id
71856 )
71857 SELECT
71858 event_id
71859 , p_target_ledger_id
71860 , p_sla_ledger_id
71861 , p_language
71862 , object_name
71863 , object_type_code
71864 , line_number
71865 , source_application_id
71866 , source_type_code
71867 , source_code
71868 , SUBSTR(source_value ,1,1996)
71869 , SUBSTR(source_meaning ,1,200)
71870 , xla_environment_pkg.g_Usr_Id
71871 , TRUNC(SYSDATE)
71872 , TRUNC(SYSDATE)
71873 , xla_environment_pkg.g_Usr_Id
71874 , xla_environment_pkg.g_Login_Id
71875 , TRUNC(SYSDATE)
71876 , xla_environment_pkg.g_Prog_Appl_Id
71877 , xla_environment_pkg.g_Prog_Id
71878 , xla_environment_pkg.g_Req_Id
71879 FROM (
71880 SELECT xet.event_id event_id
71881 , 0 line_number
71882 , CASE r
71883 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
71884 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
71885
71886 ELSE null
71887 END object_name
71888 , CASE r
71889 WHEN 1 THEN 'HEADER'
71890 WHEN 2 THEN 'HEADER'
71891
71895 WHEN 1 THEN '275'
71892 ELSE null
71893 END object_type_code
71894 , CASE r
71896 WHEN 2 THEN '275'
71897
71898 ELSE null
71899 END source_application_id
71900 , 'S' source_type_code
71901 , CASE r
71902 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
71903 WHEN 2 THEN 'GL_DATE'
71904
71905 ELSE null
71906 END source_code
71907 , CASE r
71908 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
71909 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
71910
71911 ELSE null
71912 END source_value
71913 , null source_meaning
71914 FROM xla_events_gt xet
71915 , PA_XLA_EXP_HEADER_V h2
71916 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
71917 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
71918 AND xet.event_class_code = C_EVENT_CLASS_CODE
71919 AND h2.event_id = xet.event_id
71920
71921 )
71922 ;
71923 --
71924 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71925
71926 trace
71927 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
71928 ,p_level => C_LEVEL_STATEMENT
71929 ,p_module => l_log_module);
71930
71931 END IF;
71932 --
71933
71934
71935
71936 --
71937 INSERT INTO xla_diag_sources --line2
71938 (
71939 event_id
71940 , ledger_id
71941 , sla_ledger_id
71942 , description_language
71943 , object_name
71944 , object_type_code
71945 , line_number
71946 , source_application_id
71947 , source_type_code
71948 , source_code
71949 , source_value
71950 , source_meaning
71951 , created_by
71952 , creation_date
71953 , last_update_date
71954 , last_updated_by
71955 , last_update_login
71956 , program_update_date
71957 , program_application_id
71958 , program_id
71959 , request_id
71960 )
71961 SELECT event_id
71962 , p_target_ledger_id
71963 , p_sla_ledger_id
71964 , p_language
71965 , object_name
71966 , object_type_code
71967 , line_number
71968 , source_application_id
71969 , source_type_code
71970 , source_code
71971 , SUBSTR(source_value,1,1996)
71972 , SUBSTR(source_meaning ,1,200)
71973 , xla_environment_pkg.g_Usr_Id
71974 , TRUNC(SYSDATE)
71975 , TRUNC(SYSDATE)
71976 , xla_environment_pkg.g_Usr_Id
71977 , xla_environment_pkg.g_Login_Id
71978 , TRUNC(SYSDATE)
71979 , xla_environment_pkg.g_Prog_Appl_Id
71980 , xla_environment_pkg.g_Prog_Id
71981 , xla_environment_pkg.g_Req_Id
71982 FROM (
71983 SELECT xet.event_id event_id
71984 , l1.line_number line_number
71985 , CASE r
71986 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
71987 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
71988 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
71989 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
71990 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
71991 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
71992 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
71993 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
71994 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
71995 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
71996 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
71997 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
71998 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
71999 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
72000 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
72001 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
72002 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
72003 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
72004
72005 ELSE null
72006 END object_name
72007 , CASE r
72008 WHEN 1 THEN 'LINE'
72009 WHEN 2 THEN 'LINE'
72010 WHEN 3 THEN 'LINE'
72011 WHEN 4 THEN 'LINE'
72012 WHEN 5 THEN 'LINE'
72013 WHEN 6 THEN 'LINE'
72014 WHEN 7 THEN 'LINE'
72015 WHEN 8 THEN 'LINE'
72016 WHEN 9 THEN 'LINE'
72017 WHEN 10 THEN 'LINE'
72018 WHEN 11 THEN 'LINE'
72019 WHEN 12 THEN 'LINE'
72020 WHEN 13 THEN 'LINE'
72021 WHEN 14 THEN 'LINE'
72022 WHEN 15 THEN 'LINE'
72023 WHEN 16 THEN 'LINE'
72024 WHEN 17 THEN 'LINE'
72025 WHEN 18 THEN 'LINE'
72026
72027 ELSE null
72028 END object_type_code
72029 , CASE r
72030 WHEN 1 THEN '275'
72031 WHEN 2 THEN '275'
72032 WHEN 3 THEN '275'
72033 WHEN 4 THEN '275'
72034 WHEN 5 THEN '275'
72035 WHEN 6 THEN '275'
72036 WHEN 7 THEN '275'
72037 WHEN 8 THEN '275'
72038 WHEN 9 THEN '275'
72039 WHEN 10 THEN '275'
72040 WHEN 11 THEN '275'
72044 WHEN 15 THEN '275'
72041 WHEN 12 THEN '275'
72042 WHEN 13 THEN '275'
72043 WHEN 14 THEN '275'
72045 WHEN 16 THEN '275'
72046 WHEN 17 THEN '275'
72047 WHEN 18 THEN '275'
72048
72049 ELSE null
72050 END source_application_id
72051 , 'S' source_type_code
72052 , CASE r
72053 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
72054 WHEN 2 THEN 'DESTINATION_CCID'
72055 WHEN 3 THEN 'ADJ_DESTINATION_CCID'
72056 WHEN 4 THEN 'SOURCE_CCID'
72057 WHEN 5 THEN 'ADJ_SOURCE_CCID'
72058 WHEN 6 THEN 'REVERSING_LINE_FLAG'
72059 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
72060 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
72061 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
72062 WHEN 10 THEN 'EXCHANGE_RATE'
72063 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
72064 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
72065 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
72066 WHEN 14 THEN 'LINE_NUMBER'
72067 WHEN 15 THEN 'LINE_TYPE'
72068 WHEN 16 THEN 'LINE_NUM_REVERSED'
72069 WHEN 17 THEN 'ENTERED_AMOUNT'
72070 WHEN 18 THEN 'ACCT_AMOUNT'
72071
72072 ELSE null
72073 END source_code
72074 , CASE r
72075 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
72076 WHEN 2 THEN TO_CHAR(l1.DESTINATION_CCID)
72077 WHEN 3 THEN TO_CHAR(l1.ADJ_DESTINATION_CCID)
72078 WHEN 4 THEN TO_CHAR(l1.SOURCE_CCID)
72079 WHEN 5 THEN TO_CHAR(l1.ADJ_SOURCE_CCID)
72080 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
72081 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
72082 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
72083 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
72084 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
72085 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
72086 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
72087 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
72088 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
72089 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
72090 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
72091 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
72092 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
72093
72094 ELSE null
72095 END source_value
72096 , CASE r
72097 WHEN 1 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
72098 103371
72099 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
72100 ,'ALLOW_OVERRIDE_CCID_FLAG'
72101 ,'S'
72102 ,275)
72103 WHEN 15 THEN fvl34.meaning
72104
72105 ELSE null
72106 END source_meaning
72107 FROM xla_events_gt xet
72108 , PA_XLA_CCDL_LINES_V l1
72109 , fnd_lookup_values fvl34
72110 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
72111 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
72112 AND xet.event_class_code = C_EVENT_CLASS_CODE
72113 AND l1.event_id = xet.event_id
72114 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
72115 AND fvl34.lookup_code(+) = l1.LINE_TYPE
72116 AND fvl34.view_application_id(+) = 275
72117 AND fvl34.language(+) = USERENV('LANG')
72118
72119 )
72120 ;
72121 --
72122 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72123
72124 trace
72125 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
72126 ,p_level => C_LEVEL_STATEMENT
72127 ,p_module => l_log_module);
72128
72129 END IF;
72130
72131
72132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72133 trace
72134 (p_msg => 'END of insert_sources_122'
72135 ,p_level => C_LEVEL_PROCEDURE
72136 ,p_module => l_log_module);
72137 END IF;
72138 EXCEPTION
72139 WHEN xla_exceptions_pkg.application_exception THEN
72140 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
72141 trace
72142 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
72143 ,p_level => C_LEVEL_EXCEPTION
72144 ,p_module => l_log_module);
72145 END IF;
72146 RAISE;
72147 WHEN OTHERS THEN
72148 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
72149 trace
72150 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
72151 ,p_level => C_LEVEL_EXCEPTION
72152 ,p_module => l_log_module);
72153 END IF;
72154 xla_exceptions_pkg.raise_message
72155 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_122');
72156 END insert_sources_122;
72157 --
72158
72159 ---------------------------------------
72160 --
72161 -- PRIVATE FUNCTION
72162 -- EventClass_122
72163 --
72164 ----------------------------------------
72165 --
72166 FUNCTION EventClass_122
72167 (p_application_id IN NUMBER
72168 ,p_base_ledger_id IN NUMBER
72169 ,p_target_ledger_id IN NUMBER
72170 ,p_language IN VARCHAR2
72171 ,p_currency_code IN VARCHAR2
72175 ,p_primary_ledger_id IN NUMBER)
72172 ,p_sla_ledger_id IN NUMBER
72173 ,p_pad_start_date IN DATE
72174 ,p_pad_end_date IN DATE
72176 RETURN BOOLEAN IS
72177 --
72178 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ALL';
72179 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS';
72180
72181 l_calculate_acctd_flag VARCHAR2(1) :='N';
72182 l_calculate_g_l_flag VARCHAR2(1) :='N';
72183 --
72184 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72185 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72186 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72187 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72188 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72189 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72190 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72191 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72192 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72193 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72194 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72195 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72196 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72197 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72198 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72199 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72200 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72201 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72202 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72203 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72204 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72205 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72206 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
72207 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72208
72209 l_event_id NUMBER;
72210 l_previous_event_id NUMBER;
72211 l_first_event_id NUMBER;
72212 l_last_event_id NUMBER;
72213
72214 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
72215 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72216 --
72217 --
72218 l_result BOOLEAN := TRUE;
72219 l_rows NUMBER := 1000;
72220 l_event_type_name VARCHAR2(80) := 'All';
72221 l_event_class_name VARCHAR2(80) := 'Provider and Receiver Reclass';
72222 l_description VARCHAR2(4000);
72223 l_transaction_reversal NUMBER;
72224 l_ae_header_id NUMBER;
72225 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
72226 l_log_module VARCHAR2(240);
72227 --
72228 l_acct_reversal_source VARCHAR2(30);
72229 l_trx_reversal_source VARCHAR2(30);
72230
72231 l_continue_with_lines BOOLEAN := TRUE;
72232 --
72233 l_acc_rev_gl_date_source DATE; -- 4262811
72234 --
72235 type t_array_event_id is table of number index by binary_integer;
72236
72237 l_rec_array_event t_rec_array_event;
72238 l_null_rec_array_event t_rec_array_event;
72239 l_array_ae_header_id xla_number_array_type;
72240 l_actual_flag VARCHAR2(1) := NULL;
72241 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
72242 l_balance_type_code VARCHAR2(1) :=NULL;
72243 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
72244
72245 --
72246 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
72247 --
72248
72249 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
72250 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
72251
72252 TYPE t_array_source_4 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
72253 TYPE t_array_source_11 IS TABLE OF PA_XLA_CCDL_LINES_V.DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
72254 TYPE t_array_source_12 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
72255 TYPE t_array_source_13 IS TABLE OF PA_XLA_CCDL_LINES_V.SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
72256 TYPE t_array_source_14 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
72257 TYPE t_array_source_22 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
72258 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
72259 TYPE t_array_source_25 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
72260 TYPE t_array_source_27 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
72261 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
72262 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
72263 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
72264 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
72265 TYPE t_array_source_33 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
72266 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
72267 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
72271 l_array_source_32 t_array_source_32;
72268 TYPE t_array_source_41 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
72269 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
72270
72272 l_array_source_88 t_array_source_88;
72273
72274 l_array_source_4 t_array_source_4;
72275 l_array_source_11 t_array_source_11;
72276 l_array_source_12 t_array_source_12;
72277 l_array_source_13 t_array_source_13;
72278 l_array_source_14 t_array_source_14;
72279 l_array_source_22 t_array_source_22;
72280 l_array_source_23 t_array_source_23;
72281 l_array_source_25 t_array_source_25;
72282 l_array_source_27 t_array_source_27;
72283 l_array_source_28 t_array_source_28;
72284 l_array_source_29 t_array_source_29;
72285 l_array_source_30 t_array_source_30;
72286 l_array_source_31 t_array_source_31;
72287 l_array_source_33 t_array_source_33;
72288 l_array_source_34 t_array_source_34;
72289 l_array_source_34_meaning t_array_lookup_meaning;
72290 l_array_source_35 t_array_source_35;
72291 l_array_source_41 t_array_source_41;
72292 l_array_source_43 t_array_source_43;
72293
72294 --
72295 CURSOR header_cur
72296 IS
72297 SELECT /*+ leading(xet) cardinality(xet,1) */
72298 -- Event Class Code: PRVDR_RECVR_RECLASS
72299 xet.entity_id
72300 ,xet.legal_entity_id
72301 ,xet.entity_code
72302 ,xet.transaction_number
72303 ,xet.event_id
72304 ,xet.event_class_code
72305 ,xet.event_type_code
72306 ,xet.event_number
72307 ,xet.event_date
72308 ,xet.transaction_date
72309 ,xet.reference_num_1
72310 ,xet.reference_num_2
72311 ,xet.reference_num_3
72312 ,xet.reference_num_4
72313 ,xet.reference_char_1
72314 ,xet.reference_char_2
72315 ,xet.reference_char_3
72316 ,xet.reference_char_4
72317 ,xet.reference_date_1
72318 ,xet.reference_date_2
72319 ,xet.reference_date_3
72320 ,xet.reference_date_4
72321 ,xet.event_created_by
72322 ,xet.budgetary_control_flag
72323 , h2.EXPENDITURE_ITEM_ID source_32
72324 , h2.GL_DATE source_88
72325 FROM xla_events_gt xet
72326 , PA_XLA_EXP_HEADER_V h2
72327 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
72328 and xet.event_class_code = C_EVENT_CLASS_CODE
72329 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
72330
72331 ORDER BY event_id
72332 ;
72333
72334
72335 --
72336 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
72337 IS
72338 SELECT /*+ leading(xet) cardinality(xet,1) */
72339 -- Event Class Code: PRVDR_RECVR_RECLASS
72340 xet.entity_id
72341 ,xet.legal_entity_id
72342 ,xet.entity_code
72343 ,xet.transaction_number
72344 ,xet.event_id
72345 ,xet.event_class_code
72346 ,xet.event_type_code
72347 ,xet.event_number
72348 ,xet.event_date
72349 ,xet.transaction_date
72350 ,xet.reference_num_1
72351 ,xet.reference_num_2
72352 ,xet.reference_num_3
72353 ,xet.reference_num_4
72354 ,xet.reference_char_1
72355 ,xet.reference_char_2
72356 ,xet.reference_char_3
72357 ,xet.reference_char_4
72358 ,xet.reference_date_1
72359 ,xet.reference_date_2
72360 ,xet.reference_date_3
72361 ,xet.reference_date_4
72362 ,xet.event_created_by
72363 ,xet.budgetary_control_flag
72364 , l1.LINE_NUMBER
72365 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
72366 , l1.DESTINATION_CCID source_11
72367 , l1.ADJ_DESTINATION_CCID source_12
72368 , l1.SOURCE_CCID source_13
72369 , l1.ADJ_SOURCE_CCID source_14
72370 , l1.REVERSING_LINE_FLAG source_22
72371 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
72372 , l1.ENTERED_CURRENCY_CODE source_25
72373 , l1.EXCHANGE_RATE_DATE source_27
72374 , l1.EXCHANGE_RATE source_28
72375 , l1.EXCHANGE_RATE_TYPE source_29
72376 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
72377 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
72378 , l1.LINE_NUMBER source_33
72379 , l1.LINE_TYPE source_34
72380 , fvl34.meaning source_34_meaning
72381 , l1.LINE_NUM_REVERSED source_35
72382 , l1.ENTERED_AMOUNT source_41
72383 , l1.ACCT_AMOUNT source_43
72384 FROM xla_events_gt xet
72385 , PA_XLA_CCDL_LINES_V l1
72386 , fnd_lookup_values fvl34
72387 WHERE xet.event_id between x_first_event_id and x_last_event_id
72388 and xet.event_date between p_pad_start_date and p_pad_end_date
72389 and xet.event_class_code = C_EVENT_CLASS_CODE
72390 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
72391 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
72392 AND fvl34.lookup_code(+) = l1.LINE_TYPE
72393 AND fvl34.view_application_id(+) = 275
72394 AND fvl34.language(+) = USERENV('LANG')
72395 ;
72396
72397 --
72398 BEGIN
72399 IF g_log_enabled THEN
72400 l_log_module := C_DEFAULT_MODULE||'.EventClass_122';
72401 END IF;
72402 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72403 trace
72404 (p_msg => 'BEGIN of EventClass_122'
72405 ,p_level => C_LEVEL_PROCEDURE
72406 ,p_module => l_log_module);
72407 END IF;
72408
72409 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72410 trace
72411 (p_msg => 'p_application_id = '||p_application_id||
72412 ' - p_base_ledger_id = '||p_base_ledger_id||
72413 ' - p_target_ledger_id = '||p_target_ledger_id||
72414 ' - p_language = '||p_language||
72415 ' - p_currency_code = '||p_currency_code||
72416 ' - p_sla_ledger_id = '||p_sla_ledger_id
72417 ,p_level => C_LEVEL_STATEMENT
72418 ,p_module => l_log_module);
72419 END IF;
72420 --
72421 -- initialze arrays
72422 --
72423 g_array_event.DELETE;
72424 l_rec_array_event := l_null_rec_array_event;
72425 --
72426 --------------------------------------
72427 -- 4262811 Initialze MPA Line Number
72428 --------------------------------------
72429 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
72430
72431 --
72432
72433 --
72434 OPEN header_cur;
72435 --
72436 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72437 trace
72438 (p_msg => 'SQL - FETCH header_cur'
72439 ,p_level => C_LEVEL_STATEMENT
72440 ,p_module => l_log_module);
72441 END IF;
72442 --
72443 LOOP
72444 FETCH header_cur BULK COLLECT INTO
72445 l_array_entity_id
72446 , l_array_legal_entity_id
72447 , l_array_entity_code
72448 , l_array_transaction_num
72449 , l_array_event_id
72450 , l_array_class_code
72451 , l_array_event_type
72452 , l_array_event_number
72453 , l_array_event_date
72454 , l_array_transaction_date
72455 , l_array_reference_num_1
72456 , l_array_reference_num_2
72457 , l_array_reference_num_3
72458 , l_array_reference_num_4
72459 , l_array_reference_char_1
72460 , l_array_reference_char_2
72461 , l_array_reference_char_3
72462 , l_array_reference_char_4
72463 , l_array_reference_date_1
72464 , l_array_reference_date_2
72465 , l_array_reference_date_3
72466 , l_array_reference_date_4
72467 , l_array_event_created_by
72468 , l_array_budgetary_control_flag
72469 , l_array_source_32
72470 , l_array_source_88
72471 LIMIT l_rows;
72472 --
72473 IF (C_LEVEL_EVENT >= g_log_level) THEN
72474 trace
72475 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
72476 ,p_level => C_LEVEL_EVENT
72477 ,p_module => l_log_module);
72478 END IF;
72479 --
72480 EXIT WHEN l_array_entity_id.COUNT = 0;
72481
72482 -- initialize arrays
72483 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
72484 XLA_AE_LINES_PKG.g_rec_lines := NULL;
72485
72486 --
72487 -- Bug 4458708
72488 --
72489 XLA_AE_LINES_PKG.g_LineNumber := 0;
72490
72491
72492 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
72493 g_last_hdr_idx := l_array_event_id.LAST;
72494 --
72495 -- loop for the headers. Each iteration is for each header extract row
72496 -- fetched in header cursor
72497 --
72498 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
72499
72500 --
72501 -- set event info as cache for other routines to refer event attributes
72502 --
72503 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
72504 (p_application_id => p_application_id
72505 ,p_primary_ledger_id => p_primary_ledger_id
72506 ,p_base_ledger_id => p_base_ledger_id
72507 ,p_target_ledger_id => p_target_ledger_id
72508 ,p_entity_id => l_array_entity_id(hdr_idx)
72509 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
72510 ,p_entity_code => l_array_entity_code(hdr_idx)
72511 ,p_transaction_num => l_array_transaction_num(hdr_idx)
72512 ,p_event_id => l_array_event_id(hdr_idx)
72513 ,p_event_class_code => l_array_class_code(hdr_idx)
72514 ,p_event_type_code => l_array_event_type(hdr_idx)
72515 ,p_event_number => l_array_event_number(hdr_idx)
72516 ,p_event_date => l_array_event_date(hdr_idx)
72517 ,p_transaction_date => l_array_transaction_date(hdr_idx)
72518 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
72519 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
72520 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
72524 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
72521 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
72522 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
72523 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
72525 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
72526 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
72527 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
72528 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
72529 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
72530 ,p_event_created_by => l_array_event_created_by(hdr_idx)
72531 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
72532
72533 --
72534 -- set the status of entry to C_VALID (0)
72535 --
72536 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
72537
72538 --
72539 -- initialize a row for ae header
72540 --
72541 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
72542
72543 l_event_id := l_array_event_id(hdr_idx);
72544
72545 --
72546 -- storing the hdr_idx for event. May be used by line cursor.
72547 --
72548 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
72549
72550 --
72551 -- store sources from header extract. This can be improved to
72552 -- store only those sources from header extract that may be used in lines
72553 --
72554
72555 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
72556 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
72557
72558 --
72559 -- initilaize the status of ae headers for diffrent balance types
72560 -- the status is initialised to C_NOT_CREATED (2)
72561 --
72562 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72563 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72564 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72565
72566 --
72567 -- call api to validate and store accounting attributes for header
72568 --
72569
72570 ------------------------------------------------------------
72571 -- Accrual Reversal : to get date for Standard Source (NONE)
72572 ------------------------------------------------------------
72573 l_acc_rev_gl_date_source := NULL;
72574
72575 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
72576 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
72577
72578
72579 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
72580
72581 XLA_AE_HEADER_PKG.SetJeCategoryName;
72582
72583 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
72584 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
72585 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
72586 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
72587 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
72588
72589
72590 -- No header level analytical criteria
72591
72592 --
72593 --accounting attribute enhancement, bug 3612931
72594 --
72595 l_trx_reversal_source := SUBSTR(NULL, 1,30);
72596
72597 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
72598 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
72599
72600 xla_accounting_err_pkg.build_message
72601 (p_appli_s_name => 'XLA'
72602 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
72603 ,p_token_1 => 'ACCT_ATTR_NAME'
72604 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
72605 ,p_token_2 => 'PRODUCT_NAME'
72606 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
72607 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
72608 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72609 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
72610
72611 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
72612 --
72613 -- following sets the accounting attributes needed to reverse
72614 -- accounting for a distributeion
72615 --
72616 xla_ae_lines_pkg.SetTrxReversalAttrs
72617 (p_event_id => l_event_id
72618 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
72619 ,p_trx_reversal_source => l_trx_reversal_source);
72620
72621 END IF;
72622
72623
72624 ----------------------------------------------------------------
72625 -- 4262811 - update the header statuses to invalid in need be
72626 ----------------------------------------------------------------
72627 --
72628 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
72629
72630
72631 -----------------------------------------------
72632 -- No accrual reversal for the event class/type
72633 -----------------------------------------------
72634 ----------------------------------------------------------------
72635
72636 --
72637 -- this ends the header loop iteration for one bulk fetch
72638 --
72639 END LOOP;
72640
72641 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
72642 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
72643
72644 --
72645 -- insert dummy rows into lines gt table that were created due to
72646 -- transaction reversals
72647 --
72648 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
72652 --
72649 l_result := XLA_AE_LINES_PKG.InsertLines;
72650 END IF;
72651
72653 -- reset the temp_line_num for each set of events fetched from header
72654 -- cursor rather than doing it for each new event in line cursor
72655 -- Bug 3939231
72656 --
72657 xla_ae_lines_pkg.g_temp_line_num := 0;
72658
72659
72660
72661 --
72662 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
72663 --
72664 --
72665 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72666
72667 trace
72668 (p_msg => 'SQL - FETCH line_cur'
72669 ,p_level => C_LEVEL_STATEMENT
72670 ,p_module => l_log_module);
72671
72672 END IF;
72673 --
72674 --
72675 LOOP
72676 --
72677 FETCH line_cur BULK COLLECT INTO
72678 l_array_entity_id
72679 , l_array_legal_entity_id
72680 , l_array_entity_code
72681 , l_array_transaction_num
72682 , l_array_event_id
72683 , l_array_class_code
72684 , l_array_event_type
72685 , l_array_event_number
72686 , l_array_event_date
72687 , l_array_transaction_date
72688 , l_array_reference_num_1
72689 , l_array_reference_num_2
72690 , l_array_reference_num_3
72691 , l_array_reference_num_4
72692 , l_array_reference_char_1
72693 , l_array_reference_char_2
72694 , l_array_reference_char_3
72695 , l_array_reference_char_4
72696 , l_array_reference_date_1
72697 , l_array_reference_date_2
72698 , l_array_reference_date_3
72699 , l_array_reference_date_4
72700 , l_array_event_created_by
72701 , l_array_budgetary_control_flag
72702 , l_array_extract_line_num
72703 , l_array_source_4
72704 , l_array_source_11
72705 , l_array_source_12
72706 , l_array_source_13
72707 , l_array_source_14
72708 , l_array_source_22
72709 , l_array_source_23
72710 , l_array_source_25
72711 , l_array_source_27
72712 , l_array_source_28
72713 , l_array_source_29
72714 , l_array_source_30
72715 , l_array_source_31
72716 , l_array_source_33
72717 , l_array_source_34
72718 , l_array_source_34_meaning
72719 , l_array_source_35
72720 , l_array_source_41
72721 , l_array_source_43
72722 LIMIT l_rows;
72723
72724 --
72725 IF (C_LEVEL_EVENT >= g_log_level) THEN
72726 trace
72727 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
72728 ,p_level => C_LEVEL_EVENT
72729 ,p_module => l_log_module);
72730 END IF;
72731 --
72732 EXIT WHEN l_array_entity_id.count = 0;
72733
72734 XLA_AE_LINES_PKG.g_rec_lines := null;
72735
72736 --
72737 -- Bug 4458708
72738 --
72739 XLA_AE_LINES_PKG.g_LineNumber := 0;
72740 --
72741 --
72742
72743 FOR Idx IN 1..l_array_event_id.count LOOP
72744 --
72745 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
72746 --
72747 l_event_id := l_array_event_id(idx); -- 5648433
72748
72749 --
72750 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
72751 --
72752
72753 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
72754 (g_array_event(l_event_id).array_value_num('header_index'))
72755 ,'N'
72756 ) <> 'Y'
72757 THEN
72758 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72759 trace
72760 (p_msg => 'Trancaction revesal option is not Y '
72761 ,p_level => C_LEVEL_STATEMENT
72762 ,p_module => l_log_module);
72763 END IF;
72764
72765 --
72766 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
72767 --
72768 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
72769 --
72770 -- set event info as cache for other routines to refer event attributes
72771 --
72772
72773 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
72774 l_previous_event_id := l_event_id;
72775
72776 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
72777 (p_application_id => p_application_id
72778 ,p_primary_ledger_id => p_primary_ledger_id
72779 ,p_base_ledger_id => p_base_ledger_id
72780 ,p_target_ledger_id => p_target_ledger_id
72781 ,p_entity_id => l_array_entity_id(Idx)
72782 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
72783 ,p_entity_code => l_array_entity_code(Idx)
72784 ,p_transaction_num => l_array_transaction_num(Idx)
72785 ,p_event_id => l_array_event_id(Idx)
72786 ,p_event_class_code => l_array_class_code(Idx)
72787 ,p_event_type_code => l_array_event_type(Idx)
72788 ,p_event_number => l_array_event_number(Idx)
72789 ,p_event_date => l_array_event_date(Idx)
72790 ,p_transaction_date => l_array_transaction_date(Idx)
72791 ,p_reference_num_1 => l_array_reference_num_1(Idx)
72792 ,p_reference_num_2 => l_array_reference_num_2(Idx)
72793 ,p_reference_num_3 => l_array_reference_num_3(Idx)
72794 ,p_reference_num_4 => l_array_reference_num_4(Idx)
72795 ,p_reference_char_1 => l_array_reference_char_1(Idx)
72796 ,p_reference_char_2 => l_array_reference_char_2(Idx)
72797 ,p_reference_char_3 => l_array_reference_char_3(Idx)
72798 ,p_reference_char_4 => l_array_reference_char_4(Idx)
72799 ,p_reference_date_1 => l_array_reference_date_1(Idx)
72803 ,p_event_created_by => l_array_event_created_by(Idx)
72800 ,p_reference_date_2 => l_array_reference_date_2(Idx)
72801 ,p_reference_date_3 => l_array_reference_date_3(Idx)
72802 ,p_reference_date_4 => l_array_reference_date_4(Idx)
72804 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
72805 --
72806 END IF;
72807
72808
72809
72810 --
72811 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
72812
72813 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
72814
72815 IF l_continue_with_lines THEN
72816 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
72817 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
72818
72819 xla_accounting_err_pkg.build_message
72820 (p_appli_s_name => 'XLA'
72821 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
72822 ,p_token_1 => 'LINE_NUMBER'
72823 ,p_value_1 => l_array_extract_line_num(Idx)
72824 ,p_token_2 => 'PRODUCT_NAME'
72825 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
72826 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
72827 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72828 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
72829
72830 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
72831 --
72832 -- following sets the accounting attributes needed to reverse
72833 -- accounting for a distributeion
72834 --
72835
72836 --
72837 -- 5217187
72838 --
72839 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
72840 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
72841 g_array_event(l_event_id).array_value_num('header_index'));
72842 --
72843 --
72844
72845 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
72846 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
72847 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
72848 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
72849 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
72850 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_13(Idx));
72851 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
72852 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_41(Idx);
72853 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
72854 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
72855 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
72856 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
72857 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
72858 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
72859 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
72860 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
72861 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
72862 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
72863 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
72864 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
72865 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
72866 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_11(Idx));
72867 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
72868 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_41(Idx);
72869 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
72870 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
72871 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
72872 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
72873 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
72874 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
72875 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
72876 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
72877 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
72878 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
72879 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
72880 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
72881 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
72882 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
72883 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
72884 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
72885 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
72886 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
72887 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
72888 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
72889 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
72890 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
72891 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
72892 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
72893
72894
72898 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72895 xla_ae_lines_pkg.SetAcctReversalAttrs
72896 (p_event_id => l_event_id
72897 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
72899 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
72900 END IF;
72901
72902 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
72903 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
72904
72905 --
72906 AcctLineType_73 (
72907 p_application_id => p_application_id
72908 ,p_event_id => l_event_id
72909 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72910 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72911 ,p_actual_flag => l_actual_flag
72912 ,p_balance_type_code => l_balance_type_code
72913 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72914
72915 , p_source_4 => l_array_source_4(Idx)
72916 , p_source_11 => l_array_source_11(Idx)
72917 , p_source_12 => l_array_source_12(Idx)
72918 , p_source_13 => l_array_source_13(Idx)
72919 , p_source_22 => l_array_source_22(Idx)
72920 , p_source_23 => l_array_source_23(Idx)
72921 , p_source_25 => l_array_source_25(Idx)
72922 , p_source_27 => l_array_source_27(Idx)
72923 , p_source_28 => l_array_source_28(Idx)
72924 , p_source_29 => l_array_source_29(Idx)
72925 , p_source_30 => l_array_source_30(Idx)
72926 , p_source_31 => l_array_source_31(Idx)
72927 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
72928 , p_source_33 => l_array_source_33(Idx)
72929 , p_source_34 => l_array_source_34(Idx)
72930 , p_source_34_meaning => l_array_source_34_meaning(Idx)
72931 , p_source_35 => l_array_source_35(Idx)
72932 , p_source_41 => l_array_source_41(Idx)
72933 , p_source_43 => l_array_source_43(Idx)
72934 );
72935 If(l_balance_type_code = 'A') THEN
72936 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72937 END IF;
72938
72939 --
72940
72941
72942 --
72943 AcctLineType_75 (
72944 p_application_id => p_application_id
72945 ,p_event_id => l_event_id
72946 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72947 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72948 ,p_actual_flag => l_actual_flag
72949 ,p_balance_type_code => l_balance_type_code
72950 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72951
72952 , p_source_4 => l_array_source_4(Idx)
72953 , p_source_11 => l_array_source_11(Idx)
72954 , p_source_13 => l_array_source_13(Idx)
72955 , p_source_14 => l_array_source_14(Idx)
72956 , p_source_22 => l_array_source_22(Idx)
72957 , p_source_23 => l_array_source_23(Idx)
72958 , p_source_25 => l_array_source_25(Idx)
72959 , p_source_27 => l_array_source_27(Idx)
72960 , p_source_28 => l_array_source_28(Idx)
72961 , p_source_29 => l_array_source_29(Idx)
72962 , p_source_30 => l_array_source_30(Idx)
72963 , p_source_31 => l_array_source_31(Idx)
72964 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
72965 , p_source_33 => l_array_source_33(Idx)
72966 , p_source_34 => l_array_source_34(Idx)
72967 , p_source_34_meaning => l_array_source_34_meaning(Idx)
72968 , p_source_35 => l_array_source_35(Idx)
72969 , p_source_41 => l_array_source_41(Idx)
72970 , p_source_43 => l_array_source_43(Idx)
72971 );
72972 If(l_balance_type_code = 'A') THEN
72973 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72974 END IF;
72975
72976 --
72977
72978 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
72979 -- or secondary ledger that has different currency with primary
72980 -- or alc that is calculated by sla
72981 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
72982 (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'))
72983
72984 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
72985 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
72986 AND (l_actual_flag = 'A')) THEN
72987 XLA_AE_LINES_PKG.CreateGainOrLossLines(
72988 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72989 ,p_application_id => p_application_id
72990 ,p_amb_context_code => 'DEFAULT'
72991 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
72992 ,p_event_class_code => C_EVENT_CLASS_CODE
72993 ,p_event_type_code => C_EVENT_TYPE_CODE
72994
72995 ,p_gain_ccid => -1
72996 ,p_loss_ccid => -1
72997
72998 ,p_actual_flag => l_actual_flag
72999 ,p_enc_flag => null
73000 ,p_actual_g_l_ref => l_actual_gain_loss_ref
73001 ,p_enc_g_l_ref => null
73002 );
73003 END IF;
73004 END IF;
73005 END IF;
73006
73007 ELSE
73008 --
73009 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
73010 --
73011 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73012 trace
73013 (p_msg => 'Trancaction revesal option is Y'
73014 ,p_level => C_LEVEL_STATEMENT
73015 ,p_module => l_log_module);
73016 END IF;
73017 END IF;
73018
73019 END LOOP;
73020 l_result := XLA_AE_LINES_PKG.InsertLines ;
73021 end loop;
73022 close line_cur;
73023
73024
73025 --
73026 -- insert headers into xla_ae_headers_gt table
73027 --
73028 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
73029
73030 -- insert into errors table here.
73031
73032 END LOOP;
73033
73034 --
73035 -- 4865292
73036 --
73037 -- Compare g_hdr_extract_count with event count in
73038 -- CreateHeadersAndLines.
73039 --
73043 trace (p_msg => '# rows extracted from header extract objects '
73040 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
73041
73042 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73044 || ' (running total): '
73045 || g_hdr_extract_count
73046 ,p_level => C_LEVEL_STATEMENT
73047 ,p_module => l_log_module);
73048 END IF;
73049
73050 CLOSE header_cur;
73051 --
73052
73053 --
73054 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73055 trace
73056 (p_msg => 'END of EventClass_122'
73057 ,p_level => C_LEVEL_PROCEDURE
73058 ,p_module => l_log_module);
73059 END IF;
73060 --
73061 RETURN l_result;
73062 EXCEPTION
73063 WHEN xla_exceptions_pkg.application_exception THEN
73064
73065 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
73066
73067
73068 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
73069
73070 RAISE;
73071 WHEN OTHERS THEN
73072 xla_exceptions_pkg.raise_message
73073 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_122');
73074 END EventClass_122;
73075 --
73076
73077 ---------------------------------------
73078 --
73079 -- PRIVATE PROCEDURE
73080 -- insert_sources_123
73081 --
73082 ----------------------------------------
73083 --
73084 PROCEDURE insert_sources_123(
73085 p_target_ledger_id IN NUMBER
73086 , p_language IN VARCHAR2
73087 , p_sla_ledger_id IN NUMBER
73088 , p_pad_start_date IN DATE
73089 , p_pad_end_date IN DATE
73090 )
73091 IS
73092
73093 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ_ALL';
73094 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ';
73095 p_apps_owner VARCHAR2(30);
73096 l_log_module VARCHAR2(240);
73097 BEGIN
73098 IF g_log_enabled THEN
73099 l_log_module := C_DEFAULT_MODULE||'.insert_sources_123';
73100 END IF;
73101 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73102
73103 trace
73104 (p_msg => 'BEGIN of insert_sources_123'
73105 ,p_level => C_LEVEL_PROCEDURE
73106 ,p_module => l_log_module);
73107
73108 END IF;
73109
73110 -- select APPS owner
73111 SELECT oracle_username
73112 INTO p_apps_owner
73113 FROM fnd_oracle_userid
73114 WHERE read_only_flag = 'U'
73115 ;
73116
73117 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73118 trace
73119 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
73120 ' - p_language = '||p_language||
73121 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
73122 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
73123 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
73124 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
73125 ,p_level => C_LEVEL_STATEMENT
73126 ,p_module => l_log_module);
73127 END IF;
73128
73129
73130 --
73131 INSERT INTO xla_diag_sources --hdr2
73132 (
73133 event_id
73134 , ledger_id
73135 , sla_ledger_id
73136 , description_language
73137 , object_name
73138 , object_type_code
73139 , line_number
73140 , source_application_id
73141 , source_type_code
73142 , source_code
73143 , source_value
73144 , source_meaning
73145 , created_by
73146 , creation_date
73147 , last_update_date
73148 , last_updated_by
73149 , last_update_login
73150 , program_update_date
73151 , program_application_id
73152 , program_id
73153 , request_id
73154 )
73155 SELECT
73156 event_id
73157 , p_target_ledger_id
73158 , p_sla_ledger_id
73159 , p_language
73160 , object_name
73161 , object_type_code
73162 , line_number
73163 , source_application_id
73164 , source_type_code
73165 , source_code
73166 , SUBSTR(source_value ,1,1996)
73167 , SUBSTR(source_meaning ,1,200)
73168 , xla_environment_pkg.g_Usr_Id
73169 , TRUNC(SYSDATE)
73170 , TRUNC(SYSDATE)
73171 , xla_environment_pkg.g_Usr_Id
73172 , xla_environment_pkg.g_Login_Id
73173 , TRUNC(SYSDATE)
73174 , xla_environment_pkg.g_Prog_Appl_Id
73175 , xla_environment_pkg.g_Prog_Id
73176 , xla_environment_pkg.g_Req_Id
73177 FROM (
73178 SELECT xet.event_id event_id
73179 , 0 line_number
73180 , CASE r
73181 WHEN 1 THEN 'PA_XLA_REVENUE_HEADERS_V'
73182 WHEN 2 THEN 'PA_XLA_REVENUE_HEADERS_V'
73183 WHEN 3 THEN 'PA_XLA_REVENUE_HEADERS_V'
73184 WHEN 4 THEN 'PA_XLA_REVENUE_HEADERS_V'
73185 WHEN 5 THEN 'PA_XLA_REVENUE_HEADERS_V'
73186
73187 ELSE null
73188 END object_name
73189 , CASE r
73190 WHEN 1 THEN 'HEADER'
73191 WHEN 2 THEN 'HEADER'
73192 WHEN 3 THEN 'HEADER'
73193 WHEN 4 THEN 'HEADER'
73194 WHEN 5 THEN 'HEADER'
73195
73196 ELSE null
73197 END object_type_code
73198 , CASE r
73199 WHEN 1 THEN '275'
73200 WHEN 2 THEN '275'
73204
73201 WHEN 3 THEN '275'
73202 WHEN 4 THEN '275'
73203 WHEN 5 THEN '275'
73205 ELSE null
73206 END source_application_id
73207 , 'S' source_type_code
73208 , CASE r
73209 WHEN 1 THEN 'CREDITING_REVENUE_FLAG'
73210 WHEN 2 THEN 'EVENT_ID'
73211 WHEN 3 THEN 'GL_DATE'
73212 WHEN 4 THEN 'UER_CCID'
73213 WHEN 5 THEN 'UBR_CCID'
73214
73215 ELSE null
73216 END source_code
73217 , CASE r
73218 WHEN 1 THEN TO_CHAR(h2.CREDITING_REVENUE_FLAG)
73219 WHEN 2 THEN TO_CHAR(h2.EVENT_ID)
73220 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
73221 WHEN 4 THEN TO_CHAR(h2.UER_CCID)
73222 WHEN 5 THEN TO_CHAR(h2.UBR_CCID)
73223
73224 ELSE null
73225 END source_value
73226 , CASE r
73227 WHEN 1 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
73228 103371
73229 ,TO_CHAR(h2.CREDITING_REVENUE_FLAG)
73230 ,'CREDITING_REVENUE_FLAG'
73231 ,'S'
73232 ,275)
73233
73234 ELSE null
73235 END source_meaning
73236 FROM xla_events_gt xet
73237 , PA_XLA_REVENUE_HEADERS_V h2
73238 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
73239 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
73240 AND xet.event_class_code = C_EVENT_CLASS_CODE
73241 AND h2.event_id = xet.event_id
73242
73243 )
73244 ;
73245 --
73246 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73247
73248 trace
73249 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
73250 ,p_level => C_LEVEL_STATEMENT
73251 ,p_module => l_log_module);
73252
73253 END IF;
73254 --
73255
73256
73257
73258 --
73259 INSERT INTO xla_diag_sources --line2
73260 (
73261 event_id
73262 , ledger_id
73263 , sla_ledger_id
73264 , description_language
73265 , object_name
73266 , object_type_code
73267 , line_number
73268 , source_application_id
73269 , source_type_code
73270 , source_code
73271 , source_value
73272 , source_meaning
73273 , created_by
73274 , creation_date
73275 , last_update_date
73276 , last_updated_by
73277 , last_update_login
73278 , program_update_date
73279 , program_application_id
73280 , program_id
73281 , request_id
73282 )
73283 SELECT event_id
73284 , p_target_ledger_id
73285 , p_sla_ledger_id
73286 , p_language
73287 , object_name
73288 , object_type_code
73289 , line_number
73290 , source_application_id
73291 , source_type_code
73292 , source_code
73293 , SUBSTR(source_value,1,1996)
73294 , SUBSTR(source_meaning ,1,200)
73295 , xla_environment_pkg.g_Usr_Id
73296 , TRUNC(SYSDATE)
73297 , TRUNC(SYSDATE)
73298 , xla_environment_pkg.g_Usr_Id
73299 , xla_environment_pkg.g_Login_Id
73300 , TRUNC(SYSDATE)
73301 , xla_environment_pkg.g_Prog_Appl_Id
73302 , xla_environment_pkg.g_Prog_Id
73303 , xla_environment_pkg.g_Req_Id
73304 FROM (
73305 SELECT xet.event_id event_id
73306 , l3.line_number line_number
73307 , CASE r
73308 WHEN 1 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73309 WHEN 2 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73310 WHEN 3 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73311 WHEN 4 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73312 WHEN 5 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73313 WHEN 6 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73314 WHEN 7 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73315 WHEN 8 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73316 WHEN 9 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73317 WHEN 10 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73318 WHEN 11 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73319 WHEN 12 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73320 WHEN 13 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73321 WHEN 14 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73322 WHEN 15 THEN 'PA_XLA_EVENT_TYPE_REF_V'
73323 WHEN 16 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73324 WHEN 17 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73325 WHEN 18 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73326 WHEN 19 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73327 WHEN 20 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73328 WHEN 21 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73329 WHEN 22 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73330 WHEN 23 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73331
73332 ELSE null
73333 END object_name
73334 , CASE r
73335 WHEN 1 THEN 'LINE'
73336 WHEN 2 THEN 'LINE'
73337 WHEN 3 THEN 'LINE'
73338 WHEN 4 THEN 'LINE'
73339 WHEN 5 THEN 'LINE'
73340 WHEN 6 THEN 'LINE'
73341 WHEN 7 THEN 'LINE'
73342 WHEN 8 THEN 'LINE'
73343 WHEN 9 THEN 'LINE'
73347 WHEN 13 THEN 'LINE'
73344 WHEN 10 THEN 'LINE'
73345 WHEN 11 THEN 'LINE'
73346 WHEN 12 THEN 'LINE'
73348 WHEN 14 THEN 'LINE'
73349 WHEN 15 THEN 'LINE'
73350 WHEN 16 THEN 'LINE'
73351 WHEN 17 THEN 'LINE'
73352 WHEN 18 THEN 'LINE'
73353 WHEN 19 THEN 'LINE'
73354 WHEN 20 THEN 'LINE'
73355 WHEN 21 THEN 'LINE'
73356 WHEN 22 THEN 'LINE'
73357 WHEN 23 THEN 'LINE'
73358
73359 ELSE null
73360 END object_type_code
73361 , CASE r
73362 WHEN 1 THEN '275'
73363 WHEN 2 THEN '275'
73364 WHEN 3 THEN '275'
73365 WHEN 4 THEN '275'
73366 WHEN 5 THEN '275'
73367 WHEN 6 THEN '275'
73368 WHEN 7 THEN '275'
73369 WHEN 8 THEN '275'
73370 WHEN 9 THEN '275'
73371 WHEN 10 THEN '275'
73372 WHEN 11 THEN '275'
73373 WHEN 12 THEN '275'
73374 WHEN 13 THEN '275'
73375 WHEN 14 THEN '275'
73376 WHEN 15 THEN '275'
73377 WHEN 16 THEN '275'
73378 WHEN 17 THEN '275'
73379 WHEN 18 THEN '275'
73380 WHEN 19 THEN '275'
73381 WHEN 20 THEN '275'
73382 WHEN 21 THEN '275'
73383 WHEN 22 THEN '275'
73384 WHEN 23 THEN '275'
73385
73386 ELSE null
73387 END source_application_id
73388 , 'S' source_type_code
73389 , CASE r
73390 WHEN 1 THEN 'PDR_UBR_CCID'
73391 WHEN 2 THEN 'PDR_UER_CCID'
73392 WHEN 3 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
73393 WHEN 4 THEN 'ENTERED_CURRENCY_CODE'
73394 WHEN 5 THEN 'EXCHANGE_RATE_DATE'
73395 WHEN 6 THEN 'EXCHANGE_RATE'
73396 WHEN 7 THEN 'EXCHANGE_RATE_TYPE'
73397 WHEN 8 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
73398 WHEN 9 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
73399 WHEN 10 THEN 'REVENUE_DISTRIBUTION_TYPE'
73400 WHEN 11 THEN 'REVENUE_FIRST_DIST_ID'
73401 WHEN 12 THEN 'REVENUE_SECOND_DIST_ID'
73402 WHEN 13 THEN 'ENTERED_AMOUNT'
73403 WHEN 14 THEN 'ACCT_AMOUNT'
73404 WHEN 15 THEN 'REV_EVENT_TYPE_CLASSIFICATION'
73405 WHEN 16 THEN 'ACTUAL_UPG_CR_CCID'
73406 WHEN 17 THEN 'ACTUAL_UPG_DR_CCID'
73407 WHEN 18 THEN 'APPLICATION_ID'
73408 WHEN 19 THEN 'REVENUE_ENTITY_CODE'
73409 WHEN 20 THEN 'CR_REVENUE_FIRST_DIST_ID'
73410 WHEN 21 THEN 'PROJECT_ID'
73411 WHEN 22 THEN 'CR_REVENUE_SECOND_DIST_ID'
73412 WHEN 23 THEN 'PDR_DRAFT_REV_NUM_CREDITED'
73413
73414 ELSE null
73415 END source_code
73416 , CASE r
73417 WHEN 1 THEN TO_CHAR(l3.PDR_UBR_CCID)
73418 WHEN 2 THEN TO_CHAR(l3.PDR_UER_CCID)
73419 WHEN 3 THEN TO_CHAR(l3.ACTUAL_UPG_CR_ACCT_CLASS)
73420 WHEN 4 THEN TO_CHAR(l3.ENTERED_CURRENCY_CODE)
73421 WHEN 5 THEN TO_CHAR(l3.EXCHANGE_RATE_DATE)
73422 WHEN 6 THEN TO_CHAR(l3.EXCHANGE_RATE)
73423 WHEN 7 THEN TO_CHAR(l3.EXCHANGE_RATE_TYPE)
73424 WHEN 8 THEN TO_CHAR(l3.ACTUAL_UPG_DR_ACCT_CLASS)
73425 WHEN 9 THEN TO_CHAR(l3.USE_ACT_UPG_ATTRIB_FLAG)
73426 WHEN 10 THEN TO_CHAR(l3.REVENUE_DISTRIBUTION_TYPE)
73427 WHEN 11 THEN TO_CHAR(l3.REVENUE_FIRST_DIST_ID)
73428 WHEN 12 THEN TO_CHAR(l3.REVENUE_SECOND_DIST_ID)
73429 WHEN 13 THEN TO_CHAR(l3.ENTERED_AMOUNT)
73430 WHEN 14 THEN TO_CHAR(l3.ACCT_AMOUNT)
73431 WHEN 15 THEN TO_CHAR(l1.REV_EVENT_TYPE_CLASSIFICATION)
73432 WHEN 16 THEN TO_CHAR(l3.ACTUAL_UPG_CR_CCID)
73433 WHEN 17 THEN TO_CHAR(l3.ACTUAL_UPG_DR_CCID)
73434 WHEN 18 THEN TO_CHAR(l3.APPLICATION_ID)
73435 WHEN 19 THEN TO_CHAR(l3.REVENUE_ENTITY_CODE)
73436 WHEN 20 THEN TO_CHAR(l3.CR_REVENUE_FIRST_DIST_ID)
73437 WHEN 21 THEN TO_CHAR(l3.PROJECT_ID)
73438 WHEN 22 THEN TO_CHAR(l3.CR_REVENUE_SECOND_DIST_ID)
73439 WHEN 23 THEN TO_CHAR(l3.PDR_DRAFT_REV_NUM_CREDITED)
73440
73441 ELSE null
73442 END source_value
73443 , CASE r
73444 WHEN 15 THEN fvl58.meaning
73445
73446 ELSE null
73447 END source_meaning
73448 FROM xla_events_gt xet
73449 , PA_XLA_EVENT_TYPE_REF_V l1
73450 , PA_XLA_REVENUE_LINES_ADJ_V l3
73451 , fnd_lookup_values fvl58
73452 , (select rownum r from all_objects where rownum <= 23 and owner = p_apps_owner)
73453 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
73454 AND xet.event_class_code = C_EVENT_CLASS_CODE
73455 AND l3.event_id = xet.event_id
73456 AND l1.rev_event_type (+) =l3.rev_event_type AND fvl58.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
73457 AND fvl58.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
73458 AND fvl58.view_application_id(+) = 275
73459 AND fvl58.language(+) = USERENV('LANG')
73460
73461 )
73462 ;
73463 --
73464 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73468 ,p_level => C_LEVEL_STATEMENT
73465
73466 trace
73467 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
73469 ,p_module => l_log_module);
73470
73471 END IF;
73472
73473
73474 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73475 trace
73476 (p_msg => 'END of insert_sources_123'
73477 ,p_level => C_LEVEL_PROCEDURE
73478 ,p_module => l_log_module);
73479 END IF;
73480 EXCEPTION
73481 WHEN xla_exceptions_pkg.application_exception THEN
73482 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
73483 trace
73484 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
73485 ,p_level => C_LEVEL_EXCEPTION
73486 ,p_module => l_log_module);
73487 END IF;
73488 RAISE;
73489 WHEN OTHERS THEN
73490 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
73491 trace
73492 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
73493 ,p_level => C_LEVEL_EXCEPTION
73494 ,p_module => l_log_module);
73495 END IF;
73496 xla_exceptions_pkg.raise_message
73497 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_123');
73498 END insert_sources_123;
73499 --
73500
73501 ---------------------------------------
73502 --
73503 -- PRIVATE FUNCTION
73504 -- EventClass_123
73505 --
73506 ----------------------------------------
73507 --
73508 FUNCTION EventClass_123
73509 (p_application_id IN NUMBER
73510 ,p_base_ledger_id IN NUMBER
73511 ,p_target_ledger_id IN NUMBER
73512 ,p_language IN VARCHAR2
73513 ,p_currency_code IN VARCHAR2
73514 ,p_sla_ledger_id IN NUMBER
73515 ,p_pad_start_date IN DATE
73516 ,p_pad_end_date IN DATE
73517 ,p_primary_ledger_id IN NUMBER)
73518 RETURN BOOLEAN IS
73519 --
73520 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ_ALL';
73521 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ';
73522
73523 l_calculate_acctd_flag VARCHAR2(1) :='N';
73524 l_calculate_g_l_flag VARCHAR2(1) :='N';
73525 --
73526 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73527 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73528 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73529 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73530 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73531 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73532 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73533 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73534 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73535 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73536 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73537 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73538 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73539 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73540 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73541 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73542 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73543 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73544 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73545 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73546 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73547 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73548 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
73549 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73550
73551 l_event_id NUMBER;
73552 l_previous_event_id NUMBER;
73553 l_first_event_id NUMBER;
73554 l_last_event_id NUMBER;
73555
73556 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
73557 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
73558 --
73559 --
73560 l_result BOOLEAN := TRUE;
73561 l_rows NUMBER := 1000;
73562 l_event_type_name VARCHAR2(80) := 'All';
73563 l_event_class_name VARCHAR2(80) := 'Revenue Adjustment';
73564 l_description VARCHAR2(4000);
73565 l_transaction_reversal NUMBER;
73566 l_ae_header_id NUMBER;
73567 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
73568 l_log_module VARCHAR2(240);
73569 --
73570 l_acct_reversal_source VARCHAR2(30);
73571 l_trx_reversal_source VARCHAR2(30);
73572
73573 l_continue_with_lines BOOLEAN := TRUE;
73574 --
73575 l_acc_rev_gl_date_source DATE; -- 4262811
73576 --
73577 type t_array_event_id is table of number index by binary_integer;
73578
73579 l_rec_array_event t_rec_array_event;
73580 l_null_rec_array_event t_rec_array_event;
73581 l_array_ae_header_id xla_number_array_type;
73582 l_actual_flag VARCHAR2(1) := NULL;
73583 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
73584 l_balance_type_code VARCHAR2(1) :=NULL;
73585 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
73586
73587 --
73591 TYPE t_array_source_38 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.CREDITING_REVENUE_FLAG%TYPE INDEX BY BINARY_INTEGER;
73588 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
73589 --
73590
73592 TYPE t_array_source_42 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.EVENT_ID%TYPE INDEX BY BINARY_INTEGER;
73593 TYPE t_array_source_88 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
73594 TYPE t_array_source_92 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UER_CCID%TYPE INDEX BY BINARY_INTEGER;
73595 TYPE t_array_source_93 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
73596
73597 TYPE t_array_source_19 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PDR_UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
73598 TYPE t_array_source_20 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PDR_UER_CCID%TYPE INDEX BY BINARY_INTEGER;
73599 TYPE t_array_source_23 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
73600 TYPE t_array_source_25 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
73601 TYPE t_array_source_27 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
73602 TYPE t_array_source_28 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
73603 TYPE t_array_source_29 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
73604 TYPE t_array_source_30 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
73605 TYPE t_array_source_31 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
73606 TYPE t_array_source_36 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
73607 TYPE t_array_source_39 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73608 TYPE t_array_source_40 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73609 TYPE t_array_source_41 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
73610 TYPE t_array_source_43 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
73611 TYPE t_array_source_58 IS TABLE OF PA_XLA_EVENT_TYPE_REF_V.REV_EVENT_TYPE_CLASSIFICATION%TYPE INDEX BY BINARY_INTEGER;
73612 TYPE t_array_source_59 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
73613 TYPE t_array_source_60 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
73614 TYPE t_array_source_61 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
73615 TYPE t_array_source_62 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
73616 TYPE t_array_source_63 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.CR_REVENUE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73617 TYPE t_array_source_64 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PROJECT_ID%TYPE INDEX BY BINARY_INTEGER;
73618 TYPE t_array_source_65 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.CR_REVENUE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73619 TYPE t_array_source_66 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PDR_DRAFT_REV_NUM_CREDITED%TYPE INDEX BY BINARY_INTEGER;
73620
73621 l_array_source_38 t_array_source_38;
73622 l_array_source_42 t_array_source_42;
73623 l_array_source_88 t_array_source_88;
73624 l_array_source_92 t_array_source_92;
73625 l_array_source_93 t_array_source_93;
73626
73627 l_array_source_19 t_array_source_19;
73628 l_array_source_20 t_array_source_20;
73629 l_array_source_23 t_array_source_23;
73630 l_array_source_25 t_array_source_25;
73631 l_array_source_27 t_array_source_27;
73632 l_array_source_28 t_array_source_28;
73633 l_array_source_29 t_array_source_29;
73634 l_array_source_30 t_array_source_30;
73635 l_array_source_31 t_array_source_31;
73636 l_array_source_36 t_array_source_36;
73637 l_array_source_39 t_array_source_39;
73638 l_array_source_40 t_array_source_40;
73639 l_array_source_41 t_array_source_41;
73640 l_array_source_43 t_array_source_43;
73641 l_array_source_58 t_array_source_58;
73642 l_array_source_58_meaning t_array_lookup_meaning;
73643 l_array_source_59 t_array_source_59;
73644 l_array_source_60 t_array_source_60;
73645 l_array_source_61 t_array_source_61;
73646 l_array_source_62 t_array_source_62;
73647 l_array_source_63 t_array_source_63;
73648 l_array_source_64 t_array_source_64;
73649 l_array_source_65 t_array_source_65;
73650 l_array_source_66 t_array_source_66;
73651
73652 --
73653 CURSOR header_cur
73654 IS
73655 SELECT /*+ leading(xet) cardinality(xet,1) */
73656 -- Event Class Code: REVENUE_ADJ
73657 xet.entity_id
73658 ,xet.legal_entity_id
73659 ,xet.entity_code
73660 ,xet.transaction_number
73661 ,xet.event_id
73662 ,xet.event_class_code
73663 ,xet.event_type_code
73664 ,xet.event_number
73665 ,xet.event_date
73666 ,xet.transaction_date
73667 ,xet.reference_num_1
73668 ,xet.reference_num_2
73669 ,xet.reference_num_3
73670 ,xet.reference_num_4
73671 ,xet.reference_char_1
73672 ,xet.reference_char_2
73673 ,xet.reference_char_3
73674 ,xet.reference_char_4
73675 ,xet.reference_date_1
73676 ,xet.reference_date_2
73677 ,xet.reference_date_3
73678 ,xet.reference_date_4
73679 ,xet.event_created_by
73680 ,xet.budgetary_control_flag
73681 , h2.CREDITING_REVENUE_FLAG source_38
73682 , h2.EVENT_ID source_42
73683 , h2.GL_DATE source_88
73684 , h2.UER_CCID source_92
73685 , h2.UBR_CCID source_93
73686 FROM xla_events_gt xet
73687 , PA_XLA_REVENUE_HEADERS_V h2
73688 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
73689 and xet.event_class_code = C_EVENT_CLASS_CODE
73690 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
73691
73692 ORDER BY event_id
73693 ;
73694
73695
73699 SELECT /*+ leading(xet) cardinality(xet,1) */
73696 --
73697 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
73698 IS
73700 -- Event Class Code: REVENUE_ADJ
73701 xet.entity_id
73702 ,xet.legal_entity_id
73703 ,xet.entity_code
73704 ,xet.transaction_number
73705 ,xet.event_id
73706 ,xet.event_class_code
73707 ,xet.event_type_code
73708 ,xet.event_number
73709 ,xet.event_date
73710 ,xet.transaction_date
73711 ,xet.reference_num_1
73712 ,xet.reference_num_2
73713 ,xet.reference_num_3
73714 ,xet.reference_num_4
73715 ,xet.reference_char_1
73716 ,xet.reference_char_2
73717 ,xet.reference_char_3
73718 ,xet.reference_char_4
73719 ,xet.reference_date_1
73720 ,xet.reference_date_2
73721 ,xet.reference_date_3
73722 ,xet.reference_date_4
73723 ,xet.event_created_by
73724 ,xet.budgetary_control_flag
73725 , l3.LINE_NUMBER
73726 , l3.PDR_UBR_CCID source_19
73727 , l3.PDR_UER_CCID source_20
73728 , l3.ACTUAL_UPG_CR_ACCT_CLASS source_23
73729 , l3.ENTERED_CURRENCY_CODE source_25
73730 , l3.EXCHANGE_RATE_DATE source_27
73731 , l3.EXCHANGE_RATE source_28
73732 , l3.EXCHANGE_RATE_TYPE source_29
73733 , l3.ACTUAL_UPG_DR_ACCT_CLASS source_30
73734 , l3.USE_ACT_UPG_ATTRIB_FLAG source_31
73735 , l3.REVENUE_DISTRIBUTION_TYPE source_36
73736 , l3.REVENUE_FIRST_DIST_ID source_39
73737 , l3.REVENUE_SECOND_DIST_ID source_40
73738 , l3.ENTERED_AMOUNT source_41
73739 , l3.ACCT_AMOUNT source_43
73740 , l1.REV_EVENT_TYPE_CLASSIFICATION source_58
73741 , fvl58.meaning source_58_meaning
73742 , l3.ACTUAL_UPG_CR_CCID source_59
73743 , l3.ACTUAL_UPG_DR_CCID source_60
73744 , l3.APPLICATION_ID source_61
73745 , l3.REVENUE_ENTITY_CODE source_62
73746 , l3.CR_REVENUE_FIRST_DIST_ID source_63
73747 , l3.PROJECT_ID source_64
73748 , l3.CR_REVENUE_SECOND_DIST_ID source_65
73749 , l3.PDR_DRAFT_REV_NUM_CREDITED source_66
73750 FROM xla_events_gt xet
73751 , PA_XLA_EVENT_TYPE_REF_V l1
73752 , PA_XLA_REVENUE_LINES_ADJ_V l3
73753 , fnd_lookup_values fvl58
73754 WHERE xet.event_id between x_first_event_id and x_last_event_id
73755 and xet.event_date between p_pad_start_date and p_pad_end_date
73756 and xet.event_class_code = C_EVENT_CLASS_CODE
73757 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
73758 AND l1.REV_EVENT_TYPE (+) =l3.REV_EVENT_TYPE AND fvl58.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
73759 AND fvl58.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
73760 AND fvl58.view_application_id(+) = 275
73761 AND fvl58.language(+) = USERENV('LANG')
73762 ;
73763
73764 --
73765 BEGIN
73766 IF g_log_enabled THEN
73767 l_log_module := C_DEFAULT_MODULE||'.EventClass_123';
73768 END IF;
73769 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73770 trace
73771 (p_msg => 'BEGIN of EventClass_123'
73772 ,p_level => C_LEVEL_PROCEDURE
73773 ,p_module => l_log_module);
73774 END IF;
73775
73776 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73777 trace
73778 (p_msg => 'p_application_id = '||p_application_id||
73779 ' - p_base_ledger_id = '||p_base_ledger_id||
73780 ' - p_target_ledger_id = '||p_target_ledger_id||
73781 ' - p_language = '||p_language||
73782 ' - p_currency_code = '||p_currency_code||
73783 ' - p_sla_ledger_id = '||p_sla_ledger_id
73784 ,p_level => C_LEVEL_STATEMENT
73785 ,p_module => l_log_module);
73786 END IF;
73787 --
73788 -- initialze arrays
73789 --
73790 g_array_event.DELETE;
73791 l_rec_array_event := l_null_rec_array_event;
73792 --
73793 --------------------------------------
73794 -- 4262811 Initialze MPA Line Number
73795 --------------------------------------
73796 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
73797
73798 --
73799
73800 --
73801 OPEN header_cur;
73802 --
73803 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73804 trace
73805 (p_msg => 'SQL - FETCH header_cur'
73806 ,p_level => C_LEVEL_STATEMENT
73807 ,p_module => l_log_module);
73808 END IF;
73809 --
73810 LOOP
73811 FETCH header_cur BULK COLLECT INTO
73812 l_array_entity_id
73813 , l_array_legal_entity_id
73814 , l_array_entity_code
73815 , l_array_transaction_num
73816 , l_array_event_id
73817 , l_array_class_code
73818 , l_array_event_type
73819 , l_array_event_number
73820 , l_array_event_date
73821 , l_array_transaction_date
73822 , l_array_reference_num_1
73823 , l_array_reference_num_2
73824 , l_array_reference_num_3
73825 , l_array_reference_num_4
73826 , l_array_reference_char_1
73827 , l_array_reference_char_2
73828 , l_array_reference_char_3
73829 , l_array_reference_char_4
73830 , l_array_reference_date_1
73831 , l_array_reference_date_2
73832 , l_array_reference_date_3
73833 , l_array_reference_date_4
73834 , l_array_event_created_by
73835 , l_array_budgetary_control_flag
73836 , l_array_source_38
73837 , l_array_source_42
73838 , l_array_source_88
73839 , l_array_source_92
73840 , l_array_source_93
73841 LIMIT l_rows;
73842 --
73843 IF (C_LEVEL_EVENT >= g_log_level) THEN
73844 trace
73845 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
73846 ,p_level => C_LEVEL_EVENT
73847 ,p_module => l_log_module);
73848 END IF;
73849 --
73853 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
73850 EXIT WHEN l_array_entity_id.COUNT = 0;
73851
73852 -- initialize arrays
73854 XLA_AE_LINES_PKG.g_rec_lines := NULL;
73855
73856 --
73857 -- Bug 4458708
73858 --
73859 XLA_AE_LINES_PKG.g_LineNumber := 0;
73860
73861
73862 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
73863 g_last_hdr_idx := l_array_event_id.LAST;
73864 --
73865 -- loop for the headers. Each iteration is for each header extract row
73866 -- fetched in header cursor
73867 --
73868 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
73869
73870 --
73871 -- set event info as cache for other routines to refer event attributes
73872 --
73873 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
73874 (p_application_id => p_application_id
73875 ,p_primary_ledger_id => p_primary_ledger_id
73876 ,p_base_ledger_id => p_base_ledger_id
73877 ,p_target_ledger_id => p_target_ledger_id
73878 ,p_entity_id => l_array_entity_id(hdr_idx)
73879 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
73880 ,p_entity_code => l_array_entity_code(hdr_idx)
73881 ,p_transaction_num => l_array_transaction_num(hdr_idx)
73882 ,p_event_id => l_array_event_id(hdr_idx)
73883 ,p_event_class_code => l_array_class_code(hdr_idx)
73884 ,p_event_type_code => l_array_event_type(hdr_idx)
73885 ,p_event_number => l_array_event_number(hdr_idx)
73886 ,p_event_date => l_array_event_date(hdr_idx)
73887 ,p_transaction_date => l_array_transaction_date(hdr_idx)
73888 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
73889 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
73890 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
73891 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
73892 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
73893 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
73894 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
73895 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
73896 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
73897 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
73898 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
73899 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
73900 ,p_event_created_by => l_array_event_created_by(hdr_idx)
73901 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
73902
73903 --
73904 -- set the status of entry to C_VALID (0)
73905 --
73906 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
73907
73908 --
73909 -- initialize a row for ae header
73910 --
73911 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
73912
73913 l_event_id := l_array_event_id(hdr_idx);
73914
73915 --
73916 -- storing the hdr_idx for event. May be used by line cursor.
73917 --
73918 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
73919
73920 --
73921 -- store sources from header extract. This can be improved to
73922 -- store only those sources from header extract that may be used in lines
73923 --
73924
73925 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
73926 g_array_event(l_event_id).array_value_num('source_42') := l_array_source_42(hdr_idx);
73927 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
73928 g_array_event(l_event_id).array_value_num('source_92') := l_array_source_92(hdr_idx);
73929 g_array_event(l_event_id).array_value_num('source_93') := l_array_source_93(hdr_idx);
73930
73931 --
73932 -- initilaize the status of ae headers for diffrent balance types
73933 -- the status is initialised to C_NOT_CREATED (2)
73934 --
73935 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
73936 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
73937 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
73938
73939 --
73940 -- call api to validate and store accounting attributes for header
73941 --
73942
73943 ------------------------------------------------------------
73944 -- Accrual Reversal : to get date for Standard Source (NONE)
73945 ------------------------------------------------------------
73946 l_acc_rev_gl_date_source := NULL;
73947
73948 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
73949 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
73950
73951
73952 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
73953
73954 XLA_AE_HEADER_PKG.SetJeCategoryName;
73955
73956 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
73957 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
73958 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
73959 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
73960 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
73961
73962
73963 -- No header level analytical criteria
73964
73965 --
73966 --accounting attribute enhancement, bug 3612931
73967 --
73968 l_trx_reversal_source := SUBSTR(NULL, 1,30);
73969
73970 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
73971 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
73972
73973 xla_accounting_err_pkg.build_message
73974 (p_appli_s_name => 'XLA'
73978 ,p_token_2 => 'PRODUCT_NAME'
73975 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
73976 ,p_token_1 => 'ACCT_ATTR_NAME'
73977 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
73979 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
73980 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
73981 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
73982 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
73983
73984 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
73985 --
73986 -- following sets the accounting attributes needed to reverse
73987 -- accounting for a distributeion
73988 --
73989 xla_ae_lines_pkg.SetTrxReversalAttrs
73990 (p_event_id => l_event_id
73991 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
73992 ,p_trx_reversal_source => l_trx_reversal_source);
73993
73994 END IF;
73995
73996
73997 ----------------------------------------------------------------
73998 -- 4262811 - update the header statuses to invalid in need be
73999 ----------------------------------------------------------------
74000 --
74001 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
74002
74003
74004 -----------------------------------------------
74005 -- No accrual reversal for the event class/type
74006 -----------------------------------------------
74007 ----------------------------------------------------------------
74008
74009 --
74010 -- this ends the header loop iteration for one bulk fetch
74011 --
74012 END LOOP;
74013
74014 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
74015 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
74016
74017 --
74018 -- insert dummy rows into lines gt table that were created due to
74019 -- transaction reversals
74020 --
74021 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
74022 l_result := XLA_AE_LINES_PKG.InsertLines;
74023 END IF;
74024
74025 --
74026 -- reset the temp_line_num for each set of events fetched from header
74027 -- cursor rather than doing it for each new event in line cursor
74028 -- Bug 3939231
74029 --
74030 xla_ae_lines_pkg.g_temp_line_num := 0;
74031
74032
74033
74034 --
74035 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
74036 --
74037 --
74038 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74039
74040 trace
74041 (p_msg => 'SQL - FETCH line_cur'
74042 ,p_level => C_LEVEL_STATEMENT
74043 ,p_module => l_log_module);
74044
74045 END IF;
74046 --
74047 --
74048 LOOP
74049 --
74050 FETCH line_cur BULK COLLECT INTO
74051 l_array_entity_id
74052 , l_array_legal_entity_id
74053 , l_array_entity_code
74054 , l_array_transaction_num
74055 , l_array_event_id
74056 , l_array_class_code
74057 , l_array_event_type
74058 , l_array_event_number
74059 , l_array_event_date
74060 , l_array_transaction_date
74061 , l_array_reference_num_1
74062 , l_array_reference_num_2
74063 , l_array_reference_num_3
74064 , l_array_reference_num_4
74065 , l_array_reference_char_1
74066 , l_array_reference_char_2
74067 , l_array_reference_char_3
74068 , l_array_reference_char_4
74069 , l_array_reference_date_1
74070 , l_array_reference_date_2
74071 , l_array_reference_date_3
74072 , l_array_reference_date_4
74073 , l_array_event_created_by
74074 , l_array_budgetary_control_flag
74075 , l_array_extract_line_num
74076 , l_array_source_19
74077 , l_array_source_20
74078 , l_array_source_23
74079 , l_array_source_25
74080 , l_array_source_27
74081 , l_array_source_28
74082 , l_array_source_29
74083 , l_array_source_30
74084 , l_array_source_31
74085 , l_array_source_36
74086 , l_array_source_39
74087 , l_array_source_40
74088 , l_array_source_41
74089 , l_array_source_43
74090 , l_array_source_58
74091 , l_array_source_58_meaning
74092 , l_array_source_59
74093 , l_array_source_60
74094 , l_array_source_61
74095 , l_array_source_62
74096 , l_array_source_63
74097 , l_array_source_64
74098 , l_array_source_65
74099 , l_array_source_66
74100 LIMIT l_rows;
74101
74102 --
74103 IF (C_LEVEL_EVENT >= g_log_level) THEN
74104 trace
74105 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
74106 ,p_level => C_LEVEL_EVENT
74107 ,p_module => l_log_module);
74108 END IF;
74109 --
74110 EXIT WHEN l_array_entity_id.count = 0;
74111
74112 XLA_AE_LINES_PKG.g_rec_lines := null;
74113
74114 --
74115 -- Bug 4458708
74116 --
74117 XLA_AE_LINES_PKG.g_LineNumber := 0;
74118 --
74119 --
74120
74121 FOR Idx IN 1..l_array_event_id.count LOOP
74122 --
74123 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
74124 --
74125 l_event_id := l_array_event_id(idx); -- 5648433
74126
74127 --
74128 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
74129 --
74130
74131 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
74135 THEN
74132 (g_array_event(l_event_id).array_value_num('header_index'))
74133 ,'N'
74134 ) <> 'Y'
74136 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74137 trace
74138 (p_msg => 'Trancaction revesal option is not Y '
74139 ,p_level => C_LEVEL_STATEMENT
74140 ,p_module => l_log_module);
74141 END IF;
74142
74143 --
74144 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
74145 --
74146 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
74147 --
74148 -- set event info as cache for other routines to refer event attributes
74149 --
74150
74151 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
74152 l_previous_event_id := l_event_id;
74153
74154 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
74155 (p_application_id => p_application_id
74156 ,p_primary_ledger_id => p_primary_ledger_id
74157 ,p_base_ledger_id => p_base_ledger_id
74158 ,p_target_ledger_id => p_target_ledger_id
74159 ,p_entity_id => l_array_entity_id(Idx)
74160 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
74161 ,p_entity_code => l_array_entity_code(Idx)
74162 ,p_transaction_num => l_array_transaction_num(Idx)
74163 ,p_event_id => l_array_event_id(Idx)
74164 ,p_event_class_code => l_array_class_code(Idx)
74165 ,p_event_type_code => l_array_event_type(Idx)
74166 ,p_event_number => l_array_event_number(Idx)
74167 ,p_event_date => l_array_event_date(Idx)
74168 ,p_transaction_date => l_array_transaction_date(Idx)
74169 ,p_reference_num_1 => l_array_reference_num_1(Idx)
74170 ,p_reference_num_2 => l_array_reference_num_2(Idx)
74171 ,p_reference_num_3 => l_array_reference_num_3(Idx)
74172 ,p_reference_num_4 => l_array_reference_num_4(Idx)
74173 ,p_reference_char_1 => l_array_reference_char_1(Idx)
74174 ,p_reference_char_2 => l_array_reference_char_2(Idx)
74175 ,p_reference_char_3 => l_array_reference_char_3(Idx)
74176 ,p_reference_char_4 => l_array_reference_char_4(Idx)
74177 ,p_reference_date_1 => l_array_reference_date_1(Idx)
74178 ,p_reference_date_2 => l_array_reference_date_2(Idx)
74179 ,p_reference_date_3 => l_array_reference_date_3(Idx)
74180 ,p_reference_date_4 => l_array_reference_date_4(Idx)
74181 ,p_event_created_by => l_array_event_created_by(Idx)
74182 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
74183 --
74184 END IF;
74185
74186
74187
74188 --
74189 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
74190
74191 l_acct_reversal_source := SUBSTR(NULL, 1,30);
74192
74193 IF l_continue_with_lines THEN
74194 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
74195 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
74196
74197 xla_accounting_err_pkg.build_message
74198 (p_appli_s_name => 'XLA'
74199 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
74200 ,p_token_1 => 'LINE_NUMBER'
74201 ,p_value_1 => l_array_extract_line_num(Idx)
74202 ,p_token_2 => 'PRODUCT_NAME'
74203 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
74204 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
74205 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
74206 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
74207
74208 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
74209 --
74210 -- following sets the accounting attributes needed to reverse
74211 -- accounting for a distributeion
74212 --
74213
74214 --
74215 -- 5217187
74216 --
74217 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
74218 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
74219 g_array_event(l_event_id).array_value_num('header_index'));
74220 --
74221 --
74222
74223 -- No reversal code generated
74224
74225 xla_ae_lines_pkg.SetAcctReversalAttrs
74226 (p_event_id => l_event_id
74227 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
74228 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74229 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
74230 END IF;
74231
74232 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
74233 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
74234
74235 --
74236 AcctLineType_31 (
74237 p_application_id => p_application_id
74238 ,p_event_id => l_event_id
74239 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74240 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74241 ,p_actual_flag => l_actual_flag
74242 ,p_balance_type_code => l_balance_type_code
74243 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74244
74245 , p_source_23 => l_array_source_23(Idx)
74246 , p_source_25 => l_array_source_25(Idx)
74247 , p_source_27 => l_array_source_27(Idx)
74248 , p_source_28 => l_array_source_28(Idx)
74249 , p_source_29 => l_array_source_29(Idx)
74250 , p_source_30 => l_array_source_30(Idx)
74251 , p_source_31 => l_array_source_31(Idx)
74252 , p_source_36 => l_array_source_36(Idx)
74253 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74254 , p_source_39 => l_array_source_39(Idx)
74255 , p_source_40 => l_array_source_40(Idx)
74259 , p_source_58 => l_array_source_58(Idx)
74256 , p_source_41 => l_array_source_41(Idx)
74257 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74258 , p_source_43 => l_array_source_43(Idx)
74260 , p_source_58_meaning => l_array_source_58_meaning(Idx)
74261 , p_source_59 => l_array_source_59(Idx)
74262 , p_source_60 => l_array_source_60(Idx)
74263 , p_source_61 => l_array_source_61(Idx)
74264 , p_source_62 => l_array_source_62(Idx)
74265 , p_source_63 => l_array_source_63(Idx)
74266 , p_source_64 => l_array_source_64(Idx)
74267 , p_source_65 => l_array_source_65(Idx)
74268 , p_source_66 => l_array_source_66(Idx)
74269 );
74270 If(l_balance_type_code = 'A') THEN
74271 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74272 END IF;
74273
74274 --
74275
74276
74277 --
74278 AcctLineType_33 (
74279 p_application_id => p_application_id
74280 ,p_event_id => l_event_id
74281 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74282 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74283 ,p_actual_flag => l_actual_flag
74284 ,p_balance_type_code => l_balance_type_code
74285 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74286
74287 , p_source_23 => l_array_source_23(Idx)
74288 , p_source_25 => l_array_source_25(Idx)
74289 , p_source_27 => l_array_source_27(Idx)
74290 , p_source_28 => l_array_source_28(Idx)
74291 , p_source_29 => l_array_source_29(Idx)
74292 , p_source_30 => l_array_source_30(Idx)
74293 , p_source_31 => l_array_source_31(Idx)
74294 , p_source_36 => l_array_source_36(Idx)
74295 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74296 , p_source_39 => l_array_source_39(Idx)
74297 , p_source_40 => l_array_source_40(Idx)
74298 , p_source_41 => l_array_source_41(Idx)
74299 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74300 , p_source_43 => l_array_source_43(Idx)
74301 , p_source_58 => l_array_source_58(Idx)
74302 , p_source_58_meaning => l_array_source_58_meaning(Idx)
74303 , p_source_59 => l_array_source_59(Idx)
74304 , p_source_60 => l_array_source_60(Idx)
74305 , p_source_61 => l_array_source_61(Idx)
74306 , p_source_62 => l_array_source_62(Idx)
74307 , p_source_63 => l_array_source_63(Idx)
74308 , p_source_64 => l_array_source_64(Idx)
74309 , p_source_65 => l_array_source_65(Idx)
74310 , p_source_66 => l_array_source_66(Idx)
74311 );
74312 If(l_balance_type_code = 'A') THEN
74313 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74314 END IF;
74315
74316 --
74317
74318
74319 --
74320 AcctLineType_66 (
74321 p_application_id => p_application_id
74322 ,p_event_id => l_event_id
74323 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74324 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74325 ,p_actual_flag => l_actual_flag
74326 ,p_balance_type_code => l_balance_type_code
74327 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74328
74329 , p_source_23 => l_array_source_23(Idx)
74330 , p_source_25 => l_array_source_25(Idx)
74331 , p_source_27 => l_array_source_27(Idx)
74332 , p_source_28 => l_array_source_28(Idx)
74333 , p_source_29 => l_array_source_29(Idx)
74334 , p_source_30 => l_array_source_30(Idx)
74335 , p_source_31 => l_array_source_31(Idx)
74336 , p_source_36 => l_array_source_36(Idx)
74337 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74338 , p_source_39 => l_array_source_39(Idx)
74339 , p_source_40 => l_array_source_40(Idx)
74340 , p_source_41 => l_array_source_41(Idx)
74341 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74342 , p_source_43 => l_array_source_43(Idx)
74343 , p_source_59 => l_array_source_59(Idx)
74344 , p_source_60 => l_array_source_60(Idx)
74345 , p_source_61 => l_array_source_61(Idx)
74346 , p_source_62 => l_array_source_62(Idx)
74347 , p_source_63 => l_array_source_63(Idx)
74348 , p_source_64 => l_array_source_64(Idx)
74349 , p_source_65 => l_array_source_65(Idx)
74350 , p_source_66 => l_array_source_66(Idx)
74351 );
74352 If(l_balance_type_code = 'A') THEN
74353 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74354 END IF;
74355
74356 --
74357
74358
74359 --
74360 AcctLineType_68 (
74361 p_application_id => p_application_id
74362 ,p_event_id => l_event_id
74363 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74364 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74365 ,p_actual_flag => l_actual_flag
74366 ,p_balance_type_code => l_balance_type_code
74367 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74368
74369 , p_source_23 => l_array_source_23(Idx)
74370 , p_source_25 => l_array_source_25(Idx)
74371 , p_source_27 => l_array_source_27(Idx)
74372 , p_source_28 => l_array_source_28(Idx)
74373 , p_source_29 => l_array_source_29(Idx)
74374 , p_source_30 => l_array_source_30(Idx)
74375 , p_source_31 => l_array_source_31(Idx)
74376 , p_source_36 => l_array_source_36(Idx)
74377 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74378 , p_source_39 => l_array_source_39(Idx)
74379 , p_source_40 => l_array_source_40(Idx)
74380 , p_source_41 => l_array_source_41(Idx)
74381 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74382 , p_source_43 => l_array_source_43(Idx)
74383 , p_source_59 => l_array_source_59(Idx)
74384 , p_source_60 => l_array_source_60(Idx)
74385 , p_source_61 => l_array_source_61(Idx)
74386 , p_source_62 => l_array_source_62(Idx)
74387 , p_source_63 => l_array_source_63(Idx)
74388 , p_source_64 => l_array_source_64(Idx)
74389 , p_source_65 => l_array_source_65(Idx)
74390 , p_source_66 => l_array_source_66(Idx)
74391 );
74392 If(l_balance_type_code = 'A') THEN
74393 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74394 END IF;
74395
74396 --
74397
74398
74399 --
74400 AcctLineType_77 (
74404 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74401 p_application_id => p_application_id
74402 ,p_event_id => l_event_id
74403 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74405 ,p_actual_flag => l_actual_flag
74406 ,p_balance_type_code => l_balance_type_code
74407 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74408
74409 , p_source_23 => l_array_source_23(Idx)
74410 , p_source_25 => l_array_source_25(Idx)
74411 , p_source_27 => l_array_source_27(Idx)
74412 , p_source_28 => l_array_source_28(Idx)
74413 , p_source_29 => l_array_source_29(Idx)
74414 , p_source_30 => l_array_source_30(Idx)
74415 , p_source_31 => l_array_source_31(Idx)
74416 , p_source_36 => l_array_source_36(Idx)
74417 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74418 , p_source_39 => l_array_source_39(Idx)
74419 , p_source_40 => l_array_source_40(Idx)
74420 , p_source_41 => l_array_source_41(Idx)
74421 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74422 , p_source_43 => l_array_source_43(Idx)
74423 , p_source_59 => l_array_source_59(Idx)
74424 , p_source_60 => l_array_source_60(Idx)
74425 , p_source_61 => l_array_source_61(Idx)
74426 , p_source_62 => l_array_source_62(Idx)
74427 , p_source_63 => l_array_source_63(Idx)
74428 , p_source_64 => l_array_source_64(Idx)
74429 , p_source_65 => l_array_source_65(Idx)
74430 , p_source_66 => l_array_source_66(Idx)
74431 );
74432 If(l_balance_type_code = 'A') THEN
74433 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74434 END IF;
74435
74436 --
74437
74438
74439 --
74440 AcctLineType_83 (
74441 p_application_id => p_application_id
74442 ,p_event_id => l_event_id
74443 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74444 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74445 ,p_actual_flag => l_actual_flag
74446 ,p_balance_type_code => l_balance_type_code
74447 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74448
74449 , p_source_19 => l_array_source_19(Idx)
74450 , p_source_23 => l_array_source_23(Idx)
74451 , p_source_25 => l_array_source_25(Idx)
74452 , p_source_27 => l_array_source_27(Idx)
74453 , p_source_28 => l_array_source_28(Idx)
74454 , p_source_29 => l_array_source_29(Idx)
74455 , p_source_30 => l_array_source_30(Idx)
74456 , p_source_31 => l_array_source_31(Idx)
74457 , p_source_36 => l_array_source_36(Idx)
74458 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74459 , p_source_39 => l_array_source_39(Idx)
74460 , p_source_40 => l_array_source_40(Idx)
74461 , p_source_41 => l_array_source_41(Idx)
74462 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74463 , p_source_43 => l_array_source_43(Idx)
74464 , p_source_59 => l_array_source_59(Idx)
74465 , p_source_60 => l_array_source_60(Idx)
74466 , p_source_61 => l_array_source_61(Idx)
74467 , p_source_62 => l_array_source_62(Idx)
74468 , p_source_63 => l_array_source_63(Idx)
74469 , p_source_64 => l_array_source_64(Idx)
74470 , p_source_65 => l_array_source_65(Idx)
74471 , p_source_66 => l_array_source_66(Idx)
74472 );
74473 If(l_balance_type_code = 'A') THEN
74474 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74475 END IF;
74476
74477 --
74478
74479
74480 --
74481 AcctLineType_85 (
74482 p_application_id => p_application_id
74483 ,p_event_id => l_event_id
74484 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74485 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74486 ,p_actual_flag => l_actual_flag
74487 ,p_balance_type_code => l_balance_type_code
74488 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74489
74490 , p_source_20 => l_array_source_20(Idx)
74491 , p_source_23 => l_array_source_23(Idx)
74492 , p_source_25 => l_array_source_25(Idx)
74493 , p_source_27 => l_array_source_27(Idx)
74494 , p_source_28 => l_array_source_28(Idx)
74495 , p_source_29 => l_array_source_29(Idx)
74496 , p_source_30 => l_array_source_30(Idx)
74497 , p_source_31 => l_array_source_31(Idx)
74498 , p_source_36 => l_array_source_36(Idx)
74499 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74500 , p_source_39 => l_array_source_39(Idx)
74501 , p_source_40 => l_array_source_40(Idx)
74502 , p_source_41 => l_array_source_41(Idx)
74503 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74504 , p_source_43 => l_array_source_43(Idx)
74505 , p_source_59 => l_array_source_59(Idx)
74506 , p_source_60 => l_array_source_60(Idx)
74507 , p_source_61 => l_array_source_61(Idx)
74508 , p_source_62 => l_array_source_62(Idx)
74509 , p_source_63 => l_array_source_63(Idx)
74510 , p_source_64 => l_array_source_64(Idx)
74511 , p_source_65 => l_array_source_65(Idx)
74512 , p_source_66 => l_array_source_66(Idx)
74513 );
74514 If(l_balance_type_code = 'A') THEN
74515 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74516 END IF;
74517
74518 --
74519
74520 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
74521 -- or secondary ledger that has different currency with primary
74522 -- or alc that is calculated by sla
74523 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
74524 (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'))
74525
74526 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
74527 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
74528 AND (l_actual_flag = 'A')) THEN
74529 XLA_AE_LINES_PKG.CreateGainOrLossLines(
74530 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
74531 ,p_application_id => p_application_id
74532 ,p_amb_context_code => 'DEFAULT'
74536
74533 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
74534 ,p_event_class_code => C_EVENT_CLASS_CODE
74535 ,p_event_type_code => C_EVENT_TYPE_CODE
74537 ,p_gain_ccid => g_array_event(l_event_id).array_value_num('source_92')
74538 ,p_loss_ccid => g_array_event(l_event_id).array_value_num('source_93')
74539
74540 ,p_actual_flag => l_actual_flag
74541 ,p_enc_flag => null
74542 ,p_actual_g_l_ref => l_actual_gain_loss_ref
74543 ,p_enc_g_l_ref => null
74544 );
74545 END IF;
74546 END IF;
74547 END IF;
74548
74549 ELSE
74550 --
74551 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
74552 --
74553 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74554 trace
74555 (p_msg => 'Trancaction revesal option is Y'
74556 ,p_level => C_LEVEL_STATEMENT
74557 ,p_module => l_log_module);
74558 END IF;
74559 END IF;
74560
74561 END LOOP;
74562 l_result := XLA_AE_LINES_PKG.InsertLines ;
74563 end loop;
74564 close line_cur;
74565
74566
74567 --
74568 -- insert headers into xla_ae_headers_gt table
74569 --
74570 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
74571
74572 -- insert into errors table here.
74573
74574 END LOOP;
74575
74576 --
74577 -- 4865292
74578 --
74579 -- Compare g_hdr_extract_count with event count in
74580 -- CreateHeadersAndLines.
74581 --
74582 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
74583
74584 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74585 trace (p_msg => '# rows extracted from header extract objects '
74586 || ' (running total): '
74587 || g_hdr_extract_count
74588 ,p_level => C_LEVEL_STATEMENT
74589 ,p_module => l_log_module);
74590 END IF;
74591
74592 CLOSE header_cur;
74593 --
74594
74595 --
74596 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74597 trace
74598 (p_msg => 'END of EventClass_123'
74599 ,p_level => C_LEVEL_PROCEDURE
74600 ,p_module => l_log_module);
74601 END IF;
74602 --
74603 RETURN l_result;
74604 EXCEPTION
74605 WHEN xla_exceptions_pkg.application_exception THEN
74606
74607 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
74608
74609
74610 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
74611
74612 RAISE;
74613 WHEN OTHERS THEN
74614 xla_exceptions_pkg.raise_message
74615 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_123');
74616 END EventClass_123;
74617 --
74618
74619 ---------------------------------------
74620 --
74621 -- PRIVATE PROCEDURE
74622 -- insert_sources_124
74623 --
74624 ----------------------------------------
74625 --
74626 PROCEDURE insert_sources_124(
74627 p_target_ledger_id IN NUMBER
74628 , p_language IN VARCHAR2
74629 , p_sla_ledger_id IN NUMBER
74630 , p_pad_start_date IN DATE
74631 , p_pad_end_date IN DATE
74632 )
74633 IS
74634
74635 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ALL';
74636 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE';
74637 p_apps_owner VARCHAR2(30);
74638 l_log_module VARCHAR2(240);
74639 BEGIN
74640 IF g_log_enabled THEN
74641 l_log_module := C_DEFAULT_MODULE||'.insert_sources_124';
74642 END IF;
74643 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74644
74645 trace
74646 (p_msg => 'BEGIN of insert_sources_124'
74647 ,p_level => C_LEVEL_PROCEDURE
74648 ,p_module => l_log_module);
74649
74650 END IF;
74651
74652 -- select APPS owner
74653 SELECT oracle_username
74654 INTO p_apps_owner
74655 FROM fnd_oracle_userid
74656 WHERE read_only_flag = 'U'
74657 ;
74658
74659 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74660 trace
74661 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
74662 ' - p_language = '||p_language||
74663 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
74664 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
74665 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
74666 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
74667 ,p_level => C_LEVEL_STATEMENT
74668 ,p_module => l_log_module);
74669 END IF;
74670
74671
74672 --
74673 INSERT INTO xla_diag_sources --hdr2
74674 (
74675 event_id
74676 , ledger_id
74677 , sla_ledger_id
74678 , description_language
74679 , object_name
74680 , object_type_code
74681 , line_number
74682 , source_application_id
74683 , source_type_code
74684 , source_code
74685 , source_value
74686 , source_meaning
74687 , created_by
74688 , creation_date
74689 , last_update_date
74690 , last_updated_by
74691 , last_update_login
74692 , program_update_date
74693 , program_application_id
74694 , program_id
74695 , request_id
74696 )
74697 SELECT
74698 event_id
74699 , p_target_ledger_id
74700 , p_sla_ledger_id
74701 , p_language
74702 , object_name
74706 , source_type_code
74703 , object_type_code
74704 , line_number
74705 , source_application_id
74707 , source_code
74708 , SUBSTR(source_value ,1,1996)
74709 , SUBSTR(source_meaning ,1,200)
74710 , xla_environment_pkg.g_Usr_Id
74711 , TRUNC(SYSDATE)
74712 , TRUNC(SYSDATE)
74713 , xla_environment_pkg.g_Usr_Id
74714 , xla_environment_pkg.g_Login_Id
74715 , TRUNC(SYSDATE)
74716 , xla_environment_pkg.g_Prog_Appl_Id
74717 , xla_environment_pkg.g_Prog_Id
74718 , xla_environment_pkg.g_Req_Id
74719 FROM (
74720 SELECT xet.event_id event_id
74721 , 0 line_number
74722 , CASE r
74723 WHEN 1 THEN 'PA_XLA_REVENUE_HEADERS_V'
74724 WHEN 2 THEN 'PA_XLA_REVENUE_HEADERS_V'
74725 WHEN 3 THEN 'PA_XLA_REVENUE_HEADERS_V'
74726 WHEN 4 THEN 'PA_XLA_REVENUE_HEADERS_V'
74727 WHEN 5 THEN 'PA_XLA_REVENUE_HEADERS_V'
74728
74729 ELSE null
74730 END object_name
74731 , CASE r
74732 WHEN 1 THEN 'HEADER'
74733 WHEN 2 THEN 'HEADER'
74734 WHEN 3 THEN 'HEADER'
74735 WHEN 4 THEN 'HEADER'
74736 WHEN 5 THEN 'HEADER'
74737
74738 ELSE null
74739 END object_type_code
74740 , CASE r
74741 WHEN 1 THEN '275'
74742 WHEN 2 THEN '275'
74743 WHEN 3 THEN '275'
74744 WHEN 4 THEN '275'
74745 WHEN 5 THEN '275'
74746
74747 ELSE null
74748 END source_application_id
74749 , 'S' source_type_code
74750 , CASE r
74751 WHEN 1 THEN 'CREDITING_REVENUE_FLAG'
74752 WHEN 2 THEN 'EVENT_ID'
74753 WHEN 3 THEN 'GL_DATE'
74754 WHEN 4 THEN 'UER_CCID'
74755 WHEN 5 THEN 'UBR_CCID'
74756
74757 ELSE null
74758 END source_code
74759 , CASE r
74760 WHEN 1 THEN TO_CHAR(h2.CREDITING_REVENUE_FLAG)
74761 WHEN 2 THEN TO_CHAR(h2.EVENT_ID)
74762 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
74763 WHEN 4 THEN TO_CHAR(h2.UER_CCID)
74764 WHEN 5 THEN TO_CHAR(h2.UBR_CCID)
74765
74766 ELSE null
74767 END source_value
74768 , CASE r
74769 WHEN 1 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
74770 103371
74771 ,TO_CHAR(h2.CREDITING_REVENUE_FLAG)
74772 ,'CREDITING_REVENUE_FLAG'
74773 ,'S'
74774 ,275)
74775
74776 ELSE null
74777 END source_meaning
74778 FROM xla_events_gt xet
74779 , PA_XLA_REVENUE_HEADERS_V h2
74780 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
74781 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
74782 AND xet.event_class_code = C_EVENT_CLASS_CODE
74783 AND h2.event_id = xet.event_id
74784
74785 )
74786 ;
74787 --
74788 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74789
74790 trace
74791 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
74792 ,p_level => C_LEVEL_STATEMENT
74793 ,p_module => l_log_module);
74794
74795 END IF;
74796 --
74797
74798
74799
74800 --
74801 INSERT INTO xla_diag_sources --line2
74802 (
74803 event_id
74804 , ledger_id
74805 , sla_ledger_id
74806 , description_language
74807 , object_name
74808 , object_type_code
74809 , line_number
74810 , source_application_id
74811 , source_type_code
74812 , source_code
74813 , source_value
74814 , source_meaning
74815 , created_by
74816 , creation_date
74817 , last_update_date
74818 , last_updated_by
74819 , last_update_login
74820 , program_update_date
74821 , program_application_id
74822 , program_id
74823 , request_id
74824 )
74825 SELECT event_id
74826 , p_target_ledger_id
74827 , p_sla_ledger_id
74828 , p_language
74829 , object_name
74830 , object_type_code
74831 , line_number
74832 , source_application_id
74833 , source_type_code
74834 , source_code
74835 , SUBSTR(source_value,1,1996)
74836 , SUBSTR(source_meaning ,1,200)
74837 , xla_environment_pkg.g_Usr_Id
74838 , TRUNC(SYSDATE)
74839 , TRUNC(SYSDATE)
74840 , xla_environment_pkg.g_Usr_Id
74841 , xla_environment_pkg.g_Login_Id
74842 , TRUNC(SYSDATE)
74843 , xla_environment_pkg.g_Prog_Appl_Id
74844 , xla_environment_pkg.g_Prog_Id
74845 , xla_environment_pkg.g_Req_Id
74846 FROM (
74847 SELECT xet.event_id event_id
74848 , l3.line_number line_number
74849 , CASE r
74850 WHEN 1 THEN 'PA_XLA_REVENUE_LINES_V'
74851 WHEN 2 THEN 'PA_XLA_REVENUE_LINES_V'
74852 WHEN 3 THEN 'PA_XLA_REVENUE_LINES_V'
74853 WHEN 4 THEN 'PA_XLA_REVENUE_LINES_V'
74857 WHEN 8 THEN 'PA_XLA_REVENUE_LINES_V'
74854 WHEN 5 THEN 'PA_XLA_REVENUE_LINES_V'
74855 WHEN 6 THEN 'PA_XLA_REVENUE_LINES_V'
74856 WHEN 7 THEN 'PA_XLA_REVENUE_LINES_V'
74858 WHEN 9 THEN 'PA_XLA_REVENUE_LINES_V'
74859 WHEN 10 THEN 'PA_XLA_REVENUE_LINES_V'
74860 WHEN 11 THEN 'PA_XLA_REVENUE_LINES_V'
74861 WHEN 12 THEN 'PA_XLA_REVENUE_LINES_V'
74862 WHEN 13 THEN 'PA_XLA_REVENUE_LINES_V'
74863 WHEN 14 THEN 'PA_XLA_REVENUE_LINES_V'
74864 WHEN 15 THEN 'PA_XLA_REVENUE_LINES_V'
74865 WHEN 16 THEN 'PA_XLA_REVENUE_LINES_V'
74866 WHEN 17 THEN 'PA_XLA_EVENT_TYPE_REF_V'
74867
74868 ELSE null
74869 END object_name
74870 , CASE r
74871 WHEN 1 THEN 'LINE'
74872 WHEN 2 THEN 'LINE'
74873 WHEN 3 THEN 'LINE'
74874 WHEN 4 THEN 'LINE'
74875 WHEN 5 THEN 'LINE'
74876 WHEN 6 THEN 'LINE'
74877 WHEN 7 THEN 'LINE'
74878 WHEN 8 THEN 'LINE'
74879 WHEN 9 THEN 'LINE'
74880 WHEN 10 THEN 'LINE'
74881 WHEN 11 THEN 'LINE'
74882 WHEN 12 THEN 'LINE'
74883 WHEN 13 THEN 'LINE'
74884 WHEN 14 THEN 'LINE'
74885 WHEN 15 THEN 'LINE'
74886 WHEN 16 THEN 'LINE'
74887 WHEN 17 THEN 'LINE'
74888
74889 ELSE null
74890 END object_type_code
74891 , CASE r
74892 WHEN 1 THEN '275'
74893 WHEN 2 THEN '275'
74894 WHEN 3 THEN '275'
74895 WHEN 4 THEN '275'
74896 WHEN 5 THEN '275'
74897 WHEN 6 THEN '275'
74898 WHEN 7 THEN '275'
74899 WHEN 8 THEN '275'
74900 WHEN 9 THEN '275'
74901 WHEN 10 THEN '275'
74902 WHEN 11 THEN '275'
74903 WHEN 12 THEN '275'
74904 WHEN 13 THEN '275'
74905 WHEN 14 THEN '275'
74906 WHEN 15 THEN '275'
74907 WHEN 16 THEN '275'
74908 WHEN 17 THEN '275'
74909
74910 ELSE null
74911 END source_application_id
74912 , 'S' source_type_code
74913 , CASE r
74914 WHEN 1 THEN 'PERDL_CODE_COMBINATION_ID'
74915 WHEN 2 THEN 'PDR_REALIZED_GAINS_CCID'
74916 WHEN 3 THEN 'PDR_REALIZED_LOSSES_CCID'
74917 WHEN 4 THEN 'PRDL_CODE_COMBINATION_ID'
74918 WHEN 5 THEN 'PDR_UBR_CCID'
74919 WHEN 6 THEN 'PDR_UER_CCID'
74920 WHEN 7 THEN 'ENTERED_CURRENCY_CODE'
74921 WHEN 8 THEN 'EXCHANGE_RATE_DATE'
74922 WHEN 9 THEN 'EXCHANGE_RATE'
74923 WHEN 10 THEN 'EXCHANGE_RATE_TYPE'
74924 WHEN 11 THEN 'REVENUE_DISTRIBUTION_TYPE'
74925 WHEN 12 THEN 'SYSTEM_LINKAGE_FUNCTION'
74926 WHEN 13 THEN 'REVENUE_FIRST_DIST_ID'
74927 WHEN 14 THEN 'REVENUE_SECOND_DIST_ID'
74928 WHEN 15 THEN 'ENTERED_AMOUNT'
74929 WHEN 16 THEN 'ACCT_AMOUNT'
74930 WHEN 17 THEN 'REV_EVENT_TYPE_CLASSIFICATION'
74931
74932 ELSE null
74933 END source_code
74934 , CASE r
74935 WHEN 1 THEN TO_CHAR(l3.PERDL_CODE_COMBINATION_ID)
74936 WHEN 2 THEN TO_CHAR(l3.PDR_REALIZED_GAINS_CCID)
74937 WHEN 3 THEN TO_CHAR(l3.PDR_REALIZED_LOSSES_CCID)
74938 WHEN 4 THEN TO_CHAR(l3.PRDL_CODE_COMBINATION_ID)
74939 WHEN 5 THEN TO_CHAR(l3.PDR_UBR_CCID)
74940 WHEN 6 THEN TO_CHAR(l3.PDR_UER_CCID)
74941 WHEN 7 THEN TO_CHAR(l3.ENTERED_CURRENCY_CODE)
74942 WHEN 8 THEN TO_CHAR(l3.EXCHANGE_RATE_DATE)
74943 WHEN 9 THEN TO_CHAR(l3.EXCHANGE_RATE)
74944 WHEN 10 THEN TO_CHAR(l3.EXCHANGE_RATE_TYPE)
74945 WHEN 11 THEN TO_CHAR(l3.REVENUE_DISTRIBUTION_TYPE)
74946 WHEN 12 THEN TO_CHAR(l3.SYSTEM_LINKAGE_FUNCTION)
74947 WHEN 13 THEN TO_CHAR(l3.REVENUE_FIRST_DIST_ID)
74948 WHEN 14 THEN TO_CHAR(l3.REVENUE_SECOND_DIST_ID)
74949 WHEN 15 THEN TO_CHAR(l3.ENTERED_AMOUNT)
74950 WHEN 16 THEN TO_CHAR(l3.ACCT_AMOUNT)
74951 WHEN 17 THEN TO_CHAR(l1.REV_EVENT_TYPE_CLASSIFICATION)
74952
74953 ELSE null
74954 END source_value
74955 , CASE r
74956 WHEN 17 THEN fvl58.meaning
74957
74958 ELSE null
74959 END source_meaning
74960 FROM xla_events_gt xet
74961 , PA_XLA_EVENT_TYPE_REF_V l1
74962 , PA_XLA_REVENUE_LINES_V l3
74963 , fnd_lookup_values fvl58
74964 , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
74965 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
74966 AND xet.event_class_code = C_EVENT_CLASS_CODE
74967 AND l3.event_id = xet.event_id
74968 AND l1.rev_event_type (+) =l3.rev_event_type AND fvl58.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
74969 AND fvl58.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
74970 AND fvl58.view_application_id(+) = 275
74971 AND fvl58.language(+) = USERENV('LANG')
74972
74973 )
74974 ;
74978 trace
74975 --
74976 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74977
74979 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
74980 ,p_level => C_LEVEL_STATEMENT
74981 ,p_module => l_log_module);
74982
74983 END IF;
74984
74985
74986 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74987 trace
74988 (p_msg => 'END of insert_sources_124'
74989 ,p_level => C_LEVEL_PROCEDURE
74990 ,p_module => l_log_module);
74991 END IF;
74992 EXCEPTION
74993 WHEN xla_exceptions_pkg.application_exception THEN
74994 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
74995 trace
74996 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
74997 ,p_level => C_LEVEL_EXCEPTION
74998 ,p_module => l_log_module);
74999 END IF;
75000 RAISE;
75001 WHEN OTHERS THEN
75002 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
75003 trace
75004 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
75005 ,p_level => C_LEVEL_EXCEPTION
75006 ,p_module => l_log_module);
75007 END IF;
75008 xla_exceptions_pkg.raise_message
75009 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_124');
75010 END insert_sources_124;
75011 --
75012
75013 ---------------------------------------
75014 --
75015 -- PRIVATE FUNCTION
75016 -- EventClass_124
75017 --
75018 ----------------------------------------
75019 --
75020 FUNCTION EventClass_124
75021 (p_application_id IN NUMBER
75022 ,p_base_ledger_id IN NUMBER
75023 ,p_target_ledger_id IN NUMBER
75024 ,p_language IN VARCHAR2
75025 ,p_currency_code IN VARCHAR2
75026 ,p_sla_ledger_id IN NUMBER
75027 ,p_pad_start_date IN DATE
75028 ,p_pad_end_date IN DATE
75029 ,p_primary_ledger_id IN NUMBER)
75030 RETURN BOOLEAN IS
75031 --
75032 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ALL';
75033 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE';
75034
75035 l_calculate_acctd_flag VARCHAR2(1) :='N';
75036 l_calculate_g_l_flag VARCHAR2(1) :='N';
75037 --
75038 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75039 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75040 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75041 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75042 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75043 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75044 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75045 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75046 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75047 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75048 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75049 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75050 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75051 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
75052 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75053 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75054 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75055 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
75056 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75057 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75058 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75059 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
75060 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
75061 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
75062
75063 l_event_id NUMBER;
75064 l_previous_event_id NUMBER;
75065 l_first_event_id NUMBER;
75066 l_last_event_id NUMBER;
75067
75068 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
75069 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
75070 --
75071 --
75072 l_result BOOLEAN := TRUE;
75073 l_rows NUMBER := 1000;
75074 l_event_type_name VARCHAR2(80) := 'All';
75075 l_event_class_name VARCHAR2(80) := 'Revenue';
75076 l_description VARCHAR2(4000);
75077 l_transaction_reversal NUMBER;
75078 l_ae_header_id NUMBER;
75079 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
75080 l_log_module VARCHAR2(240);
75081 --
75082 l_acct_reversal_source VARCHAR2(30);
75083 l_trx_reversal_source VARCHAR2(30);
75084
75085 l_continue_with_lines BOOLEAN := TRUE;
75086 --
75087 l_acc_rev_gl_date_source DATE; -- 4262811
75088 --
75089 type t_array_event_id is table of number index by binary_integer;
75090
75091 l_rec_array_event t_rec_array_event;
75092 l_null_rec_array_event t_rec_array_event;
75093 l_array_ae_header_id xla_number_array_type;
75094 l_actual_flag VARCHAR2(1) := NULL;
75095 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
75096 l_balance_type_code VARCHAR2(1) :=NULL;
75097 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
75098
75099 --
75103 TYPE t_array_source_38 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.CREDITING_REVENUE_FLAG%TYPE INDEX BY BINARY_INTEGER;
75100 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
75101 --
75102
75104 TYPE t_array_source_42 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.EVENT_ID%TYPE INDEX BY BINARY_INTEGER;
75105 TYPE t_array_source_88 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
75106 TYPE t_array_source_92 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UER_CCID%TYPE INDEX BY BINARY_INTEGER;
75107 TYPE t_array_source_93 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
75108
75109 TYPE t_array_source_1 IS TABLE OF PA_XLA_REVENUE_LINES_V.PERDL_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
75110 TYPE t_array_source_16 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_REALIZED_GAINS_CCID%TYPE INDEX BY BINARY_INTEGER;
75111 TYPE t_array_source_17 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_REALIZED_LOSSES_CCID%TYPE INDEX BY BINARY_INTEGER;
75112 TYPE t_array_source_18 IS TABLE OF PA_XLA_REVENUE_LINES_V.PRDL_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
75113 TYPE t_array_source_19 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
75114 TYPE t_array_source_20 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_UER_CCID%TYPE INDEX BY BINARY_INTEGER;
75115 TYPE t_array_source_25 IS TABLE OF PA_XLA_REVENUE_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
75116 TYPE t_array_source_27 IS TABLE OF PA_XLA_REVENUE_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
75117 TYPE t_array_source_28 IS TABLE OF PA_XLA_REVENUE_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
75118 TYPE t_array_source_29 IS TABLE OF PA_XLA_REVENUE_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
75119 TYPE t_array_source_36 IS TABLE OF PA_XLA_REVENUE_LINES_V.REVENUE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
75120 TYPE t_array_source_37 IS TABLE OF PA_XLA_REVENUE_LINES_V.SYSTEM_LINKAGE_FUNCTION%TYPE INDEX BY BINARY_INTEGER;
75121 TYPE t_array_source_39 IS TABLE OF PA_XLA_REVENUE_LINES_V.REVENUE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
75122 TYPE t_array_source_40 IS TABLE OF PA_XLA_REVENUE_LINES_V.REVENUE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
75123 TYPE t_array_source_41 IS TABLE OF PA_XLA_REVENUE_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
75124 TYPE t_array_source_43 IS TABLE OF PA_XLA_REVENUE_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
75125 TYPE t_array_source_58 IS TABLE OF PA_XLA_EVENT_TYPE_REF_V.REV_EVENT_TYPE_CLASSIFICATION%TYPE INDEX BY BINARY_INTEGER;
75126
75127 l_array_source_38 t_array_source_38;
75128 l_array_source_42 t_array_source_42;
75129 l_array_source_88 t_array_source_88;
75130 l_array_source_92 t_array_source_92;
75131 l_array_source_93 t_array_source_93;
75132
75133 l_array_source_1 t_array_source_1;
75134 l_array_source_16 t_array_source_16;
75135 l_array_source_17 t_array_source_17;
75136 l_array_source_18 t_array_source_18;
75137 l_array_source_19 t_array_source_19;
75138 l_array_source_20 t_array_source_20;
75139 l_array_source_25 t_array_source_25;
75140 l_array_source_27 t_array_source_27;
75141 l_array_source_28 t_array_source_28;
75142 l_array_source_29 t_array_source_29;
75143 l_array_source_36 t_array_source_36;
75144 l_array_source_37 t_array_source_37;
75145 l_array_source_39 t_array_source_39;
75146 l_array_source_40 t_array_source_40;
75147 l_array_source_41 t_array_source_41;
75148 l_array_source_43 t_array_source_43;
75149 l_array_source_58 t_array_source_58;
75150 l_array_source_58_meaning t_array_lookup_meaning;
75151
75152 --
75153 CURSOR header_cur
75154 IS
75155 SELECT /*+ leading(xet) cardinality(xet,1) */
75156 -- Event Class Code: REVENUE
75157 xet.entity_id
75158 ,xet.legal_entity_id
75159 ,xet.entity_code
75160 ,xet.transaction_number
75161 ,xet.event_id
75162 ,xet.event_class_code
75163 ,xet.event_type_code
75164 ,xet.event_number
75165 ,xet.event_date
75166 ,xet.transaction_date
75167 ,xet.reference_num_1
75168 ,xet.reference_num_2
75169 ,xet.reference_num_3
75170 ,xet.reference_num_4
75171 ,xet.reference_char_1
75172 ,xet.reference_char_2
75173 ,xet.reference_char_3
75174 ,xet.reference_char_4
75175 ,xet.reference_date_1
75176 ,xet.reference_date_2
75177 ,xet.reference_date_3
75178 ,xet.reference_date_4
75179 ,xet.event_created_by
75180 ,xet.budgetary_control_flag
75181 , h2.CREDITING_REVENUE_FLAG source_38
75182 , h2.EVENT_ID source_42
75183 , h2.GL_DATE source_88
75184 , h2.UER_CCID source_92
75185 , h2.UBR_CCID source_93
75186 FROM xla_events_gt xet
75187 , PA_XLA_REVENUE_HEADERS_V h2
75188 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
75189 and xet.event_class_code = C_EVENT_CLASS_CODE
75190 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
75191
75192 ORDER BY event_id
75193 ;
75194
75195
75196 --
75197 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
75198 IS
75199 SELECT /*+ leading(xet) cardinality(xet,1) */
75200 -- Event Class Code: REVENUE
75201 xet.entity_id
75202 ,xet.legal_entity_id
75203 ,xet.entity_code
75204 ,xet.transaction_number
75205 ,xet.event_id
75206 ,xet.event_class_code
75207 ,xet.event_type_code
75208 ,xet.event_number
75209 ,xet.event_date
75210 ,xet.transaction_date
75211 ,xet.reference_num_1
75212 ,xet.reference_num_2
75213 ,xet.reference_num_3
75214 ,xet.reference_num_4
75215 ,xet.reference_char_1
75216 ,xet.reference_char_2
75217 ,xet.reference_char_3
75218 ,xet.reference_char_4
75219 ,xet.reference_date_1
75220 ,xet.reference_date_2
75221 ,xet.reference_date_3
75222 ,xet.reference_date_4
75223 ,xet.event_created_by
75227 , l3.PDR_REALIZED_GAINS_CCID source_16
75224 ,xet.budgetary_control_flag
75225 , l3.LINE_NUMBER
75226 , l3.PERDL_CODE_COMBINATION_ID source_1
75228 , l3.PDR_REALIZED_LOSSES_CCID source_17
75229 , l3.PRDL_CODE_COMBINATION_ID source_18
75230 , l3.PDR_UBR_CCID source_19
75231 , l3.PDR_UER_CCID source_20
75232 , l3.ENTERED_CURRENCY_CODE source_25
75233 , l3.EXCHANGE_RATE_DATE source_27
75234 , l3.EXCHANGE_RATE source_28
75235 , l3.EXCHANGE_RATE_TYPE source_29
75236 , l3.REVENUE_DISTRIBUTION_TYPE source_36
75237 , l3.SYSTEM_LINKAGE_FUNCTION source_37
75238 , l3.REVENUE_FIRST_DIST_ID source_39
75239 , l3.REVENUE_SECOND_DIST_ID source_40
75240 , l3.ENTERED_AMOUNT source_41
75241 , l3.ACCT_AMOUNT source_43
75242 , l1.REV_EVENT_TYPE_CLASSIFICATION source_58
75243 , fvl58.meaning source_58_meaning
75244 FROM xla_events_gt xet
75245 , PA_XLA_EVENT_TYPE_REF_V l1
75246 , PA_XLA_REVENUE_LINES_V l3
75247 , fnd_lookup_values fvl58
75248 WHERE xet.event_id between x_first_event_id and x_last_event_id
75249 and xet.event_date between p_pad_start_date and p_pad_end_date
75250 and xet.event_class_code = C_EVENT_CLASS_CODE
75251 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
75252 AND l1.REV_EVENT_TYPE (+) =l3.REV_EVENT_TYPE AND fvl58.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
75253 AND fvl58.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
75254 AND fvl58.view_application_id(+) = 275
75255 AND fvl58.language(+) = USERENV('LANG')
75256 ;
75257
75258 --
75259 BEGIN
75260 IF g_log_enabled THEN
75261 l_log_module := C_DEFAULT_MODULE||'.EventClass_124';
75262 END IF;
75263 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75264 trace
75265 (p_msg => 'BEGIN of EventClass_124'
75266 ,p_level => C_LEVEL_PROCEDURE
75267 ,p_module => l_log_module);
75268 END IF;
75269
75270 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75271 trace
75272 (p_msg => 'p_application_id = '||p_application_id||
75273 ' - p_base_ledger_id = '||p_base_ledger_id||
75274 ' - p_target_ledger_id = '||p_target_ledger_id||
75275 ' - p_language = '||p_language||
75276 ' - p_currency_code = '||p_currency_code||
75277 ' - p_sla_ledger_id = '||p_sla_ledger_id
75278 ,p_level => C_LEVEL_STATEMENT
75279 ,p_module => l_log_module);
75280 END IF;
75281 --
75282 -- initialze arrays
75283 --
75284 g_array_event.DELETE;
75285 l_rec_array_event := l_null_rec_array_event;
75286 --
75287 --------------------------------------
75288 -- 4262811 Initialze MPA Line Number
75289 --------------------------------------
75290 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
75291
75292 --
75293
75294 --
75295 OPEN header_cur;
75296 --
75297 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75298 trace
75299 (p_msg => 'SQL - FETCH header_cur'
75300 ,p_level => C_LEVEL_STATEMENT
75301 ,p_module => l_log_module);
75302 END IF;
75303 --
75304 LOOP
75305 FETCH header_cur BULK COLLECT INTO
75306 l_array_entity_id
75307 , l_array_legal_entity_id
75308 , l_array_entity_code
75309 , l_array_transaction_num
75310 , l_array_event_id
75311 , l_array_class_code
75312 , l_array_event_type
75313 , l_array_event_number
75314 , l_array_event_date
75315 , l_array_transaction_date
75316 , l_array_reference_num_1
75317 , l_array_reference_num_2
75318 , l_array_reference_num_3
75319 , l_array_reference_num_4
75320 , l_array_reference_char_1
75321 , l_array_reference_char_2
75322 , l_array_reference_char_3
75323 , l_array_reference_char_4
75324 , l_array_reference_date_1
75325 , l_array_reference_date_2
75326 , l_array_reference_date_3
75327 , l_array_reference_date_4
75328 , l_array_event_created_by
75329 , l_array_budgetary_control_flag
75330 , l_array_source_38
75331 , l_array_source_42
75332 , l_array_source_88
75333 , l_array_source_92
75334 , l_array_source_93
75335 LIMIT l_rows;
75336 --
75337 IF (C_LEVEL_EVENT >= g_log_level) THEN
75338 trace
75339 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
75340 ,p_level => C_LEVEL_EVENT
75341 ,p_module => l_log_module);
75342 END IF;
75343 --
75344 EXIT WHEN l_array_entity_id.COUNT = 0;
75345
75346 -- initialize arrays
75347 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
75348 XLA_AE_LINES_PKG.g_rec_lines := NULL;
75349
75350 --
75351 -- Bug 4458708
75352 --
75353 XLA_AE_LINES_PKG.g_LineNumber := 0;
75354
75355
75356 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
75357 g_last_hdr_idx := l_array_event_id.LAST;
75358 --
75359 -- loop for the headers. Each iteration is for each header extract row
75360 -- fetched in header cursor
75361 --
75362 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
75363
75364 --
75365 -- set event info as cache for other routines to refer event attributes
75366 --
75367 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
75368 (p_application_id => p_application_id
75369 ,p_primary_ledger_id => p_primary_ledger_id
75370 ,p_base_ledger_id => p_base_ledger_id
75371 ,p_target_ledger_id => p_target_ledger_id
75372 ,p_entity_id => l_array_entity_id(hdr_idx)
75373 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
75377 ,p_event_class_code => l_array_class_code(hdr_idx)
75374 ,p_entity_code => l_array_entity_code(hdr_idx)
75375 ,p_transaction_num => l_array_transaction_num(hdr_idx)
75376 ,p_event_id => l_array_event_id(hdr_idx)
75378 ,p_event_type_code => l_array_event_type(hdr_idx)
75379 ,p_event_number => l_array_event_number(hdr_idx)
75380 ,p_event_date => l_array_event_date(hdr_idx)
75381 ,p_transaction_date => l_array_transaction_date(hdr_idx)
75382 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
75383 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
75384 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
75385 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
75386 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
75387 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
75388 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
75389 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
75390 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
75391 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
75392 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
75393 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
75394 ,p_event_created_by => l_array_event_created_by(hdr_idx)
75395 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
75396
75397 --
75398 -- set the status of entry to C_VALID (0)
75399 --
75400 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
75401
75402 --
75403 -- initialize a row for ae header
75404 --
75405 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
75406
75407 l_event_id := l_array_event_id(hdr_idx);
75408
75409 --
75410 -- storing the hdr_idx for event. May be used by line cursor.
75411 --
75412 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
75413
75414 --
75415 -- store sources from header extract. This can be improved to
75416 -- store only those sources from header extract that may be used in lines
75417 --
75418
75419 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
75420 g_array_event(l_event_id).array_value_num('source_42') := l_array_source_42(hdr_idx);
75421 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
75422 g_array_event(l_event_id).array_value_num('source_92') := l_array_source_92(hdr_idx);
75423 g_array_event(l_event_id).array_value_num('source_93') := l_array_source_93(hdr_idx);
75424
75425 --
75426 -- initilaize the status of ae headers for diffrent balance types
75427 -- the status is initialised to C_NOT_CREATED (2)
75428 --
75429 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
75430 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
75431 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
75432
75433 --
75434 -- call api to validate and store accounting attributes for header
75435 --
75436
75437 ------------------------------------------------------------
75438 -- Accrual Reversal : to get date for Standard Source (NONE)
75439 ------------------------------------------------------------
75440 l_acc_rev_gl_date_source := NULL;
75441
75442 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
75443 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
75444
75445
75446 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
75447
75448 XLA_AE_HEADER_PKG.SetJeCategoryName;
75449
75450 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
75451 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
75452 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
75453 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
75454 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
75455
75456
75457 -- No header level analytical criteria
75458
75459 --
75460 --accounting attribute enhancement, bug 3612931
75461 --
75462 l_trx_reversal_source := SUBSTR(NULL, 1,30);
75463
75464 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
75465 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
75466
75467 xla_accounting_err_pkg.build_message
75468 (p_appli_s_name => 'XLA'
75469 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
75470 ,p_token_1 => 'ACCT_ATTR_NAME'
75471 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
75472 ,p_token_2 => 'PRODUCT_NAME'
75473 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
75474 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
75475 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75476 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
75477
75478 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
75479 --
75480 -- following sets the accounting attributes needed to reverse
75481 -- accounting for a distributeion
75482 --
75483 xla_ae_lines_pkg.SetTrxReversalAttrs
75484 (p_event_id => l_event_id
75485 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
75486 ,p_trx_reversal_source => l_trx_reversal_source);
75487
75488 END IF;
75489
75490
75491 ----------------------------------------------------------------
75495 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
75492 -- 4262811 - update the header statuses to invalid in need be
75493 ----------------------------------------------------------------
75494 --
75496
75497
75498 -----------------------------------------------
75499 -- No accrual reversal for the event class/type
75500 -----------------------------------------------
75501 ----------------------------------------------------------------
75502
75503 --
75504 -- this ends the header loop iteration for one bulk fetch
75505 --
75506 END LOOP;
75507
75508 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
75509 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
75510
75511 --
75512 -- insert dummy rows into lines gt table that were created due to
75513 -- transaction reversals
75514 --
75515 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
75516 l_result := XLA_AE_LINES_PKG.InsertLines;
75517 END IF;
75518
75519 --
75520 -- reset the temp_line_num for each set of events fetched from header
75521 -- cursor rather than doing it for each new event in line cursor
75522 -- Bug 3939231
75523 --
75524 xla_ae_lines_pkg.g_temp_line_num := 0;
75525
75526
75527
75528 --
75529 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
75530 --
75531 --
75532 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75533
75534 trace
75535 (p_msg => 'SQL - FETCH line_cur'
75536 ,p_level => C_LEVEL_STATEMENT
75537 ,p_module => l_log_module);
75538
75539 END IF;
75540 --
75541 --
75542 LOOP
75543 --
75544 FETCH line_cur BULK COLLECT INTO
75545 l_array_entity_id
75546 , l_array_legal_entity_id
75547 , l_array_entity_code
75548 , l_array_transaction_num
75549 , l_array_event_id
75550 , l_array_class_code
75551 , l_array_event_type
75552 , l_array_event_number
75553 , l_array_event_date
75554 , l_array_transaction_date
75555 , l_array_reference_num_1
75556 , l_array_reference_num_2
75557 , l_array_reference_num_3
75558 , l_array_reference_num_4
75559 , l_array_reference_char_1
75560 , l_array_reference_char_2
75561 , l_array_reference_char_3
75562 , l_array_reference_char_4
75563 , l_array_reference_date_1
75564 , l_array_reference_date_2
75565 , l_array_reference_date_3
75566 , l_array_reference_date_4
75567 , l_array_event_created_by
75568 , l_array_budgetary_control_flag
75569 , l_array_extract_line_num
75570 , l_array_source_1
75571 , l_array_source_16
75572 , l_array_source_17
75573 , l_array_source_18
75574 , l_array_source_19
75575 , l_array_source_20
75576 , l_array_source_25
75577 , l_array_source_27
75578 , l_array_source_28
75579 , l_array_source_29
75580 , l_array_source_36
75581 , l_array_source_37
75582 , l_array_source_39
75583 , l_array_source_40
75584 , l_array_source_41
75585 , l_array_source_43
75586 , l_array_source_58
75587 , l_array_source_58_meaning
75588 LIMIT l_rows;
75589
75590 --
75591 IF (C_LEVEL_EVENT >= g_log_level) THEN
75592 trace
75593 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
75594 ,p_level => C_LEVEL_EVENT
75595 ,p_module => l_log_module);
75596 END IF;
75597 --
75598 EXIT WHEN l_array_entity_id.count = 0;
75599
75600 XLA_AE_LINES_PKG.g_rec_lines := null;
75601
75602 --
75603 -- Bug 4458708
75604 --
75605 XLA_AE_LINES_PKG.g_LineNumber := 0;
75606 --
75607 --
75608
75609 FOR Idx IN 1..l_array_event_id.count LOOP
75610 --
75611 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
75612 --
75613 l_event_id := l_array_event_id(idx); -- 5648433
75614
75615 --
75616 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
75617 --
75618
75619 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
75620 (g_array_event(l_event_id).array_value_num('header_index'))
75621 ,'N'
75622 ) <> 'Y'
75623 THEN
75624 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75625 trace
75626 (p_msg => 'Trancaction revesal option is not Y '
75627 ,p_level => C_LEVEL_STATEMENT
75628 ,p_module => l_log_module);
75629 END IF;
75630
75631 --
75632 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
75633 --
75634 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
75635 --
75636 -- set event info as cache for other routines to refer event attributes
75637 --
75638
75639 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
75640 l_previous_event_id := l_event_id;
75641
75642 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
75643 (p_application_id => p_application_id
75644 ,p_primary_ledger_id => p_primary_ledger_id
75645 ,p_base_ledger_id => p_base_ledger_id
75646 ,p_target_ledger_id => p_target_ledger_id
75647 ,p_entity_id => l_array_entity_id(Idx)
75648 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
75649 ,p_entity_code => l_array_entity_code(Idx)
75650 ,p_transaction_num => l_array_transaction_num(Idx)
75651 ,p_event_id => l_array_event_id(Idx)
75655 ,p_event_date => l_array_event_date(Idx)
75652 ,p_event_class_code => l_array_class_code(Idx)
75653 ,p_event_type_code => l_array_event_type(Idx)
75654 ,p_event_number => l_array_event_number(Idx)
75656 ,p_transaction_date => l_array_transaction_date(Idx)
75657 ,p_reference_num_1 => l_array_reference_num_1(Idx)
75658 ,p_reference_num_2 => l_array_reference_num_2(Idx)
75659 ,p_reference_num_3 => l_array_reference_num_3(Idx)
75660 ,p_reference_num_4 => l_array_reference_num_4(Idx)
75661 ,p_reference_char_1 => l_array_reference_char_1(Idx)
75662 ,p_reference_char_2 => l_array_reference_char_2(Idx)
75663 ,p_reference_char_3 => l_array_reference_char_3(Idx)
75664 ,p_reference_char_4 => l_array_reference_char_4(Idx)
75665 ,p_reference_date_1 => l_array_reference_date_1(Idx)
75666 ,p_reference_date_2 => l_array_reference_date_2(Idx)
75667 ,p_reference_date_3 => l_array_reference_date_3(Idx)
75668 ,p_reference_date_4 => l_array_reference_date_4(Idx)
75669 ,p_event_created_by => l_array_event_created_by(Idx)
75670 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
75671 --
75672 END IF;
75673
75674
75675
75676 --
75677 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
75678
75679 l_acct_reversal_source := SUBSTR(NULL, 1,30);
75680
75681 IF l_continue_with_lines THEN
75682 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
75683 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
75684
75685 xla_accounting_err_pkg.build_message
75686 (p_appli_s_name => 'XLA'
75687 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
75688 ,p_token_1 => 'LINE_NUMBER'
75689 ,p_value_1 => l_array_extract_line_num(Idx)
75690 ,p_token_2 => 'PRODUCT_NAME'
75691 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
75692 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
75693 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75694 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
75695
75696 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
75697 --
75698 -- following sets the accounting attributes needed to reverse
75699 -- accounting for a distributeion
75700 --
75701
75702 --
75703 -- 5217187
75704 --
75705 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
75706 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
75707 g_array_event(l_event_id).array_value_num('header_index'));
75708 --
75709 --
75710
75711 -- No reversal code generated
75712
75713 xla_ae_lines_pkg.SetAcctReversalAttrs
75714 (p_event_id => l_event_id
75715 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
75716 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75717 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
75718 END IF;
75719
75720 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
75721 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
75722
75723 --
75724 AcctLineType_24 (
75725 p_application_id => p_application_id
75726 ,p_event_id => l_event_id
75727 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75728 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75729 ,p_actual_flag => l_actual_flag
75730 ,p_balance_type_code => l_balance_type_code
75731 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75732
75733 , p_source_18 => l_array_source_18(Idx)
75734 , p_source_25 => l_array_source_25(Idx)
75735 , p_source_27 => l_array_source_27(Idx)
75736 , p_source_28 => l_array_source_28(Idx)
75737 , p_source_29 => l_array_source_29(Idx)
75738 , p_source_36 => l_array_source_36(Idx)
75739 , p_source_37 => l_array_source_37(Idx)
75740 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75741 , p_source_39 => l_array_source_39(Idx)
75742 , p_source_40 => l_array_source_40(Idx)
75743 , p_source_41 => l_array_source_41(Idx)
75744 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75745 , p_source_43 => l_array_source_43(Idx)
75746 );
75747 If(l_balance_type_code = 'A') THEN
75748 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75749 END IF;
75750
75751 --
75752
75753
75754 --
75755 AcctLineType_29 (
75756 p_application_id => p_application_id
75757 ,p_event_id => l_event_id
75758 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75759 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75760 ,p_actual_flag => l_actual_flag
75761 ,p_balance_type_code => l_balance_type_code
75762 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75763
75764 , p_source_18 => l_array_source_18(Idx)
75765 , p_source_25 => l_array_source_25(Idx)
75766 , p_source_27 => l_array_source_27(Idx)
75767 , p_source_28 => l_array_source_28(Idx)
75768 , p_source_29 => l_array_source_29(Idx)
75769 , p_source_36 => l_array_source_36(Idx)
75770 , p_source_37 => l_array_source_37(Idx)
75771 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75772 , p_source_39 => l_array_source_39(Idx)
75773 , p_source_40 => l_array_source_40(Idx)
75774 , p_source_41 => l_array_source_41(Idx)
75775 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75776 , p_source_43 => l_array_source_43(Idx)
75777 );
75778 If(l_balance_type_code = 'A') THEN
75782 --
75779 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75780 END IF;
75781
75783
75784
75785 --
75786 AcctLineType_30 (
75787 p_application_id => p_application_id
75788 ,p_event_id => l_event_id
75789 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75790 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75791 ,p_actual_flag => l_actual_flag
75792 ,p_balance_type_code => l_balance_type_code
75793 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75794
75795 , p_source_1 => l_array_source_1(Idx)
75796 , p_source_25 => l_array_source_25(Idx)
75797 , p_source_27 => l_array_source_27(Idx)
75798 , p_source_28 => l_array_source_28(Idx)
75799 , p_source_29 => l_array_source_29(Idx)
75800 , p_source_36 => l_array_source_36(Idx)
75801 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75802 , p_source_39 => l_array_source_39(Idx)
75803 , p_source_40 => l_array_source_40(Idx)
75804 , p_source_41 => l_array_source_41(Idx)
75805 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75806 , p_source_43 => l_array_source_43(Idx)
75807 , p_source_58 => l_array_source_58(Idx)
75808 , p_source_58_meaning => l_array_source_58_meaning(Idx)
75809 );
75810 If(l_balance_type_code = 'A') THEN
75811 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75812 END IF;
75813
75814 --
75815
75816
75817 --
75818 AcctLineType_32 (
75819 p_application_id => p_application_id
75820 ,p_event_id => l_event_id
75821 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75822 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75823 ,p_actual_flag => l_actual_flag
75824 ,p_balance_type_code => l_balance_type_code
75825 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75826
75827 , p_source_1 => l_array_source_1(Idx)
75828 , p_source_25 => l_array_source_25(Idx)
75829 , p_source_27 => l_array_source_27(Idx)
75830 , p_source_28 => l_array_source_28(Idx)
75831 , p_source_29 => l_array_source_29(Idx)
75832 , p_source_36 => l_array_source_36(Idx)
75833 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75834 , p_source_39 => l_array_source_39(Idx)
75835 , p_source_40 => l_array_source_40(Idx)
75836 , p_source_41 => l_array_source_41(Idx)
75837 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75838 , p_source_43 => l_array_source_43(Idx)
75839 , p_source_58 => l_array_source_58(Idx)
75840 , p_source_58_meaning => l_array_source_58_meaning(Idx)
75841 );
75842 If(l_balance_type_code = 'A') THEN
75843 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75844 END IF;
75845
75846 --
75847
75848
75849 --
75850 AcctLineType_34 (
75851 p_application_id => p_application_id
75852 ,p_event_id => l_event_id
75853 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75854 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75855 ,p_actual_flag => l_actual_flag
75856 ,p_balance_type_code => l_balance_type_code
75857 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75858
75859 , p_source_18 => l_array_source_18(Idx)
75860 , p_source_25 => l_array_source_25(Idx)
75861 , p_source_27 => l_array_source_27(Idx)
75862 , p_source_28 => l_array_source_28(Idx)
75863 , p_source_29 => l_array_source_29(Idx)
75864 , p_source_36 => l_array_source_36(Idx)
75865 , p_source_37 => l_array_source_37(Idx)
75866 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75867 , p_source_39 => l_array_source_39(Idx)
75868 , p_source_40 => l_array_source_40(Idx)
75869 , p_source_41 => l_array_source_41(Idx)
75870 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75871 , p_source_43 => l_array_source_43(Idx)
75872 );
75873 If(l_balance_type_code = 'A') THEN
75874 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75875 END IF;
75876
75877 --
75878
75879
75880 --
75881 AcctLineType_35 (
75882 p_application_id => p_application_id
75883 ,p_event_id => l_event_id
75884 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75885 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75886 ,p_actual_flag => l_actual_flag
75887 ,p_balance_type_code => l_balance_type_code
75888 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75889
75890 , p_source_18 => l_array_source_18(Idx)
75891 , p_source_25 => l_array_source_25(Idx)
75892 , p_source_27 => l_array_source_27(Idx)
75893 , p_source_28 => l_array_source_28(Idx)
75894 , p_source_29 => l_array_source_29(Idx)
75895 , p_source_36 => l_array_source_36(Idx)
75896 , p_source_37 => l_array_source_37(Idx)
75897 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75898 , p_source_39 => l_array_source_39(Idx)
75899 , p_source_40 => l_array_source_40(Idx)
75900 , p_source_41 => l_array_source_41(Idx)
75901 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75902 , p_source_43 => l_array_source_43(Idx)
75903 );
75904 If(l_balance_type_code = 'A') THEN
75905 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75906 END IF;
75907
75908 --
75909
75910
75911 --
75912 AcctLineType_36 (
75913 p_application_id => p_application_id
75914 ,p_event_id => l_event_id
75915 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75916 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75917 ,p_actual_flag => l_actual_flag
75918 ,p_balance_type_code => l_balance_type_code
75919 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75920
75921 , p_source_18 => l_array_source_18(Idx)
75922 , p_source_25 => l_array_source_25(Idx)
75923 , p_source_27 => l_array_source_27(Idx)
75924 , p_source_28 => l_array_source_28(Idx)
75925 , p_source_29 => l_array_source_29(Idx)
75926 , p_source_36 => l_array_source_36(Idx)
75927 , p_source_37 => l_array_source_37(Idx)
75928 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75932 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75929 , p_source_39 => l_array_source_39(Idx)
75930 , p_source_40 => l_array_source_40(Idx)
75931 , p_source_41 => l_array_source_41(Idx)
75933 , p_source_43 => l_array_source_43(Idx)
75934 );
75935 If(l_balance_type_code = 'A') THEN
75936 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75937 END IF;
75938
75939 --
75940
75941
75942 --
75943 AcctLineType_65 (
75944 p_application_id => p_application_id
75945 ,p_event_id => l_event_id
75946 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75947 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75948 ,p_actual_flag => l_actual_flag
75949 ,p_balance_type_code => l_balance_type_code
75950 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75951
75952 , p_source_16 => l_array_source_16(Idx)
75953 , p_source_25 => l_array_source_25(Idx)
75954 , p_source_27 => l_array_source_27(Idx)
75955 , p_source_28 => l_array_source_28(Idx)
75956 , p_source_29 => l_array_source_29(Idx)
75957 , p_source_36 => l_array_source_36(Idx)
75958 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75959 , p_source_39 => l_array_source_39(Idx)
75960 , p_source_40 => l_array_source_40(Idx)
75961 , p_source_41 => l_array_source_41(Idx)
75962 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75963 , p_source_43 => l_array_source_43(Idx)
75964 );
75965 If(l_balance_type_code = 'A') THEN
75966 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75967 END IF;
75968
75969 --
75970
75971
75972 --
75973 AcctLineType_67 (
75974 p_application_id => p_application_id
75975 ,p_event_id => l_event_id
75976 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75977 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75978 ,p_actual_flag => l_actual_flag
75979 ,p_balance_type_code => l_balance_type_code
75980 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75981
75982 , p_source_17 => l_array_source_17(Idx)
75983 , p_source_25 => l_array_source_25(Idx)
75984 , p_source_27 => l_array_source_27(Idx)
75985 , p_source_28 => l_array_source_28(Idx)
75986 , p_source_29 => l_array_source_29(Idx)
75987 , p_source_36 => l_array_source_36(Idx)
75988 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75989 , p_source_39 => l_array_source_39(Idx)
75990 , p_source_40 => l_array_source_40(Idx)
75991 , p_source_41 => l_array_source_41(Idx)
75992 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75993 , p_source_43 => l_array_source_43(Idx)
75994 );
75995 If(l_balance_type_code = 'A') THEN
75996 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75997 END IF;
75998
75999 --
76000
76001
76002 --
76003 AcctLineType_82 (
76004 p_application_id => p_application_id
76005 ,p_event_id => l_event_id
76006 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76007 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76008 ,p_actual_flag => l_actual_flag
76009 ,p_balance_type_code => l_balance_type_code
76010 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76011
76012 , p_source_19 => l_array_source_19(Idx)
76013 , p_source_25 => l_array_source_25(Idx)
76014 , p_source_27 => l_array_source_27(Idx)
76015 , p_source_28 => l_array_source_28(Idx)
76016 , p_source_29 => l_array_source_29(Idx)
76017 , p_source_36 => l_array_source_36(Idx)
76018 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
76019 , p_source_39 => l_array_source_39(Idx)
76020 , p_source_40 => l_array_source_40(Idx)
76021 , p_source_41 => l_array_source_41(Idx)
76022 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
76023 , p_source_43 => l_array_source_43(Idx)
76024 );
76025 If(l_balance_type_code = 'A') THEN
76026 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76027 END IF;
76028
76029 --
76030
76031
76032 --
76033 AcctLineType_84 (
76034 p_application_id => p_application_id
76035 ,p_event_id => l_event_id
76036 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76037 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76038 ,p_actual_flag => l_actual_flag
76039 ,p_balance_type_code => l_balance_type_code
76040 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76041
76042 , p_source_20 => l_array_source_20(Idx)
76043 , p_source_25 => l_array_source_25(Idx)
76044 , p_source_27 => l_array_source_27(Idx)
76045 , p_source_28 => l_array_source_28(Idx)
76046 , p_source_29 => l_array_source_29(Idx)
76047 , p_source_36 => l_array_source_36(Idx)
76048 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
76049 , p_source_39 => l_array_source_39(Idx)
76050 , p_source_40 => l_array_source_40(Idx)
76051 , p_source_41 => l_array_source_41(Idx)
76052 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
76053 , p_source_43 => l_array_source_43(Idx)
76054 );
76055 If(l_balance_type_code = 'A') THEN
76056 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76057 END IF;
76058
76059 --
76060
76061
76062 --
76063 AcctLineType_86 (
76064 p_application_id => p_application_id
76065 ,p_event_id => l_event_id
76066 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76067 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76068 ,p_actual_flag => l_actual_flag
76069 ,p_balance_type_code => l_balance_type_code
76070 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76071
76072 , p_source_18 => l_array_source_18(Idx)
76073 , p_source_25 => l_array_source_25(Idx)
76074 , p_source_27 => l_array_source_27(Idx)
76075 , p_source_28 => l_array_source_28(Idx)
76076 , p_source_29 => l_array_source_29(Idx)
76077 , p_source_36 => l_array_source_36(Idx)
76078 , p_source_37 => l_array_source_37(Idx)
76082 , p_source_41 => l_array_source_41(Idx)
76079 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
76080 , p_source_39 => l_array_source_39(Idx)
76081 , p_source_40 => l_array_source_40(Idx)
76083 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
76084 , p_source_43 => l_array_source_43(Idx)
76085 );
76086 If(l_balance_type_code = 'A') THEN
76087 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76088 END IF;
76089
76090 --
76091
76092
76093 --
76094 AcctLineType_87 (
76095 p_application_id => p_application_id
76096 ,p_event_id => l_event_id
76097 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76098 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76099 ,p_actual_flag => l_actual_flag
76100 ,p_balance_type_code => l_balance_type_code
76101 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76102
76103 , p_source_18 => l_array_source_18(Idx)
76104 , p_source_25 => l_array_source_25(Idx)
76105 , p_source_27 => l_array_source_27(Idx)
76106 , p_source_28 => l_array_source_28(Idx)
76107 , p_source_29 => l_array_source_29(Idx)
76108 , p_source_36 => l_array_source_36(Idx)
76109 , p_source_37 => l_array_source_37(Idx)
76110 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
76111 , p_source_39 => l_array_source_39(Idx)
76112 , p_source_40 => l_array_source_40(Idx)
76113 , p_source_41 => l_array_source_41(Idx)
76114 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
76115 , p_source_43 => l_array_source_43(Idx)
76116 );
76117 If(l_balance_type_code = 'A') THEN
76118 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76119 END IF;
76120
76121 --
76122
76123
76124 --
76125 AcctLineType_88 (
76126 p_application_id => p_application_id
76127 ,p_event_id => l_event_id
76128 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76129 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76130 ,p_actual_flag => l_actual_flag
76131 ,p_balance_type_code => l_balance_type_code
76132 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76133
76134 , p_source_18 => l_array_source_18(Idx)
76135 , p_source_25 => l_array_source_25(Idx)
76136 , p_source_27 => l_array_source_27(Idx)
76137 , p_source_28 => l_array_source_28(Idx)
76138 , p_source_29 => l_array_source_29(Idx)
76139 , p_source_36 => l_array_source_36(Idx)
76140 , p_source_37 => l_array_source_37(Idx)
76141 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
76142 , p_source_39 => l_array_source_39(Idx)
76143 , p_source_40 => l_array_source_40(Idx)
76144 , p_source_41 => l_array_source_41(Idx)
76145 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
76146 , p_source_43 => l_array_source_43(Idx)
76147 );
76148 If(l_balance_type_code = 'A') THEN
76149 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76150 END IF;
76151
76152 --
76153
76154 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
76155 -- or secondary ledger that has different currency with primary
76156 -- or alc that is calculated by sla
76157 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
76158 (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'))
76159
76160 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
76161 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
76162 AND (l_actual_flag = 'A')) THEN
76163 XLA_AE_LINES_PKG.CreateGainOrLossLines(
76164 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76165 ,p_application_id => p_application_id
76166 ,p_amb_context_code => 'DEFAULT'
76167 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
76168 ,p_event_class_code => C_EVENT_CLASS_CODE
76169 ,p_event_type_code => C_EVENT_TYPE_CODE
76170
76171 ,p_gain_ccid => g_array_event(l_event_id).array_value_num('source_92')
76172 ,p_loss_ccid => g_array_event(l_event_id).array_value_num('source_93')
76173
76174 ,p_actual_flag => l_actual_flag
76175 ,p_enc_flag => null
76176 ,p_actual_g_l_ref => l_actual_gain_loss_ref
76177 ,p_enc_g_l_ref => null
76178 );
76179 END IF;
76180 END IF;
76181 END IF;
76182
76183 ELSE
76184 --
76185 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
76186 --
76187 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76188 trace
76189 (p_msg => 'Trancaction revesal option is Y'
76190 ,p_level => C_LEVEL_STATEMENT
76191 ,p_module => l_log_module);
76192 END IF;
76193 END IF;
76194
76195 END LOOP;
76196 l_result := XLA_AE_LINES_PKG.InsertLines ;
76197 end loop;
76198 close line_cur;
76199
76200
76201 --
76202 -- insert headers into xla_ae_headers_gt table
76203 --
76204 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
76205
76206 -- insert into errors table here.
76207
76208 END LOOP;
76209
76210 --
76211 -- 4865292
76212 --
76213 -- Compare g_hdr_extract_count with event count in
76214 -- CreateHeadersAndLines.
76215 --
76216 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
76217
76218 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76219 trace (p_msg => '# rows extracted from header extract objects '
76220 || ' (running total): '
76221 || g_hdr_extract_count
76222 ,p_level => C_LEVEL_STATEMENT
76223 ,p_module => l_log_module);
76227 --
76224 END IF;
76225
76226 CLOSE header_cur;
76228
76229 --
76230 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76231 trace
76232 (p_msg => 'END of EventClass_124'
76233 ,p_level => C_LEVEL_PROCEDURE
76234 ,p_module => l_log_module);
76235 END IF;
76236 --
76237 RETURN l_result;
76238 EXCEPTION
76239 WHEN xla_exceptions_pkg.application_exception THEN
76240
76241 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
76242
76243
76244 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
76245
76246 RAISE;
76247 WHEN OTHERS THEN
76248 xla_exceptions_pkg.raise_message
76249 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_124');
76250 END EventClass_124;
76251 --
76252
76253 ---------------------------------------
76254 --
76255 -- PRIVATE PROCEDURE
76256 -- insert_sources_125
76257 --
76258 ----------------------------------------
76259 --
76260 PROCEDURE insert_sources_125(
76261 p_target_ledger_id IN NUMBER
76262 , p_language IN VARCHAR2
76263 , p_sla_ledger_id IN NUMBER
76264 , p_pad_start_date IN DATE
76265 , p_pad_end_date IN DATE
76266 )
76267 IS
76268
76269 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ_ALL';
76270 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ';
76271 p_apps_owner VARCHAR2(30);
76272 l_log_module VARCHAR2(240);
76273 BEGIN
76274 IF g_log_enabled THEN
76275 l_log_module := C_DEFAULT_MODULE||'.insert_sources_125';
76276 END IF;
76277 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76278
76279 trace
76280 (p_msg => 'BEGIN of insert_sources_125'
76281 ,p_level => C_LEVEL_PROCEDURE
76282 ,p_module => l_log_module);
76283
76284 END IF;
76285
76286 -- select APPS owner
76287 SELECT oracle_username
76288 INTO p_apps_owner
76289 FROM fnd_oracle_userid
76290 WHERE read_only_flag = 'U'
76291 ;
76292
76293 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76294 trace
76295 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
76296 ' - p_language = '||p_language||
76297 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
76298 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
76299 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
76300 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
76301 ,p_level => C_LEVEL_STATEMENT
76302 ,p_module => l_log_module);
76303 END IF;
76304
76305
76306 --
76307 INSERT INTO xla_diag_sources --hdr2
76308 (
76309 event_id
76310 , ledger_id
76311 , sla_ledger_id
76312 , description_language
76313 , object_name
76314 , object_type_code
76315 , line_number
76316 , source_application_id
76317 , source_type_code
76318 , source_code
76319 , source_value
76320 , source_meaning
76321 , created_by
76322 , creation_date
76323 , last_update_date
76324 , last_updated_by
76325 , last_update_login
76326 , program_update_date
76327 , program_application_id
76328 , program_id
76329 , request_id
76330 )
76331 SELECT
76332 event_id
76333 , p_target_ledger_id
76334 , p_sla_ledger_id
76335 , p_language
76336 , object_name
76337 , object_type_code
76338 , line_number
76339 , source_application_id
76340 , source_type_code
76341 , source_code
76342 , SUBSTR(source_value ,1,1996)
76343 , SUBSTR(source_meaning ,1,200)
76344 , xla_environment_pkg.g_Usr_Id
76345 , TRUNC(SYSDATE)
76346 , TRUNC(SYSDATE)
76347 , xla_environment_pkg.g_Usr_Id
76348 , xla_environment_pkg.g_Login_Id
76349 , TRUNC(SYSDATE)
76350 , xla_environment_pkg.g_Prog_Appl_Id
76351 , xla_environment_pkg.g_Prog_Id
76352 , xla_environment_pkg.g_Req_Id
76353 FROM (
76354 SELECT xet.event_id event_id
76355 , 0 line_number
76356 , CASE r
76357 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
76358 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
76359 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
76360
76361 ELSE null
76362 END object_name
76363 , CASE r
76364 WHEN 1 THEN 'HEADER'
76365 WHEN 2 THEN 'HEADER'
76366 WHEN 3 THEN 'HEADER'
76367
76368 ELSE null
76369 END object_type_code
76370 , CASE r
76371 WHEN 1 THEN '275'
76372 WHEN 2 THEN '275'
76373 WHEN 3 THEN '275'
76374
76375 ELSE null
76376 END source_application_id
76377 , 'S' source_type_code
76378 , CASE r
76379 WHEN 1 THEN 'EXCHANGE_RATE_VARIANCE_FLAG'
76380 WHEN 2 THEN 'EXPENDITURE_ITEM_ID'
76381 WHEN 3 THEN 'GL_DATE'
76382
76383 ELSE null
76384 END source_code
76385 , CASE r
76389
76386 WHEN 1 THEN TO_CHAR(h2.EXCHANGE_RATE_VARIANCE_FLAG)
76387 WHEN 2 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
76388 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
76390 ELSE null
76391 END source_value
76392 , CASE r
76393 WHEN 1 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
76394 103371
76395 ,TO_CHAR(h2.EXCHANGE_RATE_VARIANCE_FLAG)
76396 ,'EXCHANGE_RATE_VARIANCE_FLAG'
76397 ,'S'
76398 ,275)
76399
76400 ELSE null
76401 END source_meaning
76402 FROM xla_events_gt xet
76403 , PA_XLA_EXP_HEADER_V h2
76404 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
76405 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
76406 AND xet.event_class_code = C_EVENT_CLASS_CODE
76407 AND h2.event_id = xet.event_id
76408
76409 )
76410 ;
76411 --
76412 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76413
76414 trace
76415 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
76416 ,p_level => C_LEVEL_STATEMENT
76417 ,p_module => l_log_module);
76418
76419 END IF;
76420 --
76421
76422
76423
76424 --
76425 INSERT INTO xla_diag_sources --line2
76426 (
76427 event_id
76428 , ledger_id
76429 , sla_ledger_id
76430 , description_language
76431 , object_name
76432 , object_type_code
76433 , line_number
76434 , source_application_id
76435 , source_type_code
76436 , source_code
76437 , source_value
76438 , source_meaning
76439 , created_by
76440 , creation_date
76441 , last_update_date
76442 , last_updated_by
76443 , last_update_login
76444 , program_update_date
76445 , program_application_id
76446 , program_id
76447 , request_id
76448 )
76449 SELECT event_id
76450 , p_target_ledger_id
76451 , p_sla_ledger_id
76452 , p_language
76453 , object_name
76454 , object_type_code
76455 , line_number
76456 , source_application_id
76457 , source_type_code
76458 , source_code
76459 , SUBSTR(source_value,1,1996)
76460 , SUBSTR(source_meaning ,1,200)
76461 , xla_environment_pkg.g_Usr_Id
76462 , TRUNC(SYSDATE)
76463 , TRUNC(SYSDATE)
76464 , xla_environment_pkg.g_Usr_Id
76465 , xla_environment_pkg.g_Login_Id
76466 , TRUNC(SYSDATE)
76467 , xla_environment_pkg.g_Prog_Appl_Id
76468 , xla_environment_pkg.g_Prog_Id
76469 , xla_environment_pkg.g_Req_Id
76470 FROM (
76471 SELECT xet.event_id event_id
76472 , l1.line_number line_number
76473 , CASE r
76474 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
76475 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
76476 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
76477 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
76478 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
76479 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
76480 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
76481 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
76482 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
76483 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
76484 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
76485 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
76486 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
76487 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
76488 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
76489 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
76490 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
76491 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
76492
76493 ELSE null
76494 END object_name
76495 , CASE r
76496 WHEN 1 THEN 'LINE'
76497 WHEN 2 THEN 'LINE'
76498 WHEN 3 THEN 'LINE'
76499 WHEN 4 THEN 'LINE'
76500 WHEN 5 THEN 'LINE'
76501 WHEN 6 THEN 'LINE'
76502 WHEN 7 THEN 'LINE'
76503 WHEN 8 THEN 'LINE'
76504 WHEN 9 THEN 'LINE'
76505 WHEN 10 THEN 'LINE'
76506 WHEN 11 THEN 'LINE'
76507 WHEN 12 THEN 'LINE'
76508 WHEN 13 THEN 'LINE'
76509 WHEN 14 THEN 'LINE'
76510 WHEN 15 THEN 'LINE'
76511 WHEN 16 THEN 'LINE'
76512 WHEN 17 THEN 'LINE'
76513 WHEN 18 THEN 'LINE'
76514
76515 ELSE null
76516 END object_type_code
76517 , CASE r
76518 WHEN 1 THEN '275'
76519 WHEN 2 THEN '275'
76520 WHEN 3 THEN '275'
76521 WHEN 4 THEN '275'
76522 WHEN 5 THEN '275'
76523 WHEN 6 THEN '275'
76524 WHEN 7 THEN '275'
76525 WHEN 8 THEN '275'
76526 WHEN 9 THEN '275'
76527 WHEN 10 THEN '275'
76528 WHEN 11 THEN '275'
76529 WHEN 12 THEN '275'
76530 WHEN 13 THEN '275'
76531 WHEN 14 THEN '275'
76532 WHEN 15 THEN '275'
76533 WHEN 16 THEN '275'
76537 ELSE null
76534 WHEN 17 THEN '275'
76535 WHEN 18 THEN '275'
76536
76538 END source_application_id
76539 , 'S' source_type_code
76540 , CASE r
76541 WHEN 1 THEN 'COST_CCID'
76542 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
76543 WHEN 3 THEN 'ADJ_COST_CCID'
76544 WHEN 4 THEN 'COST_CLEARING_CCID'
76545 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
76546 WHEN 6 THEN 'REVERSING_LINE_FLAG'
76547 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
76548 WHEN 8 THEN 'ENTERED_RAW_COST'
76549 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
76550 WHEN 10 THEN 'ACCT_RAW_COST'
76551 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
76552 WHEN 12 THEN 'EXCHANGE_RATE'
76553 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
76554 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
76555 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
76556 WHEN 16 THEN 'LINE_NUMBER'
76557 WHEN 17 THEN 'LINE_TYPE'
76558 WHEN 18 THEN 'LINE_NUM_REVERSED'
76559
76560 ELSE null
76561 END source_code
76562 , CASE r
76563 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
76564 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
76565 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
76566 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
76567 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
76568 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
76569 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
76570 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
76571 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
76572 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
76573 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
76574 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
76575 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
76576 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
76577 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
76578 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
76579 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
76580 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
76581
76582 ELSE null
76583 END source_value
76584 , CASE r
76585 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
76586 103371
76587 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
76588 ,'ALLOW_OVERRIDE_CCID_FLAG'
76589 ,'S'
76590 ,275)
76591 WHEN 17 THEN fvl34.meaning
76592
76593 ELSE null
76594 END source_meaning
76595 FROM xla_events_gt xet
76596 , PA_XLA_CDL_LINES_V l1
76597 , fnd_lookup_values fvl34
76598 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
76599 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
76600 AND xet.event_class_code = C_EVENT_CLASS_CODE
76601 AND l1.event_id = xet.event_id
76602 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
76603 AND fvl34.lookup_code(+) = l1.LINE_TYPE
76604 AND fvl34.view_application_id(+) = 275
76605 AND fvl34.language(+) = USERENV('LANG')
76606
76607 )
76608 ;
76609 --
76610 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76611
76612 trace
76613 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
76614 ,p_level => C_LEVEL_STATEMENT
76615 ,p_module => l_log_module);
76616
76617 END IF;
76618
76619
76620 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76621 trace
76622 (p_msg => 'END of insert_sources_125'
76623 ,p_level => C_LEVEL_PROCEDURE
76624 ,p_module => l_log_module);
76625 END IF;
76626 EXCEPTION
76627 WHEN xla_exceptions_pkg.application_exception THEN
76628 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
76629 trace
76630 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
76631 ,p_level => C_LEVEL_EXCEPTION
76632 ,p_module => l_log_module);
76633 END IF;
76634 RAISE;
76635 WHEN OTHERS THEN
76636 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
76637 trace
76638 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
76639 ,p_level => C_LEVEL_EXCEPTION
76640 ,p_module => l_log_module);
76641 END IF;
76642 xla_exceptions_pkg.raise_message
76643 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_125');
76644 END insert_sources_125;
76645 --
76646
76647 ---------------------------------------
76648 --
76649 -- PRIVATE FUNCTION
76650 -- EventClass_125
76651 --
76652 ----------------------------------------
76653 --
76654 FUNCTION EventClass_125
76655 (p_application_id IN NUMBER
76656 ,p_base_ledger_id IN NUMBER
76657 ,p_target_ledger_id IN NUMBER
76658 ,p_language IN VARCHAR2
76659 ,p_currency_code IN VARCHAR2
76660 ,p_sla_ledger_id IN NUMBER
76661 ,p_pad_start_date IN DATE
76662 ,p_pad_end_date IN DATE
76663 ,p_primary_ledger_id IN NUMBER)
76664 RETURN BOOLEAN IS
76665 --
76669 l_calculate_acctd_flag VARCHAR2(1) :='N';
76666 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ_ALL';
76667 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ';
76668
76670 l_calculate_g_l_flag VARCHAR2(1) :='N';
76671 --
76672 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76673 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76674 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76675 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76676 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76677 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76678 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76679 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76680 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76681 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76682 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76683 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76684 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76685 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76686 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76687 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76688 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76689 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76690 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76691 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76692 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76693 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76694 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
76695 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76696
76697 l_event_id NUMBER;
76698 l_previous_event_id NUMBER;
76699 l_first_event_id NUMBER;
76700 l_last_event_id NUMBER;
76701
76702 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
76703 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
76704 --
76705 --
76706 l_result BOOLEAN := TRUE;
76707 l_rows NUMBER := 1000;
76708 l_event_type_name VARCHAR2(80) := 'All';
76709 l_event_class_name VARCHAR2(80) := 'Supplier Cost Adjustment';
76710 l_description VARCHAR2(4000);
76711 l_transaction_reversal NUMBER;
76712 l_ae_header_id NUMBER;
76713 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
76714 l_log_module VARCHAR2(240);
76715 --
76716 l_acct_reversal_source VARCHAR2(30);
76717 l_trx_reversal_source VARCHAR2(30);
76718
76719 l_continue_with_lines BOOLEAN := TRUE;
76720 --
76721 l_acc_rev_gl_date_source DATE; -- 4262811
76722 --
76723 type t_array_event_id is table of number index by binary_integer;
76724
76725 l_rec_array_event t_rec_array_event;
76726 l_null_rec_array_event t_rec_array_event;
76727 l_array_ae_header_id xla_number_array_type;
76728 l_actual_flag VARCHAR2(1) := NULL;
76729 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
76730 l_balance_type_code VARCHAR2(1) :=NULL;
76731 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
76732
76733 --
76734 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
76735 --
76736
76737 TYPE t_array_source_21 IS TABLE OF PA_XLA_EXP_HEADER_V.EXCHANGE_RATE_VARIANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
76738 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
76739 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
76740
76741 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
76742 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
76743 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
76744 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
76745 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
76746 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
76747 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
76748 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
76749 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
76750 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
76751 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
76752 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
76753 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
76754 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
76755 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
76756 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
76757 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
76761 l_array_source_32 t_array_source_32;
76758 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
76759
76760 l_array_source_21 t_array_source_21;
76762 l_array_source_88 t_array_source_88;
76763
76764 l_array_source_3 t_array_source_3;
76765 l_array_source_4 t_array_source_4;
76766 l_array_source_5 t_array_source_5;
76767 l_array_source_6 t_array_source_6;
76768 l_array_source_7 t_array_source_7;
76769 l_array_source_22 t_array_source_22;
76770 l_array_source_23 t_array_source_23;
76771 l_array_source_24 t_array_source_24;
76772 l_array_source_25 t_array_source_25;
76773 l_array_source_26 t_array_source_26;
76774 l_array_source_27 t_array_source_27;
76775 l_array_source_28 t_array_source_28;
76776 l_array_source_29 t_array_source_29;
76777 l_array_source_30 t_array_source_30;
76778 l_array_source_31 t_array_source_31;
76779 l_array_source_33 t_array_source_33;
76780 l_array_source_34 t_array_source_34;
76781 l_array_source_34_meaning t_array_lookup_meaning;
76782 l_array_source_35 t_array_source_35;
76783
76784 --
76785 CURSOR header_cur
76786 IS
76787 SELECT /*+ leading(xet) cardinality(xet,1) */
76788 -- Event Class Code: SUPPLIER_COST_ADJ
76789 xet.entity_id
76790 ,xet.legal_entity_id
76791 ,xet.entity_code
76792 ,xet.transaction_number
76793 ,xet.event_id
76794 ,xet.event_class_code
76795 ,xet.event_type_code
76796 ,xet.event_number
76797 ,xet.event_date
76798 ,xet.transaction_date
76799 ,xet.reference_num_1
76800 ,xet.reference_num_2
76801 ,xet.reference_num_3
76802 ,xet.reference_num_4
76803 ,xet.reference_char_1
76804 ,xet.reference_char_2
76805 ,xet.reference_char_3
76806 ,xet.reference_char_4
76807 ,xet.reference_date_1
76808 ,xet.reference_date_2
76809 ,xet.reference_date_3
76810 ,xet.reference_date_4
76811 ,xet.event_created_by
76812 ,xet.budgetary_control_flag
76813 , h2.EXCHANGE_RATE_VARIANCE_FLAG source_21
76814 , h2.EXPENDITURE_ITEM_ID source_32
76815 , h2.GL_DATE source_88
76816 FROM xla_events_gt xet
76817 , PA_XLA_EXP_HEADER_V h2
76818 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
76819 and xet.event_class_code = C_EVENT_CLASS_CODE
76820 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
76821
76822 ORDER BY event_id
76823 ;
76824
76825
76826 --
76827 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
76828 IS
76829 SELECT /*+ leading(xet) cardinality(xet,1) */
76830 -- Event Class Code: SUPPLIER_COST_ADJ
76831 xet.entity_id
76832 ,xet.legal_entity_id
76833 ,xet.entity_code
76834 ,xet.transaction_number
76835 ,xet.event_id
76836 ,xet.event_class_code
76837 ,xet.event_type_code
76838 ,xet.event_number
76839 ,xet.event_date
76840 ,xet.transaction_date
76841 ,xet.reference_num_1
76842 ,xet.reference_num_2
76843 ,xet.reference_num_3
76844 ,xet.reference_num_4
76845 ,xet.reference_char_1
76846 ,xet.reference_char_2
76847 ,xet.reference_char_3
76848 ,xet.reference_char_4
76849 ,xet.reference_date_1
76850 ,xet.reference_date_2
76851 ,xet.reference_date_3
76852 ,xet.reference_date_4
76853 ,xet.event_created_by
76854 ,xet.budgetary_control_flag
76855 , l1.LINE_NUMBER
76856 , l1.COST_CCID source_3
76857 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
76858 , l1.ADJ_COST_CCID source_5
76859 , l1.COST_CLEARING_CCID source_6
76860 , l1.ADJ_COST_CLEARING_CCID source_7
76861 , l1.REVERSING_LINE_FLAG source_22
76862 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
76863 , l1.ENTERED_RAW_COST source_24
76864 , l1.ENTERED_CURRENCY_CODE source_25
76865 , l1.ACCT_RAW_COST source_26
76866 , l1.EXCHANGE_RATE_DATE source_27
76867 , l1.EXCHANGE_RATE source_28
76868 , l1.EXCHANGE_RATE_TYPE source_29
76869 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
76870 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
76871 , l1.LINE_NUMBER source_33
76872 , l1.LINE_TYPE source_34
76873 , fvl34.meaning source_34_meaning
76874 , l1.LINE_NUM_REVERSED source_35
76875 FROM xla_events_gt xet
76876 , PA_XLA_CDL_LINES_V l1
76877 , fnd_lookup_values fvl34
76878 WHERE xet.event_id between x_first_event_id and x_last_event_id
76879 and xet.event_date between p_pad_start_date and p_pad_end_date
76880 and xet.event_class_code = C_EVENT_CLASS_CODE
76881 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
76882 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
76883 AND fvl34.lookup_code(+) = l1.LINE_TYPE
76884 AND fvl34.view_application_id(+) = 275
76885 AND fvl34.language(+) = USERENV('LANG')
76886 ;
76887
76888 --
76889 BEGIN
76890 IF g_log_enabled THEN
76891 l_log_module := C_DEFAULT_MODULE||'.EventClass_125';
76892 END IF;
76893 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76894 trace
76895 (p_msg => 'BEGIN of EventClass_125'
76896 ,p_level => C_LEVEL_PROCEDURE
76897 ,p_module => l_log_module);
76898 END IF;
76899
76900 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76901 trace
76902 (p_msg => 'p_application_id = '||p_application_id||
76903 ' - p_base_ledger_id = '||p_base_ledger_id||
76904 ' - p_target_ledger_id = '||p_target_ledger_id||
76905 ' - p_language = '||p_language||
76906 ' - p_currency_code = '||p_currency_code||
76907 ' - p_sla_ledger_id = '||p_sla_ledger_id
76911 --
76908 ,p_level => C_LEVEL_STATEMENT
76909 ,p_module => l_log_module);
76910 END IF;
76912 -- initialze arrays
76913 --
76914 g_array_event.DELETE;
76915 l_rec_array_event := l_null_rec_array_event;
76916 --
76917 --------------------------------------
76918 -- 4262811 Initialze MPA Line Number
76919 --------------------------------------
76920 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
76921
76922 --
76923
76924 --
76925 OPEN header_cur;
76926 --
76927 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76928 trace
76929 (p_msg => 'SQL - FETCH header_cur'
76930 ,p_level => C_LEVEL_STATEMENT
76931 ,p_module => l_log_module);
76932 END IF;
76933 --
76934 LOOP
76935 FETCH header_cur BULK COLLECT INTO
76936 l_array_entity_id
76937 , l_array_legal_entity_id
76938 , l_array_entity_code
76939 , l_array_transaction_num
76940 , l_array_event_id
76941 , l_array_class_code
76942 , l_array_event_type
76943 , l_array_event_number
76944 , l_array_event_date
76945 , l_array_transaction_date
76946 , l_array_reference_num_1
76947 , l_array_reference_num_2
76948 , l_array_reference_num_3
76949 , l_array_reference_num_4
76950 , l_array_reference_char_1
76951 , l_array_reference_char_2
76952 , l_array_reference_char_3
76953 , l_array_reference_char_4
76954 , l_array_reference_date_1
76955 , l_array_reference_date_2
76956 , l_array_reference_date_3
76957 , l_array_reference_date_4
76958 , l_array_event_created_by
76959 , l_array_budgetary_control_flag
76960 , l_array_source_21
76961 , l_array_source_32
76962 , l_array_source_88
76963 LIMIT l_rows;
76964 --
76965 IF (C_LEVEL_EVENT >= g_log_level) THEN
76966 trace
76967 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
76968 ,p_level => C_LEVEL_EVENT
76969 ,p_module => l_log_module);
76970 END IF;
76971 --
76972 EXIT WHEN l_array_entity_id.COUNT = 0;
76973
76974 -- initialize arrays
76975 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
76976 XLA_AE_LINES_PKG.g_rec_lines := NULL;
76977
76978 --
76979 -- Bug 4458708
76980 --
76981 XLA_AE_LINES_PKG.g_LineNumber := 0;
76982
76983
76984 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
76985 g_last_hdr_idx := l_array_event_id.LAST;
76986 --
76987 -- loop for the headers. Each iteration is for each header extract row
76988 -- fetched in header cursor
76989 --
76990 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
76991
76992 --
76993 -- set event info as cache for other routines to refer event attributes
76994 --
76995 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
76996 (p_application_id => p_application_id
76997 ,p_primary_ledger_id => p_primary_ledger_id
76998 ,p_base_ledger_id => p_base_ledger_id
76999 ,p_target_ledger_id => p_target_ledger_id
77000 ,p_entity_id => l_array_entity_id(hdr_idx)
77001 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
77002 ,p_entity_code => l_array_entity_code(hdr_idx)
77003 ,p_transaction_num => l_array_transaction_num(hdr_idx)
77004 ,p_event_id => l_array_event_id(hdr_idx)
77005 ,p_event_class_code => l_array_class_code(hdr_idx)
77006 ,p_event_type_code => l_array_event_type(hdr_idx)
77007 ,p_event_number => l_array_event_number(hdr_idx)
77008 ,p_event_date => l_array_event_date(hdr_idx)
77009 ,p_transaction_date => l_array_transaction_date(hdr_idx)
77010 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
77011 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
77012 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
77013 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
77014 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
77015 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
77016 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
77017 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
77018 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
77019 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
77020 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
77021 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
77022 ,p_event_created_by => l_array_event_created_by(hdr_idx)
77023 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
77024
77025 --
77026 -- set the status of entry to C_VALID (0)
77027 --
77028 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
77029
77030 --
77031 -- initialize a row for ae header
77032 --
77033 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
77034
77035 l_event_id := l_array_event_id(hdr_idx);
77036
77037 --
77038 -- storing the hdr_idx for event. May be used by line cursor.
77039 --
77040 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
77041
77042 --
77043 -- store sources from header extract. This can be improved to
77044 -- store only those sources from header extract that may be used in lines
77045 --
77046
77047 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
77048 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
77049 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
77050
77051 --
77055 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
77052 -- initilaize the status of ae headers for diffrent balance types
77053 -- the status is initialised to C_NOT_CREATED (2)
77054 --
77056 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
77057 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
77058
77059 --
77060 -- call api to validate and store accounting attributes for header
77061 --
77062
77063 ------------------------------------------------------------
77064 -- Accrual Reversal : to get date for Standard Source (NONE)
77065 ------------------------------------------------------------
77066 l_acc_rev_gl_date_source := NULL;
77067
77068 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
77069 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
77070
77071
77072 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
77073
77074 XLA_AE_HEADER_PKG.SetJeCategoryName;
77075
77076 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
77077 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
77078 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
77079 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
77080 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
77081
77082
77083 -- No header level analytical criteria
77084
77085 --
77086 --accounting attribute enhancement, bug 3612931
77087 --
77088 l_trx_reversal_source := SUBSTR(NULL, 1,30);
77089
77090 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
77091 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
77092
77093 xla_accounting_err_pkg.build_message
77094 (p_appli_s_name => 'XLA'
77095 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
77096 ,p_token_1 => 'ACCT_ATTR_NAME'
77097 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
77098 ,p_token_2 => 'PRODUCT_NAME'
77099 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
77100 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
77101 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77102 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
77103
77104 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
77105 --
77106 -- following sets the accounting attributes needed to reverse
77107 -- accounting for a distributeion
77108 --
77109 xla_ae_lines_pkg.SetTrxReversalAttrs
77110 (p_event_id => l_event_id
77111 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
77112 ,p_trx_reversal_source => l_trx_reversal_source);
77113
77114 END IF;
77115
77116
77117 ----------------------------------------------------------------
77118 -- 4262811 - update the header statuses to invalid in need be
77119 ----------------------------------------------------------------
77120 --
77121 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
77122
77123
77124 -----------------------------------------------
77125 -- No accrual reversal for the event class/type
77126 -----------------------------------------------
77127 ----------------------------------------------------------------
77128
77129 --
77130 -- this ends the header loop iteration for one bulk fetch
77131 --
77132 END LOOP;
77133
77134 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
77135 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
77136
77137 --
77138 -- insert dummy rows into lines gt table that were created due to
77139 -- transaction reversals
77140 --
77141 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
77142 l_result := XLA_AE_LINES_PKG.InsertLines;
77143 END IF;
77144
77145 --
77146 -- reset the temp_line_num for each set of events fetched from header
77147 -- cursor rather than doing it for each new event in line cursor
77148 -- Bug 3939231
77149 --
77150 xla_ae_lines_pkg.g_temp_line_num := 0;
77151
77152
77153
77154 --
77155 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
77156 --
77157 --
77158 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77159
77160 trace
77161 (p_msg => 'SQL - FETCH line_cur'
77162 ,p_level => C_LEVEL_STATEMENT
77163 ,p_module => l_log_module);
77164
77165 END IF;
77166 --
77167 --
77168 LOOP
77169 --
77170 FETCH line_cur BULK COLLECT INTO
77171 l_array_entity_id
77172 , l_array_legal_entity_id
77173 , l_array_entity_code
77174 , l_array_transaction_num
77175 , l_array_event_id
77176 , l_array_class_code
77177 , l_array_event_type
77178 , l_array_event_number
77179 , l_array_event_date
77180 , l_array_transaction_date
77181 , l_array_reference_num_1
77182 , l_array_reference_num_2
77183 , l_array_reference_num_3
77184 , l_array_reference_num_4
77185 , l_array_reference_char_1
77186 , l_array_reference_char_2
77187 , l_array_reference_char_3
77188 , l_array_reference_char_4
77189 , l_array_reference_date_1
77190 , l_array_reference_date_2
77191 , l_array_reference_date_3
77192 , l_array_reference_date_4
77196 , l_array_source_3
77193 , l_array_event_created_by
77194 , l_array_budgetary_control_flag
77195 , l_array_extract_line_num
77197 , l_array_source_4
77198 , l_array_source_5
77199 , l_array_source_6
77200 , l_array_source_7
77201 , l_array_source_22
77202 , l_array_source_23
77203 , l_array_source_24
77204 , l_array_source_25
77205 , l_array_source_26
77206 , l_array_source_27
77207 , l_array_source_28
77208 , l_array_source_29
77209 , l_array_source_30
77210 , l_array_source_31
77211 , l_array_source_33
77212 , l_array_source_34
77213 , l_array_source_34_meaning
77214 , l_array_source_35
77215 LIMIT l_rows;
77216
77217 --
77218 IF (C_LEVEL_EVENT >= g_log_level) THEN
77219 trace
77220 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
77221 ,p_level => C_LEVEL_EVENT
77222 ,p_module => l_log_module);
77223 END IF;
77224 --
77225 EXIT WHEN l_array_entity_id.count = 0;
77226
77227 XLA_AE_LINES_PKG.g_rec_lines := null;
77228
77229 --
77230 -- Bug 4458708
77231 --
77232 XLA_AE_LINES_PKG.g_LineNumber := 0;
77233 --
77234 --
77235
77236 FOR Idx IN 1..l_array_event_id.count LOOP
77237 --
77238 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
77239 --
77240 l_event_id := l_array_event_id(idx); -- 5648433
77241
77242 --
77243 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
77244 --
77245
77246 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
77247 (g_array_event(l_event_id).array_value_num('header_index'))
77248 ,'N'
77249 ) <> 'Y'
77250 THEN
77251 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77252 trace
77253 (p_msg => 'Trancaction revesal option is not Y '
77254 ,p_level => C_LEVEL_STATEMENT
77255 ,p_module => l_log_module);
77256 END IF;
77257
77258 --
77259 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
77260 --
77261 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
77262 --
77263 -- set event info as cache for other routines to refer event attributes
77264 --
77265
77266 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
77267 l_previous_event_id := l_event_id;
77268
77269 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
77270 (p_application_id => p_application_id
77271 ,p_primary_ledger_id => p_primary_ledger_id
77272 ,p_base_ledger_id => p_base_ledger_id
77273 ,p_target_ledger_id => p_target_ledger_id
77274 ,p_entity_id => l_array_entity_id(Idx)
77275 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
77276 ,p_entity_code => l_array_entity_code(Idx)
77277 ,p_transaction_num => l_array_transaction_num(Idx)
77278 ,p_event_id => l_array_event_id(Idx)
77279 ,p_event_class_code => l_array_class_code(Idx)
77280 ,p_event_type_code => l_array_event_type(Idx)
77281 ,p_event_number => l_array_event_number(Idx)
77282 ,p_event_date => l_array_event_date(Idx)
77283 ,p_transaction_date => l_array_transaction_date(Idx)
77284 ,p_reference_num_1 => l_array_reference_num_1(Idx)
77285 ,p_reference_num_2 => l_array_reference_num_2(Idx)
77286 ,p_reference_num_3 => l_array_reference_num_3(Idx)
77287 ,p_reference_num_4 => l_array_reference_num_4(Idx)
77288 ,p_reference_char_1 => l_array_reference_char_1(Idx)
77289 ,p_reference_char_2 => l_array_reference_char_2(Idx)
77290 ,p_reference_char_3 => l_array_reference_char_3(Idx)
77291 ,p_reference_char_4 => l_array_reference_char_4(Idx)
77292 ,p_reference_date_1 => l_array_reference_date_1(Idx)
77293 ,p_reference_date_2 => l_array_reference_date_2(Idx)
77294 ,p_reference_date_3 => l_array_reference_date_3(Idx)
77295 ,p_reference_date_4 => l_array_reference_date_4(Idx)
77296 ,p_event_created_by => l_array_event_created_by(Idx)
77297 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
77298 --
77299 END IF;
77300
77301
77302
77303 --
77304 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
77305
77306 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
77307
77308 IF l_continue_with_lines THEN
77309 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
77310 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
77311
77312 xla_accounting_err_pkg.build_message
77313 (p_appli_s_name => 'XLA'
77314 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
77315 ,p_token_1 => 'LINE_NUMBER'
77316 ,p_value_1 => l_array_extract_line_num(Idx)
77317 ,p_token_2 => 'PRODUCT_NAME'
77318 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
77319 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
77320 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77321 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
77322
77323 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
77324 --
77325 -- following sets the accounting attributes needed to reverse
77329 --
77326 -- accounting for a distributeion
77327 --
77328
77330 -- 5217187
77331 --
77332 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
77333 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
77334 g_array_event(l_event_id).array_value_num('header_index'));
77335 --
77336 --
77337
77338 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
77339 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
77340 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
77341 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
77342 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
77343 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
77344 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
77345 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
77346 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
77347 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
77348 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
77349 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
77350 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
77351 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
77352 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
77353 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
77354 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
77355 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
77356 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
77357 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
77358 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
77359 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
77360 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
77361 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
77362 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
77363 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
77364 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
77365 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
77366 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
77367 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
77368 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
77369 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
77370 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
77371 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
77372 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
77373 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
77374 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
77375 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
77376 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
77377 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
77378 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
77379 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
77380 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
77381 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
77382 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
77383 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
77384 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
77385 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
77386
77387
77388 xla_ae_lines_pkg.SetAcctReversalAttrs
77389 (p_event_id => l_event_id
77390 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
77391 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77392 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
77393 END IF;
77394
77395 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
77396 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
77397
77398 --
77399 AcctLineType_21 (
77400 p_application_id => p_application_id
77401 ,p_event_id => l_event_id
77402 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77403 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77404 ,p_actual_flag => l_actual_flag
77405 ,p_balance_type_code => l_balance_type_code
77406 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77407
77408 , p_source_3 => l_array_source_3(Idx)
77409 , p_source_4 => l_array_source_4(Idx)
77410 , p_source_5 => l_array_source_5(Idx)
77411 , p_source_6 => l_array_source_6(Idx)
77412 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
77413 , p_source_22 => l_array_source_22(Idx)
77414 , p_source_23 => l_array_source_23(Idx)
77415 , p_source_24 => l_array_source_24(Idx)
77416 , p_source_25 => l_array_source_25(Idx)
77417 , p_source_26 => l_array_source_26(Idx)
77418 , p_source_27 => l_array_source_27(Idx)
77419 , p_source_28 => l_array_source_28(Idx)
77420 , p_source_29 => l_array_source_29(Idx)
77421 , p_source_30 => l_array_source_30(Idx)
77422 , p_source_31 => l_array_source_31(Idx)
77423 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
77424 , p_source_33 => l_array_source_33(Idx)
77428 );
77425 , p_source_34 => l_array_source_34(Idx)
77426 , p_source_34_meaning => l_array_source_34_meaning(Idx)
77427 , p_source_35 => l_array_source_35(Idx)
77429 If(l_balance_type_code = 'A') THEN
77430 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77431 END IF;
77432
77433 --
77434
77435
77436 --
77437 AcctLineType_22 (
77438 p_application_id => p_application_id
77439 ,p_event_id => l_event_id
77440 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77441 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77442 ,p_actual_flag => l_actual_flag
77443 ,p_balance_type_code => l_balance_type_code
77444 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77445
77446 , p_source_3 => l_array_source_3(Idx)
77447 , p_source_4 => l_array_source_4(Idx)
77448 , p_source_6 => l_array_source_6(Idx)
77449 , p_source_7 => l_array_source_7(Idx)
77450 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
77451 , p_source_22 => l_array_source_22(Idx)
77452 , p_source_23 => l_array_source_23(Idx)
77453 , p_source_24 => l_array_source_24(Idx)
77454 , p_source_25 => l_array_source_25(Idx)
77455 , p_source_26 => l_array_source_26(Idx)
77456 , p_source_27 => l_array_source_27(Idx)
77457 , p_source_28 => l_array_source_28(Idx)
77458 , p_source_29 => l_array_source_29(Idx)
77459 , p_source_30 => l_array_source_30(Idx)
77460 , p_source_31 => l_array_source_31(Idx)
77461 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
77462 , p_source_33 => l_array_source_33(Idx)
77463 , p_source_34 => l_array_source_34(Idx)
77464 , p_source_34_meaning => l_array_source_34_meaning(Idx)
77465 , p_source_35 => l_array_source_35(Idx)
77466 );
77467 If(l_balance_type_code = 'A') THEN
77468 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77469 END IF;
77470
77471 --
77472
77473
77474 --
77475 AcctLineType_47 (
77476 p_application_id => p_application_id
77477 ,p_event_id => l_event_id
77478 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77479 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77480 ,p_actual_flag => l_actual_flag
77481 ,p_balance_type_code => l_balance_type_code
77482 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77483
77484 , p_source_3 => l_array_source_3(Idx)
77485 , p_source_4 => l_array_source_4(Idx)
77486 , p_source_5 => l_array_source_5(Idx)
77487 , p_source_6 => l_array_source_6(Idx)
77488 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
77489 , p_source_22 => l_array_source_22(Idx)
77490 , p_source_23 => l_array_source_23(Idx)
77491 , p_source_24 => l_array_source_24(Idx)
77492 , p_source_25 => l_array_source_25(Idx)
77493 , p_source_26 => l_array_source_26(Idx)
77494 , p_source_27 => l_array_source_27(Idx)
77495 , p_source_28 => l_array_source_28(Idx)
77496 , p_source_29 => l_array_source_29(Idx)
77497 , p_source_30 => l_array_source_30(Idx)
77498 , p_source_31 => l_array_source_31(Idx)
77499 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
77500 , p_source_33 => l_array_source_33(Idx)
77501 , p_source_34 => l_array_source_34(Idx)
77502 , p_source_34_meaning => l_array_source_34_meaning(Idx)
77503 , p_source_35 => l_array_source_35(Idx)
77504 );
77505 If(l_balance_type_code = 'A') THEN
77506 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77507 END IF;
77508
77509 --
77510
77511
77512 --
77513 AcctLineType_59 (
77514 p_application_id => p_application_id
77515 ,p_event_id => l_event_id
77516 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77517 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77518 ,p_actual_flag => l_actual_flag
77519 ,p_balance_type_code => l_balance_type_code
77520 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77521
77522 , p_source_3 => l_array_source_3(Idx)
77523 , p_source_4 => l_array_source_4(Idx)
77524 , p_source_6 => l_array_source_6(Idx)
77525 , p_source_7 => l_array_source_7(Idx)
77526 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
77527 , p_source_22 => l_array_source_22(Idx)
77528 , p_source_23 => l_array_source_23(Idx)
77529 , p_source_24 => l_array_source_24(Idx)
77530 , p_source_25 => l_array_source_25(Idx)
77531 , p_source_26 => l_array_source_26(Idx)
77532 , p_source_27 => l_array_source_27(Idx)
77533 , p_source_28 => l_array_source_28(Idx)
77534 , p_source_29 => l_array_source_29(Idx)
77535 , p_source_30 => l_array_source_30(Idx)
77536 , p_source_31 => l_array_source_31(Idx)
77537 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
77538 , p_source_33 => l_array_source_33(Idx)
77539 , p_source_34 => l_array_source_34(Idx)
77540 , p_source_34_meaning => l_array_source_34_meaning(Idx)
77541 , p_source_35 => l_array_source_35(Idx)
77542 );
77543 If(l_balance_type_code = 'A') THEN
77544 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77545 END IF;
77546
77547 --
77548
77549 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
77550 -- or secondary ledger that has different currency with primary
77551 -- or alc that is calculated by sla
77552 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
77553 (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'))
77554
77555 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
77556 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
77557 AND (l_actual_flag = 'A')) THEN
77558 XLA_AE_LINES_PKG.CreateGainOrLossLines(
77559 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77560 ,p_application_id => p_application_id
77561 ,p_amb_context_code => 'DEFAULT'
77565
77562 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
77563 ,p_event_class_code => C_EVENT_CLASS_CODE
77564 ,p_event_type_code => C_EVENT_TYPE_CODE
77566 ,p_gain_ccid => -1
77567 ,p_loss_ccid => -1
77568
77569 ,p_actual_flag => l_actual_flag
77570 ,p_enc_flag => null
77571 ,p_actual_g_l_ref => l_actual_gain_loss_ref
77572 ,p_enc_g_l_ref => null
77573 );
77574 END IF;
77575 END IF;
77576 END IF;
77577
77578 ELSE
77579 --
77580 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
77581 --
77582 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77583 trace
77584 (p_msg => 'Trancaction revesal option is Y'
77585 ,p_level => C_LEVEL_STATEMENT
77586 ,p_module => l_log_module);
77587 END IF;
77588 END IF;
77589
77590 END LOOP;
77591 l_result := XLA_AE_LINES_PKG.InsertLines ;
77592 end loop;
77593 close line_cur;
77594
77595
77596 --
77597 -- insert headers into xla_ae_headers_gt table
77598 --
77599 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
77600
77601 -- insert into errors table here.
77602
77603 END LOOP;
77604
77605 --
77606 -- 4865292
77607 --
77608 -- Compare g_hdr_extract_count with event count in
77609 -- CreateHeadersAndLines.
77610 --
77611 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
77612
77613 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77614 trace (p_msg => '# rows extracted from header extract objects '
77615 || ' (running total): '
77616 || g_hdr_extract_count
77617 ,p_level => C_LEVEL_STATEMENT
77618 ,p_module => l_log_module);
77619 END IF;
77620
77621 CLOSE header_cur;
77622 --
77623
77624 --
77625 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77626 trace
77627 (p_msg => 'END of EventClass_125'
77628 ,p_level => C_LEVEL_PROCEDURE
77629 ,p_module => l_log_module);
77630 END IF;
77631 --
77632 RETURN l_result;
77633 EXCEPTION
77634 WHEN xla_exceptions_pkg.application_exception THEN
77635
77636 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
77637
77638
77639 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
77640
77641 RAISE;
77642 WHEN OTHERS THEN
77643 xla_exceptions_pkg.raise_message
77644 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_125');
77645 END EventClass_125;
77646 --
77647
77648 ---------------------------------------
77649 --
77650 -- PRIVATE PROCEDURE
77651 -- insert_sources_126
77652 --
77653 ----------------------------------------
77654 --
77655 PROCEDURE insert_sources_126(
77656 p_target_ledger_id IN NUMBER
77657 , p_language IN VARCHAR2
77658 , p_sla_ledger_id IN NUMBER
77659 , p_pad_start_date IN DATE
77660 , p_pad_end_date IN DATE
77661 )
77662 IS
77663
77664 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ALL';
77665 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST';
77666 p_apps_owner VARCHAR2(30);
77667 l_log_module VARCHAR2(240);
77668 BEGIN
77669 IF g_log_enabled THEN
77670 l_log_module := C_DEFAULT_MODULE||'.insert_sources_126';
77671 END IF;
77672 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77673
77674 trace
77675 (p_msg => 'BEGIN of insert_sources_126'
77676 ,p_level => C_LEVEL_PROCEDURE
77677 ,p_module => l_log_module);
77678
77679 END IF;
77680
77681 -- select APPS owner
77682 SELECT oracle_username
77683 INTO p_apps_owner
77684 FROM fnd_oracle_userid
77685 WHERE read_only_flag = 'U'
77686 ;
77687
77688 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77689 trace
77690 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
77691 ' - p_language = '||p_language||
77692 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
77693 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
77694 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
77695 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
77696 ,p_level => C_LEVEL_STATEMENT
77697 ,p_module => l_log_module);
77698 END IF;
77699
77700
77701 --
77702 INSERT INTO xla_diag_sources --hdr2
77703 (
77704 event_id
77705 , ledger_id
77706 , sla_ledger_id
77707 , description_language
77708 , object_name
77709 , object_type_code
77710 , line_number
77711 , source_application_id
77712 , source_type_code
77713 , source_code
77714 , source_value
77715 , source_meaning
77716 , created_by
77717 , creation_date
77718 , last_update_date
77719 , last_updated_by
77720 , last_update_login
77721 , program_update_date
77722 , program_application_id
77723 , program_id
77724 , request_id
77725 )
77726 SELECT
77727 event_id
77728 , p_target_ledger_id
77729 , p_sla_ledger_id
77730 , p_language
77731 , object_name
77732 , object_type_code
77733 , line_number
77734 , source_application_id
77738 , SUBSTR(source_meaning ,1,200)
77735 , source_type_code
77736 , source_code
77737 , SUBSTR(source_value ,1,1996)
77739 , xla_environment_pkg.g_Usr_Id
77740 , TRUNC(SYSDATE)
77741 , TRUNC(SYSDATE)
77742 , xla_environment_pkg.g_Usr_Id
77743 , xla_environment_pkg.g_Login_Id
77744 , TRUNC(SYSDATE)
77745 , xla_environment_pkg.g_Prog_Appl_Id
77746 , xla_environment_pkg.g_Prog_Id
77747 , xla_environment_pkg.g_Req_Id
77748 FROM (
77749 SELECT xet.event_id event_id
77750 , 0 line_number
77751 , CASE r
77752 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
77753 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
77754 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
77755
77756 ELSE null
77757 END object_name
77758 , CASE r
77759 WHEN 1 THEN 'HEADER'
77760 WHEN 2 THEN 'HEADER'
77761 WHEN 3 THEN 'HEADER'
77762
77763 ELSE null
77764 END object_type_code
77765 , CASE r
77766 WHEN 1 THEN '275'
77767 WHEN 2 THEN '275'
77768 WHEN 3 THEN '275'
77769
77770 ELSE null
77771 END source_application_id
77772 , 'S' source_type_code
77773 , CASE r
77774 WHEN 1 THEN 'EXCHANGE_RATE_VARIANCE_FLAG'
77775 WHEN 2 THEN 'EXPENDITURE_ITEM_ID'
77776 WHEN 3 THEN 'GL_DATE'
77777
77778 ELSE null
77779 END source_code
77780 , CASE r
77781 WHEN 1 THEN TO_CHAR(h2.EXCHANGE_RATE_VARIANCE_FLAG)
77782 WHEN 2 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
77783 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
77784
77785 ELSE null
77786 END source_value
77787 , CASE r
77788 WHEN 1 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
77789 103371
77790 ,TO_CHAR(h2.EXCHANGE_RATE_VARIANCE_FLAG)
77791 ,'EXCHANGE_RATE_VARIANCE_FLAG'
77792 ,'S'
77793 ,275)
77794
77795 ELSE null
77796 END source_meaning
77797 FROM xla_events_gt xet
77798 , PA_XLA_EXP_HEADER_V h2
77799 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
77800 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77801 AND xet.event_class_code = C_EVENT_CLASS_CODE
77802 AND h2.event_id = xet.event_id
77803
77804 )
77805 ;
77806 --
77807 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77808
77809 trace
77810 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
77811 ,p_level => C_LEVEL_STATEMENT
77812 ,p_module => l_log_module);
77813
77814 END IF;
77815 --
77816
77817
77818
77819 --
77820 INSERT INTO xla_diag_sources --line2
77821 (
77822 event_id
77823 , ledger_id
77824 , sla_ledger_id
77825 , description_language
77826 , object_name
77827 , object_type_code
77828 , line_number
77829 , source_application_id
77830 , source_type_code
77831 , source_code
77832 , source_value
77833 , source_meaning
77834 , created_by
77835 , creation_date
77836 , last_update_date
77837 , last_updated_by
77838 , last_update_login
77839 , program_update_date
77840 , program_application_id
77841 , program_id
77842 , request_id
77843 )
77844 SELECT event_id
77845 , p_target_ledger_id
77846 , p_sla_ledger_id
77847 , p_language
77848 , object_name
77849 , object_type_code
77850 , line_number
77851 , source_application_id
77852 , source_type_code
77853 , source_code
77854 , SUBSTR(source_value,1,1996)
77855 , SUBSTR(source_meaning ,1,200)
77856 , xla_environment_pkg.g_Usr_Id
77857 , TRUNC(SYSDATE)
77858 , TRUNC(SYSDATE)
77859 , xla_environment_pkg.g_Usr_Id
77860 , xla_environment_pkg.g_Login_Id
77861 , TRUNC(SYSDATE)
77862 , xla_environment_pkg.g_Prog_Appl_Id
77863 , xla_environment_pkg.g_Prog_Id
77864 , xla_environment_pkg.g_Req_Id
77865 FROM (
77866 SELECT xet.event_id event_id
77867 , l1.line_number line_number
77868 , CASE r
77869 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
77870 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
77871 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
77872 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
77873 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
77874 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
77875 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
77876 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
77877 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
77878 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
77879 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
77880 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
77881 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
77882 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
77883 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
77887
77884 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
77885 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
77886 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
77888 ELSE null
77889 END object_name
77890 , CASE r
77891 WHEN 1 THEN 'LINE'
77892 WHEN 2 THEN 'LINE'
77893 WHEN 3 THEN 'LINE'
77894 WHEN 4 THEN 'LINE'
77895 WHEN 5 THEN 'LINE'
77896 WHEN 6 THEN 'LINE'
77897 WHEN 7 THEN 'LINE'
77898 WHEN 8 THEN 'LINE'
77899 WHEN 9 THEN 'LINE'
77900 WHEN 10 THEN 'LINE'
77901 WHEN 11 THEN 'LINE'
77902 WHEN 12 THEN 'LINE'
77903 WHEN 13 THEN 'LINE'
77904 WHEN 14 THEN 'LINE'
77905 WHEN 15 THEN 'LINE'
77906 WHEN 16 THEN 'LINE'
77907 WHEN 17 THEN 'LINE'
77908 WHEN 18 THEN 'LINE'
77909
77910 ELSE null
77911 END object_type_code
77912 , CASE r
77913 WHEN 1 THEN '275'
77914 WHEN 2 THEN '275'
77915 WHEN 3 THEN '275'
77916 WHEN 4 THEN '275'
77917 WHEN 5 THEN '275'
77918 WHEN 6 THEN '275'
77919 WHEN 7 THEN '275'
77920 WHEN 8 THEN '275'
77921 WHEN 9 THEN '275'
77922 WHEN 10 THEN '275'
77923 WHEN 11 THEN '275'
77924 WHEN 12 THEN '275'
77925 WHEN 13 THEN '275'
77926 WHEN 14 THEN '275'
77927 WHEN 15 THEN '275'
77928 WHEN 16 THEN '275'
77929 WHEN 17 THEN '275'
77930 WHEN 18 THEN '275'
77931
77932 ELSE null
77933 END source_application_id
77934 , 'S' source_type_code
77935 , CASE r
77936 WHEN 1 THEN 'COST_CCID'
77937 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
77938 WHEN 3 THEN 'ADJ_COST_CCID'
77939 WHEN 4 THEN 'COST_CLEARING_CCID'
77940 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
77941 WHEN 6 THEN 'REVERSING_LINE_FLAG'
77942 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
77943 WHEN 8 THEN 'ENTERED_RAW_COST'
77944 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
77945 WHEN 10 THEN 'ACCT_RAW_COST'
77946 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
77947 WHEN 12 THEN 'EXCHANGE_RATE'
77948 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
77949 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
77950 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
77951 WHEN 16 THEN 'LINE_NUMBER'
77952 WHEN 17 THEN 'LINE_TYPE'
77953 WHEN 18 THEN 'LINE_NUM_REVERSED'
77954
77955 ELSE null
77956 END source_code
77957 , CASE r
77958 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
77959 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
77960 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
77961 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
77962 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
77963 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
77964 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
77965 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
77966 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
77967 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
77968 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
77969 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
77970 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
77971 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
77972 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
77973 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
77974 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
77975 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
77976
77977 ELSE null
77978 END source_value
77979 , CASE r
77980 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
77981 103371
77982 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
77983 ,'ALLOW_OVERRIDE_CCID_FLAG'
77984 ,'S'
77985 ,275)
77986 WHEN 17 THEN fvl34.meaning
77987
77988 ELSE null
77989 END source_meaning
77990 FROM xla_events_gt xet
77991 , PA_XLA_CDL_LINES_V l1
77992 , fnd_lookup_values fvl34
77993 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
77994 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77995 AND xet.event_class_code = C_EVENT_CLASS_CODE
77996 AND l1.event_id = xet.event_id
77997 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
77998 AND fvl34.lookup_code(+) = l1.LINE_TYPE
77999 AND fvl34.view_application_id(+) = 275
78000 AND fvl34.language(+) = USERENV('LANG')
78001
78002 )
78003 ;
78004 --
78005 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78006
78007 trace
78008 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
78009 ,p_level => C_LEVEL_STATEMENT
78013
78010 ,p_module => l_log_module);
78011
78012 END IF;
78014
78015 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78016 trace
78017 (p_msg => 'END of insert_sources_126'
78018 ,p_level => C_LEVEL_PROCEDURE
78019 ,p_module => l_log_module);
78020 END IF;
78021 EXCEPTION
78022 WHEN xla_exceptions_pkg.application_exception THEN
78023 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
78024 trace
78025 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
78026 ,p_level => C_LEVEL_EXCEPTION
78027 ,p_module => l_log_module);
78028 END IF;
78029 RAISE;
78030 WHEN OTHERS THEN
78031 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
78032 trace
78033 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
78034 ,p_level => C_LEVEL_EXCEPTION
78035 ,p_module => l_log_module);
78036 END IF;
78037 xla_exceptions_pkg.raise_message
78038 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_126');
78039 END insert_sources_126;
78040 --
78041
78042 ---------------------------------------
78043 --
78044 -- PRIVATE FUNCTION
78045 -- EventClass_126
78046 --
78047 ----------------------------------------
78048 --
78049 FUNCTION EventClass_126
78050 (p_application_id IN NUMBER
78051 ,p_base_ledger_id IN NUMBER
78052 ,p_target_ledger_id IN NUMBER
78053 ,p_language IN VARCHAR2
78054 ,p_currency_code IN VARCHAR2
78055 ,p_sla_ledger_id IN NUMBER
78056 ,p_pad_start_date IN DATE
78057 ,p_pad_end_date IN DATE
78058 ,p_primary_ledger_id IN NUMBER)
78059 RETURN BOOLEAN IS
78060 --
78061 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ALL';
78062 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST';
78063
78064 l_calculate_acctd_flag VARCHAR2(1) :='N';
78065 l_calculate_g_l_flag VARCHAR2(1) :='N';
78066 --
78067 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78068 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78069 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78070 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78071 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78072 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78073 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78074 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78075 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78076 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78077 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78078 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78079 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78080 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
78081 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78082 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78083 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78084 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
78085 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78086 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78087 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78088 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
78089 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
78090 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
78091
78092 l_event_id NUMBER;
78093 l_previous_event_id NUMBER;
78094 l_first_event_id NUMBER;
78095 l_last_event_id NUMBER;
78096
78097 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
78098 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
78099 --
78100 --
78101 l_result BOOLEAN := TRUE;
78102 l_rows NUMBER := 1000;
78103 l_event_type_name VARCHAR2(80) := 'All';
78104 l_event_class_name VARCHAR2(80) := 'Supplier Cost';
78105 l_description VARCHAR2(4000);
78106 l_transaction_reversal NUMBER;
78107 l_ae_header_id NUMBER;
78108 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
78109 l_log_module VARCHAR2(240);
78110 --
78111 l_acct_reversal_source VARCHAR2(30);
78112 l_trx_reversal_source VARCHAR2(30);
78113
78114 l_continue_with_lines BOOLEAN := TRUE;
78115 --
78116 l_acc_rev_gl_date_source DATE; -- 4262811
78117 --
78118 type t_array_event_id is table of number index by binary_integer;
78119
78120 l_rec_array_event t_rec_array_event;
78121 l_null_rec_array_event t_rec_array_event;
78122 l_array_ae_header_id xla_number_array_type;
78123 l_actual_flag VARCHAR2(1) := NULL;
78124 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
78125 l_balance_type_code VARCHAR2(1) :=NULL;
78126 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
78127
78128 --
78129 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
78130 --
78131
78132 TYPE t_array_source_21 IS TABLE OF PA_XLA_EXP_HEADER_V.EXCHANGE_RATE_VARIANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
78136 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
78133 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
78134 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
78135
78137 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
78138 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
78139 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
78140 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
78141 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
78142 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
78143 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
78144 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
78145 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
78146 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
78147 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
78148 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
78149 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
78150 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
78151 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
78152 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
78153 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
78154
78155 l_array_source_21 t_array_source_21;
78156 l_array_source_32 t_array_source_32;
78157 l_array_source_88 t_array_source_88;
78158
78159 l_array_source_3 t_array_source_3;
78160 l_array_source_4 t_array_source_4;
78161 l_array_source_5 t_array_source_5;
78162 l_array_source_6 t_array_source_6;
78163 l_array_source_7 t_array_source_7;
78164 l_array_source_22 t_array_source_22;
78165 l_array_source_23 t_array_source_23;
78166 l_array_source_24 t_array_source_24;
78167 l_array_source_25 t_array_source_25;
78168 l_array_source_26 t_array_source_26;
78169 l_array_source_27 t_array_source_27;
78170 l_array_source_28 t_array_source_28;
78171 l_array_source_29 t_array_source_29;
78172 l_array_source_30 t_array_source_30;
78173 l_array_source_31 t_array_source_31;
78174 l_array_source_33 t_array_source_33;
78175 l_array_source_34 t_array_source_34;
78176 l_array_source_34_meaning t_array_lookup_meaning;
78177 l_array_source_35 t_array_source_35;
78178
78179 --
78180 CURSOR header_cur
78181 IS
78182 SELECT /*+ leading(xet) cardinality(xet,1) */
78183 -- Event Class Code: SUPPLIER_COST
78184 xet.entity_id
78185 ,xet.legal_entity_id
78186 ,xet.entity_code
78187 ,xet.transaction_number
78188 ,xet.event_id
78189 ,xet.event_class_code
78190 ,xet.event_type_code
78191 ,xet.event_number
78192 ,xet.event_date
78193 ,xet.transaction_date
78194 ,xet.reference_num_1
78195 ,xet.reference_num_2
78196 ,xet.reference_num_3
78197 ,xet.reference_num_4
78198 ,xet.reference_char_1
78199 ,xet.reference_char_2
78200 ,xet.reference_char_3
78201 ,xet.reference_char_4
78202 ,xet.reference_date_1
78203 ,xet.reference_date_2
78204 ,xet.reference_date_3
78205 ,xet.reference_date_4
78206 ,xet.event_created_by
78207 ,xet.budgetary_control_flag
78208 , h2.EXCHANGE_RATE_VARIANCE_FLAG source_21
78209 , h2.EXPENDITURE_ITEM_ID source_32
78210 , h2.GL_DATE source_88
78211 FROM xla_events_gt xet
78212 , PA_XLA_EXP_HEADER_V h2
78213 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
78214 and xet.event_class_code = C_EVENT_CLASS_CODE
78215 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
78216
78217 ORDER BY event_id
78218 ;
78219
78220
78221 --
78222 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
78223 IS
78224 SELECT /*+ leading(xet) cardinality(xet,1) */
78225 -- Event Class Code: SUPPLIER_COST
78226 xet.entity_id
78227 ,xet.legal_entity_id
78228 ,xet.entity_code
78229 ,xet.transaction_number
78230 ,xet.event_id
78231 ,xet.event_class_code
78232 ,xet.event_type_code
78233 ,xet.event_number
78234 ,xet.event_date
78235 ,xet.transaction_date
78236 ,xet.reference_num_1
78237 ,xet.reference_num_2
78238 ,xet.reference_num_3
78239 ,xet.reference_num_4
78240 ,xet.reference_char_1
78241 ,xet.reference_char_2
78242 ,xet.reference_char_3
78243 ,xet.reference_char_4
78244 ,xet.reference_date_1
78245 ,xet.reference_date_2
78246 ,xet.reference_date_3
78247 ,xet.reference_date_4
78248 ,xet.event_created_by
78249 ,xet.budgetary_control_flag
78250 , l1.LINE_NUMBER
78251 , l1.COST_CCID source_3
78252 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
78253 , l1.ADJ_COST_CCID source_5
78254 , l1.COST_CLEARING_CCID source_6
78255 , l1.ADJ_COST_CLEARING_CCID source_7
78256 , l1.REVERSING_LINE_FLAG source_22
78257 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
78258 , l1.ENTERED_RAW_COST source_24
78259 , l1.ENTERED_CURRENCY_CODE source_25
78260 , l1.ACCT_RAW_COST source_26
78264 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
78261 , l1.EXCHANGE_RATE_DATE source_27
78262 , l1.EXCHANGE_RATE source_28
78263 , l1.EXCHANGE_RATE_TYPE source_29
78265 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
78266 , l1.LINE_NUMBER source_33
78267 , l1.LINE_TYPE source_34
78268 , fvl34.meaning source_34_meaning
78269 , l1.LINE_NUM_REVERSED source_35
78270 FROM xla_events_gt xet
78271 , PA_XLA_CDL_LINES_V l1
78272 , fnd_lookup_values fvl34
78273 WHERE xet.event_id between x_first_event_id and x_last_event_id
78274 and xet.event_date between p_pad_start_date and p_pad_end_date
78275 and xet.event_class_code = C_EVENT_CLASS_CODE
78276 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
78277 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
78278 AND fvl34.lookup_code(+) = l1.LINE_TYPE
78279 AND fvl34.view_application_id(+) = 275
78280 AND fvl34.language(+) = USERENV('LANG')
78281 ;
78282
78283 --
78284 BEGIN
78285 IF g_log_enabled THEN
78286 l_log_module := C_DEFAULT_MODULE||'.EventClass_126';
78287 END IF;
78288 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78289 trace
78290 (p_msg => 'BEGIN of EventClass_126'
78291 ,p_level => C_LEVEL_PROCEDURE
78292 ,p_module => l_log_module);
78293 END IF;
78294
78295 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78296 trace
78297 (p_msg => 'p_application_id = '||p_application_id||
78298 ' - p_base_ledger_id = '||p_base_ledger_id||
78299 ' - p_target_ledger_id = '||p_target_ledger_id||
78300 ' - p_language = '||p_language||
78301 ' - p_currency_code = '||p_currency_code||
78302 ' - p_sla_ledger_id = '||p_sla_ledger_id
78303 ,p_level => C_LEVEL_STATEMENT
78304 ,p_module => l_log_module);
78305 END IF;
78306 --
78307 -- initialze arrays
78308 --
78309 g_array_event.DELETE;
78310 l_rec_array_event := l_null_rec_array_event;
78311 --
78312 --------------------------------------
78313 -- 4262811 Initialze MPA Line Number
78314 --------------------------------------
78315 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
78316
78317 --
78318
78319 --
78320 OPEN header_cur;
78321 --
78322 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78323 trace
78324 (p_msg => 'SQL - FETCH header_cur'
78325 ,p_level => C_LEVEL_STATEMENT
78326 ,p_module => l_log_module);
78327 END IF;
78328 --
78329 LOOP
78330 FETCH header_cur BULK COLLECT INTO
78331 l_array_entity_id
78332 , l_array_legal_entity_id
78333 , l_array_entity_code
78334 , l_array_transaction_num
78335 , l_array_event_id
78336 , l_array_class_code
78337 , l_array_event_type
78338 , l_array_event_number
78339 , l_array_event_date
78340 , l_array_transaction_date
78341 , l_array_reference_num_1
78342 , l_array_reference_num_2
78343 , l_array_reference_num_3
78344 , l_array_reference_num_4
78345 , l_array_reference_char_1
78346 , l_array_reference_char_2
78347 , l_array_reference_char_3
78348 , l_array_reference_char_4
78349 , l_array_reference_date_1
78350 , l_array_reference_date_2
78351 , l_array_reference_date_3
78352 , l_array_reference_date_4
78353 , l_array_event_created_by
78354 , l_array_budgetary_control_flag
78355 , l_array_source_21
78356 , l_array_source_32
78357 , l_array_source_88
78358 LIMIT l_rows;
78359 --
78360 IF (C_LEVEL_EVENT >= g_log_level) THEN
78361 trace
78362 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
78363 ,p_level => C_LEVEL_EVENT
78364 ,p_module => l_log_module);
78365 END IF;
78366 --
78367 EXIT WHEN l_array_entity_id.COUNT = 0;
78368
78369 -- initialize arrays
78370 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
78371 XLA_AE_LINES_PKG.g_rec_lines := NULL;
78372
78373 --
78374 -- Bug 4458708
78375 --
78376 XLA_AE_LINES_PKG.g_LineNumber := 0;
78377
78378
78379 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
78380 g_last_hdr_idx := l_array_event_id.LAST;
78381 --
78382 -- loop for the headers. Each iteration is for each header extract row
78383 -- fetched in header cursor
78384 --
78385 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
78386
78387 --
78388 -- set event info as cache for other routines to refer event attributes
78389 --
78390 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78391 (p_application_id => p_application_id
78392 ,p_primary_ledger_id => p_primary_ledger_id
78393 ,p_base_ledger_id => p_base_ledger_id
78394 ,p_target_ledger_id => p_target_ledger_id
78395 ,p_entity_id => l_array_entity_id(hdr_idx)
78396 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
78397 ,p_entity_code => l_array_entity_code(hdr_idx)
78398 ,p_transaction_num => l_array_transaction_num(hdr_idx)
78399 ,p_event_id => l_array_event_id(hdr_idx)
78400 ,p_event_class_code => l_array_class_code(hdr_idx)
78401 ,p_event_type_code => l_array_event_type(hdr_idx)
78402 ,p_event_number => l_array_event_number(hdr_idx)
78403 ,p_event_date => l_array_event_date(hdr_idx)
78404 ,p_transaction_date => l_array_transaction_date(hdr_idx)
78405 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
78406 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
78410 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
78407 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
78408 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
78409 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
78411 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
78412 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
78413 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
78414 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
78415 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
78416 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
78417 ,p_event_created_by => l_array_event_created_by(hdr_idx)
78418 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
78419
78420 --
78421 -- set the status of entry to C_VALID (0)
78422 --
78423 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78424
78425 --
78426 -- initialize a row for ae header
78427 --
78428 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
78429
78430 l_event_id := l_array_event_id(hdr_idx);
78431
78432 --
78433 -- storing the hdr_idx for event. May be used by line cursor.
78434 --
78435 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
78436
78437 --
78438 -- store sources from header extract. This can be improved to
78439 -- store only those sources from header extract that may be used in lines
78440 --
78441
78442 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
78443 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
78444 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
78445
78446 --
78447 -- initilaize the status of ae headers for diffrent balance types
78448 -- the status is initialised to C_NOT_CREATED (2)
78449 --
78450 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78451 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78452 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78453
78454 --
78455 -- call api to validate and store accounting attributes for header
78456 --
78457
78458 ------------------------------------------------------------
78459 -- Accrual Reversal : to get date for Standard Source (NONE)
78460 ------------------------------------------------------------
78461 l_acc_rev_gl_date_source := NULL;
78462
78463 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
78464 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
78465
78466
78467 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
78468
78469 XLA_AE_HEADER_PKG.SetJeCategoryName;
78470
78471 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
78472 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
78473 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
78474 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
78475 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
78476
78477
78478 -- No header level analytical criteria
78479
78480 --
78481 --accounting attribute enhancement, bug 3612931
78482 --
78483 l_trx_reversal_source := SUBSTR(NULL, 1,30);
78484
78485 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
78486 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
78487
78488 xla_accounting_err_pkg.build_message
78489 (p_appli_s_name => 'XLA'
78490 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
78491 ,p_token_1 => 'ACCT_ATTR_NAME'
78492 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
78493 ,p_token_2 => 'PRODUCT_NAME'
78494 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78495 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78496 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78497 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78498
78499 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
78500 --
78501 -- following sets the accounting attributes needed to reverse
78502 -- accounting for a distributeion
78503 --
78504 xla_ae_lines_pkg.SetTrxReversalAttrs
78505 (p_event_id => l_event_id
78506 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
78507 ,p_trx_reversal_source => l_trx_reversal_source);
78508
78509 END IF;
78510
78511
78512 ----------------------------------------------------------------
78513 -- 4262811 - update the header statuses to invalid in need be
78514 ----------------------------------------------------------------
78515 --
78516 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
78517
78518
78519 -----------------------------------------------
78520 -- No accrual reversal for the event class/type
78521 -----------------------------------------------
78522 ----------------------------------------------------------------
78523
78524 --
78525 -- this ends the header loop iteration for one bulk fetch
78526 --
78527 END LOOP;
78528
78529 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
78530 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
78531
78532 --
78536 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
78533 -- insert dummy rows into lines gt table that were created due to
78534 -- transaction reversals
78535 --
78537 l_result := XLA_AE_LINES_PKG.InsertLines;
78538 END IF;
78539
78540 --
78541 -- reset the temp_line_num for each set of events fetched from header
78542 -- cursor rather than doing it for each new event in line cursor
78543 -- Bug 3939231
78544 --
78545 xla_ae_lines_pkg.g_temp_line_num := 0;
78546
78547
78548
78549 --
78550 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
78551 --
78552 --
78553 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78554
78555 trace
78556 (p_msg => 'SQL - FETCH line_cur'
78557 ,p_level => C_LEVEL_STATEMENT
78558 ,p_module => l_log_module);
78559
78560 END IF;
78561 --
78562 --
78563 LOOP
78564 --
78565 FETCH line_cur BULK COLLECT INTO
78566 l_array_entity_id
78567 , l_array_legal_entity_id
78568 , l_array_entity_code
78569 , l_array_transaction_num
78570 , l_array_event_id
78571 , l_array_class_code
78572 , l_array_event_type
78573 , l_array_event_number
78574 , l_array_event_date
78575 , l_array_transaction_date
78576 , l_array_reference_num_1
78577 , l_array_reference_num_2
78578 , l_array_reference_num_3
78579 , l_array_reference_num_4
78580 , l_array_reference_char_1
78581 , l_array_reference_char_2
78582 , l_array_reference_char_3
78583 , l_array_reference_char_4
78584 , l_array_reference_date_1
78585 , l_array_reference_date_2
78586 , l_array_reference_date_3
78587 , l_array_reference_date_4
78588 , l_array_event_created_by
78589 , l_array_budgetary_control_flag
78590 , l_array_extract_line_num
78591 , l_array_source_3
78592 , l_array_source_4
78593 , l_array_source_5
78594 , l_array_source_6
78595 , l_array_source_7
78596 , l_array_source_22
78597 , l_array_source_23
78598 , l_array_source_24
78599 , l_array_source_25
78600 , l_array_source_26
78601 , l_array_source_27
78602 , l_array_source_28
78603 , l_array_source_29
78604 , l_array_source_30
78605 , l_array_source_31
78606 , l_array_source_33
78607 , l_array_source_34
78608 , l_array_source_34_meaning
78609 , l_array_source_35
78610 LIMIT l_rows;
78611
78612 --
78613 IF (C_LEVEL_EVENT >= g_log_level) THEN
78614 trace
78615 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
78616 ,p_level => C_LEVEL_EVENT
78617 ,p_module => l_log_module);
78618 END IF;
78619 --
78620 EXIT WHEN l_array_entity_id.count = 0;
78621
78622 XLA_AE_LINES_PKG.g_rec_lines := null;
78623
78624 --
78625 -- Bug 4458708
78626 --
78627 XLA_AE_LINES_PKG.g_LineNumber := 0;
78628 --
78629 --
78630
78631 FOR Idx IN 1..l_array_event_id.count LOOP
78632 --
78633 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
78634 --
78635 l_event_id := l_array_event_id(idx); -- 5648433
78636
78637 --
78638 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
78639 --
78640
78641 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
78642 (g_array_event(l_event_id).array_value_num('header_index'))
78643 ,'N'
78644 ) <> 'Y'
78645 THEN
78646 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78647 trace
78648 (p_msg => 'Trancaction revesal option is not Y '
78649 ,p_level => C_LEVEL_STATEMENT
78650 ,p_module => l_log_module);
78651 END IF;
78652
78653 --
78654 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
78655 --
78656 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78657 --
78658 -- set event info as cache for other routines to refer event attributes
78659 --
78660
78661 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
78662 l_previous_event_id := l_event_id;
78663
78664 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78665 (p_application_id => p_application_id
78666 ,p_primary_ledger_id => p_primary_ledger_id
78667 ,p_base_ledger_id => p_base_ledger_id
78668 ,p_target_ledger_id => p_target_ledger_id
78669 ,p_entity_id => l_array_entity_id(Idx)
78670 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
78671 ,p_entity_code => l_array_entity_code(Idx)
78672 ,p_transaction_num => l_array_transaction_num(Idx)
78673 ,p_event_id => l_array_event_id(Idx)
78674 ,p_event_class_code => l_array_class_code(Idx)
78675 ,p_event_type_code => l_array_event_type(Idx)
78676 ,p_event_number => l_array_event_number(Idx)
78677 ,p_event_date => l_array_event_date(Idx)
78678 ,p_transaction_date => l_array_transaction_date(Idx)
78679 ,p_reference_num_1 => l_array_reference_num_1(Idx)
78680 ,p_reference_num_2 => l_array_reference_num_2(Idx)
78681 ,p_reference_num_3 => l_array_reference_num_3(Idx)
78682 ,p_reference_num_4 => l_array_reference_num_4(Idx)
78683 ,p_reference_char_1 => l_array_reference_char_1(Idx)
78684 ,p_reference_char_2 => l_array_reference_char_2(Idx)
78688 ,p_reference_date_2 => l_array_reference_date_2(Idx)
78685 ,p_reference_char_3 => l_array_reference_char_3(Idx)
78686 ,p_reference_char_4 => l_array_reference_char_4(Idx)
78687 ,p_reference_date_1 => l_array_reference_date_1(Idx)
78689 ,p_reference_date_3 => l_array_reference_date_3(Idx)
78690 ,p_reference_date_4 => l_array_reference_date_4(Idx)
78691 ,p_event_created_by => l_array_event_created_by(Idx)
78692 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
78693 --
78694 END IF;
78695
78696
78697
78698 --
78699 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
78700
78701 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
78702
78703 IF l_continue_with_lines THEN
78704 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
78705 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
78706
78707 xla_accounting_err_pkg.build_message
78708 (p_appli_s_name => 'XLA'
78709 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
78710 ,p_token_1 => 'LINE_NUMBER'
78711 ,p_value_1 => l_array_extract_line_num(Idx)
78712 ,p_token_2 => 'PRODUCT_NAME'
78713 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78714 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78715 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78716 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78717
78718 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
78719 --
78720 -- following sets the accounting attributes needed to reverse
78721 -- accounting for a distributeion
78722 --
78723
78724 --
78725 -- 5217187
78726 --
78727 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
78728 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
78729 g_array_event(l_event_id).array_value_num('header_index'));
78730 --
78731 --
78732
78733 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
78734 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
78735 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
78736 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
78737 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
78738 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
78739 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
78740 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
78741 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
78742 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
78743 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
78744 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
78745 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
78746 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
78747 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
78748 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
78749 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
78750 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
78751 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
78752 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
78753 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
78754 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
78755 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
78756 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
78757 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
78758 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
78759 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
78760 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
78761 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
78762 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
78763 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
78764 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
78765 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
78766 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
78767 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
78768 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
78769 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
78770 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
78771 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
78772 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
78773 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
78774 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
78775 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
78776 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
78777 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
78781
78778 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
78779 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
78780 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
78782
78783 xla_ae_lines_pkg.SetAcctReversalAttrs
78784 (p_event_id => l_event_id
78785 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
78786 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78787 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
78788 END IF;
78789
78790 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
78791 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
78792
78793 --
78794 AcctLineType_20 (
78795 p_application_id => p_application_id
78796 ,p_event_id => l_event_id
78797 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78798 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78799 ,p_actual_flag => l_actual_flag
78800 ,p_balance_type_code => l_balance_type_code
78801 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78802
78803 , p_source_3 => l_array_source_3(Idx)
78804 , p_source_4 => l_array_source_4(Idx)
78805 , p_source_5 => l_array_source_5(Idx)
78806 , p_source_6 => l_array_source_6(Idx)
78807 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
78808 , p_source_22 => l_array_source_22(Idx)
78809 , p_source_23 => l_array_source_23(Idx)
78810 , p_source_24 => l_array_source_24(Idx)
78811 , p_source_25 => l_array_source_25(Idx)
78812 , p_source_26 => l_array_source_26(Idx)
78813 , p_source_27 => l_array_source_27(Idx)
78814 , p_source_28 => l_array_source_28(Idx)
78815 , p_source_29 => l_array_source_29(Idx)
78816 , p_source_30 => l_array_source_30(Idx)
78817 , p_source_31 => l_array_source_31(Idx)
78818 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
78819 , p_source_33 => l_array_source_33(Idx)
78820 , p_source_34 => l_array_source_34(Idx)
78821 , p_source_34_meaning => l_array_source_34_meaning(Idx)
78822 , p_source_35 => l_array_source_35(Idx)
78823 );
78824 If(l_balance_type_code = 'A') THEN
78825 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78826 END IF;
78827
78828 --
78829
78830
78831 --
78832 AcctLineType_23 (
78833 p_application_id => p_application_id
78834 ,p_event_id => l_event_id
78835 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78836 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78837 ,p_actual_flag => l_actual_flag
78838 ,p_balance_type_code => l_balance_type_code
78839 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78840
78841 , p_source_3 => l_array_source_3(Idx)
78842 , p_source_4 => l_array_source_4(Idx)
78843 , p_source_6 => l_array_source_6(Idx)
78844 , p_source_7 => l_array_source_7(Idx)
78845 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
78846 , p_source_22 => l_array_source_22(Idx)
78847 , p_source_23 => l_array_source_23(Idx)
78848 , p_source_24 => l_array_source_24(Idx)
78849 , p_source_25 => l_array_source_25(Idx)
78850 , p_source_26 => l_array_source_26(Idx)
78851 , p_source_27 => l_array_source_27(Idx)
78852 , p_source_28 => l_array_source_28(Idx)
78853 , p_source_29 => l_array_source_29(Idx)
78854 , p_source_30 => l_array_source_30(Idx)
78855 , p_source_31 => l_array_source_31(Idx)
78856 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
78857 , p_source_33 => l_array_source_33(Idx)
78858 , p_source_34 => l_array_source_34(Idx)
78859 , p_source_34_meaning => l_array_source_34_meaning(Idx)
78860 , p_source_35 => l_array_source_35(Idx)
78861 );
78862 If(l_balance_type_code = 'A') THEN
78863 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78864 END IF;
78865
78866 --
78867
78868
78869 --
78870 AcctLineType_44 (
78871 p_application_id => p_application_id
78872 ,p_event_id => l_event_id
78873 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78874 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78875 ,p_actual_flag => l_actual_flag
78876 ,p_balance_type_code => l_balance_type_code
78877 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78878
78879 , p_source_3 => l_array_source_3(Idx)
78880 , p_source_4 => l_array_source_4(Idx)
78881 , p_source_5 => l_array_source_5(Idx)
78882 , p_source_6 => l_array_source_6(Idx)
78883 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
78884 , p_source_22 => l_array_source_22(Idx)
78885 , p_source_23 => l_array_source_23(Idx)
78886 , p_source_24 => l_array_source_24(Idx)
78887 , p_source_25 => l_array_source_25(Idx)
78888 , p_source_26 => l_array_source_26(Idx)
78889 , p_source_27 => l_array_source_27(Idx)
78890 , p_source_28 => l_array_source_28(Idx)
78891 , p_source_29 => l_array_source_29(Idx)
78892 , p_source_30 => l_array_source_30(Idx)
78893 , p_source_31 => l_array_source_31(Idx)
78894 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
78895 , p_source_33 => l_array_source_33(Idx)
78896 , p_source_34 => l_array_source_34(Idx)
78897 , p_source_34_meaning => l_array_source_34_meaning(Idx)
78898 , p_source_35 => l_array_source_35(Idx)
78899 );
78900 If(l_balance_type_code = 'A') THEN
78901 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78902 END IF;
78903
78904 --
78905
78906
78907 --
78908 AcctLineType_56 (
78909 p_application_id => p_application_id
78910 ,p_event_id => l_event_id
78911 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78912 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78913 ,p_actual_flag => l_actual_flag
78914 ,p_balance_type_code => l_balance_type_code
78915 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78916
78917 , p_source_3 => l_array_source_3(Idx)
78918 , p_source_4 => l_array_source_4(Idx)
78919 , p_source_6 => l_array_source_6(Idx)
78923 , p_source_23 => l_array_source_23(Idx)
78920 , p_source_7 => l_array_source_7(Idx)
78921 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
78922 , p_source_22 => l_array_source_22(Idx)
78924 , p_source_24 => l_array_source_24(Idx)
78925 , p_source_25 => l_array_source_25(Idx)
78926 , p_source_26 => l_array_source_26(Idx)
78927 , p_source_27 => l_array_source_27(Idx)
78928 , p_source_28 => l_array_source_28(Idx)
78929 , p_source_29 => l_array_source_29(Idx)
78930 , p_source_30 => l_array_source_30(Idx)
78931 , p_source_31 => l_array_source_31(Idx)
78932 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
78933 , p_source_33 => l_array_source_33(Idx)
78934 , p_source_34 => l_array_source_34(Idx)
78935 , p_source_34_meaning => l_array_source_34_meaning(Idx)
78936 , p_source_35 => l_array_source_35(Idx)
78937 );
78938 If(l_balance_type_code = 'A') THEN
78939 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78940 END IF;
78941
78942 --
78943
78944 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
78945 -- or secondary ledger that has different currency with primary
78946 -- or alc that is calculated by sla
78947 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
78948 (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'))
78949
78950 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
78951 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
78952 AND (l_actual_flag = 'A')) THEN
78953 XLA_AE_LINES_PKG.CreateGainOrLossLines(
78954 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78955 ,p_application_id => p_application_id
78956 ,p_amb_context_code => 'DEFAULT'
78957 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
78958 ,p_event_class_code => C_EVENT_CLASS_CODE
78959 ,p_event_type_code => C_EVENT_TYPE_CODE
78960
78961 ,p_gain_ccid => -1
78962 ,p_loss_ccid => -1
78963
78964 ,p_actual_flag => l_actual_flag
78965 ,p_enc_flag => null
78966 ,p_actual_g_l_ref => l_actual_gain_loss_ref
78967 ,p_enc_g_l_ref => null
78968 );
78969 END IF;
78970 END IF;
78971 END IF;
78972
78973 ELSE
78974 --
78975 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
78976 --
78977 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78978 trace
78979 (p_msg => 'Trancaction revesal option is Y'
78980 ,p_level => C_LEVEL_STATEMENT
78981 ,p_module => l_log_module);
78982 END IF;
78983 END IF;
78984
78985 END LOOP;
78986 l_result := XLA_AE_LINES_PKG.InsertLines ;
78987 end loop;
78988 close line_cur;
78989
78990
78991 --
78992 -- insert headers into xla_ae_headers_gt table
78993 --
78994 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
78995
78996 -- insert into errors table here.
78997
78998 END LOOP;
78999
79000 --
79001 -- 4865292
79002 --
79003 -- Compare g_hdr_extract_count with event count in
79004 -- CreateHeadersAndLines.
79005 --
79006 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
79007
79008 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79009 trace (p_msg => '# rows extracted from header extract objects '
79010 || ' (running total): '
79011 || g_hdr_extract_count
79012 ,p_level => C_LEVEL_STATEMENT
79013 ,p_module => l_log_module);
79014 END IF;
79015
79016 CLOSE header_cur;
79017 --
79018
79019 --
79020 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79021 trace
79022 (p_msg => 'END of EventClass_126'
79023 ,p_level => C_LEVEL_PROCEDURE
79024 ,p_module => l_log_module);
79025 END IF;
79026 --
79027 RETURN l_result;
79028 EXCEPTION
79029 WHEN xla_exceptions_pkg.application_exception THEN
79030
79031 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
79032
79033
79034 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
79035
79036 RAISE;
79037 WHEN OTHERS THEN
79038 xla_exceptions_pkg.raise_message
79039 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_126');
79040 END EventClass_126;
79041 --
79042
79043 ---------------------------------------
79044 --
79045 -- PRIVATE PROCEDURE
79046 -- insert_sources_127
79047 --
79048 ----------------------------------------
79049 --
79050 PROCEDURE insert_sources_127(
79051 p_target_ledger_id IN NUMBER
79052 , p_language IN VARCHAR2
79053 , p_sla_ledger_id IN NUMBER
79054 , p_pad_start_date IN DATE
79055 , p_pad_end_date IN DATE
79056 )
79057 IS
79058
79059 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ_ALL';
79060 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ';
79061 p_apps_owner VARCHAR2(30);
79062 l_log_module VARCHAR2(240);
79063 BEGIN
79064 IF g_log_enabled THEN
79065 l_log_module := C_DEFAULT_MODULE||'.insert_sources_127';
79066 END IF;
79067 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79068
79069 trace
79070 (p_msg => 'BEGIN of insert_sources_127'
79074 END IF;
79071 ,p_level => C_LEVEL_PROCEDURE
79072 ,p_module => l_log_module);
79073
79075
79076 -- select APPS owner
79077 SELECT oracle_username
79078 INTO p_apps_owner
79079 FROM fnd_oracle_userid
79080 WHERE read_only_flag = 'U'
79081 ;
79082
79083 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79084 trace
79085 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
79086 ' - p_language = '||p_language||
79087 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
79088 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
79089 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
79090 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
79091 ,p_level => C_LEVEL_STATEMENT
79092 ,p_module => l_log_module);
79093 END IF;
79094
79095
79096 --
79097 INSERT INTO xla_diag_sources --hdr2
79098 (
79099 event_id
79100 , ledger_id
79101 , sla_ledger_id
79102 , description_language
79103 , object_name
79104 , object_type_code
79105 , line_number
79106 , source_application_id
79107 , source_type_code
79108 , source_code
79109 , source_value
79110 , source_meaning
79111 , created_by
79112 , creation_date
79113 , last_update_date
79114 , last_updated_by
79115 , last_update_login
79116 , program_update_date
79117 , program_application_id
79118 , program_id
79119 , request_id
79120 )
79121 SELECT
79122 event_id
79123 , p_target_ledger_id
79124 , p_sla_ledger_id
79125 , p_language
79126 , object_name
79127 , object_type_code
79128 , line_number
79129 , source_application_id
79130 , source_type_code
79131 , source_code
79132 , SUBSTR(source_value ,1,1996)
79133 , SUBSTR(source_meaning ,1,200)
79134 , xla_environment_pkg.g_Usr_Id
79135 , TRUNC(SYSDATE)
79136 , TRUNC(SYSDATE)
79137 , xla_environment_pkg.g_Usr_Id
79138 , xla_environment_pkg.g_Login_Id
79139 , TRUNC(SYSDATE)
79140 , xla_environment_pkg.g_Prog_Appl_Id
79141 , xla_environment_pkg.g_Prog_Id
79142 , xla_environment_pkg.g_Req_Id
79143 FROM (
79144 SELECT xet.event_id event_id
79145 , 0 line_number
79146 , CASE r
79147 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
79148 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
79149 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
79150
79151 ELSE null
79152 END object_name
79153 , CASE r
79154 WHEN 1 THEN 'HEADER'
79155 WHEN 2 THEN 'HEADER'
79156 WHEN 3 THEN 'HEADER'
79157
79158 ELSE null
79159 END object_type_code
79160 , CASE r
79161 WHEN 1 THEN '275'
79162 WHEN 2 THEN '275'
79163 WHEN 3 THEN '275'
79164
79165 ELSE null
79166 END source_application_id
79167 , 'S' source_type_code
79168 , CASE r
79169 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
79170 WHEN 2 THEN 'SYSTEM_LINKAGE_FUNCTION'
79171 WHEN 3 THEN 'GL_DATE'
79172
79173 ELSE null
79174 END source_code
79175 , CASE r
79176 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
79177 WHEN 2 THEN TO_CHAR(h2.SYSTEM_LINKAGE_FUNCTION)
79178 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
79179
79180 ELSE null
79181 END source_value
79182 , null source_meaning
79183 FROM xla_events_gt xet
79184 , PA_XLA_EXP_HEADER_V h2
79185 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
79186 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
79187 AND xet.event_class_code = C_EVENT_CLASS_CODE
79188 AND h2.event_id = xet.event_id
79189
79190 )
79191 ;
79192 --
79193 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79194
79195 trace
79196 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
79197 ,p_level => C_LEVEL_STATEMENT
79198 ,p_module => l_log_module);
79199
79200 END IF;
79201 --
79202
79203
79204
79205 --
79206 INSERT INTO xla_diag_sources --line2
79207 (
79208 event_id
79209 , ledger_id
79210 , sla_ledger_id
79211 , description_language
79212 , object_name
79213 , object_type_code
79214 , line_number
79215 , source_application_id
79216 , source_type_code
79217 , source_code
79218 , source_value
79219 , source_meaning
79220 , created_by
79221 , creation_date
79222 , last_update_date
79223 , last_updated_by
79224 , last_update_login
79225 , program_update_date
79226 , program_application_id
79227 , program_id
79228 , request_id
79229 )
79230 SELECT event_id
79231 , p_target_ledger_id
79232 , p_sla_ledger_id
79233 , p_language
79234 , object_name
79238 , source_type_code
79235 , object_type_code
79236 , line_number
79237 , source_application_id
79239 , source_code
79240 , SUBSTR(source_value,1,1996)
79241 , SUBSTR(source_meaning ,1,200)
79242 , xla_environment_pkg.g_Usr_Id
79243 , TRUNC(SYSDATE)
79244 , TRUNC(SYSDATE)
79245 , xla_environment_pkg.g_Usr_Id
79246 , xla_environment_pkg.g_Login_Id
79247 , TRUNC(SYSDATE)
79248 , xla_environment_pkg.g_Prog_Appl_Id
79249 , xla_environment_pkg.g_Prog_Id
79250 , xla_environment_pkg.g_Req_Id
79251 FROM (
79252 SELECT xet.event_id event_id
79253 , l1.line_number line_number
79254 , CASE r
79255 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
79256 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
79257 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
79258 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
79259 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
79260 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
79261 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
79262 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
79263 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
79264 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
79265 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
79266 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
79267 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
79268 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
79269 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
79270 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
79271 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
79272 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
79273 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
79274 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
79275 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
79276 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
79277 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
79278 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
79279 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
79280 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
79281 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
79282 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
79283 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
79284 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
79285 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
79286 WHEN 32 THEN 'PA_XLA_CDL_LINES_V'
79287 WHEN 33 THEN 'PA_XLA_CDL_LINES_V'
79288 WHEN 34 THEN 'PA_XLA_CDL_LINES_V'
79289 WHEN 35 THEN 'PA_XLA_CDL_LINES_V'
79290 WHEN 36 THEN 'PA_XLA_CDL_LINES_V'
79291 WHEN 37 THEN 'PA_XLA_CDL_LINES_V'
79292 WHEN 38 THEN 'PA_XLA_CDL_LINES_V'
79293 WHEN 39 THEN 'PA_XLA_CDL_LINES_V'
79294 WHEN 40 THEN 'PA_XLA_CDL_LINES_V'
79295 WHEN 41 THEN 'PA_XLA_CDL_LINES_V'
79296 WHEN 42 THEN 'PA_XLA_CDL_LINES_V'
79297 WHEN 43 THEN 'PA_XLA_CDL_LINES_V'
79298 WHEN 44 THEN 'PA_XLA_CDL_LINES_V'
79299 WHEN 45 THEN 'PA_XLA_CDL_LINES_V'
79300 WHEN 46 THEN 'PA_XLA_CDL_LINES_V'
79301 WHEN 47 THEN 'PA_XLA_CDL_LINES_V'
79302 WHEN 48 THEN 'PA_XLA_CDL_LINES_V'
79303
79304 ELSE null
79305 END object_name
79306 , CASE r
79307 WHEN 1 THEN 'LINE'
79308 WHEN 2 THEN 'LINE'
79309 WHEN 3 THEN 'LINE'
79310 WHEN 4 THEN 'LINE'
79311 WHEN 5 THEN 'LINE'
79312 WHEN 6 THEN 'LINE'
79313 WHEN 7 THEN 'LINE'
79314 WHEN 8 THEN 'LINE'
79315 WHEN 9 THEN 'LINE'
79316 WHEN 10 THEN 'LINE'
79317 WHEN 11 THEN 'LINE'
79318 WHEN 12 THEN 'LINE'
79319 WHEN 13 THEN 'LINE'
79320 WHEN 14 THEN 'LINE'
79321 WHEN 15 THEN 'LINE'
79322 WHEN 16 THEN 'LINE'
79323 WHEN 17 THEN 'LINE'
79324 WHEN 18 THEN 'LINE'
79325 WHEN 19 THEN 'LINE'
79326 WHEN 20 THEN 'LINE'
79327 WHEN 21 THEN 'LINE'
79328 WHEN 22 THEN 'LINE'
79329 WHEN 23 THEN 'LINE'
79330 WHEN 24 THEN 'LINE'
79331 WHEN 25 THEN 'LINE'
79332 WHEN 26 THEN 'LINE'
79333 WHEN 27 THEN 'LINE'
79334 WHEN 28 THEN 'LINE'
79335 WHEN 29 THEN 'LINE'
79336 WHEN 30 THEN 'LINE'
79337 WHEN 31 THEN 'LINE'
79338 WHEN 32 THEN 'LINE'
79339 WHEN 33 THEN 'LINE'
79340 WHEN 34 THEN 'LINE'
79341 WHEN 35 THEN 'LINE'
79342 WHEN 36 THEN 'LINE'
79343 WHEN 37 THEN 'LINE'
79344 WHEN 38 THEN 'LINE'
79345 WHEN 39 THEN 'LINE'
79346 WHEN 40 THEN 'LINE'
79347 WHEN 41 THEN 'LINE'
79348 WHEN 42 THEN 'LINE'
79349 WHEN 43 THEN 'LINE'
79350 WHEN 44 THEN 'LINE'
79351 WHEN 45 THEN 'LINE'
79352 WHEN 46 THEN 'LINE'
79353 WHEN 47 THEN 'LINE'
79354 WHEN 48 THEN 'LINE'
79355
79356 ELSE null
79357 END object_type_code
79358 , CASE r
79359 WHEN 1 THEN '275'
79360 WHEN 2 THEN '275'
79361 WHEN 3 THEN '275'
79362 WHEN 4 THEN '275'
79366 WHEN 8 THEN '275'
79363 WHEN 5 THEN '275'
79364 WHEN 6 THEN '275'
79365 WHEN 7 THEN '275'
79367 WHEN 9 THEN '275'
79368 WHEN 10 THEN '275'
79369 WHEN 11 THEN '275'
79370 WHEN 12 THEN '275'
79371 WHEN 13 THEN '275'
79372 WHEN 14 THEN '275'
79373 WHEN 15 THEN '275'
79374 WHEN 16 THEN '275'
79375 WHEN 17 THEN '275'
79376 WHEN 18 THEN '275'
79377 WHEN 19 THEN '275'
79378 WHEN 20 THEN '275'
79379 WHEN 21 THEN '275'
79380 WHEN 22 THEN '275'
79381 WHEN 23 THEN '275'
79382 WHEN 24 THEN '275'
79383 WHEN 25 THEN '275'
79384 WHEN 26 THEN '275'
79385 WHEN 27 THEN '275'
79386 WHEN 28 THEN '275'
79387 WHEN 29 THEN '275'
79388 WHEN 30 THEN '275'
79389 WHEN 31 THEN '275'
79390 WHEN 32 THEN '275'
79391 WHEN 33 THEN '275'
79392 WHEN 34 THEN '275'
79393 WHEN 35 THEN '275'
79394 WHEN 36 THEN '275'
79395 WHEN 37 THEN '275'
79396 WHEN 38 THEN '275'
79397 WHEN 39 THEN '275'
79398 WHEN 40 THEN '275'
79399 WHEN 41 THEN '275'
79400 WHEN 42 THEN '275'
79401 WHEN 43 THEN '275'
79402 WHEN 44 THEN '275'
79403 WHEN 45 THEN '275'
79404 WHEN 46 THEN '275'
79405 WHEN 47 THEN '275'
79406 WHEN 48 THEN '275'
79407
79408 ELSE null
79409 END source_application_id
79410 , 'S' source_type_code
79411 , CASE r
79412 WHEN 1 THEN 'BUDGET_CCID'
79413 WHEN 2 THEN 'COST_CCID'
79414 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
79415 WHEN 4 THEN 'ADJ_COST_CCID'
79416 WHEN 5 THEN 'COST_CLEARING_CCID'
79417 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
79418 WHEN 7 THEN 'REVERSING_LINE_FLAG'
79419 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
79420 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
79421 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
79422 WHEN 11 THEN 'EXCHANGE_RATE'
79423 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
79424 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
79425 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
79426 WHEN 15 THEN 'LINE_NUMBER'
79427 WHEN 16 THEN 'LINE_TYPE'
79428 WHEN 17 THEN 'LINE_NUM_REVERSED'
79429 WHEN 18 THEN 'ENTERED_BURDENED_COST'
79430 WHEN 19 THEN 'ACCT_BURDENED_COST'
79431 WHEN 20 THEN 'ENCUMBRANCE_AMOUNT'
79432 WHEN 21 THEN 'PA_APPLICATION_ID'
79433 WHEN 22 THEN 'PA_DISTRIBUTION_TYPE'
79434 WHEN 23 THEN 'PA_ENTITY_CODE'
79435 WHEN 24 THEN 'PA_FIRST_DIST_ID'
79436 WHEN 25 THEN 'PA_FIRST_SYS_TRANS_ID'
79437 WHEN 26 THEN 'PA_SECOND_DIST_ID'
79438 WHEN 27 THEN 'ENC_UPG_CR_ACCT_CLASS'
79439 WHEN 28 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
79440 WHEN 29 THEN 'ENCUMBRANCE_TYPE_ID'
79441 WHEN 30 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
79442 WHEN 31 THEN 'DOCUMENT_TYPE'
79443 WHEN 32 THEN 'ENC_JE_LINES_REVERSED_FLAG'
79444 WHEN 33 THEN 'PO_RELEASE_ID'
79445 WHEN 34 THEN 'CWK_RATE_BASED_TC_FLAG'
79446 WHEN 35 THEN 'INVOICE_APPLICATION_ID'
79447 WHEN 36 THEN 'INVOICE_DISTRIBUTION_TYPE'
79448 WHEN 37 THEN 'INVOICE_ENTITY_CODE'
79449 WHEN 38 THEN 'INVOICE_FIRST_DIST_ID'
79450 WHEN 39 THEN 'INVOICE_FIRST_SYS_TRANS_ID'
79451 WHEN 40 THEN 'INVOICE_SECOND_DIST_ID'
79452 WHEN 41 THEN 'PO_APPLICATION_ID'
79453 WHEN 42 THEN 'PO_DISTRIBUTION_TYPE'
79454 WHEN 43 THEN 'PO_ENTITY_CODE'
79455 WHEN 44 THEN 'PO_FIRST_DIST_ID'
79456 WHEN 45 THEN 'PO_FIRST_SYS_TRANS_ID'
79457 WHEN 46 THEN 'PO_SECOND_DIST_ID'
79458 WHEN 47 THEN 'ENC_ACCT_ENABLED'
79459 WHEN 48 THEN 'LIQUIDATE_ENCUM_FLAG'
79460
79461 ELSE null
79462 END source_code
79463 , CASE r
79464 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
79465 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
79466 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
79467 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
79468 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
79469 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
79470 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
79471 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
79472 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
79473 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
79474 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
79475 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
79476 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
79477 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
79478 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
79479 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
79480 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
79484 WHEN 21 THEN TO_CHAR(l1.PA_APPLICATION_ID)
79481 WHEN 18 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
79482 WHEN 19 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
79483 WHEN 20 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
79485 WHEN 22 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
79486 WHEN 23 THEN TO_CHAR(l1.PA_ENTITY_CODE)
79487 WHEN 24 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
79488 WHEN 25 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
79489 WHEN 26 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
79490 WHEN 27 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
79491 WHEN 28 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
79492 WHEN 29 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
79493 WHEN 30 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
79494 WHEN 31 THEN TO_CHAR(l1.DOCUMENT_TYPE)
79495 WHEN 32 THEN TO_CHAR(l1.ENC_JE_LINES_REVERSED_FLAG)
79496 WHEN 33 THEN TO_CHAR(l1.PO_RELEASE_ID)
79497 WHEN 34 THEN TO_CHAR(l1.CWK_RATE_BASED_TC_FLAG)
79498 WHEN 35 THEN TO_CHAR(l1.INVOICE_APPLICATION_ID)
79499 WHEN 36 THEN TO_CHAR(l1.INVOICE_DISTRIBUTION_TYPE)
79500 WHEN 37 THEN TO_CHAR(l1.INVOICE_ENTITY_CODE)
79501 WHEN 38 THEN TO_CHAR(l1.INVOICE_FIRST_DIST_ID)
79502 WHEN 39 THEN TO_CHAR(l1.INVOICE_FIRST_SYS_TRANS_ID)
79503 WHEN 40 THEN TO_CHAR(l1.INVOICE_SECOND_DIST_ID)
79504 WHEN 41 THEN TO_CHAR(l1.PO_APPLICATION_ID)
79505 WHEN 42 THEN TO_CHAR(l1.PO_DISTRIBUTION_TYPE)
79506 WHEN 43 THEN TO_CHAR(l1.PO_ENTITY_CODE)
79507 WHEN 44 THEN TO_CHAR(l1.PO_FIRST_DIST_ID)
79508 WHEN 45 THEN TO_CHAR(l1.PO_FIRST_SYS_TRANS_ID)
79509 WHEN 46 THEN TO_CHAR(l1.PO_SECOND_DIST_ID)
79510 WHEN 47 THEN TO_CHAR(l1.ENC_ACCT_ENABLED)
79511 WHEN 48 THEN TO_CHAR(l1.LIQUIDATE_ENCUM_FLAG)
79512
79513 ELSE null
79514 END source_value
79515 , CASE r
79516 WHEN 3 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
79517 103371
79518 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
79519 ,'ALLOW_OVERRIDE_CCID_FLAG'
79520 ,'S'
79521 ,275)
79522 WHEN 16 THEN fvl34.meaning
79523 WHEN 31 THEN fvl70.meaning
79524
79525 ELSE null
79526 END source_meaning
79527 FROM xla_events_gt xet
79528 , PA_XLA_CDL_LINES_V l1
79529 , fnd_lookup_values fvl34
79530 , fnd_lookup_values fvl70
79531 , (select rownum r from all_objects where rownum <= 48 and owner = p_apps_owner)
79532 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
79533 AND xet.event_class_code = C_EVENT_CLASS_CODE
79534 AND l1.event_id = xet.event_id
79535 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
79536 AND fvl34.lookup_code(+) = l1.LINE_TYPE
79537 AND fvl34.view_application_id(+) = 275
79538 AND fvl34.language(+) = USERENV('LANG')
79539 AND fvl70.lookup_type(+) = 'FC_DOC_TYPE'
79540 AND fvl70.lookup_code(+) = l1.DOCUMENT_TYPE
79541 AND fvl70.view_application_id(+) = 275
79542 AND fvl70.language(+) = USERENV('LANG')
79543
79544 )
79545 ;
79546 --
79547 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79548
79549 trace
79550 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
79551 ,p_level => C_LEVEL_STATEMENT
79552 ,p_module => l_log_module);
79553
79554 END IF;
79555
79556
79557 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79558 trace
79559 (p_msg => 'END of insert_sources_127'
79560 ,p_level => C_LEVEL_PROCEDURE
79561 ,p_module => l_log_module);
79562 END IF;
79563 EXCEPTION
79564 WHEN xla_exceptions_pkg.application_exception THEN
79565 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
79566 trace
79567 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
79568 ,p_level => C_LEVEL_EXCEPTION
79569 ,p_module => l_log_module);
79570 END IF;
79571 RAISE;
79572 WHEN OTHERS THEN
79573 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
79574 trace
79575 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
79576 ,p_level => C_LEVEL_EXCEPTION
79577 ,p_module => l_log_module);
79578 END IF;
79579 xla_exceptions_pkg.raise_message
79580 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_127');
79581 END insert_sources_127;
79582 --
79583
79584 ---------------------------------------
79585 --
79586 -- PRIVATE FUNCTION
79587 -- EventClass_127
79588 --
79589 ----------------------------------------
79590 --
79591 FUNCTION EventClass_127
79592 (p_application_id IN NUMBER
79593 ,p_base_ledger_id IN NUMBER
79594 ,p_target_ledger_id IN NUMBER
79595 ,p_language IN VARCHAR2
79596 ,p_currency_code IN VARCHAR2
79597 ,p_sla_ledger_id IN NUMBER
79598 ,p_pad_start_date IN DATE
79599 ,p_pad_end_date IN DATE
79600 ,p_primary_ledger_id IN NUMBER)
79601 RETURN BOOLEAN IS
79602 --
79603 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ_ALL';
79604 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ';
79605
79606 l_calculate_acctd_flag VARCHAR2(1) :='N';
79610 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79607 l_calculate_g_l_flag VARCHAR2(1) :='N';
79608 --
79609 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79611 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79612 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79613 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79614 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79615 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79616 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79617 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79618 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79619 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79620 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79621 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79622 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79623 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79624 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79625 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79626 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79627 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79628 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79629 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79630 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79631 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
79632 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79633
79634 l_event_id NUMBER;
79635 l_previous_event_id NUMBER;
79636 l_first_event_id NUMBER;
79637 l_last_event_id NUMBER;
79638
79639 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
79640 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
79641 --
79642 --
79643 l_result BOOLEAN := TRUE;
79644 l_rows NUMBER := 1000;
79645 l_event_type_name VARCHAR2(80) := 'All';
79646 l_event_class_name VARCHAR2(80) := 'Total Burdened Cost Adjustment';
79647 l_description VARCHAR2(4000);
79648 l_transaction_reversal NUMBER;
79649 l_ae_header_id NUMBER;
79650 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
79651 l_log_module VARCHAR2(240);
79652 --
79653 l_acct_reversal_source VARCHAR2(30);
79654 l_trx_reversal_source VARCHAR2(30);
79655
79656 l_continue_with_lines BOOLEAN := TRUE;
79657 --
79658 l_acc_rev_gl_date_source DATE; -- 4262811
79659 --
79660 type t_array_event_id is table of number index by binary_integer;
79661
79662 l_rec_array_event t_rec_array_event;
79663 l_null_rec_array_event t_rec_array_event;
79664 l_array_ae_header_id xla_number_array_type;
79665 l_actual_flag VARCHAR2(1) := NULL;
79666 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
79667 l_balance_type_code VARCHAR2(1) :=NULL;
79668 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
79669
79670 --
79671 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
79672 --
79673
79674 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
79675 TYPE t_array_source_37 IS TABLE OF PA_XLA_EXP_HEADER_V.SYSTEM_LINKAGE_FUNCTION%TYPE INDEX BY BINARY_INTEGER;
79676 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
79677
79678 TYPE t_array_source_2 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
79679 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
79680 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
79681 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
79682 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
79683 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
79684 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
79685 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
79686 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
79687 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
79688 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
79689 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
79690 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
79691 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
79692 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
79693 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
79694 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
79695 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
79696 TYPE t_array_source_45 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
79700 TYPE t_array_source_49 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
79697 TYPE t_array_source_46 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
79698 TYPE t_array_source_47 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
79699 TYPE t_array_source_48 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79701 TYPE t_array_source_50 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79702 TYPE t_array_source_51 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
79703 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79704 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
79705 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
79706 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
79707 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
79708 TYPE t_array_source_70 IS TABLE OF PA_XLA_CDL_LINES_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
79709 TYPE t_array_source_71 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_JE_LINES_REVERSED_FLAG%TYPE INDEX BY BINARY_INTEGER;
79710 TYPE t_array_source_72 IS TABLE OF PA_XLA_CDL_LINES_V.PO_RELEASE_ID%TYPE INDEX BY BINARY_INTEGER;
79711 TYPE t_array_source_73 IS TABLE OF PA_XLA_CDL_LINES_V.CWK_RATE_BASED_TC_FLAG%TYPE INDEX BY BINARY_INTEGER;
79712 TYPE t_array_source_74 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
79713 TYPE t_array_source_75 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79714 TYPE t_array_source_76 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
79715 TYPE t_array_source_77 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79716 TYPE t_array_source_78 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
79717 TYPE t_array_source_79 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79718 TYPE t_array_source_80 IS TABLE OF PA_XLA_CDL_LINES_V.PO_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
79719 TYPE t_array_source_81 IS TABLE OF PA_XLA_CDL_LINES_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79720 TYPE t_array_source_82 IS TABLE OF PA_XLA_CDL_LINES_V.PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
79721 TYPE t_array_source_83 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79722 TYPE t_array_source_84 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
79723 TYPE t_array_source_85 IS TABLE OF PA_XLA_CDL_LINES_V.PO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79724 TYPE t_array_source_86 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_ACCT_ENABLED%TYPE INDEX BY BINARY_INTEGER;
79725 TYPE t_array_source_87 IS TABLE OF PA_XLA_CDL_LINES_V.LIQUIDATE_ENCUM_FLAG%TYPE INDEX BY BINARY_INTEGER;
79726
79727 l_array_source_32 t_array_source_32;
79728 l_array_source_37 t_array_source_37;
79729 l_array_source_88 t_array_source_88;
79730
79731 l_array_source_2 t_array_source_2;
79732 l_array_source_3 t_array_source_3;
79733 l_array_source_4 t_array_source_4;
79734 l_array_source_5 t_array_source_5;
79735 l_array_source_6 t_array_source_6;
79736 l_array_source_7 t_array_source_7;
79737 l_array_source_22 t_array_source_22;
79738 l_array_source_23 t_array_source_23;
79739 l_array_source_25 t_array_source_25;
79740 l_array_source_27 t_array_source_27;
79741 l_array_source_28 t_array_source_28;
79742 l_array_source_29 t_array_source_29;
79743 l_array_source_30 t_array_source_30;
79744 l_array_source_31 t_array_source_31;
79745 l_array_source_33 t_array_source_33;
79746 l_array_source_34 t_array_source_34;
79747 l_array_source_34_meaning t_array_lookup_meaning;
79748 l_array_source_35 t_array_source_35;
79749 l_array_source_44 t_array_source_44;
79750 l_array_source_45 t_array_source_45;
79751 l_array_source_46 t_array_source_46;
79752 l_array_source_47 t_array_source_47;
79753 l_array_source_48 t_array_source_48;
79754 l_array_source_49 t_array_source_49;
79755 l_array_source_50 t_array_source_50;
79756 l_array_source_51 t_array_source_51;
79757 l_array_source_52 t_array_source_52;
79758 l_array_source_54 t_array_source_54;
79759 l_array_source_55 t_array_source_55;
79760 l_array_source_56 t_array_source_56;
79761 l_array_source_57 t_array_source_57;
79762 l_array_source_70 t_array_source_70;
79763 l_array_source_70_meaning t_array_lookup_meaning;
79764 l_array_source_71 t_array_source_71;
79765 l_array_source_72 t_array_source_72;
79766 l_array_source_73 t_array_source_73;
79767 l_array_source_74 t_array_source_74;
79768 l_array_source_75 t_array_source_75;
79769 l_array_source_76 t_array_source_76;
79770 l_array_source_77 t_array_source_77;
79771 l_array_source_78 t_array_source_78;
79772 l_array_source_79 t_array_source_79;
79773 l_array_source_80 t_array_source_80;
79774 l_array_source_81 t_array_source_81;
79775 l_array_source_82 t_array_source_82;
79776 l_array_source_83 t_array_source_83;
79777 l_array_source_84 t_array_source_84;
79778 l_array_source_85 t_array_source_85;
79779 l_array_source_86 t_array_source_86;
79780 l_array_source_87 t_array_source_87;
79781
79782 --
79783 CURSOR header_cur
79784 IS
79785 SELECT /*+ leading(xet) cardinality(xet,1) */
79786 -- Event Class Code: TOT_BURDENED_COST_ADJ
79787 xet.entity_id
79788 ,xet.legal_entity_id
79789 ,xet.entity_code
79790 ,xet.transaction_number
79791 ,xet.event_id
79792 ,xet.event_class_code
79793 ,xet.event_type_code
79794 ,xet.event_number
79795 ,xet.event_date
79796 ,xet.transaction_date
79797 ,xet.reference_num_1
79801 ,xet.reference_char_1
79798 ,xet.reference_num_2
79799 ,xet.reference_num_3
79800 ,xet.reference_num_4
79802 ,xet.reference_char_2
79803 ,xet.reference_char_3
79804 ,xet.reference_char_4
79805 ,xet.reference_date_1
79806 ,xet.reference_date_2
79807 ,xet.reference_date_3
79808 ,xet.reference_date_4
79809 ,xet.event_created_by
79810 ,xet.budgetary_control_flag
79811 , h2.EXPENDITURE_ITEM_ID source_32
79812 , h2.SYSTEM_LINKAGE_FUNCTION source_37
79813 , h2.GL_DATE source_88
79814 FROM xla_events_gt xet
79815 , PA_XLA_EXP_HEADER_V h2
79816 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
79817 and xet.event_class_code = C_EVENT_CLASS_CODE
79818 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
79819
79820 ORDER BY event_id
79821 ;
79822
79823
79824 --
79825 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
79826 IS
79827 SELECT /*+ leading(xet) cardinality(xet,1) */
79828 -- Event Class Code: TOT_BURDENED_COST_ADJ
79829 xet.entity_id
79830 ,xet.legal_entity_id
79831 ,xet.entity_code
79832 ,xet.transaction_number
79833 ,xet.event_id
79834 ,xet.event_class_code
79835 ,xet.event_type_code
79836 ,xet.event_number
79837 ,xet.event_date
79838 ,xet.transaction_date
79839 ,xet.reference_num_1
79840 ,xet.reference_num_2
79841 ,xet.reference_num_3
79842 ,xet.reference_num_4
79843 ,xet.reference_char_1
79844 ,xet.reference_char_2
79845 ,xet.reference_char_3
79846 ,xet.reference_char_4
79847 ,xet.reference_date_1
79848 ,xet.reference_date_2
79849 ,xet.reference_date_3
79850 ,xet.reference_date_4
79851 ,xet.event_created_by
79852 ,xet.budgetary_control_flag
79853 , l1.LINE_NUMBER
79854 , l1.BUDGET_CCID source_2
79855 , l1.COST_CCID source_3
79856 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
79857 , l1.ADJ_COST_CCID source_5
79858 , l1.COST_CLEARING_CCID source_6
79859 , l1.ADJ_COST_CLEARING_CCID source_7
79860 , l1.REVERSING_LINE_FLAG source_22
79861 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
79862 , l1.ENTERED_CURRENCY_CODE source_25
79863 , l1.EXCHANGE_RATE_DATE source_27
79864 , l1.EXCHANGE_RATE source_28
79865 , l1.EXCHANGE_RATE_TYPE source_29
79866 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
79867 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
79868 , l1.LINE_NUMBER source_33
79869 , l1.LINE_TYPE source_34
79870 , fvl34.meaning source_34_meaning
79871 , l1.LINE_NUM_REVERSED source_35
79872 , l1.ENTERED_BURDENED_COST source_44
79873 , l1.ACCT_BURDENED_COST source_45
79874 , l1.ENCUMBRANCE_AMOUNT source_46
79875 , l1.PA_APPLICATION_ID source_47
79876 , l1.PA_DISTRIBUTION_TYPE source_48
79877 , l1.PA_ENTITY_CODE source_49
79878 , l1.PA_FIRST_DIST_ID source_50
79879 , l1.PA_FIRST_SYS_TRANS_ID source_51
79880 , l1.PA_SECOND_DIST_ID source_52
79881 , l1.ENC_UPG_CR_ACCT_CLASS source_54
79882 , l1.USE_ENC_UPG_ATTRIB_FLAG source_55
79883 , l1.ENCUMBRANCE_TYPE_ID source_56
79884 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_57
79885 , l1.DOCUMENT_TYPE source_70
79886 , fvl70.meaning source_70_meaning
79887 , l1.ENC_JE_LINES_REVERSED_FLAG source_71
79888 , l1.PO_RELEASE_ID source_72
79889 , l1.CWK_RATE_BASED_TC_FLAG source_73
79890 , l1.INVOICE_APPLICATION_ID source_74
79891 , l1.INVOICE_DISTRIBUTION_TYPE source_75
79892 , l1.INVOICE_ENTITY_CODE source_76
79893 , l1.INVOICE_FIRST_DIST_ID source_77
79894 , l1.INVOICE_FIRST_SYS_TRANS_ID source_78
79895 , l1.INVOICE_SECOND_DIST_ID source_79
79896 , l1.PO_APPLICATION_ID source_80
79897 , l1.PO_DISTRIBUTION_TYPE source_81
79898 , l1.PO_ENTITY_CODE source_82
79899 , l1.PO_FIRST_DIST_ID source_83
79900 , l1.PO_FIRST_SYS_TRANS_ID source_84
79901 , l1.PO_SECOND_DIST_ID source_85
79902 , l1.ENC_ACCT_ENABLED source_86
79903 , l1.LIQUIDATE_ENCUM_FLAG source_87
79904 FROM xla_events_gt xet
79905 , PA_XLA_CDL_LINES_V l1
79906 , fnd_lookup_values fvl34
79907 , fnd_lookup_values fvl70
79908 WHERE xet.event_id between x_first_event_id and x_last_event_id
79909 and xet.event_date between p_pad_start_date and p_pad_end_date
79910 and xet.event_class_code = C_EVENT_CLASS_CODE
79911 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
79912 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
79913 AND fvl34.lookup_code(+) = l1.LINE_TYPE
79914 AND fvl34.view_application_id(+) = 275
79915 AND fvl34.language(+) = USERENV('LANG')
79916 AND fvl70.lookup_type(+) = 'FC_DOC_TYPE'
79917 AND fvl70.lookup_code(+) = l1.DOCUMENT_TYPE
79918 AND fvl70.view_application_id(+) = 275
79919 AND fvl70.language(+) = USERENV('LANG')
79920 ;
79921
79922 --
79923 BEGIN
79924 IF g_log_enabled THEN
79925 l_log_module := C_DEFAULT_MODULE||'.EventClass_127';
79926 END IF;
79927 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79928 trace
79929 (p_msg => 'BEGIN of EventClass_127'
79930 ,p_level => C_LEVEL_PROCEDURE
79931 ,p_module => l_log_module);
79932 END IF;
79933
79934 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79935 trace
79936 (p_msg => 'p_application_id = '||p_application_id||
79937 ' - p_base_ledger_id = '||p_base_ledger_id||
79938 ' - p_target_ledger_id = '||p_target_ledger_id||
79939 ' - p_language = '||p_language||
79940 ' - p_currency_code = '||p_currency_code||
79941 ' - p_sla_ledger_id = '||p_sla_ledger_id
79945 --
79942 ,p_level => C_LEVEL_STATEMENT
79943 ,p_module => l_log_module);
79944 END IF;
79946 -- initialze arrays
79947 --
79948 g_array_event.DELETE;
79949 l_rec_array_event := l_null_rec_array_event;
79950 --
79951 --------------------------------------
79952 -- 4262811 Initialze MPA Line Number
79953 --------------------------------------
79954 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
79955
79956 --
79957
79958 --
79959 OPEN header_cur;
79960 --
79961 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79962 trace
79963 (p_msg => 'SQL - FETCH header_cur'
79964 ,p_level => C_LEVEL_STATEMENT
79965 ,p_module => l_log_module);
79966 END IF;
79967 --
79968 LOOP
79969 FETCH header_cur BULK COLLECT INTO
79970 l_array_entity_id
79971 , l_array_legal_entity_id
79972 , l_array_entity_code
79973 , l_array_transaction_num
79974 , l_array_event_id
79975 , l_array_class_code
79976 , l_array_event_type
79977 , l_array_event_number
79978 , l_array_event_date
79979 , l_array_transaction_date
79980 , l_array_reference_num_1
79981 , l_array_reference_num_2
79982 , l_array_reference_num_3
79983 , l_array_reference_num_4
79984 , l_array_reference_char_1
79985 , l_array_reference_char_2
79986 , l_array_reference_char_3
79987 , l_array_reference_char_4
79988 , l_array_reference_date_1
79989 , l_array_reference_date_2
79990 , l_array_reference_date_3
79991 , l_array_reference_date_4
79992 , l_array_event_created_by
79993 , l_array_budgetary_control_flag
79994 , l_array_source_32
79995 , l_array_source_37
79996 , l_array_source_88
79997 LIMIT l_rows;
79998 --
79999 IF (C_LEVEL_EVENT >= g_log_level) THEN
80000 trace
80001 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
80002 ,p_level => C_LEVEL_EVENT
80003 ,p_module => l_log_module);
80004 END IF;
80005 --
80006 EXIT WHEN l_array_entity_id.COUNT = 0;
80007
80008 -- initialize arrays
80009 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
80010 XLA_AE_LINES_PKG.g_rec_lines := NULL;
80011
80012 --
80013 -- Bug 4458708
80014 --
80015 XLA_AE_LINES_PKG.g_LineNumber := 0;
80016
80017
80018 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
80019 g_last_hdr_idx := l_array_event_id.LAST;
80020 --
80021 -- loop for the headers. Each iteration is for each header extract row
80022 -- fetched in header cursor
80023 --
80024 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
80025
80026 --
80027 -- set event info as cache for other routines to refer event attributes
80028 --
80029 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
80030 (p_application_id => p_application_id
80031 ,p_primary_ledger_id => p_primary_ledger_id
80032 ,p_base_ledger_id => p_base_ledger_id
80033 ,p_target_ledger_id => p_target_ledger_id
80034 ,p_entity_id => l_array_entity_id(hdr_idx)
80035 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
80036 ,p_entity_code => l_array_entity_code(hdr_idx)
80037 ,p_transaction_num => l_array_transaction_num(hdr_idx)
80038 ,p_event_id => l_array_event_id(hdr_idx)
80039 ,p_event_class_code => l_array_class_code(hdr_idx)
80040 ,p_event_type_code => l_array_event_type(hdr_idx)
80041 ,p_event_number => l_array_event_number(hdr_idx)
80042 ,p_event_date => l_array_event_date(hdr_idx)
80043 ,p_transaction_date => l_array_transaction_date(hdr_idx)
80044 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
80045 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
80046 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
80047 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
80048 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
80049 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
80050 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
80051 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
80052 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
80053 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
80054 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
80055 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
80056 ,p_event_created_by => l_array_event_created_by(hdr_idx)
80057 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
80058
80059 --
80060 -- set the status of entry to C_VALID (0)
80061 --
80062 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
80063
80064 --
80065 -- initialize a row for ae header
80066 --
80067 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
80068
80069 l_event_id := l_array_event_id(hdr_idx);
80070
80071 --
80072 -- storing the hdr_idx for event. May be used by line cursor.
80073 --
80074 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
80075
80076 --
80077 -- store sources from header extract. This can be improved to
80078 -- store only those sources from header extract that may be used in lines
80079 --
80080
80081 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
80082 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
80083 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
80084
80085 --
80089 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80086 -- initilaize the status of ae headers for diffrent balance types
80087 -- the status is initialised to C_NOT_CREATED (2)
80088 --
80090 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80091 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
80092
80093 --
80094 -- call api to validate and store accounting attributes for header
80095 --
80096
80097 ------------------------------------------------------------
80098 -- Accrual Reversal : to get date for Standard Source (NONE)
80099 ------------------------------------------------------------
80100 l_acc_rev_gl_date_source := NULL;
80101
80102 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
80103 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
80104
80105
80106 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
80107
80108 XLA_AE_HEADER_PKG.SetJeCategoryName;
80109
80110 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
80111 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
80112 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
80113 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
80114 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
80115
80116
80117 -- No header level analytical criteria
80118
80119 --
80120 --accounting attribute enhancement, bug 3612931
80121 --
80122 l_trx_reversal_source := SUBSTR(NULL, 1,30);
80123
80124 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
80125 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
80126
80127 xla_accounting_err_pkg.build_message
80128 (p_appli_s_name => 'XLA'
80129 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
80130 ,p_token_1 => 'ACCT_ATTR_NAME'
80131 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
80132 ,p_token_2 => 'PRODUCT_NAME'
80133 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
80134 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
80135 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80136 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
80137
80138 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
80139 --
80140 -- following sets the accounting attributes needed to reverse
80141 -- accounting for a distributeion
80142 --
80143 xla_ae_lines_pkg.SetTrxReversalAttrs
80144 (p_event_id => l_event_id
80145 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
80146 ,p_trx_reversal_source => l_trx_reversal_source);
80147
80148 END IF;
80149
80150
80151 ----------------------------------------------------------------
80152 -- 4262811 - update the header statuses to invalid in need be
80153 ----------------------------------------------------------------
80154 --
80155 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
80156
80157
80158 -----------------------------------------------
80159 -- No accrual reversal for the event class/type
80160 -----------------------------------------------
80161 ----------------------------------------------------------------
80162
80163 --
80164 -- this ends the header loop iteration for one bulk fetch
80165 --
80166 END LOOP;
80167
80168 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
80169 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
80170
80171 --
80172 -- insert dummy rows into lines gt table that were created due to
80173 -- transaction reversals
80174 --
80175 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
80176 l_result := XLA_AE_LINES_PKG.InsertLines;
80177 END IF;
80178
80179 --
80180 -- reset the temp_line_num for each set of events fetched from header
80181 -- cursor rather than doing it for each new event in line cursor
80182 -- Bug 3939231
80183 --
80184 xla_ae_lines_pkg.g_temp_line_num := 0;
80185
80186
80187
80188 --
80189 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
80190 --
80191 --
80192 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80193
80194 trace
80195 (p_msg => 'SQL - FETCH line_cur'
80196 ,p_level => C_LEVEL_STATEMENT
80197 ,p_module => l_log_module);
80198
80199 END IF;
80200 --
80201 --
80202 LOOP
80203 --
80204 FETCH line_cur BULK COLLECT INTO
80205 l_array_entity_id
80206 , l_array_legal_entity_id
80207 , l_array_entity_code
80208 , l_array_transaction_num
80209 , l_array_event_id
80210 , l_array_class_code
80211 , l_array_event_type
80212 , l_array_event_number
80213 , l_array_event_date
80214 , l_array_transaction_date
80215 , l_array_reference_num_1
80216 , l_array_reference_num_2
80217 , l_array_reference_num_3
80218 , l_array_reference_num_4
80219 , l_array_reference_char_1
80220 , l_array_reference_char_2
80221 , l_array_reference_char_3
80222 , l_array_reference_char_4
80223 , l_array_reference_date_1
80224 , l_array_reference_date_2
80225 , l_array_reference_date_3
80226 , l_array_reference_date_4
80230 , l_array_source_2
80227 , l_array_event_created_by
80228 , l_array_budgetary_control_flag
80229 , l_array_extract_line_num
80231 , l_array_source_3
80232 , l_array_source_4
80233 , l_array_source_5
80234 , l_array_source_6
80235 , l_array_source_7
80236 , l_array_source_22
80237 , l_array_source_23
80238 , l_array_source_25
80239 , l_array_source_27
80240 , l_array_source_28
80241 , l_array_source_29
80242 , l_array_source_30
80243 , l_array_source_31
80244 , l_array_source_33
80245 , l_array_source_34
80246 , l_array_source_34_meaning
80247 , l_array_source_35
80248 , l_array_source_44
80249 , l_array_source_45
80250 , l_array_source_46
80251 , l_array_source_47
80252 , l_array_source_48
80253 , l_array_source_49
80254 , l_array_source_50
80255 , l_array_source_51
80256 , l_array_source_52
80257 , l_array_source_54
80258 , l_array_source_55
80259 , l_array_source_56
80260 , l_array_source_57
80261 , l_array_source_70
80262 , l_array_source_70_meaning
80263 , l_array_source_71
80264 , l_array_source_72
80265 , l_array_source_73
80266 , l_array_source_74
80267 , l_array_source_75
80268 , l_array_source_76
80269 , l_array_source_77
80270 , l_array_source_78
80271 , l_array_source_79
80272 , l_array_source_80
80273 , l_array_source_81
80274 , l_array_source_82
80275 , l_array_source_83
80276 , l_array_source_84
80277 , l_array_source_85
80278 , l_array_source_86
80279 , l_array_source_87
80280 LIMIT l_rows;
80281
80282 --
80283 IF (C_LEVEL_EVENT >= g_log_level) THEN
80284 trace
80285 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
80286 ,p_level => C_LEVEL_EVENT
80287 ,p_module => l_log_module);
80288 END IF;
80289 --
80290 EXIT WHEN l_array_entity_id.count = 0;
80291
80292 XLA_AE_LINES_PKG.g_rec_lines := null;
80293
80294 --
80295 -- Bug 4458708
80296 --
80297 XLA_AE_LINES_PKG.g_LineNumber := 0;
80298 --
80299 --
80300
80301 FOR Idx IN 1..l_array_event_id.count LOOP
80302 --
80303 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
80304 --
80305 l_event_id := l_array_event_id(idx); -- 5648433
80306
80307 --
80308 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
80309 --
80310
80311 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
80312 (g_array_event(l_event_id).array_value_num('header_index'))
80313 ,'N'
80314 ) <> 'Y'
80315 THEN
80316 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80317 trace
80318 (p_msg => 'Trancaction revesal option is not Y '
80319 ,p_level => C_LEVEL_STATEMENT
80320 ,p_module => l_log_module);
80321 END IF;
80322
80323 --
80324 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
80325 --
80326 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
80327 --
80328 -- set event info as cache for other routines to refer event attributes
80329 --
80330
80331 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
80332 l_previous_event_id := l_event_id;
80333
80334 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
80335 (p_application_id => p_application_id
80336 ,p_primary_ledger_id => p_primary_ledger_id
80337 ,p_base_ledger_id => p_base_ledger_id
80338 ,p_target_ledger_id => p_target_ledger_id
80339 ,p_entity_id => l_array_entity_id(Idx)
80340 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
80341 ,p_entity_code => l_array_entity_code(Idx)
80342 ,p_transaction_num => l_array_transaction_num(Idx)
80343 ,p_event_id => l_array_event_id(Idx)
80344 ,p_event_class_code => l_array_class_code(Idx)
80345 ,p_event_type_code => l_array_event_type(Idx)
80346 ,p_event_number => l_array_event_number(Idx)
80347 ,p_event_date => l_array_event_date(Idx)
80348 ,p_transaction_date => l_array_transaction_date(Idx)
80349 ,p_reference_num_1 => l_array_reference_num_1(Idx)
80350 ,p_reference_num_2 => l_array_reference_num_2(Idx)
80351 ,p_reference_num_3 => l_array_reference_num_3(Idx)
80352 ,p_reference_num_4 => l_array_reference_num_4(Idx)
80353 ,p_reference_char_1 => l_array_reference_char_1(Idx)
80354 ,p_reference_char_2 => l_array_reference_char_2(Idx)
80355 ,p_reference_char_3 => l_array_reference_char_3(Idx)
80356 ,p_reference_char_4 => l_array_reference_char_4(Idx)
80357 ,p_reference_date_1 => l_array_reference_date_1(Idx)
80358 ,p_reference_date_2 => l_array_reference_date_2(Idx)
80359 ,p_reference_date_3 => l_array_reference_date_3(Idx)
80360 ,p_reference_date_4 => l_array_reference_date_4(Idx)
80361 ,p_event_created_by => l_array_event_created_by(Idx)
80362 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
80363 --
80364 END IF;
80365
80366
80367
80368 --
80369 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
80370
80371 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
80372
80373 IF l_continue_with_lines THEN
80377 xla_accounting_err_pkg.build_message
80374 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
80375 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
80376
80378 (p_appli_s_name => 'XLA'
80379 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
80380 ,p_token_1 => 'LINE_NUMBER'
80381 ,p_value_1 => l_array_extract_line_num(Idx)
80382 ,p_token_2 => 'PRODUCT_NAME'
80383 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
80384 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
80385 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80386 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
80387
80388 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
80389 --
80390 -- following sets the accounting attributes needed to reverse
80391 -- accounting for a distributeion
80392 --
80393
80394 --
80395 -- 5217187
80396 --
80397 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
80398 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
80399 g_array_event(l_event_id).array_value_num('header_index'));
80400 --
80401 --
80402
80403 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
80404 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
80405 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
80406 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
80407 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
80408 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
80409 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
80410 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_44(Idx);
80411 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
80412 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
80413 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
80414 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_45(Idx);
80415 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
80416 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
80417 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
80418 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
80419 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
80420 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
80421 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
80422 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
80423 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
80424 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
80425 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
80426 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_44(Idx);
80427 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
80428 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
80429 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
80430 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_45(Idx);
80431 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
80432 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
80433 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
80434 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
80435 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
80436 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
80437 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
80438 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
80439 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
80440 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
80441 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
80442 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
80443 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
80444 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
80445 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ACCT_CLASS';
80446 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_54(Idx);
80447 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_CCID';
80448 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_2(Idx);
80449 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_AMT';
80450 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_46(Idx);
80451 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_ENTERED_CURR';
80452 l_rec_rev_acct_attrs.array_char_value(26) :=
80453 xla_ae_sources_pkg.GetSystemSourceChar(
80454 p_source_code => 'XLA_CURRENCY_CODE'
80455 , p_source_type_code => 'Y'
80456 , p_source_application_id => 602
80457 );
80458 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_DR_LEDGER_AMT';
80459 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_46(Idx);
80460 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_OPTION';
80461 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_55(Idx);
80462 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
80466 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
80463 l_rec_rev_acct_attrs.array_num_value(29) := g_array_event(l_event_id).array_value_num('source_32');
80464 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID2';
80465 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_35(Idx);
80467 l_rec_rev_acct_attrs.array_char_value(31) := l_array_source_34(Idx);
80468 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'UPG_CR_ENC_TYPE_ID';
80469 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_56(Idx);
80470 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'UPG_DR_ENC_TYPE_ID';
80471 l_rec_rev_acct_attrs.array_num_value(33) := l_array_source_57(Idx);
80472
80473
80474 xla_ae_lines_pkg.SetAcctReversalAttrs
80475 (p_event_id => l_event_id
80476 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
80477 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80478 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
80479 END IF;
80480
80481 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
80482 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
80483
80484 --
80485 AcctLineType_79 (
80486 p_application_id => p_application_id
80487 ,p_event_id => l_event_id
80488 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80489 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80490 ,p_actual_flag => l_actual_flag
80491 ,p_balance_type_code => l_balance_type_code
80492 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80493
80494 , p_source_2 => l_array_source_2(Idx)
80495 , p_source_3 => l_array_source_3(Idx)
80496 , p_source_4 => l_array_source_4(Idx)
80497 , p_source_5 => l_array_source_5(Idx)
80498 , p_source_6 => l_array_source_6(Idx)
80499 , p_source_22 => l_array_source_22(Idx)
80500 , p_source_23 => l_array_source_23(Idx)
80501 , p_source_25 => l_array_source_25(Idx)
80502 , p_source_27 => l_array_source_27(Idx)
80503 , p_source_28 => l_array_source_28(Idx)
80504 , p_source_29 => l_array_source_29(Idx)
80505 , p_source_30 => l_array_source_30(Idx)
80506 , p_source_31 => l_array_source_31(Idx)
80507 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80508 , p_source_33 => l_array_source_33(Idx)
80509 , p_source_34 => l_array_source_34(Idx)
80510 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80511 , p_source_35 => l_array_source_35(Idx)
80512 , p_source_44 => l_array_source_44(Idx)
80513 , p_source_45 => l_array_source_45(Idx)
80514 , p_source_46 => l_array_source_46(Idx)
80515 , p_source_47 => l_array_source_47(Idx)
80516 , p_source_48 => l_array_source_48(Idx)
80517 , p_source_49 => l_array_source_49(Idx)
80518 , p_source_50 => l_array_source_50(Idx)
80519 , p_source_51 => l_array_source_51(Idx)
80520 , p_source_52 => l_array_source_52(Idx)
80521 , p_source_54 => l_array_source_54(Idx)
80522 , p_source_55 => l_array_source_55(Idx)
80523 , p_source_56 => l_array_source_56(Idx)
80524 , p_source_57 => l_array_source_57(Idx)
80525 );
80526 If(l_balance_type_code = 'A') THEN
80527 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80528 END IF;
80529
80530 --
80531
80532
80533 --
80534 AcctLineType_81 (
80535 p_application_id => p_application_id
80536 ,p_event_id => l_event_id
80537 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80538 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80539 ,p_actual_flag => l_actual_flag
80540 ,p_balance_type_code => l_balance_type_code
80541 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80542
80543 , p_source_2 => l_array_source_2(Idx)
80544 , p_source_3 => l_array_source_3(Idx)
80545 , p_source_4 => l_array_source_4(Idx)
80546 , p_source_6 => l_array_source_6(Idx)
80547 , p_source_7 => l_array_source_7(Idx)
80548 , p_source_22 => l_array_source_22(Idx)
80549 , p_source_23 => l_array_source_23(Idx)
80550 , p_source_25 => l_array_source_25(Idx)
80551 , p_source_27 => l_array_source_27(Idx)
80552 , p_source_28 => l_array_source_28(Idx)
80553 , p_source_29 => l_array_source_29(Idx)
80554 , p_source_30 => l_array_source_30(Idx)
80555 , p_source_31 => l_array_source_31(Idx)
80556 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80557 , p_source_33 => l_array_source_33(Idx)
80558 , p_source_34 => l_array_source_34(Idx)
80559 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80560 , p_source_35 => l_array_source_35(Idx)
80561 , p_source_44 => l_array_source_44(Idx)
80562 , p_source_45 => l_array_source_45(Idx)
80563 , p_source_46 => l_array_source_46(Idx)
80564 , p_source_47 => l_array_source_47(Idx)
80565 , p_source_48 => l_array_source_48(Idx)
80566 , p_source_49 => l_array_source_49(Idx)
80567 , p_source_50 => l_array_source_50(Idx)
80568 , p_source_51 => l_array_source_51(Idx)
80569 , p_source_52 => l_array_source_52(Idx)
80570 , p_source_54 => l_array_source_54(Idx)
80571 , p_source_55 => l_array_source_55(Idx)
80572 , p_source_56 => l_array_source_56(Idx)
80573 , p_source_57 => l_array_source_57(Idx)
80574 );
80575 If(l_balance_type_code = 'A') THEN
80576 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80577 END IF;
80578
80579 --
80580
80581
80582 --
80583 AcctLineType_89 (
80584 p_application_id => p_application_id
80585 ,p_event_id => l_event_id
80586 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80587 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80588 ,p_actual_flag => l_actual_flag
80589 ,p_balance_type_code => l_balance_type_code
80590 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80591
80592 , p_source_2 => l_array_source_2(Idx)
80593 , p_source_3 => l_array_source_3(Idx)
80594 , p_source_6 => l_array_source_6(Idx)
80595 , p_source_22 => l_array_source_22(Idx)
80596 , p_source_23 => l_array_source_23(Idx)
80597 , p_source_25 => l_array_source_25(Idx)
80601 , p_source_30 => l_array_source_30(Idx)
80598 , p_source_27 => l_array_source_27(Idx)
80599 , p_source_28 => l_array_source_28(Idx)
80600 , p_source_29 => l_array_source_29(Idx)
80602 , p_source_31 => l_array_source_31(Idx)
80603 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80604 , p_source_33 => l_array_source_33(Idx)
80605 , p_source_34 => l_array_source_34(Idx)
80606 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80607 , p_source_35 => l_array_source_35(Idx)
80608 , p_source_44 => l_array_source_44(Idx)
80609 , p_source_45 => l_array_source_45(Idx)
80610 , p_source_46 => l_array_source_46(Idx)
80611 , p_source_47 => l_array_source_47(Idx)
80612 , p_source_48 => l_array_source_48(Idx)
80613 , p_source_49 => l_array_source_49(Idx)
80614 , p_source_50 => l_array_source_50(Idx)
80615 , p_source_51 => l_array_source_51(Idx)
80616 , p_source_52 => l_array_source_52(Idx)
80617 , p_source_54 => l_array_source_54(Idx)
80618 , p_source_55 => l_array_source_55(Idx)
80619 , p_source_56 => l_array_source_56(Idx)
80620 , p_source_57 => l_array_source_57(Idx)
80621 );
80622 If(l_balance_type_code = 'A') THEN
80623 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80624 END IF;
80625
80626 --
80627
80628
80629 --
80630 AcctLineType_92 (
80631 p_application_id => p_application_id
80632 ,p_event_id => l_event_id
80633 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80634 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80635 ,p_actual_flag => l_actual_flag
80636 ,p_balance_type_code => l_balance_type_code
80637 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80638
80639 , p_source_2 => l_array_source_2(Idx)
80640 , p_source_3 => l_array_source_3(Idx)
80641 , p_source_6 => l_array_source_6(Idx)
80642 , p_source_22 => l_array_source_22(Idx)
80643 , p_source_23 => l_array_source_23(Idx)
80644 , p_source_25 => l_array_source_25(Idx)
80645 , p_source_27 => l_array_source_27(Idx)
80646 , p_source_28 => l_array_source_28(Idx)
80647 , p_source_29 => l_array_source_29(Idx)
80648 , p_source_30 => l_array_source_30(Idx)
80649 , p_source_31 => l_array_source_31(Idx)
80650 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80651 , p_source_33 => l_array_source_33(Idx)
80652 , p_source_34 => l_array_source_34(Idx)
80653 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80654 , p_source_35 => l_array_source_35(Idx)
80655 , p_source_44 => l_array_source_44(Idx)
80656 , p_source_45 => l_array_source_45(Idx)
80657 , p_source_46 => l_array_source_46(Idx)
80658 , p_source_47 => l_array_source_47(Idx)
80659 , p_source_48 => l_array_source_48(Idx)
80660 , p_source_49 => l_array_source_49(Idx)
80661 , p_source_50 => l_array_source_50(Idx)
80662 , p_source_51 => l_array_source_51(Idx)
80663 , p_source_52 => l_array_source_52(Idx)
80664 , p_source_54 => l_array_source_54(Idx)
80665 , p_source_55 => l_array_source_55(Idx)
80666 , p_source_56 => l_array_source_56(Idx)
80667 , p_source_57 => l_array_source_57(Idx)
80668 , p_source_70 => l_array_source_70(Idx)
80669 , p_source_70_meaning => l_array_source_70_meaning(Idx)
80670 , p_source_71 => l_array_source_71(Idx)
80671 );
80672 If(l_balance_type_code = 'A') THEN
80673 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80674 END IF;
80675
80676 --
80677
80678
80679 --
80680 AcctLineType_95 (
80681 p_application_id => p_application_id
80682 ,p_event_id => l_event_id
80683 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80684 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80685 ,p_actual_flag => l_actual_flag
80686 ,p_balance_type_code => l_balance_type_code
80687 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80688
80689 , p_source_2 => l_array_source_2(Idx)
80690 , p_source_3 => l_array_source_3(Idx)
80691 , p_source_6 => l_array_source_6(Idx)
80692 , p_source_22 => l_array_source_22(Idx)
80693 , p_source_23 => l_array_source_23(Idx)
80694 , p_source_25 => l_array_source_25(Idx)
80695 , p_source_27 => l_array_source_27(Idx)
80696 , p_source_28 => l_array_source_28(Idx)
80697 , p_source_29 => l_array_source_29(Idx)
80698 , p_source_30 => l_array_source_30(Idx)
80699 , p_source_31 => l_array_source_31(Idx)
80700 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80701 , p_source_33 => l_array_source_33(Idx)
80702 , p_source_34 => l_array_source_34(Idx)
80703 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80704 , p_source_35 => l_array_source_35(Idx)
80705 , p_source_44 => l_array_source_44(Idx)
80706 , p_source_45 => l_array_source_45(Idx)
80707 , p_source_46 => l_array_source_46(Idx)
80708 , p_source_47 => l_array_source_47(Idx)
80709 , p_source_48 => l_array_source_48(Idx)
80710 , p_source_49 => l_array_source_49(Idx)
80711 , p_source_50 => l_array_source_50(Idx)
80712 , p_source_51 => l_array_source_51(Idx)
80713 , p_source_52 => l_array_source_52(Idx)
80714 , p_source_54 => l_array_source_54(Idx)
80715 , p_source_55 => l_array_source_55(Idx)
80716 , p_source_56 => l_array_source_56(Idx)
80717 , p_source_57 => l_array_source_57(Idx)
80718 , p_source_70 => l_array_source_70(Idx)
80719 , p_source_70_meaning => l_array_source_70_meaning(Idx)
80720 , p_source_72 => l_array_source_72(Idx)
80721 , p_source_73 => l_array_source_73(Idx)
80722 );
80723 If(l_balance_type_code = 'A') THEN
80724 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80725 END IF;
80726
80727 --
80728
80729
80730 --
80731 AcctLineType_99 (
80732 p_application_id => p_application_id
80733 ,p_event_id => l_event_id
80734 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80735 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80736 ,p_actual_flag => l_actual_flag
80737 ,p_balance_type_code => l_balance_type_code
80738 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80739
80743 , p_source_22 => l_array_source_22(Idx)
80740 , p_source_2 => l_array_source_2(Idx)
80741 , p_source_3 => l_array_source_3(Idx)
80742 , p_source_6 => l_array_source_6(Idx)
80744 , p_source_23 => l_array_source_23(Idx)
80745 , p_source_25 => l_array_source_25(Idx)
80746 , p_source_27 => l_array_source_27(Idx)
80747 , p_source_28 => l_array_source_28(Idx)
80748 , p_source_29 => l_array_source_29(Idx)
80749 , p_source_30 => l_array_source_30(Idx)
80750 , p_source_31 => l_array_source_31(Idx)
80751 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80752 , p_source_33 => l_array_source_33(Idx)
80753 , p_source_34 => l_array_source_34(Idx)
80754 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80755 , p_source_35 => l_array_source_35(Idx)
80756 , p_source_44 => l_array_source_44(Idx)
80757 , p_source_45 => l_array_source_45(Idx)
80758 , p_source_46 => l_array_source_46(Idx)
80759 , p_source_54 => l_array_source_54(Idx)
80760 , p_source_55 => l_array_source_55(Idx)
80761 , p_source_56 => l_array_source_56(Idx)
80762 , p_source_57 => l_array_source_57(Idx)
80763 , p_source_70 => l_array_source_70(Idx)
80764 , p_source_70_meaning => l_array_source_70_meaning(Idx)
80765 , p_source_71 => l_array_source_71(Idx)
80766 , p_source_74 => l_array_source_74(Idx)
80767 , p_source_75 => l_array_source_75(Idx)
80768 , p_source_76 => l_array_source_76(Idx)
80769 , p_source_77 => l_array_source_77(Idx)
80770 , p_source_78 => l_array_source_78(Idx)
80771 , p_source_79 => l_array_source_79(Idx)
80772 );
80773 If(l_balance_type_code = 'A') THEN
80774 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80775 END IF;
80776
80777 --
80778
80779
80780 --
80781 AcctLineType_101 (
80782 p_application_id => p_application_id
80783 ,p_event_id => l_event_id
80784 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80785 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80786 ,p_actual_flag => l_actual_flag
80787 ,p_balance_type_code => l_balance_type_code
80788 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80789
80790 , p_source_2 => l_array_source_2(Idx)
80791 , p_source_3 => l_array_source_3(Idx)
80792 , p_source_6 => l_array_source_6(Idx)
80793 , p_source_22 => l_array_source_22(Idx)
80794 , p_source_23 => l_array_source_23(Idx)
80795 , p_source_25 => l_array_source_25(Idx)
80796 , p_source_27 => l_array_source_27(Idx)
80797 , p_source_28 => l_array_source_28(Idx)
80798 , p_source_29 => l_array_source_29(Idx)
80799 , p_source_30 => l_array_source_30(Idx)
80800 , p_source_31 => l_array_source_31(Idx)
80801 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80802 , p_source_33 => l_array_source_33(Idx)
80803 , p_source_34 => l_array_source_34(Idx)
80804 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80805 , p_source_35 => l_array_source_35(Idx)
80806 , p_source_44 => l_array_source_44(Idx)
80807 , p_source_45 => l_array_source_45(Idx)
80808 , p_source_46 => l_array_source_46(Idx)
80809 , p_source_54 => l_array_source_54(Idx)
80810 , p_source_55 => l_array_source_55(Idx)
80811 , p_source_56 => l_array_source_56(Idx)
80812 , p_source_57 => l_array_source_57(Idx)
80813 , p_source_70 => l_array_source_70(Idx)
80814 , p_source_70_meaning => l_array_source_70_meaning(Idx)
80815 , p_source_72 => l_array_source_72(Idx)
80816 , p_source_73 => l_array_source_73(Idx)
80817 , p_source_80 => l_array_source_80(Idx)
80818 , p_source_81 => l_array_source_81(Idx)
80819 , p_source_82 => l_array_source_82(Idx)
80820 , p_source_83 => l_array_source_83(Idx)
80821 , p_source_84 => l_array_source_84(Idx)
80822 , p_source_85 => l_array_source_85(Idx)
80823 );
80824 If(l_balance_type_code = 'A') THEN
80825 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80826 END IF;
80827
80828 --
80829
80830
80831 --
80832 AcctLineType_104 (
80833 p_application_id => p_application_id
80834 ,p_event_id => l_event_id
80835 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80836 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80837 ,p_actual_flag => l_actual_flag
80838 ,p_balance_type_code => l_balance_type_code
80839 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80840
80841 , p_source_2 => l_array_source_2(Idx)
80842 , p_source_3 => l_array_source_3(Idx)
80843 , p_source_6 => l_array_source_6(Idx)
80844 , p_source_22 => l_array_source_22(Idx)
80845 , p_source_23 => l_array_source_23(Idx)
80846 , p_source_25 => l_array_source_25(Idx)
80847 , p_source_27 => l_array_source_27(Idx)
80848 , p_source_28 => l_array_source_28(Idx)
80849 , p_source_29 => l_array_source_29(Idx)
80850 , p_source_30 => l_array_source_30(Idx)
80851 , p_source_31 => l_array_source_31(Idx)
80852 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80853 , p_source_33 => l_array_source_33(Idx)
80854 , p_source_34 => l_array_source_34(Idx)
80855 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80856 , p_source_35 => l_array_source_35(Idx)
80857 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
80858 , p_source_44 => l_array_source_44(Idx)
80859 , p_source_45 => l_array_source_45(Idx)
80860 , p_source_46 => l_array_source_46(Idx)
80861 , p_source_47 => l_array_source_47(Idx)
80862 , p_source_48 => l_array_source_48(Idx)
80863 , p_source_49 => l_array_source_49(Idx)
80864 , p_source_50 => l_array_source_50(Idx)
80865 , p_source_51 => l_array_source_51(Idx)
80866 , p_source_52 => l_array_source_52(Idx)
80867 , p_source_54 => l_array_source_54(Idx)
80868 , p_source_55 => l_array_source_55(Idx)
80869 , p_source_56 => l_array_source_56(Idx)
80870 , p_source_57 => l_array_source_57(Idx)
80871 , p_source_73 => l_array_source_73(Idx)
80872 , p_source_86 => l_array_source_86(Idx)
80873 , p_source_87 => l_array_source_87(Idx)
80874 );
80875 If(l_balance_type_code = 'A') THEN
80879 --
80876 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80877 END IF;
80878
80880
80881
80882 --
80883 AcctLineType_108 (
80884 p_application_id => p_application_id
80885 ,p_event_id => l_event_id
80886 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80887 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80888 ,p_actual_flag => l_actual_flag
80889 ,p_balance_type_code => l_balance_type_code
80890 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80891
80892 , p_source_2 => l_array_source_2(Idx)
80893 , p_source_3 => l_array_source_3(Idx)
80894 , p_source_6 => l_array_source_6(Idx)
80895 , p_source_22 => l_array_source_22(Idx)
80896 , p_source_23 => l_array_source_23(Idx)
80897 , p_source_25 => l_array_source_25(Idx)
80898 , p_source_27 => l_array_source_27(Idx)
80899 , p_source_28 => l_array_source_28(Idx)
80900 , p_source_29 => l_array_source_29(Idx)
80901 , p_source_30 => l_array_source_30(Idx)
80902 , p_source_31 => l_array_source_31(Idx)
80903 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80904 , p_source_33 => l_array_source_33(Idx)
80905 , p_source_34 => l_array_source_34(Idx)
80906 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80907 , p_source_35 => l_array_source_35(Idx)
80908 , p_source_44 => l_array_source_44(Idx)
80909 , p_source_45 => l_array_source_45(Idx)
80910 , p_source_46 => l_array_source_46(Idx)
80911 , p_source_54 => l_array_source_54(Idx)
80912 , p_source_55 => l_array_source_55(Idx)
80913 , p_source_56 => l_array_source_56(Idx)
80914 , p_source_57 => l_array_source_57(Idx)
80915 , p_source_70 => l_array_source_70(Idx)
80916 , p_source_70_meaning => l_array_source_70_meaning(Idx)
80917 , p_source_72 => l_array_source_72(Idx)
80918 , p_source_73 => l_array_source_73(Idx)
80919 , p_source_80 => l_array_source_80(Idx)
80920 , p_source_81 => l_array_source_81(Idx)
80921 , p_source_82 => l_array_source_82(Idx)
80922 , p_source_83 => l_array_source_83(Idx)
80923 , p_source_84 => l_array_source_84(Idx)
80924 , p_source_85 => l_array_source_85(Idx)
80925 );
80926 If(l_balance_type_code = 'A') THEN
80927 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80928 END IF;
80929
80930 --
80931
80932 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
80933 -- or secondary ledger that has different currency with primary
80934 -- or alc that is calculated by sla
80935 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
80936 (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'))
80937
80938 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
80939 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
80940 AND (l_actual_flag = 'A')) THEN
80941 XLA_AE_LINES_PKG.CreateGainOrLossLines(
80942 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80943 ,p_application_id => p_application_id
80944 ,p_amb_context_code => 'DEFAULT'
80945 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
80946 ,p_event_class_code => C_EVENT_CLASS_CODE
80947 ,p_event_type_code => C_EVENT_TYPE_CODE
80948
80949 ,p_gain_ccid => -1
80950 ,p_loss_ccid => -1
80951
80952 ,p_actual_flag => l_actual_flag
80953 ,p_enc_flag => null
80954 ,p_actual_g_l_ref => l_actual_gain_loss_ref
80955 ,p_enc_g_l_ref => null
80956 );
80957 END IF;
80958 END IF;
80959 END IF;
80960
80961 ELSE
80962 --
80963 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
80964 --
80965 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80966 trace
80967 (p_msg => 'Trancaction revesal option is Y'
80968 ,p_level => C_LEVEL_STATEMENT
80969 ,p_module => l_log_module);
80970 END IF;
80971 END IF;
80972
80973 END LOOP;
80974 l_result := XLA_AE_LINES_PKG.InsertLines ;
80975 end loop;
80976 close line_cur;
80977
80978
80979 --
80980 -- insert headers into xla_ae_headers_gt table
80981 --
80982 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
80983
80984 -- insert into errors table here.
80985
80986 END LOOP;
80987
80988 --
80989 -- 4865292
80990 --
80991 -- Compare g_hdr_extract_count with event count in
80992 -- CreateHeadersAndLines.
80993 --
80994 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
80995
80996 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80997 trace (p_msg => '# rows extracted from header extract objects '
80998 || ' (running total): '
80999 || g_hdr_extract_count
81000 ,p_level => C_LEVEL_STATEMENT
81001 ,p_module => l_log_module);
81002 END IF;
81003
81004 CLOSE header_cur;
81005 --
81006
81007 --
81008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81009 trace
81010 (p_msg => 'END of EventClass_127'
81011 ,p_level => C_LEVEL_PROCEDURE
81012 ,p_module => l_log_module);
81013 END IF;
81014 --
81015 RETURN l_result;
81016 EXCEPTION
81017 WHEN xla_exceptions_pkg.application_exception THEN
81018
81019 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
81020
81021
81022 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
81023
81024 RAISE;
81025 WHEN OTHERS THEN
81026 xla_exceptions_pkg.raise_message
81027 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_127');
81031 ---------------------------------------
81028 END EventClass_127;
81029 --
81030
81032 --
81033 -- PRIVATE PROCEDURE
81034 -- insert_sources_128
81035 --
81036 ----------------------------------------
81037 --
81038 PROCEDURE insert_sources_128(
81039 p_target_ledger_id IN NUMBER
81040 , p_language IN VARCHAR2
81041 , p_sla_ledger_id IN NUMBER
81042 , p_pad_start_date IN DATE
81043 , p_pad_end_date IN DATE
81044 )
81045 IS
81046
81047 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ALL';
81048 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST';
81049 p_apps_owner VARCHAR2(30);
81050 l_log_module VARCHAR2(240);
81051 BEGIN
81052 IF g_log_enabled THEN
81053 l_log_module := C_DEFAULT_MODULE||'.insert_sources_128';
81054 END IF;
81055 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81056
81057 trace
81058 (p_msg => 'BEGIN of insert_sources_128'
81059 ,p_level => C_LEVEL_PROCEDURE
81060 ,p_module => l_log_module);
81061
81062 END IF;
81063
81064 -- select APPS owner
81065 SELECT oracle_username
81066 INTO p_apps_owner
81067 FROM fnd_oracle_userid
81068 WHERE read_only_flag = 'U'
81069 ;
81070
81071 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81072 trace
81073 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
81074 ' - p_language = '||p_language||
81075 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
81076 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
81077 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
81078 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
81079 ,p_level => C_LEVEL_STATEMENT
81080 ,p_module => l_log_module);
81081 END IF;
81082
81083
81084 --
81085 INSERT INTO xla_diag_sources --hdr2
81086 (
81087 event_id
81088 , ledger_id
81089 , sla_ledger_id
81090 , description_language
81091 , object_name
81092 , object_type_code
81093 , line_number
81094 , source_application_id
81095 , source_type_code
81096 , source_code
81097 , source_value
81098 , source_meaning
81099 , created_by
81100 , creation_date
81101 , last_update_date
81102 , last_updated_by
81103 , last_update_login
81104 , program_update_date
81105 , program_application_id
81106 , program_id
81107 , request_id
81108 )
81109 SELECT
81110 event_id
81111 , p_target_ledger_id
81112 , p_sla_ledger_id
81113 , p_language
81114 , object_name
81115 , object_type_code
81116 , line_number
81117 , source_application_id
81118 , source_type_code
81119 , source_code
81120 , SUBSTR(source_value ,1,1996)
81121 , SUBSTR(source_meaning ,1,200)
81122 , xla_environment_pkg.g_Usr_Id
81123 , TRUNC(SYSDATE)
81124 , TRUNC(SYSDATE)
81125 , xla_environment_pkg.g_Usr_Id
81126 , xla_environment_pkg.g_Login_Id
81127 , TRUNC(SYSDATE)
81128 , xla_environment_pkg.g_Prog_Appl_Id
81129 , xla_environment_pkg.g_Prog_Id
81130 , xla_environment_pkg.g_Req_Id
81131 FROM (
81132 SELECT xet.event_id event_id
81133 , 0 line_number
81134 , CASE r
81135 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
81136 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
81137 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
81138
81139 ELSE null
81140 END object_name
81141 , CASE r
81142 WHEN 1 THEN 'HEADER'
81143 WHEN 2 THEN 'HEADER'
81144 WHEN 3 THEN 'HEADER'
81145
81146 ELSE null
81147 END object_type_code
81148 , CASE r
81149 WHEN 1 THEN '275'
81150 WHEN 2 THEN '275'
81151 WHEN 3 THEN '275'
81152
81153 ELSE null
81154 END source_application_id
81155 , 'S' source_type_code
81156 , CASE r
81157 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
81158 WHEN 2 THEN 'SYSTEM_LINKAGE_FUNCTION'
81159 WHEN 3 THEN 'GL_DATE'
81160
81161 ELSE null
81162 END source_code
81163 , CASE r
81164 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
81165 WHEN 2 THEN TO_CHAR(h2.SYSTEM_LINKAGE_FUNCTION)
81166 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
81167
81168 ELSE null
81169 END source_value
81170 , null source_meaning
81171 FROM xla_events_gt xet
81172 , PA_XLA_EXP_HEADER_V h2
81173 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
81174 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
81175 AND xet.event_class_code = C_EVENT_CLASS_CODE
81176 AND h2.event_id = xet.event_id
81177
81178 )
81179 ;
81180 --
81181 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81182
81186 ,p_module => l_log_module);
81183 trace
81184 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
81185 ,p_level => C_LEVEL_STATEMENT
81187
81188 END IF;
81189 --
81190
81191
81192
81193 --
81194 INSERT INTO xla_diag_sources --line2
81195 (
81196 event_id
81197 , ledger_id
81198 , sla_ledger_id
81199 , description_language
81200 , object_name
81201 , object_type_code
81202 , line_number
81203 , source_application_id
81204 , source_type_code
81205 , source_code
81206 , source_value
81207 , source_meaning
81208 , created_by
81209 , creation_date
81210 , last_update_date
81211 , last_updated_by
81212 , last_update_login
81213 , program_update_date
81214 , program_application_id
81215 , program_id
81216 , request_id
81217 )
81218 SELECT event_id
81219 , p_target_ledger_id
81220 , p_sla_ledger_id
81221 , p_language
81222 , object_name
81223 , object_type_code
81224 , line_number
81225 , source_application_id
81226 , source_type_code
81227 , source_code
81228 , SUBSTR(source_value,1,1996)
81229 , SUBSTR(source_meaning ,1,200)
81230 , xla_environment_pkg.g_Usr_Id
81231 , TRUNC(SYSDATE)
81232 , TRUNC(SYSDATE)
81233 , xla_environment_pkg.g_Usr_Id
81234 , xla_environment_pkg.g_Login_Id
81235 , TRUNC(SYSDATE)
81236 , xla_environment_pkg.g_Prog_Appl_Id
81237 , xla_environment_pkg.g_Prog_Id
81238 , xla_environment_pkg.g_Req_Id
81239 FROM (
81240 SELECT xet.event_id event_id
81241 , l1.line_number line_number
81242 , CASE r
81243 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
81244 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
81245 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
81246 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
81247 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
81248 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
81249 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
81250 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
81251 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
81252 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
81253 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
81254 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
81255 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
81256 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
81257 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
81258 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
81259 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
81260 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
81261 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
81262 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
81263 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
81264 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
81265 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
81266 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
81267 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
81268 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
81269 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
81270 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
81271 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
81272 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
81273 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
81274 WHEN 32 THEN 'PA_XLA_CDL_LINES_V'
81275 WHEN 33 THEN 'PA_XLA_CDL_LINES_V'
81276 WHEN 34 THEN 'PA_XLA_CDL_LINES_V'
81277 WHEN 35 THEN 'PA_XLA_CDL_LINES_V'
81278 WHEN 36 THEN 'PA_XLA_CDL_LINES_V'
81279 WHEN 37 THEN 'PA_XLA_CDL_LINES_V'
81280 WHEN 38 THEN 'PA_XLA_CDL_LINES_V'
81281 WHEN 39 THEN 'PA_XLA_CDL_LINES_V'
81282 WHEN 40 THEN 'PA_XLA_CDL_LINES_V'
81283 WHEN 41 THEN 'PA_XLA_CDL_LINES_V'
81284 WHEN 42 THEN 'PA_XLA_CDL_LINES_V'
81285 WHEN 43 THEN 'PA_XLA_CDL_LINES_V'
81286 WHEN 44 THEN 'PA_XLA_CDL_LINES_V'
81287 WHEN 45 THEN 'PA_XLA_CDL_LINES_V'
81288 WHEN 46 THEN 'PA_XLA_CDL_LINES_V'
81289 WHEN 47 THEN 'PA_XLA_CDL_LINES_V'
81290 WHEN 48 THEN 'PA_XLA_CDL_LINES_V'
81291 WHEN 49 THEN 'PA_XLA_CDL_LINES_V'
81292
81293 ELSE null
81294 END object_name
81295 , CASE r
81296 WHEN 1 THEN 'LINE'
81297 WHEN 2 THEN 'LINE'
81298 WHEN 3 THEN 'LINE'
81299 WHEN 4 THEN 'LINE'
81300 WHEN 5 THEN 'LINE'
81301 WHEN 6 THEN 'LINE'
81302 WHEN 7 THEN 'LINE'
81303 WHEN 8 THEN 'LINE'
81304 WHEN 9 THEN 'LINE'
81305 WHEN 10 THEN 'LINE'
81306 WHEN 11 THEN 'LINE'
81307 WHEN 12 THEN 'LINE'
81308 WHEN 13 THEN 'LINE'
81309 WHEN 14 THEN 'LINE'
81310 WHEN 15 THEN 'LINE'
81311 WHEN 16 THEN 'LINE'
81312 WHEN 17 THEN 'LINE'
81313 WHEN 18 THEN 'LINE'
81314 WHEN 19 THEN 'LINE'
81315 WHEN 20 THEN 'LINE'
81316 WHEN 21 THEN 'LINE'
81317 WHEN 22 THEN 'LINE'
81318 WHEN 23 THEN 'LINE'
81319 WHEN 24 THEN 'LINE'
81320 WHEN 25 THEN 'LINE'
81321 WHEN 26 THEN 'LINE'
81322 WHEN 27 THEN 'LINE'
81326 WHEN 31 THEN 'LINE'
81323 WHEN 28 THEN 'LINE'
81324 WHEN 29 THEN 'LINE'
81325 WHEN 30 THEN 'LINE'
81327 WHEN 32 THEN 'LINE'
81328 WHEN 33 THEN 'LINE'
81329 WHEN 34 THEN 'LINE'
81330 WHEN 35 THEN 'LINE'
81331 WHEN 36 THEN 'LINE'
81332 WHEN 37 THEN 'LINE'
81333 WHEN 38 THEN 'LINE'
81334 WHEN 39 THEN 'LINE'
81335 WHEN 40 THEN 'LINE'
81336 WHEN 41 THEN 'LINE'
81337 WHEN 42 THEN 'LINE'
81338 WHEN 43 THEN 'LINE'
81339 WHEN 44 THEN 'LINE'
81340 WHEN 45 THEN 'LINE'
81341 WHEN 46 THEN 'LINE'
81342 WHEN 47 THEN 'LINE'
81343 WHEN 48 THEN 'LINE'
81344 WHEN 49 THEN 'LINE'
81345
81346 ELSE null
81347 END object_type_code
81348 , CASE r
81349 WHEN 1 THEN '275'
81350 WHEN 2 THEN '275'
81351 WHEN 3 THEN '275'
81352 WHEN 4 THEN '275'
81353 WHEN 5 THEN '275'
81354 WHEN 6 THEN '275'
81355 WHEN 7 THEN '275'
81356 WHEN 8 THEN '275'
81357 WHEN 9 THEN '275'
81358 WHEN 10 THEN '275'
81359 WHEN 11 THEN '275'
81360 WHEN 12 THEN '275'
81361 WHEN 13 THEN '275'
81362 WHEN 14 THEN '275'
81363 WHEN 15 THEN '275'
81364 WHEN 16 THEN '275'
81365 WHEN 17 THEN '275'
81366 WHEN 18 THEN '275'
81367 WHEN 19 THEN '275'
81368 WHEN 20 THEN '275'
81369 WHEN 21 THEN '275'
81370 WHEN 22 THEN '275'
81371 WHEN 23 THEN '275'
81372 WHEN 24 THEN '275'
81373 WHEN 25 THEN '275'
81374 WHEN 26 THEN '275'
81375 WHEN 27 THEN '275'
81376 WHEN 28 THEN '275'
81377 WHEN 29 THEN '275'
81378 WHEN 30 THEN '275'
81379 WHEN 31 THEN '275'
81380 WHEN 32 THEN '275'
81381 WHEN 33 THEN '275'
81382 WHEN 34 THEN '275'
81383 WHEN 35 THEN '275'
81384 WHEN 36 THEN '275'
81385 WHEN 37 THEN '275'
81386 WHEN 38 THEN '275'
81387 WHEN 39 THEN '275'
81388 WHEN 40 THEN '275'
81389 WHEN 41 THEN '275'
81390 WHEN 42 THEN '275'
81391 WHEN 43 THEN '275'
81392 WHEN 44 THEN '275'
81393 WHEN 45 THEN '275'
81394 WHEN 46 THEN '275'
81395 WHEN 47 THEN '275'
81396 WHEN 48 THEN '275'
81397 WHEN 49 THEN '275'
81398
81399 ELSE null
81400 END source_application_id
81401 , 'S' source_type_code
81402 , CASE r
81403 WHEN 1 THEN 'BUDGET_CCID'
81404 WHEN 2 THEN 'COST_CCID'
81405 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
81406 WHEN 4 THEN 'ADJ_COST_CCID'
81407 WHEN 5 THEN 'COST_CLEARING_CCID'
81408 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
81409 WHEN 7 THEN 'REVERSING_LINE_FLAG'
81410 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
81411 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
81412 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
81413 WHEN 11 THEN 'EXCHANGE_RATE'
81414 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
81415 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
81416 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
81417 WHEN 15 THEN 'LINE_NUMBER'
81418 WHEN 16 THEN 'LINE_TYPE'
81419 WHEN 17 THEN 'LINE_NUM_REVERSED'
81420 WHEN 18 THEN 'ENTERED_BURDENED_COST'
81421 WHEN 19 THEN 'ACCT_BURDENED_COST'
81422 WHEN 20 THEN 'ENCUMBRANCE_AMOUNT'
81423 WHEN 21 THEN 'PA_APPLICATION_ID'
81424 WHEN 22 THEN 'PA_DISTRIBUTION_TYPE'
81425 WHEN 23 THEN 'PA_ENTITY_CODE'
81426 WHEN 24 THEN 'PA_FIRST_DIST_ID'
81427 WHEN 25 THEN 'PA_FIRST_SYS_TRANS_ID'
81428 WHEN 26 THEN 'PA_SECOND_DIST_ID'
81429 WHEN 27 THEN 'ENC_UPG_DR_ACCT_CLASS'
81430 WHEN 28 THEN 'ENC_UPG_CR_ACCT_CLASS'
81431 WHEN 29 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
81432 WHEN 30 THEN 'ENCUMBRANCE_TYPE_ID'
81433 WHEN 31 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
81434 WHEN 32 THEN 'DOCUMENT_TYPE'
81435 WHEN 33 THEN 'ENC_JE_LINES_REVERSED_FLAG'
81436 WHEN 34 THEN 'PO_RELEASE_ID'
81437 WHEN 35 THEN 'CWK_RATE_BASED_TC_FLAG'
81438 WHEN 36 THEN 'INVOICE_APPLICATION_ID'
81439 WHEN 37 THEN 'INVOICE_DISTRIBUTION_TYPE'
81440 WHEN 38 THEN 'INVOICE_ENTITY_CODE'
81441 WHEN 39 THEN 'INVOICE_FIRST_DIST_ID'
81442 WHEN 40 THEN 'INVOICE_FIRST_SYS_TRANS_ID'
81443 WHEN 41 THEN 'INVOICE_SECOND_DIST_ID'
81444 WHEN 42 THEN 'PO_APPLICATION_ID'
81445 WHEN 43 THEN 'PO_DISTRIBUTION_TYPE'
81446 WHEN 44 THEN 'PO_ENTITY_CODE'
81447 WHEN 45 THEN 'PO_FIRST_DIST_ID'
81448 WHEN 46 THEN 'PO_FIRST_SYS_TRANS_ID'
81452
81449 WHEN 47 THEN 'PO_SECOND_DIST_ID'
81450 WHEN 48 THEN 'ENC_ACCT_ENABLED'
81451 WHEN 49 THEN 'LIQUIDATE_ENCUM_FLAG'
81453 ELSE null
81454 END source_code
81455 , CASE r
81456 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
81457 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
81458 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
81459 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
81460 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
81461 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
81462 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
81463 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
81464 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
81465 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
81466 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
81467 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
81468 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
81469 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
81470 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
81471 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
81472 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
81473 WHEN 18 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
81474 WHEN 19 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
81475 WHEN 20 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
81476 WHEN 21 THEN TO_CHAR(l1.PA_APPLICATION_ID)
81477 WHEN 22 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
81478 WHEN 23 THEN TO_CHAR(l1.PA_ENTITY_CODE)
81479 WHEN 24 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
81480 WHEN 25 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
81481 WHEN 26 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
81482 WHEN 27 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
81483 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
81484 WHEN 29 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
81485 WHEN 30 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
81486 WHEN 31 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
81487 WHEN 32 THEN TO_CHAR(l1.DOCUMENT_TYPE)
81488 WHEN 33 THEN TO_CHAR(l1.ENC_JE_LINES_REVERSED_FLAG)
81489 WHEN 34 THEN TO_CHAR(l1.PO_RELEASE_ID)
81490 WHEN 35 THEN TO_CHAR(l1.CWK_RATE_BASED_TC_FLAG)
81491 WHEN 36 THEN TO_CHAR(l1.INVOICE_APPLICATION_ID)
81492 WHEN 37 THEN TO_CHAR(l1.INVOICE_DISTRIBUTION_TYPE)
81493 WHEN 38 THEN TO_CHAR(l1.INVOICE_ENTITY_CODE)
81494 WHEN 39 THEN TO_CHAR(l1.INVOICE_FIRST_DIST_ID)
81495 WHEN 40 THEN TO_CHAR(l1.INVOICE_FIRST_SYS_TRANS_ID)
81496 WHEN 41 THEN TO_CHAR(l1.INVOICE_SECOND_DIST_ID)
81497 WHEN 42 THEN TO_CHAR(l1.PO_APPLICATION_ID)
81498 WHEN 43 THEN TO_CHAR(l1.PO_DISTRIBUTION_TYPE)
81499 WHEN 44 THEN TO_CHAR(l1.PO_ENTITY_CODE)
81500 WHEN 45 THEN TO_CHAR(l1.PO_FIRST_DIST_ID)
81501 WHEN 46 THEN TO_CHAR(l1.PO_FIRST_SYS_TRANS_ID)
81502 WHEN 47 THEN TO_CHAR(l1.PO_SECOND_DIST_ID)
81503 WHEN 48 THEN TO_CHAR(l1.ENC_ACCT_ENABLED)
81504 WHEN 49 THEN TO_CHAR(l1.LIQUIDATE_ENCUM_FLAG)
81505
81506 ELSE null
81507 END source_value
81508 , CASE r
81509 WHEN 3 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
81510 103371
81511 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
81512 ,'ALLOW_OVERRIDE_CCID_FLAG'
81513 ,'S'
81514 ,275)
81515 WHEN 16 THEN fvl34.meaning
81516 WHEN 32 THEN fvl70.meaning
81517
81518 ELSE null
81519 END source_meaning
81520 FROM xla_events_gt xet
81521 , PA_XLA_CDL_LINES_V l1
81522 , fnd_lookup_values fvl34
81523 , fnd_lookup_values fvl70
81524 , (select rownum r from all_objects where rownum <= 49 and owner = p_apps_owner)
81525 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
81526 AND xet.event_class_code = C_EVENT_CLASS_CODE
81527 AND l1.event_id = xet.event_id
81528 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
81529 AND fvl34.lookup_code(+) = l1.LINE_TYPE
81530 AND fvl34.view_application_id(+) = 275
81531 AND fvl34.language(+) = USERENV('LANG')
81532 AND fvl70.lookup_type(+) = 'FC_DOC_TYPE'
81533 AND fvl70.lookup_code(+) = l1.DOCUMENT_TYPE
81534 AND fvl70.view_application_id(+) = 275
81535 AND fvl70.language(+) = USERENV('LANG')
81536
81537 )
81538 ;
81539 --
81540 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81541
81542 trace
81543 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
81544 ,p_level => C_LEVEL_STATEMENT
81545 ,p_module => l_log_module);
81546
81547 END IF;
81548
81549
81550 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81551 trace
81552 (p_msg => 'END of insert_sources_128'
81553 ,p_level => C_LEVEL_PROCEDURE
81554 ,p_module => l_log_module);
81555 END IF;
81556 EXCEPTION
81557 WHEN xla_exceptions_pkg.application_exception THEN
81558 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
81559 trace
81560 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
81561 ,p_level => C_LEVEL_EXCEPTION
81562 ,p_module => l_log_module);
81563 END IF;
81564 RAISE;
81565 WHEN OTHERS THEN
81569 ,p_level => C_LEVEL_EXCEPTION
81566 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
81567 trace
81568 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
81570 ,p_module => l_log_module);
81571 END IF;
81572 xla_exceptions_pkg.raise_message
81573 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_128');
81574 END insert_sources_128;
81575 --
81576
81577 ---------------------------------------
81578 --
81579 -- PRIVATE FUNCTION
81580 -- EventClass_128
81581 --
81582 ----------------------------------------
81583 --
81584 FUNCTION EventClass_128
81585 (p_application_id IN NUMBER
81586 ,p_base_ledger_id IN NUMBER
81587 ,p_target_ledger_id IN NUMBER
81588 ,p_language IN VARCHAR2
81589 ,p_currency_code IN VARCHAR2
81590 ,p_sla_ledger_id IN NUMBER
81591 ,p_pad_start_date IN DATE
81592 ,p_pad_end_date IN DATE
81593 ,p_primary_ledger_id IN NUMBER)
81594 RETURN BOOLEAN IS
81595 --
81596 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ALL';
81597 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST';
81598
81599 l_calculate_acctd_flag VARCHAR2(1) :='N';
81600 l_calculate_g_l_flag VARCHAR2(1) :='N';
81601 --
81602 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81603 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81604 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81605 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81606 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81607 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81608 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81609 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81610 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81611 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81612 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81613 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81614 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81615 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81616 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81617 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81618 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81619 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81620 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81621 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81622 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81623 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81624 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
81625 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81626
81627 l_event_id NUMBER;
81628 l_previous_event_id NUMBER;
81629 l_first_event_id NUMBER;
81630 l_last_event_id NUMBER;
81631
81632 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
81633 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
81634 --
81635 --
81636 l_result BOOLEAN := TRUE;
81637 l_rows NUMBER := 1000;
81638 l_event_type_name VARCHAR2(80) := 'All';
81639 l_event_class_name VARCHAR2(80) := 'Total Burdened Cost';
81640 l_description VARCHAR2(4000);
81641 l_transaction_reversal NUMBER;
81642 l_ae_header_id NUMBER;
81643 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
81644 l_log_module VARCHAR2(240);
81645 --
81646 l_acct_reversal_source VARCHAR2(30);
81647 l_trx_reversal_source VARCHAR2(30);
81648
81649 l_continue_with_lines BOOLEAN := TRUE;
81650 --
81651 l_acc_rev_gl_date_source DATE; -- 4262811
81652 --
81653 type t_array_event_id is table of number index by binary_integer;
81654
81655 l_rec_array_event t_rec_array_event;
81656 l_null_rec_array_event t_rec_array_event;
81657 l_array_ae_header_id xla_number_array_type;
81658 l_actual_flag VARCHAR2(1) := NULL;
81659 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
81660 l_balance_type_code VARCHAR2(1) :=NULL;
81661 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
81662
81663 --
81664 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
81665 --
81666
81667 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
81668 TYPE t_array_source_37 IS TABLE OF PA_XLA_EXP_HEADER_V.SYSTEM_LINKAGE_FUNCTION%TYPE INDEX BY BINARY_INTEGER;
81669 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
81670
81671 TYPE t_array_source_2 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
81672 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
81673 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
81674 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
81675 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
81679 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
81676 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
81677 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
81678 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81680 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
81681 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
81682 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
81683 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81684 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
81685 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
81686 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
81687 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
81688 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
81689 TYPE t_array_source_45 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
81690 TYPE t_array_source_46 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
81691 TYPE t_array_source_47 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
81692 TYPE t_array_source_48 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
81693 TYPE t_array_source_49 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
81694 TYPE t_array_source_50 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81695 TYPE t_array_source_51 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
81696 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81697 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81698 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81699 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
81700 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
81701 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
81702 TYPE t_array_source_70 IS TABLE OF PA_XLA_CDL_LINES_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
81703 TYPE t_array_source_71 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_JE_LINES_REVERSED_FLAG%TYPE INDEX BY BINARY_INTEGER;
81704 TYPE t_array_source_72 IS TABLE OF PA_XLA_CDL_LINES_V.PO_RELEASE_ID%TYPE INDEX BY BINARY_INTEGER;
81705 TYPE t_array_source_73 IS TABLE OF PA_XLA_CDL_LINES_V.CWK_RATE_BASED_TC_FLAG%TYPE INDEX BY BINARY_INTEGER;
81706 TYPE t_array_source_74 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
81707 TYPE t_array_source_75 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
81708 TYPE t_array_source_76 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
81709 TYPE t_array_source_77 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81710 TYPE t_array_source_78 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
81711 TYPE t_array_source_79 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81712 TYPE t_array_source_80 IS TABLE OF PA_XLA_CDL_LINES_V.PO_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
81713 TYPE t_array_source_81 IS TABLE OF PA_XLA_CDL_LINES_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
81714 TYPE t_array_source_82 IS TABLE OF PA_XLA_CDL_LINES_V.PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
81715 TYPE t_array_source_83 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81716 TYPE t_array_source_84 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
81717 TYPE t_array_source_85 IS TABLE OF PA_XLA_CDL_LINES_V.PO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81718 TYPE t_array_source_86 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_ACCT_ENABLED%TYPE INDEX BY BINARY_INTEGER;
81719 TYPE t_array_source_87 IS TABLE OF PA_XLA_CDL_LINES_V.LIQUIDATE_ENCUM_FLAG%TYPE INDEX BY BINARY_INTEGER;
81720
81721 l_array_source_32 t_array_source_32;
81722 l_array_source_37 t_array_source_37;
81723 l_array_source_88 t_array_source_88;
81724
81725 l_array_source_2 t_array_source_2;
81726 l_array_source_3 t_array_source_3;
81727 l_array_source_4 t_array_source_4;
81728 l_array_source_5 t_array_source_5;
81729 l_array_source_6 t_array_source_6;
81730 l_array_source_7 t_array_source_7;
81731 l_array_source_22 t_array_source_22;
81732 l_array_source_23 t_array_source_23;
81733 l_array_source_25 t_array_source_25;
81734 l_array_source_27 t_array_source_27;
81735 l_array_source_28 t_array_source_28;
81736 l_array_source_29 t_array_source_29;
81737 l_array_source_30 t_array_source_30;
81738 l_array_source_31 t_array_source_31;
81739 l_array_source_33 t_array_source_33;
81740 l_array_source_34 t_array_source_34;
81741 l_array_source_34_meaning t_array_lookup_meaning;
81742 l_array_source_35 t_array_source_35;
81743 l_array_source_44 t_array_source_44;
81744 l_array_source_45 t_array_source_45;
81745 l_array_source_46 t_array_source_46;
81746 l_array_source_47 t_array_source_47;
81747 l_array_source_48 t_array_source_48;
81748 l_array_source_49 t_array_source_49;
81749 l_array_source_50 t_array_source_50;
81750 l_array_source_51 t_array_source_51;
81751 l_array_source_52 t_array_source_52;
81752 l_array_source_53 t_array_source_53;
81753 l_array_source_54 t_array_source_54;
81754 l_array_source_55 t_array_source_55;
81758 l_array_source_70_meaning t_array_lookup_meaning;
81755 l_array_source_56 t_array_source_56;
81756 l_array_source_57 t_array_source_57;
81757 l_array_source_70 t_array_source_70;
81759 l_array_source_71 t_array_source_71;
81760 l_array_source_72 t_array_source_72;
81761 l_array_source_73 t_array_source_73;
81762 l_array_source_74 t_array_source_74;
81763 l_array_source_75 t_array_source_75;
81764 l_array_source_76 t_array_source_76;
81765 l_array_source_77 t_array_source_77;
81766 l_array_source_78 t_array_source_78;
81767 l_array_source_79 t_array_source_79;
81768 l_array_source_80 t_array_source_80;
81769 l_array_source_81 t_array_source_81;
81770 l_array_source_82 t_array_source_82;
81771 l_array_source_83 t_array_source_83;
81772 l_array_source_84 t_array_source_84;
81773 l_array_source_85 t_array_source_85;
81774 l_array_source_86 t_array_source_86;
81775 l_array_source_87 t_array_source_87;
81776
81777 --
81778 CURSOR header_cur
81779 IS
81780 SELECT /*+ leading(xet) cardinality(xet,1) */
81781 -- Event Class Code: TOT_BURDENED_COST
81782 xet.entity_id
81783 ,xet.legal_entity_id
81784 ,xet.entity_code
81785 ,xet.transaction_number
81786 ,xet.event_id
81787 ,xet.event_class_code
81788 ,xet.event_type_code
81789 ,xet.event_number
81790 ,xet.event_date
81791 ,xet.transaction_date
81792 ,xet.reference_num_1
81793 ,xet.reference_num_2
81794 ,xet.reference_num_3
81795 ,xet.reference_num_4
81796 ,xet.reference_char_1
81797 ,xet.reference_char_2
81798 ,xet.reference_char_3
81799 ,xet.reference_char_4
81800 ,xet.reference_date_1
81801 ,xet.reference_date_2
81802 ,xet.reference_date_3
81803 ,xet.reference_date_4
81804 ,xet.event_created_by
81805 ,xet.budgetary_control_flag
81806 , h2.EXPENDITURE_ITEM_ID source_32
81807 , h2.SYSTEM_LINKAGE_FUNCTION source_37
81808 , h2.GL_DATE source_88
81809 FROM xla_events_gt xet
81810 , PA_XLA_EXP_HEADER_V h2
81811 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
81812 and xet.event_class_code = C_EVENT_CLASS_CODE
81813 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
81814
81815 ORDER BY event_id
81816 ;
81817
81818
81819 --
81820 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
81821 IS
81822 SELECT /*+ leading(xet) cardinality(xet,1) */
81823 -- Event Class Code: TOT_BURDENED_COST
81824 xet.entity_id
81825 ,xet.legal_entity_id
81826 ,xet.entity_code
81827 ,xet.transaction_number
81828 ,xet.event_id
81829 ,xet.event_class_code
81830 ,xet.event_type_code
81831 ,xet.event_number
81832 ,xet.event_date
81833 ,xet.transaction_date
81834 ,xet.reference_num_1
81835 ,xet.reference_num_2
81836 ,xet.reference_num_3
81837 ,xet.reference_num_4
81838 ,xet.reference_char_1
81839 ,xet.reference_char_2
81840 ,xet.reference_char_3
81841 ,xet.reference_char_4
81842 ,xet.reference_date_1
81843 ,xet.reference_date_2
81844 ,xet.reference_date_3
81845 ,xet.reference_date_4
81846 ,xet.event_created_by
81847 ,xet.budgetary_control_flag
81848 , l1.LINE_NUMBER
81849 , l1.BUDGET_CCID source_2
81850 , l1.COST_CCID source_3
81851 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
81852 , l1.ADJ_COST_CCID source_5
81853 , l1.COST_CLEARING_CCID source_6
81854 , l1.ADJ_COST_CLEARING_CCID source_7
81855 , l1.REVERSING_LINE_FLAG source_22
81856 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
81857 , l1.ENTERED_CURRENCY_CODE source_25
81858 , l1.EXCHANGE_RATE_DATE source_27
81859 , l1.EXCHANGE_RATE source_28
81860 , l1.EXCHANGE_RATE_TYPE source_29
81861 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
81862 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
81863 , l1.LINE_NUMBER source_33
81864 , l1.LINE_TYPE source_34
81865 , fvl34.meaning source_34_meaning
81866 , l1.LINE_NUM_REVERSED source_35
81867 , l1.ENTERED_BURDENED_COST source_44
81868 , l1.ACCT_BURDENED_COST source_45
81869 , l1.ENCUMBRANCE_AMOUNT source_46
81870 , l1.PA_APPLICATION_ID source_47
81871 , l1.PA_DISTRIBUTION_TYPE source_48
81872 , l1.PA_ENTITY_CODE source_49
81873 , l1.PA_FIRST_DIST_ID source_50
81874 , l1.PA_FIRST_SYS_TRANS_ID source_51
81875 , l1.PA_SECOND_DIST_ID source_52
81876 , l1.ENC_UPG_DR_ACCT_CLASS source_53
81877 , l1.ENC_UPG_CR_ACCT_CLASS source_54
81878 , l1.USE_ENC_UPG_ATTRIB_FLAG source_55
81879 , l1.ENCUMBRANCE_TYPE_ID source_56
81880 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_57
81881 , l1.DOCUMENT_TYPE source_70
81882 , fvl70.meaning source_70_meaning
81883 , l1.ENC_JE_LINES_REVERSED_FLAG source_71
81884 , l1.PO_RELEASE_ID source_72
81885 , l1.CWK_RATE_BASED_TC_FLAG source_73
81886 , l1.INVOICE_APPLICATION_ID source_74
81887 , l1.INVOICE_DISTRIBUTION_TYPE source_75
81888 , l1.INVOICE_ENTITY_CODE source_76
81889 , l1.INVOICE_FIRST_DIST_ID source_77
81890 , l1.INVOICE_FIRST_SYS_TRANS_ID source_78
81891 , l1.INVOICE_SECOND_DIST_ID source_79
81892 , l1.PO_APPLICATION_ID source_80
81893 , l1.PO_DISTRIBUTION_TYPE source_81
81894 , l1.PO_ENTITY_CODE source_82
81895 , l1.PO_FIRST_DIST_ID source_83
81896 , l1.PO_FIRST_SYS_TRANS_ID source_84
81897 , l1.PO_SECOND_DIST_ID source_85
81898 , l1.ENC_ACCT_ENABLED source_86
81899 , l1.LIQUIDATE_ENCUM_FLAG source_87
81900 FROM xla_events_gt xet
81901 , PA_XLA_CDL_LINES_V l1
81902 , fnd_lookup_values fvl34
81903 , fnd_lookup_values fvl70
81907 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
81904 WHERE xet.event_id between x_first_event_id and x_last_event_id
81905 and xet.event_date between p_pad_start_date and p_pad_end_date
81906 and xet.event_class_code = C_EVENT_CLASS_CODE
81908 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
81909 AND fvl34.lookup_code(+) = l1.LINE_TYPE
81910 AND fvl34.view_application_id(+) = 275
81911 AND fvl34.language(+) = USERENV('LANG')
81912 AND fvl70.lookup_type(+) = 'FC_DOC_TYPE'
81913 AND fvl70.lookup_code(+) = l1.DOCUMENT_TYPE
81914 AND fvl70.view_application_id(+) = 275
81915 AND fvl70.language(+) = USERENV('LANG')
81916 ;
81917
81918 --
81919 BEGIN
81920 IF g_log_enabled THEN
81921 l_log_module := C_DEFAULT_MODULE||'.EventClass_128';
81922 END IF;
81923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81924 trace
81925 (p_msg => 'BEGIN of EventClass_128'
81926 ,p_level => C_LEVEL_PROCEDURE
81927 ,p_module => l_log_module);
81928 END IF;
81929
81930 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81931 trace
81932 (p_msg => 'p_application_id = '||p_application_id||
81933 ' - p_base_ledger_id = '||p_base_ledger_id||
81934 ' - p_target_ledger_id = '||p_target_ledger_id||
81935 ' - p_language = '||p_language||
81936 ' - p_currency_code = '||p_currency_code||
81937 ' - p_sla_ledger_id = '||p_sla_ledger_id
81938 ,p_level => C_LEVEL_STATEMENT
81939 ,p_module => l_log_module);
81940 END IF;
81941 --
81942 -- initialze arrays
81943 --
81944 g_array_event.DELETE;
81945 l_rec_array_event := l_null_rec_array_event;
81946 --
81947 --------------------------------------
81948 -- 4262811 Initialze MPA Line Number
81949 --------------------------------------
81950 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
81951
81952 --
81953
81954 --
81955 OPEN header_cur;
81956 --
81957 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81958 trace
81959 (p_msg => 'SQL - FETCH header_cur'
81960 ,p_level => C_LEVEL_STATEMENT
81961 ,p_module => l_log_module);
81962 END IF;
81963 --
81964 LOOP
81965 FETCH header_cur BULK COLLECT INTO
81966 l_array_entity_id
81967 , l_array_legal_entity_id
81968 , l_array_entity_code
81969 , l_array_transaction_num
81970 , l_array_event_id
81971 , l_array_class_code
81972 , l_array_event_type
81973 , l_array_event_number
81974 , l_array_event_date
81975 , l_array_transaction_date
81976 , l_array_reference_num_1
81977 , l_array_reference_num_2
81978 , l_array_reference_num_3
81979 , l_array_reference_num_4
81980 , l_array_reference_char_1
81981 , l_array_reference_char_2
81982 , l_array_reference_char_3
81983 , l_array_reference_char_4
81984 , l_array_reference_date_1
81985 , l_array_reference_date_2
81986 , l_array_reference_date_3
81987 , l_array_reference_date_4
81988 , l_array_event_created_by
81989 , l_array_budgetary_control_flag
81990 , l_array_source_32
81991 , l_array_source_37
81992 , l_array_source_88
81993 LIMIT l_rows;
81994 --
81995 IF (C_LEVEL_EVENT >= g_log_level) THEN
81996 trace
81997 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
81998 ,p_level => C_LEVEL_EVENT
81999 ,p_module => l_log_module);
82000 END IF;
82001 --
82002 EXIT WHEN l_array_entity_id.COUNT = 0;
82003
82004 -- initialize arrays
82005 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
82006 XLA_AE_LINES_PKG.g_rec_lines := NULL;
82007
82008 --
82009 -- Bug 4458708
82010 --
82011 XLA_AE_LINES_PKG.g_LineNumber := 0;
82012
82013
82014 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
82015 g_last_hdr_idx := l_array_event_id.LAST;
82016 --
82017 -- loop for the headers. Each iteration is for each header extract row
82018 -- fetched in header cursor
82019 --
82020 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
82021
82022 --
82023 -- set event info as cache for other routines to refer event attributes
82024 --
82025 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
82026 (p_application_id => p_application_id
82027 ,p_primary_ledger_id => p_primary_ledger_id
82028 ,p_base_ledger_id => p_base_ledger_id
82029 ,p_target_ledger_id => p_target_ledger_id
82030 ,p_entity_id => l_array_entity_id(hdr_idx)
82031 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
82032 ,p_entity_code => l_array_entity_code(hdr_idx)
82033 ,p_transaction_num => l_array_transaction_num(hdr_idx)
82034 ,p_event_id => l_array_event_id(hdr_idx)
82035 ,p_event_class_code => l_array_class_code(hdr_idx)
82036 ,p_event_type_code => l_array_event_type(hdr_idx)
82037 ,p_event_number => l_array_event_number(hdr_idx)
82038 ,p_event_date => l_array_event_date(hdr_idx)
82039 ,p_transaction_date => l_array_transaction_date(hdr_idx)
82040 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
82041 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
82042 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
82043 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
82044 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
82045 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
82049 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
82046 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
82047 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
82048 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
82050 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
82051 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
82052 ,p_event_created_by => l_array_event_created_by(hdr_idx)
82053 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
82054
82055 --
82056 -- set the status of entry to C_VALID (0)
82057 --
82058 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
82059
82060 --
82061 -- initialize a row for ae header
82062 --
82063 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
82064
82065 l_event_id := l_array_event_id(hdr_idx);
82066
82067 --
82068 -- storing the hdr_idx for event. May be used by line cursor.
82069 --
82070 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
82071
82072 --
82073 -- store sources from header extract. This can be improved to
82074 -- store only those sources from header extract that may be used in lines
82075 --
82076
82077 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
82078 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
82079 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
82080
82081 --
82082 -- initilaize the status of ae headers for diffrent balance types
82083 -- the status is initialised to C_NOT_CREATED (2)
82084 --
82085 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82086 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82087 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
82088
82089 --
82090 -- call api to validate and store accounting attributes for header
82091 --
82092
82093 ------------------------------------------------------------
82094 -- Accrual Reversal : to get date for Standard Source (NONE)
82095 ------------------------------------------------------------
82096 l_acc_rev_gl_date_source := NULL;
82097
82098 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
82099 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
82100
82101
82102 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
82103
82104 XLA_AE_HEADER_PKG.SetJeCategoryName;
82105
82106 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
82107 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
82108 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
82109 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
82110 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
82111
82112
82113 -- No header level analytical criteria
82114
82115 --
82116 --accounting attribute enhancement, bug 3612931
82117 --
82118 l_trx_reversal_source := SUBSTR(NULL, 1,30);
82119
82120 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
82121 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
82122
82123 xla_accounting_err_pkg.build_message
82124 (p_appli_s_name => 'XLA'
82125 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
82126 ,p_token_1 => 'ACCT_ATTR_NAME'
82127 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
82128 ,p_token_2 => 'PRODUCT_NAME'
82129 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82130 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82131 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82132 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82133
82134 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
82135 --
82136 -- following sets the accounting attributes needed to reverse
82137 -- accounting for a distributeion
82138 --
82139 xla_ae_lines_pkg.SetTrxReversalAttrs
82140 (p_event_id => l_event_id
82141 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
82142 ,p_trx_reversal_source => l_trx_reversal_source);
82143
82144 END IF;
82145
82146
82147 ----------------------------------------------------------------
82148 -- 4262811 - update the header statuses to invalid in need be
82149 ----------------------------------------------------------------
82150 --
82151 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
82152
82153
82154 -----------------------------------------------
82155 -- No accrual reversal for the event class/type
82156 -----------------------------------------------
82157 ----------------------------------------------------------------
82158
82159 --
82160 -- this ends the header loop iteration for one bulk fetch
82161 --
82162 END LOOP;
82163
82164 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
82165 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
82166
82167 --
82168 -- insert dummy rows into lines gt table that were created due to
82169 -- transaction reversals
82170 --
82171 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
82172 l_result := XLA_AE_LINES_PKG.InsertLines;
82173 END IF;
82174
82175 --
82179 --
82176 -- reset the temp_line_num for each set of events fetched from header
82177 -- cursor rather than doing it for each new event in line cursor
82178 -- Bug 3939231
82180 xla_ae_lines_pkg.g_temp_line_num := 0;
82181
82182
82183
82184 --
82185 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
82186 --
82187 --
82188 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82189
82190 trace
82191 (p_msg => 'SQL - FETCH line_cur'
82192 ,p_level => C_LEVEL_STATEMENT
82193 ,p_module => l_log_module);
82194
82195 END IF;
82196 --
82197 --
82198 LOOP
82199 --
82200 FETCH line_cur BULK COLLECT INTO
82201 l_array_entity_id
82202 , l_array_legal_entity_id
82203 , l_array_entity_code
82204 , l_array_transaction_num
82205 , l_array_event_id
82206 , l_array_class_code
82207 , l_array_event_type
82208 , l_array_event_number
82209 , l_array_event_date
82210 , l_array_transaction_date
82211 , l_array_reference_num_1
82212 , l_array_reference_num_2
82213 , l_array_reference_num_3
82214 , l_array_reference_num_4
82215 , l_array_reference_char_1
82216 , l_array_reference_char_2
82217 , l_array_reference_char_3
82218 , l_array_reference_char_4
82219 , l_array_reference_date_1
82220 , l_array_reference_date_2
82221 , l_array_reference_date_3
82222 , l_array_reference_date_4
82223 , l_array_event_created_by
82224 , l_array_budgetary_control_flag
82225 , l_array_extract_line_num
82226 , l_array_source_2
82227 , l_array_source_3
82228 , l_array_source_4
82229 , l_array_source_5
82230 , l_array_source_6
82231 , l_array_source_7
82232 , l_array_source_22
82233 , l_array_source_23
82234 , l_array_source_25
82235 , l_array_source_27
82236 , l_array_source_28
82237 , l_array_source_29
82238 , l_array_source_30
82239 , l_array_source_31
82240 , l_array_source_33
82241 , l_array_source_34
82242 , l_array_source_34_meaning
82243 , l_array_source_35
82244 , l_array_source_44
82245 , l_array_source_45
82246 , l_array_source_46
82247 , l_array_source_47
82248 , l_array_source_48
82249 , l_array_source_49
82250 , l_array_source_50
82251 , l_array_source_51
82252 , l_array_source_52
82253 , l_array_source_53
82254 , l_array_source_54
82255 , l_array_source_55
82256 , l_array_source_56
82257 , l_array_source_57
82258 , l_array_source_70
82259 , l_array_source_70_meaning
82260 , l_array_source_71
82261 , l_array_source_72
82262 , l_array_source_73
82263 , l_array_source_74
82264 , l_array_source_75
82265 , l_array_source_76
82266 , l_array_source_77
82267 , l_array_source_78
82268 , l_array_source_79
82269 , l_array_source_80
82270 , l_array_source_81
82271 , l_array_source_82
82272 , l_array_source_83
82273 , l_array_source_84
82274 , l_array_source_85
82275 , l_array_source_86
82276 , l_array_source_87
82277 LIMIT l_rows;
82278
82279 --
82280 IF (C_LEVEL_EVENT >= g_log_level) THEN
82281 trace
82282 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
82283 ,p_level => C_LEVEL_EVENT
82284 ,p_module => l_log_module);
82285 END IF;
82286 --
82287 EXIT WHEN l_array_entity_id.count = 0;
82288
82289 XLA_AE_LINES_PKG.g_rec_lines := null;
82290
82291 --
82292 -- Bug 4458708
82293 --
82294 XLA_AE_LINES_PKG.g_LineNumber := 0;
82295 --
82296 --
82297
82298 FOR Idx IN 1..l_array_event_id.count LOOP
82299 --
82300 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
82301 --
82302 l_event_id := l_array_event_id(idx); -- 5648433
82303
82304 --
82305 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
82306 --
82307
82308 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
82309 (g_array_event(l_event_id).array_value_num('header_index'))
82310 ,'N'
82311 ) <> 'Y'
82312 THEN
82313 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82314 trace
82315 (p_msg => 'Trancaction revesal option is not Y '
82316 ,p_level => C_LEVEL_STATEMENT
82317 ,p_module => l_log_module);
82318 END IF;
82319
82320 --
82321 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
82322 --
82323 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
82324 --
82325 -- set event info as cache for other routines to refer event attributes
82326 --
82327
82328 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
82329 l_previous_event_id := l_event_id;
82330
82331 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
82332 (p_application_id => p_application_id
82333 ,p_primary_ledger_id => p_primary_ledger_id
82334 ,p_base_ledger_id => p_base_ledger_id
82335 ,p_target_ledger_id => p_target_ledger_id
82336 ,p_entity_id => l_array_entity_id(Idx)
82337 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
82338 ,p_entity_code => l_array_entity_code(Idx)
82339 ,p_transaction_num => l_array_transaction_num(Idx)
82343 ,p_event_number => l_array_event_number(Idx)
82340 ,p_event_id => l_array_event_id(Idx)
82341 ,p_event_class_code => l_array_class_code(Idx)
82342 ,p_event_type_code => l_array_event_type(Idx)
82344 ,p_event_date => l_array_event_date(Idx)
82345 ,p_transaction_date => l_array_transaction_date(Idx)
82346 ,p_reference_num_1 => l_array_reference_num_1(Idx)
82347 ,p_reference_num_2 => l_array_reference_num_2(Idx)
82348 ,p_reference_num_3 => l_array_reference_num_3(Idx)
82349 ,p_reference_num_4 => l_array_reference_num_4(Idx)
82350 ,p_reference_char_1 => l_array_reference_char_1(Idx)
82351 ,p_reference_char_2 => l_array_reference_char_2(Idx)
82352 ,p_reference_char_3 => l_array_reference_char_3(Idx)
82353 ,p_reference_char_4 => l_array_reference_char_4(Idx)
82354 ,p_reference_date_1 => l_array_reference_date_1(Idx)
82355 ,p_reference_date_2 => l_array_reference_date_2(Idx)
82356 ,p_reference_date_3 => l_array_reference_date_3(Idx)
82357 ,p_reference_date_4 => l_array_reference_date_4(Idx)
82358 ,p_event_created_by => l_array_event_created_by(Idx)
82359 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
82360 --
82361 END IF;
82362
82363
82364
82365 --
82366 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
82367
82368 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
82369
82370 IF l_continue_with_lines THEN
82371 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
82372 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
82373
82374 xla_accounting_err_pkg.build_message
82375 (p_appli_s_name => 'XLA'
82376 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
82377 ,p_token_1 => 'LINE_NUMBER'
82378 ,p_value_1 => l_array_extract_line_num(Idx)
82379 ,p_token_2 => 'PRODUCT_NAME'
82380 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82381 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82382 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82383 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82384
82385 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
82386 --
82387 -- following sets the accounting attributes needed to reverse
82388 -- accounting for a distributeion
82389 --
82390
82391 --
82392 -- 5217187
82393 --
82394 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
82395 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
82396 g_array_event(l_event_id).array_value_num('header_index'));
82397 --
82398 --
82399
82400 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
82401 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
82402 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
82403 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
82404 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
82405 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
82406 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
82407 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_44(Idx);
82408 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
82409 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
82410 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
82411 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_45(Idx);
82412 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
82413 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
82414 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
82415 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
82416 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
82417 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
82418 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
82419 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
82420 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
82421 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
82422 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
82423 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_44(Idx);
82424 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
82425 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
82426 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
82427 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_45(Idx);
82428 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
82429 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
82430 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
82431 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
82432 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
82433 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
82434 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
82435 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
82439 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
82436 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
82437 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
82438 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
82440 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
82441 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
82442 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_CR_ACCT_CLASS';
82443 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_53(Idx);
82444 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_CR_CCID';
82445 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_2(Idx);
82446 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_CR_ENTERED_AMT';
82447 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_46(Idx);
82448 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_CR_ENTERED_CURR';
82449 l_rec_rev_acct_attrs.array_char_value(26) :=
82450 xla_ae_sources_pkg.GetSystemSourceChar(
82451 p_source_code => 'XLA_CURRENCY_CODE'
82452 , p_source_type_code => 'Y'
82453 , p_source_application_id => 602
82454 );
82455 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_CR_LEDGER_AMT';
82456 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_46(Idx);
82457 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
82458 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_54(Idx);
82459 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
82460 l_rec_rev_acct_attrs.array_num_value(29) := l_array_source_2(Idx);
82461 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
82462 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_46(Idx);
82463 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
82464 l_rec_rev_acct_attrs.array_char_value(31) :=
82465 xla_ae_sources_pkg.GetSystemSourceChar(
82466 p_source_code => 'XLA_CURRENCY_CODE'
82467 , p_source_type_code => 'Y'
82468 , p_source_application_id => 602
82469 );
82470 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
82471 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_46(Idx);
82472 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
82473 l_rec_rev_acct_attrs.array_char_value(33) := l_array_source_55(Idx);
82474 l_rec_rev_acct_attrs.array_acct_attr_code(34) := 'GAIN_LOSS_REFERENCE';
82475 l_rec_rev_acct_attrs.array_num_value(34) := g_array_event(l_event_id).array_value_num('source_32');
82476 l_rec_rev_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_ID1';
82477 l_rec_rev_acct_attrs.array_num_value(35) := g_array_event(l_event_id).array_value_num('source_32');
82478 l_rec_rev_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID2';
82479 l_rec_rev_acct_attrs.array_num_value(36) := l_array_source_35(Idx);
82480 l_rec_rev_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
82481 l_rec_rev_acct_attrs.array_char_value(37) := l_array_source_34(Idx);
82482 l_rec_rev_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
82483 l_rec_rev_acct_attrs.array_num_value(38) := l_array_source_56(Idx);
82484 l_rec_rev_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
82485 l_rec_rev_acct_attrs.array_num_value(39) := l_array_source_57(Idx);
82486
82487
82488 xla_ae_lines_pkg.SetAcctReversalAttrs
82489 (p_event_id => l_event_id
82490 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
82491 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82492 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
82493 END IF;
82494
82495 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
82496 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
82497
82498 --
82499 AcctLineType_78 (
82500 p_application_id => p_application_id
82501 ,p_event_id => l_event_id
82502 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82503 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82504 ,p_actual_flag => l_actual_flag
82505 ,p_balance_type_code => l_balance_type_code
82506 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82507
82508 , p_source_2 => l_array_source_2(Idx)
82509 , p_source_3 => l_array_source_3(Idx)
82510 , p_source_4 => l_array_source_4(Idx)
82511 , p_source_5 => l_array_source_5(Idx)
82512 , p_source_6 => l_array_source_6(Idx)
82513 , p_source_22 => l_array_source_22(Idx)
82514 , p_source_23 => l_array_source_23(Idx)
82515 , p_source_25 => l_array_source_25(Idx)
82516 , p_source_27 => l_array_source_27(Idx)
82517 , p_source_28 => l_array_source_28(Idx)
82518 , p_source_29 => l_array_source_29(Idx)
82519 , p_source_30 => l_array_source_30(Idx)
82520 , p_source_31 => l_array_source_31(Idx)
82521 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82522 , p_source_33 => l_array_source_33(Idx)
82523 , p_source_34 => l_array_source_34(Idx)
82524 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82525 , p_source_35 => l_array_source_35(Idx)
82526 , p_source_44 => l_array_source_44(Idx)
82527 , p_source_45 => l_array_source_45(Idx)
82528 , p_source_46 => l_array_source_46(Idx)
82529 , p_source_47 => l_array_source_47(Idx)
82530 , p_source_48 => l_array_source_48(Idx)
82531 , p_source_49 => l_array_source_49(Idx)
82532 , p_source_50 => l_array_source_50(Idx)
82533 , p_source_51 => l_array_source_51(Idx)
82534 , p_source_52 => l_array_source_52(Idx)
82535 , p_source_53 => l_array_source_53(Idx)
82536 , p_source_54 => l_array_source_54(Idx)
82537 , p_source_55 => l_array_source_55(Idx)
82538 , p_source_56 => l_array_source_56(Idx)
82539 , p_source_57 => l_array_source_57(Idx)
82540 );
82541 If(l_balance_type_code = 'A') THEN
82545 --
82542 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82543 END IF;
82544
82546
82547
82548 --
82549 AcctLineType_80 (
82550 p_application_id => p_application_id
82551 ,p_event_id => l_event_id
82552 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82553 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82554 ,p_actual_flag => l_actual_flag
82555 ,p_balance_type_code => l_balance_type_code
82556 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82557
82558 , p_source_2 => l_array_source_2(Idx)
82559 , p_source_3 => l_array_source_3(Idx)
82560 , p_source_4 => l_array_source_4(Idx)
82561 , p_source_6 => l_array_source_6(Idx)
82562 , p_source_7 => l_array_source_7(Idx)
82563 , p_source_22 => l_array_source_22(Idx)
82564 , p_source_23 => l_array_source_23(Idx)
82565 , p_source_25 => l_array_source_25(Idx)
82566 , p_source_27 => l_array_source_27(Idx)
82567 , p_source_28 => l_array_source_28(Idx)
82568 , p_source_29 => l_array_source_29(Idx)
82569 , p_source_30 => l_array_source_30(Idx)
82570 , p_source_31 => l_array_source_31(Idx)
82571 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82572 , p_source_33 => l_array_source_33(Idx)
82573 , p_source_34 => l_array_source_34(Idx)
82574 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82575 , p_source_35 => l_array_source_35(Idx)
82576 , p_source_44 => l_array_source_44(Idx)
82577 , p_source_45 => l_array_source_45(Idx)
82578 , p_source_46 => l_array_source_46(Idx)
82579 , p_source_47 => l_array_source_47(Idx)
82580 , p_source_48 => l_array_source_48(Idx)
82581 , p_source_49 => l_array_source_49(Idx)
82582 , p_source_50 => l_array_source_50(Idx)
82583 , p_source_51 => l_array_source_51(Idx)
82584 , p_source_52 => l_array_source_52(Idx)
82585 , p_source_53 => l_array_source_53(Idx)
82586 , p_source_54 => l_array_source_54(Idx)
82587 , p_source_55 => l_array_source_55(Idx)
82588 , p_source_56 => l_array_source_56(Idx)
82589 , p_source_57 => l_array_source_57(Idx)
82590 );
82591 If(l_balance_type_code = 'A') THEN
82592 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82593 END IF;
82594
82595 --
82596
82597
82598 --
82599 AcctLineType_91 (
82600 p_application_id => p_application_id
82601 ,p_event_id => l_event_id
82602 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82603 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82604 ,p_actual_flag => l_actual_flag
82605 ,p_balance_type_code => l_balance_type_code
82606 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82607
82608 , p_source_2 => l_array_source_2(Idx)
82609 , p_source_3 => l_array_source_3(Idx)
82610 , p_source_6 => l_array_source_6(Idx)
82611 , p_source_22 => l_array_source_22(Idx)
82612 , p_source_23 => l_array_source_23(Idx)
82613 , p_source_25 => l_array_source_25(Idx)
82614 , p_source_27 => l_array_source_27(Idx)
82615 , p_source_28 => l_array_source_28(Idx)
82616 , p_source_29 => l_array_source_29(Idx)
82617 , p_source_30 => l_array_source_30(Idx)
82618 , p_source_31 => l_array_source_31(Idx)
82619 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82620 , p_source_33 => l_array_source_33(Idx)
82621 , p_source_34 => l_array_source_34(Idx)
82622 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82623 , p_source_35 => l_array_source_35(Idx)
82624 , p_source_44 => l_array_source_44(Idx)
82625 , p_source_45 => l_array_source_45(Idx)
82626 , p_source_46 => l_array_source_46(Idx)
82627 , p_source_47 => l_array_source_47(Idx)
82628 , p_source_48 => l_array_source_48(Idx)
82629 , p_source_49 => l_array_source_49(Idx)
82630 , p_source_50 => l_array_source_50(Idx)
82631 , p_source_51 => l_array_source_51(Idx)
82632 , p_source_52 => l_array_source_52(Idx)
82633 , p_source_53 => l_array_source_53(Idx)
82634 , p_source_54 => l_array_source_54(Idx)
82635 , p_source_55 => l_array_source_55(Idx)
82636 , p_source_56 => l_array_source_56(Idx)
82637 , p_source_57 => l_array_source_57(Idx)
82638 );
82639 If(l_balance_type_code = 'A') THEN
82640 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82641 END IF;
82642
82643 --
82644
82645
82646 --
82647 AcctLineType_93 (
82648 p_application_id => p_application_id
82649 ,p_event_id => l_event_id
82650 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82651 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82652 ,p_actual_flag => l_actual_flag
82653 ,p_balance_type_code => l_balance_type_code
82654 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82655
82656 , p_source_2 => l_array_source_2(Idx)
82657 , p_source_3 => l_array_source_3(Idx)
82658 , p_source_6 => l_array_source_6(Idx)
82659 , p_source_22 => l_array_source_22(Idx)
82660 , p_source_23 => l_array_source_23(Idx)
82661 , p_source_25 => l_array_source_25(Idx)
82662 , p_source_27 => l_array_source_27(Idx)
82663 , p_source_28 => l_array_source_28(Idx)
82664 , p_source_29 => l_array_source_29(Idx)
82665 , p_source_30 => l_array_source_30(Idx)
82666 , p_source_31 => l_array_source_31(Idx)
82667 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82668 , p_source_33 => l_array_source_33(Idx)
82669 , p_source_34 => l_array_source_34(Idx)
82670 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82671 , p_source_35 => l_array_source_35(Idx)
82672 , p_source_44 => l_array_source_44(Idx)
82673 , p_source_45 => l_array_source_45(Idx)
82674 , p_source_46 => l_array_source_46(Idx)
82675 , p_source_47 => l_array_source_47(Idx)
82676 , p_source_48 => l_array_source_48(Idx)
82677 , p_source_49 => l_array_source_49(Idx)
82678 , p_source_50 => l_array_source_50(Idx)
82679 , p_source_51 => l_array_source_51(Idx)
82680 , p_source_52 => l_array_source_52(Idx)
82681 , p_source_53 => l_array_source_53(Idx)
82682 , p_source_54 => l_array_source_54(Idx)
82683 , p_source_55 => l_array_source_55(Idx)
82687 , p_source_70_meaning => l_array_source_70_meaning(Idx)
82684 , p_source_56 => l_array_source_56(Idx)
82685 , p_source_57 => l_array_source_57(Idx)
82686 , p_source_70 => l_array_source_70(Idx)
82688 , p_source_71 => l_array_source_71(Idx)
82689 );
82690 If(l_balance_type_code = 'A') THEN
82691 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82692 END IF;
82693
82694 --
82695
82696
82697 --
82698 AcctLineType_96 (
82699 p_application_id => p_application_id
82700 ,p_event_id => l_event_id
82701 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82702 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82703 ,p_actual_flag => l_actual_flag
82704 ,p_balance_type_code => l_balance_type_code
82705 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82706
82707 , p_source_2 => l_array_source_2(Idx)
82708 , p_source_3 => l_array_source_3(Idx)
82709 , p_source_6 => l_array_source_6(Idx)
82710 , p_source_22 => l_array_source_22(Idx)
82711 , p_source_23 => l_array_source_23(Idx)
82712 , p_source_25 => l_array_source_25(Idx)
82713 , p_source_27 => l_array_source_27(Idx)
82714 , p_source_28 => l_array_source_28(Idx)
82715 , p_source_29 => l_array_source_29(Idx)
82716 , p_source_30 => l_array_source_30(Idx)
82717 , p_source_31 => l_array_source_31(Idx)
82718 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82719 , p_source_33 => l_array_source_33(Idx)
82720 , p_source_34 => l_array_source_34(Idx)
82721 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82722 , p_source_35 => l_array_source_35(Idx)
82723 , p_source_44 => l_array_source_44(Idx)
82724 , p_source_45 => l_array_source_45(Idx)
82725 , p_source_46 => l_array_source_46(Idx)
82726 , p_source_47 => l_array_source_47(Idx)
82727 , p_source_48 => l_array_source_48(Idx)
82728 , p_source_49 => l_array_source_49(Idx)
82729 , p_source_50 => l_array_source_50(Idx)
82730 , p_source_51 => l_array_source_51(Idx)
82731 , p_source_52 => l_array_source_52(Idx)
82732 , p_source_53 => l_array_source_53(Idx)
82733 , p_source_54 => l_array_source_54(Idx)
82734 , p_source_55 => l_array_source_55(Idx)
82735 , p_source_56 => l_array_source_56(Idx)
82736 , p_source_57 => l_array_source_57(Idx)
82737 , p_source_70 => l_array_source_70(Idx)
82738 , p_source_70_meaning => l_array_source_70_meaning(Idx)
82739 , p_source_72 => l_array_source_72(Idx)
82740 , p_source_73 => l_array_source_73(Idx)
82741 );
82742 If(l_balance_type_code = 'A') THEN
82743 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82744 END IF;
82745
82746 --
82747
82748
82749 --
82750 AcctLineType_98 (
82751 p_application_id => p_application_id
82752 ,p_event_id => l_event_id
82753 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82754 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82755 ,p_actual_flag => l_actual_flag
82756 ,p_balance_type_code => l_balance_type_code
82757 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82758
82759 , p_source_2 => l_array_source_2(Idx)
82760 , p_source_3 => l_array_source_3(Idx)
82761 , p_source_6 => l_array_source_6(Idx)
82762 , p_source_22 => l_array_source_22(Idx)
82763 , p_source_23 => l_array_source_23(Idx)
82764 , p_source_25 => l_array_source_25(Idx)
82765 , p_source_27 => l_array_source_27(Idx)
82766 , p_source_28 => l_array_source_28(Idx)
82767 , p_source_29 => l_array_source_29(Idx)
82768 , p_source_30 => l_array_source_30(Idx)
82769 , p_source_31 => l_array_source_31(Idx)
82770 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82771 , p_source_33 => l_array_source_33(Idx)
82772 , p_source_34 => l_array_source_34(Idx)
82773 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82774 , p_source_35 => l_array_source_35(Idx)
82775 , p_source_44 => l_array_source_44(Idx)
82776 , p_source_45 => l_array_source_45(Idx)
82777 , p_source_46 => l_array_source_46(Idx)
82778 , p_source_53 => l_array_source_53(Idx)
82779 , p_source_54 => l_array_source_54(Idx)
82780 , p_source_55 => l_array_source_55(Idx)
82781 , p_source_56 => l_array_source_56(Idx)
82782 , p_source_57 => l_array_source_57(Idx)
82783 , p_source_70 => l_array_source_70(Idx)
82784 , p_source_70_meaning => l_array_source_70_meaning(Idx)
82785 , p_source_71 => l_array_source_71(Idx)
82786 , p_source_74 => l_array_source_74(Idx)
82787 , p_source_75 => l_array_source_75(Idx)
82788 , p_source_76 => l_array_source_76(Idx)
82789 , p_source_77 => l_array_source_77(Idx)
82790 , p_source_78 => l_array_source_78(Idx)
82791 , p_source_79 => l_array_source_79(Idx)
82792 );
82793 If(l_balance_type_code = 'A') THEN
82794 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82795 END IF;
82796
82797 --
82798
82799
82800 --
82801 AcctLineType_102 (
82802 p_application_id => p_application_id
82803 ,p_event_id => l_event_id
82804 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82805 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82806 ,p_actual_flag => l_actual_flag
82807 ,p_balance_type_code => l_balance_type_code
82808 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82809
82810 , p_source_2 => l_array_source_2(Idx)
82811 , p_source_3 => l_array_source_3(Idx)
82812 , p_source_6 => l_array_source_6(Idx)
82813 , p_source_22 => l_array_source_22(Idx)
82814 , p_source_23 => l_array_source_23(Idx)
82815 , p_source_25 => l_array_source_25(Idx)
82816 , p_source_27 => l_array_source_27(Idx)
82817 , p_source_28 => l_array_source_28(Idx)
82818 , p_source_29 => l_array_source_29(Idx)
82819 , p_source_30 => l_array_source_30(Idx)
82820 , p_source_31 => l_array_source_31(Idx)
82821 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82822 , p_source_33 => l_array_source_33(Idx)
82823 , p_source_34 => l_array_source_34(Idx)
82824 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82825 , p_source_35 => l_array_source_35(Idx)
82829 , p_source_53 => l_array_source_53(Idx)
82826 , p_source_44 => l_array_source_44(Idx)
82827 , p_source_45 => l_array_source_45(Idx)
82828 , p_source_46 => l_array_source_46(Idx)
82830 , p_source_54 => l_array_source_54(Idx)
82831 , p_source_55 => l_array_source_55(Idx)
82832 , p_source_56 => l_array_source_56(Idx)
82833 , p_source_57 => l_array_source_57(Idx)
82834 , p_source_70 => l_array_source_70(Idx)
82835 , p_source_70_meaning => l_array_source_70_meaning(Idx)
82836 , p_source_72 => l_array_source_72(Idx)
82837 , p_source_73 => l_array_source_73(Idx)
82838 , p_source_80 => l_array_source_80(Idx)
82839 , p_source_81 => l_array_source_81(Idx)
82840 , p_source_82 => l_array_source_82(Idx)
82841 , p_source_83 => l_array_source_83(Idx)
82842 , p_source_84 => l_array_source_84(Idx)
82843 , p_source_85 => l_array_source_85(Idx)
82844 );
82845 If(l_balance_type_code = 'A') THEN
82846 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82847 END IF;
82848
82849 --
82850
82851
82852 --
82853 AcctLineType_106 (
82854 p_application_id => p_application_id
82855 ,p_event_id => l_event_id
82856 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82857 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82858 ,p_actual_flag => l_actual_flag
82859 ,p_balance_type_code => l_balance_type_code
82860 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82861
82862 , p_source_2 => l_array_source_2(Idx)
82863 , p_source_3 => l_array_source_3(Idx)
82864 , p_source_6 => l_array_source_6(Idx)
82865 , p_source_22 => l_array_source_22(Idx)
82866 , p_source_23 => l_array_source_23(Idx)
82867 , p_source_25 => l_array_source_25(Idx)
82868 , p_source_27 => l_array_source_27(Idx)
82869 , p_source_28 => l_array_source_28(Idx)
82870 , p_source_29 => l_array_source_29(Idx)
82871 , p_source_30 => l_array_source_30(Idx)
82872 , p_source_31 => l_array_source_31(Idx)
82873 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82874 , p_source_33 => l_array_source_33(Idx)
82875 , p_source_34 => l_array_source_34(Idx)
82876 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82877 , p_source_35 => l_array_source_35(Idx)
82878 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
82879 , p_source_44 => l_array_source_44(Idx)
82880 , p_source_45 => l_array_source_45(Idx)
82881 , p_source_46 => l_array_source_46(Idx)
82882 , p_source_47 => l_array_source_47(Idx)
82883 , p_source_48 => l_array_source_48(Idx)
82884 , p_source_49 => l_array_source_49(Idx)
82885 , p_source_50 => l_array_source_50(Idx)
82886 , p_source_51 => l_array_source_51(Idx)
82887 , p_source_52 => l_array_source_52(Idx)
82888 , p_source_53 => l_array_source_53(Idx)
82889 , p_source_54 => l_array_source_54(Idx)
82890 , p_source_55 => l_array_source_55(Idx)
82891 , p_source_56 => l_array_source_56(Idx)
82892 , p_source_57 => l_array_source_57(Idx)
82893 , p_source_73 => l_array_source_73(Idx)
82894 , p_source_86 => l_array_source_86(Idx)
82895 , p_source_87 => l_array_source_87(Idx)
82896 );
82897 If(l_balance_type_code = 'A') THEN
82898 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82899 END IF;
82900
82901 --
82902
82903
82904 --
82905 AcctLineType_107 (
82906 p_application_id => p_application_id
82907 ,p_event_id => l_event_id
82908 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82909 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82910 ,p_actual_flag => l_actual_flag
82911 ,p_balance_type_code => l_balance_type_code
82912 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82913
82914 , p_source_2 => l_array_source_2(Idx)
82915 , p_source_3 => l_array_source_3(Idx)
82916 , p_source_6 => l_array_source_6(Idx)
82917 , p_source_22 => l_array_source_22(Idx)
82918 , p_source_23 => l_array_source_23(Idx)
82919 , p_source_25 => l_array_source_25(Idx)
82920 , p_source_27 => l_array_source_27(Idx)
82921 , p_source_28 => l_array_source_28(Idx)
82922 , p_source_29 => l_array_source_29(Idx)
82923 , p_source_30 => l_array_source_30(Idx)
82924 , p_source_31 => l_array_source_31(Idx)
82925 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82926 , p_source_33 => l_array_source_33(Idx)
82927 , p_source_34 => l_array_source_34(Idx)
82928 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82929 , p_source_35 => l_array_source_35(Idx)
82930 , p_source_44 => l_array_source_44(Idx)
82931 , p_source_45 => l_array_source_45(Idx)
82932 , p_source_46 => l_array_source_46(Idx)
82933 , p_source_53 => l_array_source_53(Idx)
82934 , p_source_54 => l_array_source_54(Idx)
82935 , p_source_55 => l_array_source_55(Idx)
82936 , p_source_56 => l_array_source_56(Idx)
82937 , p_source_57 => l_array_source_57(Idx)
82938 , p_source_70 => l_array_source_70(Idx)
82939 , p_source_70_meaning => l_array_source_70_meaning(Idx)
82940 , p_source_72 => l_array_source_72(Idx)
82941 , p_source_73 => l_array_source_73(Idx)
82942 , p_source_80 => l_array_source_80(Idx)
82943 , p_source_81 => l_array_source_81(Idx)
82944 , p_source_82 => l_array_source_82(Idx)
82945 , p_source_83 => l_array_source_83(Idx)
82946 , p_source_84 => l_array_source_84(Idx)
82947 , p_source_85 => l_array_source_85(Idx)
82948 );
82949 If(l_balance_type_code = 'A') THEN
82950 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82951 END IF;
82952
82953 --
82954
82955 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
82956 -- or secondary ledger that has different currency with primary
82957 -- or alc that is calculated by sla
82958 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
82959 (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'))
82960
82964 XLA_AE_LINES_PKG.CreateGainOrLossLines(
82961 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
82962 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
82963 AND (l_actual_flag = 'A')) THEN
82965 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82966 ,p_application_id => p_application_id
82967 ,p_amb_context_code => 'DEFAULT'
82968 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
82969 ,p_event_class_code => C_EVENT_CLASS_CODE
82970 ,p_event_type_code => C_EVENT_TYPE_CODE
82971
82972 ,p_gain_ccid => -1
82973 ,p_loss_ccid => -1
82974
82975 ,p_actual_flag => l_actual_flag
82976 ,p_enc_flag => null
82977 ,p_actual_g_l_ref => l_actual_gain_loss_ref
82978 ,p_enc_g_l_ref => null
82979 );
82980 END IF;
82981 END IF;
82982 END IF;
82983
82984 ELSE
82985 --
82986 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
82987 --
82988 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82989 trace
82990 (p_msg => 'Trancaction revesal option is Y'
82991 ,p_level => C_LEVEL_STATEMENT
82992 ,p_module => l_log_module);
82993 END IF;
82994 END IF;
82995
82996 END LOOP;
82997 l_result := XLA_AE_LINES_PKG.InsertLines ;
82998 end loop;
82999 close line_cur;
83000
83001
83002 --
83003 -- insert headers into xla_ae_headers_gt table
83004 --
83005 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
83006
83007 -- insert into errors table here.
83008
83009 END LOOP;
83010
83011 --
83012 -- 4865292
83013 --
83014 -- Compare g_hdr_extract_count with event count in
83015 -- CreateHeadersAndLines.
83016 --
83017 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
83018
83019 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83020 trace (p_msg => '# rows extracted from header extract objects '
83021 || ' (running total): '
83022 || g_hdr_extract_count
83023 ,p_level => C_LEVEL_STATEMENT
83024 ,p_module => l_log_module);
83025 END IF;
83026
83027 CLOSE header_cur;
83028 --
83029
83030 --
83031 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83032 trace
83033 (p_msg => 'END of EventClass_128'
83034 ,p_level => C_LEVEL_PROCEDURE
83035 ,p_module => l_log_module);
83036 END IF;
83037 --
83038 RETURN l_result;
83039 EXCEPTION
83040 WHEN xla_exceptions_pkg.application_exception THEN
83041
83042 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
83043
83044
83045 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
83046
83047 RAISE;
83048 WHEN OTHERS THEN
83049 xla_exceptions_pkg.raise_message
83050 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_128');
83051 END EventClass_128;
83052 --
83053
83054 ---------------------------------------
83055 --
83056 -- PRIVATE PROCEDURE
83057 -- insert_sources_129
83058 --
83059 ----------------------------------------
83060 --
83061 PROCEDURE insert_sources_129(
83062 p_target_ledger_id IN NUMBER
83063 , p_language IN VARCHAR2
83064 , p_sla_ledger_id IN NUMBER
83065 , p_pad_start_date IN DATE
83066 , p_pad_end_date IN DATE
83067 )
83068 IS
83069
83070 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ_ALL';
83071 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ';
83072 p_apps_owner VARCHAR2(30);
83073 l_log_module VARCHAR2(240);
83074 BEGIN
83075 IF g_log_enabled THEN
83076 l_log_module := C_DEFAULT_MODULE||'.insert_sources_129';
83077 END IF;
83078 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83079
83080 trace
83081 (p_msg => 'BEGIN of insert_sources_129'
83082 ,p_level => C_LEVEL_PROCEDURE
83083 ,p_module => l_log_module);
83084
83085 END IF;
83086
83087 -- select APPS owner
83088 SELECT oracle_username
83089 INTO p_apps_owner
83090 FROM fnd_oracle_userid
83091 WHERE read_only_flag = 'U'
83092 ;
83093
83094 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83095 trace
83096 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
83097 ' - p_language = '||p_language||
83098 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
83099 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
83100 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
83101 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
83102 ,p_level => C_LEVEL_STATEMENT
83103 ,p_module => l_log_module);
83104 END IF;
83105
83106
83107 --
83108 INSERT INTO xla_diag_sources --hdr2
83109 (
83110 event_id
83111 , ledger_id
83112 , sla_ledger_id
83113 , description_language
83114 , object_name
83115 , object_type_code
83116 , line_number
83117 , source_application_id
83118 , source_type_code
83119 , source_code
83120 , source_value
83121 , source_meaning
83122 , created_by
83123 , creation_date
83124 , last_update_date
83125 , last_updated_by
83129 , program_id
83126 , last_update_login
83127 , program_update_date
83128 , program_application_id
83130 , request_id
83131 )
83132 SELECT
83133 event_id
83134 , p_target_ledger_id
83135 , p_sla_ledger_id
83136 , p_language
83137 , object_name
83138 , object_type_code
83139 , line_number
83140 , source_application_id
83141 , source_type_code
83142 , source_code
83143 , SUBSTR(source_value ,1,1996)
83144 , SUBSTR(source_meaning ,1,200)
83145 , xla_environment_pkg.g_Usr_Id
83146 , TRUNC(SYSDATE)
83147 , TRUNC(SYSDATE)
83148 , xla_environment_pkg.g_Usr_Id
83149 , xla_environment_pkg.g_Login_Id
83150 , TRUNC(SYSDATE)
83151 , xla_environment_pkg.g_Prog_Appl_Id
83152 , xla_environment_pkg.g_Prog_Id
83153 , xla_environment_pkg.g_Req_Id
83154 FROM (
83155 SELECT xet.event_id event_id
83156 , 0 line_number
83157 , CASE r
83158 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
83159 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
83160
83161 ELSE null
83162 END object_name
83163 , CASE r
83164 WHEN 1 THEN 'HEADER'
83165 WHEN 2 THEN 'HEADER'
83166
83167 ELSE null
83168 END object_type_code
83169 , CASE r
83170 WHEN 1 THEN '275'
83171 WHEN 2 THEN '275'
83172
83173 ELSE null
83174 END source_application_id
83175 , 'S' source_type_code
83176 , CASE r
83177 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
83178 WHEN 2 THEN 'GL_DATE'
83179
83180 ELSE null
83181 END source_code
83182 , CASE r
83183 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
83184 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
83185
83186 ELSE null
83187 END source_value
83188 , null source_meaning
83189 FROM xla_events_gt xet
83190 , PA_XLA_EXP_HEADER_V h2
83191 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
83192 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
83193 AND xet.event_class_code = C_EVENT_CLASS_CODE
83194 AND h2.event_id = xet.event_id
83195
83196 )
83197 ;
83198 --
83199 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83200
83201 trace
83202 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
83203 ,p_level => C_LEVEL_STATEMENT
83204 ,p_module => l_log_module);
83205
83206 END IF;
83207 --
83208
83209
83210
83211 --
83212 INSERT INTO xla_diag_sources --line2
83213 (
83214 event_id
83215 , ledger_id
83216 , sla_ledger_id
83217 , description_language
83218 , object_name
83219 , object_type_code
83220 , line_number
83221 , source_application_id
83222 , source_type_code
83223 , source_code
83224 , source_value
83225 , source_meaning
83226 , created_by
83227 , creation_date
83228 , last_update_date
83229 , last_updated_by
83230 , last_update_login
83231 , program_update_date
83232 , program_application_id
83233 , program_id
83234 , request_id
83235 )
83236 SELECT event_id
83237 , p_target_ledger_id
83238 , p_sla_ledger_id
83239 , p_language
83240 , object_name
83241 , object_type_code
83242 , line_number
83243 , source_application_id
83244 , source_type_code
83245 , source_code
83246 , SUBSTR(source_value,1,1996)
83247 , SUBSTR(source_meaning ,1,200)
83248 , xla_environment_pkg.g_Usr_Id
83249 , TRUNC(SYSDATE)
83250 , TRUNC(SYSDATE)
83251 , xla_environment_pkg.g_Usr_Id
83252 , xla_environment_pkg.g_Login_Id
83253 , TRUNC(SYSDATE)
83254 , xla_environment_pkg.g_Prog_Appl_Id
83255 , xla_environment_pkg.g_Prog_Id
83256 , xla_environment_pkg.g_Req_Id
83257 FROM (
83258 SELECT xet.event_id event_id
83259 , l1.line_number line_number
83260 , CASE r
83261 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
83262 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
83263 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
83264 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
83265 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
83266 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
83267 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
83268 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
83269 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
83270 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
83271 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
83272 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
83273 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
83274 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
83275 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
83276 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
83277 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
83278 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
83279
83280 ELSE null
83284 WHEN 2 THEN 'LINE'
83281 END object_name
83282 , CASE r
83283 WHEN 1 THEN 'LINE'
83285 WHEN 3 THEN 'LINE'
83286 WHEN 4 THEN 'LINE'
83287 WHEN 5 THEN 'LINE'
83288 WHEN 6 THEN 'LINE'
83289 WHEN 7 THEN 'LINE'
83290 WHEN 8 THEN 'LINE'
83291 WHEN 9 THEN 'LINE'
83292 WHEN 10 THEN 'LINE'
83293 WHEN 11 THEN 'LINE'
83294 WHEN 12 THEN 'LINE'
83295 WHEN 13 THEN 'LINE'
83296 WHEN 14 THEN 'LINE'
83297 WHEN 15 THEN 'LINE'
83298 WHEN 16 THEN 'LINE'
83299 WHEN 17 THEN 'LINE'
83300 WHEN 18 THEN 'LINE'
83301
83302 ELSE null
83303 END object_type_code
83304 , CASE r
83305 WHEN 1 THEN '275'
83306 WHEN 2 THEN '275'
83307 WHEN 3 THEN '275'
83308 WHEN 4 THEN '275'
83309 WHEN 5 THEN '275'
83310 WHEN 6 THEN '275'
83311 WHEN 7 THEN '275'
83312 WHEN 8 THEN '275'
83313 WHEN 9 THEN '275'
83314 WHEN 10 THEN '275'
83315 WHEN 11 THEN '275'
83316 WHEN 12 THEN '275'
83317 WHEN 13 THEN '275'
83318 WHEN 14 THEN '275'
83319 WHEN 15 THEN '275'
83320 WHEN 16 THEN '275'
83321 WHEN 17 THEN '275'
83322 WHEN 18 THEN '275'
83323
83324 ELSE null
83325 END source_application_id
83326 , 'S' source_type_code
83327 , CASE r
83328 WHEN 1 THEN 'COST_CCID'
83329 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
83330 WHEN 3 THEN 'ADJ_COST_CCID'
83331 WHEN 4 THEN 'COST_CLEARING_CCID'
83332 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
83333 WHEN 6 THEN 'REVERSING_LINE_FLAG'
83334 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
83335 WHEN 8 THEN 'ENTERED_RAW_COST'
83336 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
83337 WHEN 10 THEN 'ACCT_RAW_COST'
83338 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
83339 WHEN 12 THEN 'EXCHANGE_RATE'
83340 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
83341 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
83342 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
83343 WHEN 16 THEN 'LINE_NUMBER'
83344 WHEN 17 THEN 'LINE_TYPE'
83345 WHEN 18 THEN 'LINE_NUM_REVERSED'
83346
83347 ELSE null
83348 END source_code
83349 , CASE r
83350 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
83351 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
83352 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
83353 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
83354 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
83355 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
83356 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
83357 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
83358 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
83359 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
83360 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
83361 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
83362 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
83363 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
83364 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
83365 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
83366 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
83367 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
83368
83369 ELSE null
83370 END source_value
83371 , CASE r
83372 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
83373 103371
83374 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
83375 ,'ALLOW_OVERRIDE_CCID_FLAG'
83376 ,'S'
83377 ,275)
83378 WHEN 17 THEN fvl34.meaning
83379
83380 ELSE null
83381 END source_meaning
83382 FROM xla_events_gt xet
83383 , PA_XLA_CDL_LINES_V l1
83384 , fnd_lookup_values fvl34
83385 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
83386 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
83387 AND xet.event_class_code = C_EVENT_CLASS_CODE
83388 AND l1.event_id = xet.event_id
83389 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
83390 AND fvl34.lookup_code(+) = l1.LINE_TYPE
83391 AND fvl34.view_application_id(+) = 275
83392 AND fvl34.language(+) = USERENV('LANG')
83393
83394 )
83395 ;
83396 --
83397 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83398
83399 trace
83400 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
83401 ,p_level => C_LEVEL_STATEMENT
83402 ,p_module => l_log_module);
83403
83404 END IF;
83405
83406
83407 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83408 trace
83409 (p_msg => 'END of insert_sources_129'
83413 EXCEPTION
83410 ,p_level => C_LEVEL_PROCEDURE
83411 ,p_module => l_log_module);
83412 END IF;
83414 WHEN xla_exceptions_pkg.application_exception THEN
83415 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
83416 trace
83417 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
83418 ,p_level => C_LEVEL_EXCEPTION
83419 ,p_module => l_log_module);
83420 END IF;
83421 RAISE;
83422 WHEN OTHERS THEN
83423 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
83424 trace
83425 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
83426 ,p_level => C_LEVEL_EXCEPTION
83427 ,p_module => l_log_module);
83428 END IF;
83429 xla_exceptions_pkg.raise_message
83430 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_129');
83431 END insert_sources_129;
83432 --
83433
83434 ---------------------------------------
83435 --
83436 -- PRIVATE FUNCTION
83437 -- EventClass_129
83438 --
83439 ----------------------------------------
83440 --
83441 FUNCTION EventClass_129
83442 (p_application_id IN NUMBER
83443 ,p_base_ledger_id IN NUMBER
83444 ,p_target_ledger_id IN NUMBER
83445 ,p_language IN VARCHAR2
83446 ,p_currency_code IN VARCHAR2
83447 ,p_sla_ledger_id IN NUMBER
83448 ,p_pad_start_date IN DATE
83449 ,p_pad_end_date IN DATE
83450 ,p_primary_ledger_id IN NUMBER)
83451 RETURN BOOLEAN IS
83452 --
83453 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ_ALL';
83454 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ';
83455
83456 l_calculate_acctd_flag VARCHAR2(1) :='N';
83457 l_calculate_g_l_flag VARCHAR2(1) :='N';
83458 --
83459 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83460 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83461 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83462 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83463 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83464 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83465 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83466 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83467 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83468 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83469 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83470 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83471 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83472 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83473 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83474 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83475 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83476 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83477 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83478 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83479 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83480 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83481 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
83482 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83483
83484 l_event_id NUMBER;
83485 l_previous_event_id NUMBER;
83486 l_first_event_id NUMBER;
83487 l_last_event_id NUMBER;
83488
83489 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
83490 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
83491 --
83492 --
83493 l_result BOOLEAN := TRUE;
83494 l_rows NUMBER := 1000;
83495 l_event_type_name VARCHAR2(80) := 'All';
83496 l_event_class_name VARCHAR2(80) := 'Usage Cost Adjustment';
83497 l_description VARCHAR2(4000);
83498 l_transaction_reversal NUMBER;
83499 l_ae_header_id NUMBER;
83500 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
83501 l_log_module VARCHAR2(240);
83502 --
83503 l_acct_reversal_source VARCHAR2(30);
83504 l_trx_reversal_source VARCHAR2(30);
83505
83506 l_continue_with_lines BOOLEAN := TRUE;
83507 --
83508 l_acc_rev_gl_date_source DATE; -- 4262811
83509 --
83510 type t_array_event_id is table of number index by binary_integer;
83511
83512 l_rec_array_event t_rec_array_event;
83513 l_null_rec_array_event t_rec_array_event;
83514 l_array_ae_header_id xla_number_array_type;
83515 l_actual_flag VARCHAR2(1) := NULL;
83516 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
83517 l_balance_type_code VARCHAR2(1) :=NULL;
83518 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
83519
83520 --
83521 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
83522 --
83523
83524 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
83525 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
83526
83527 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
83531 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
83528 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
83529 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
83530 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
83532 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
83533 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
83534 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
83535 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
83536 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
83537 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
83538 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
83539 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
83540 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
83541 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
83542 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
83543 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
83544 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
83545
83546 l_array_source_32 t_array_source_32;
83547 l_array_source_88 t_array_source_88;
83548
83549 l_array_source_3 t_array_source_3;
83550 l_array_source_4 t_array_source_4;
83551 l_array_source_5 t_array_source_5;
83552 l_array_source_6 t_array_source_6;
83553 l_array_source_7 t_array_source_7;
83554 l_array_source_22 t_array_source_22;
83555 l_array_source_23 t_array_source_23;
83556 l_array_source_24 t_array_source_24;
83557 l_array_source_25 t_array_source_25;
83558 l_array_source_26 t_array_source_26;
83559 l_array_source_27 t_array_source_27;
83560 l_array_source_28 t_array_source_28;
83561 l_array_source_29 t_array_source_29;
83562 l_array_source_30 t_array_source_30;
83563 l_array_source_31 t_array_source_31;
83564 l_array_source_33 t_array_source_33;
83565 l_array_source_34 t_array_source_34;
83566 l_array_source_34_meaning t_array_lookup_meaning;
83567 l_array_source_35 t_array_source_35;
83568
83569 --
83570 CURSOR header_cur
83571 IS
83572 SELECT /*+ leading(xet) cardinality(xet,1) */
83573 -- Event Class Code: USG_COST_ADJ
83574 xet.entity_id
83575 ,xet.legal_entity_id
83576 ,xet.entity_code
83577 ,xet.transaction_number
83578 ,xet.event_id
83579 ,xet.event_class_code
83580 ,xet.event_type_code
83581 ,xet.event_number
83582 ,xet.event_date
83583 ,xet.transaction_date
83584 ,xet.reference_num_1
83585 ,xet.reference_num_2
83586 ,xet.reference_num_3
83587 ,xet.reference_num_4
83588 ,xet.reference_char_1
83589 ,xet.reference_char_2
83590 ,xet.reference_char_3
83591 ,xet.reference_char_4
83592 ,xet.reference_date_1
83593 ,xet.reference_date_2
83594 ,xet.reference_date_3
83595 ,xet.reference_date_4
83596 ,xet.event_created_by
83597 ,xet.budgetary_control_flag
83598 , h2.EXPENDITURE_ITEM_ID source_32
83599 , h2.GL_DATE source_88
83600 FROM xla_events_gt xet
83601 , PA_XLA_EXP_HEADER_V h2
83602 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
83603 and xet.event_class_code = C_EVENT_CLASS_CODE
83604 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
83605
83606 ORDER BY event_id
83607 ;
83608
83609
83610 --
83611 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
83612 IS
83613 SELECT /*+ leading(xet) cardinality(xet,1) */
83614 -- Event Class Code: USG_COST_ADJ
83615 xet.entity_id
83616 ,xet.legal_entity_id
83617 ,xet.entity_code
83618 ,xet.transaction_number
83619 ,xet.event_id
83620 ,xet.event_class_code
83621 ,xet.event_type_code
83622 ,xet.event_number
83623 ,xet.event_date
83624 ,xet.transaction_date
83625 ,xet.reference_num_1
83626 ,xet.reference_num_2
83627 ,xet.reference_num_3
83628 ,xet.reference_num_4
83629 ,xet.reference_char_1
83630 ,xet.reference_char_2
83631 ,xet.reference_char_3
83632 ,xet.reference_char_4
83633 ,xet.reference_date_1
83634 ,xet.reference_date_2
83635 ,xet.reference_date_3
83636 ,xet.reference_date_4
83637 ,xet.event_created_by
83638 ,xet.budgetary_control_flag
83639 , l1.LINE_NUMBER
83640 , l1.COST_CCID source_3
83641 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
83642 , l1.ADJ_COST_CCID source_5
83643 , l1.COST_CLEARING_CCID source_6
83644 , l1.ADJ_COST_CLEARING_CCID source_7
83645 , l1.REVERSING_LINE_FLAG source_22
83646 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
83647 , l1.ENTERED_RAW_COST source_24
83648 , l1.ENTERED_CURRENCY_CODE source_25
83649 , l1.ACCT_RAW_COST source_26
83650 , l1.EXCHANGE_RATE_DATE source_27
83651 , l1.EXCHANGE_RATE source_28
83652 , l1.EXCHANGE_RATE_TYPE source_29
83653 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
83654 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
83655 , l1.LINE_NUMBER source_33
83656 , l1.LINE_TYPE source_34
83657 , fvl34.meaning source_34_meaning
83658 , l1.LINE_NUM_REVERSED source_35
83659 FROM xla_events_gt xet
83663 and xet.event_date between p_pad_start_date and p_pad_end_date
83660 , PA_XLA_CDL_LINES_V l1
83661 , fnd_lookup_values fvl34
83662 WHERE xet.event_id between x_first_event_id and x_last_event_id
83664 and xet.event_class_code = C_EVENT_CLASS_CODE
83665 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
83666 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
83667 AND fvl34.lookup_code(+) = l1.LINE_TYPE
83668 AND fvl34.view_application_id(+) = 275
83669 AND fvl34.language(+) = USERENV('LANG')
83670 ;
83671
83672 --
83673 BEGIN
83674 IF g_log_enabled THEN
83675 l_log_module := C_DEFAULT_MODULE||'.EventClass_129';
83676 END IF;
83677 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83678 trace
83679 (p_msg => 'BEGIN of EventClass_129'
83680 ,p_level => C_LEVEL_PROCEDURE
83681 ,p_module => l_log_module);
83682 END IF;
83683
83684 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83685 trace
83686 (p_msg => 'p_application_id = '||p_application_id||
83687 ' - p_base_ledger_id = '||p_base_ledger_id||
83688 ' - p_target_ledger_id = '||p_target_ledger_id||
83689 ' - p_language = '||p_language||
83690 ' - p_currency_code = '||p_currency_code||
83691 ' - p_sla_ledger_id = '||p_sla_ledger_id
83692 ,p_level => C_LEVEL_STATEMENT
83693 ,p_module => l_log_module);
83694 END IF;
83695 --
83696 -- initialze arrays
83697 --
83698 g_array_event.DELETE;
83699 l_rec_array_event := l_null_rec_array_event;
83700 --
83701 --------------------------------------
83702 -- 4262811 Initialze MPA Line Number
83703 --------------------------------------
83704 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
83705
83706 --
83707
83708 --
83709 OPEN header_cur;
83710 --
83711 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83712 trace
83713 (p_msg => 'SQL - FETCH header_cur'
83714 ,p_level => C_LEVEL_STATEMENT
83715 ,p_module => l_log_module);
83716 END IF;
83717 --
83718 LOOP
83719 FETCH header_cur BULK COLLECT INTO
83720 l_array_entity_id
83721 , l_array_legal_entity_id
83722 , l_array_entity_code
83723 , l_array_transaction_num
83724 , l_array_event_id
83725 , l_array_class_code
83726 , l_array_event_type
83727 , l_array_event_number
83728 , l_array_event_date
83729 , l_array_transaction_date
83730 , l_array_reference_num_1
83731 , l_array_reference_num_2
83732 , l_array_reference_num_3
83733 , l_array_reference_num_4
83734 , l_array_reference_char_1
83735 , l_array_reference_char_2
83736 , l_array_reference_char_3
83737 , l_array_reference_char_4
83738 , l_array_reference_date_1
83739 , l_array_reference_date_2
83740 , l_array_reference_date_3
83741 , l_array_reference_date_4
83742 , l_array_event_created_by
83743 , l_array_budgetary_control_flag
83744 , l_array_source_32
83745 , l_array_source_88
83746 LIMIT l_rows;
83747 --
83748 IF (C_LEVEL_EVENT >= g_log_level) THEN
83749 trace
83750 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
83751 ,p_level => C_LEVEL_EVENT
83752 ,p_module => l_log_module);
83753 END IF;
83754 --
83755 EXIT WHEN l_array_entity_id.COUNT = 0;
83756
83757 -- initialize arrays
83758 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
83759 XLA_AE_LINES_PKG.g_rec_lines := NULL;
83760
83761 --
83762 -- Bug 4458708
83763 --
83764 XLA_AE_LINES_PKG.g_LineNumber := 0;
83765
83766
83767 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
83768 g_last_hdr_idx := l_array_event_id.LAST;
83769 --
83770 -- loop for the headers. Each iteration is for each header extract row
83771 -- fetched in header cursor
83772 --
83773 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
83774
83775 --
83776 -- set event info as cache for other routines to refer event attributes
83777 --
83778 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
83779 (p_application_id => p_application_id
83780 ,p_primary_ledger_id => p_primary_ledger_id
83781 ,p_base_ledger_id => p_base_ledger_id
83782 ,p_target_ledger_id => p_target_ledger_id
83783 ,p_entity_id => l_array_entity_id(hdr_idx)
83784 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
83785 ,p_entity_code => l_array_entity_code(hdr_idx)
83786 ,p_transaction_num => l_array_transaction_num(hdr_idx)
83787 ,p_event_id => l_array_event_id(hdr_idx)
83788 ,p_event_class_code => l_array_class_code(hdr_idx)
83789 ,p_event_type_code => l_array_event_type(hdr_idx)
83790 ,p_event_number => l_array_event_number(hdr_idx)
83791 ,p_event_date => l_array_event_date(hdr_idx)
83792 ,p_transaction_date => l_array_transaction_date(hdr_idx)
83793 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
83794 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
83795 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
83796 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
83797 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
83798 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
83799 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
83800 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
83801 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
83805 ,p_event_created_by => l_array_event_created_by(hdr_idx)
83802 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
83803 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
83804 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
83806 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
83807
83808 --
83809 -- set the status of entry to C_VALID (0)
83810 --
83811 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
83812
83813 --
83814 -- initialize a row for ae header
83815 --
83816 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
83817
83818 l_event_id := l_array_event_id(hdr_idx);
83819
83820 --
83821 -- storing the hdr_idx for event. May be used by line cursor.
83822 --
83823 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
83824
83825 --
83826 -- store sources from header extract. This can be improved to
83827 -- store only those sources from header extract that may be used in lines
83828 --
83829
83830 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
83831 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
83832
83833 --
83834 -- initilaize the status of ae headers for diffrent balance types
83835 -- the status is initialised to C_NOT_CREATED (2)
83836 --
83837 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
83838 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
83839 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
83840
83841 --
83842 -- call api to validate and store accounting attributes for header
83843 --
83844
83845 ------------------------------------------------------------
83846 -- Accrual Reversal : to get date for Standard Source (NONE)
83847 ------------------------------------------------------------
83848 l_acc_rev_gl_date_source := NULL;
83849
83850 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
83851 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
83852
83853
83854 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
83855
83856 XLA_AE_HEADER_PKG.SetJeCategoryName;
83857
83858 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
83859 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
83860 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
83861 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
83862 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
83863
83864
83865 -- No header level analytical criteria
83866
83867 --
83868 --accounting attribute enhancement, bug 3612931
83869 --
83870 l_trx_reversal_source := SUBSTR(NULL, 1,30);
83871
83872 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
83873 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
83874
83875 xla_accounting_err_pkg.build_message
83876 (p_appli_s_name => 'XLA'
83877 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
83878 ,p_token_1 => 'ACCT_ATTR_NAME'
83879 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
83880 ,p_token_2 => 'PRODUCT_NAME'
83881 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
83882 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
83883 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
83884 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
83885
83886 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
83887 --
83888 -- following sets the accounting attributes needed to reverse
83889 -- accounting for a distributeion
83890 --
83891 xla_ae_lines_pkg.SetTrxReversalAttrs
83892 (p_event_id => l_event_id
83893 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
83894 ,p_trx_reversal_source => l_trx_reversal_source);
83895
83896 END IF;
83897
83898
83899 ----------------------------------------------------------------
83900 -- 4262811 - update the header statuses to invalid in need be
83901 ----------------------------------------------------------------
83902 --
83903 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
83904
83905
83906 -----------------------------------------------
83907 -- No accrual reversal for the event class/type
83908 -----------------------------------------------
83909 ----------------------------------------------------------------
83910
83911 --
83912 -- this ends the header loop iteration for one bulk fetch
83913 --
83914 END LOOP;
83915
83916 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
83917 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
83918
83919 --
83920 -- insert dummy rows into lines gt table that were created due to
83921 -- transaction reversals
83922 --
83923 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
83924 l_result := XLA_AE_LINES_PKG.InsertLines;
83925 END IF;
83926
83927 --
83928 -- reset the temp_line_num for each set of events fetched from header
83929 -- cursor rather than doing it for each new event in line cursor
83930 -- Bug 3939231
83931 --
83932 xla_ae_lines_pkg.g_temp_line_num := 0;
83933
83934
83935
83936 --
83940 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83937 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
83938 --
83939 --
83941
83942 trace
83943 (p_msg => 'SQL - FETCH line_cur'
83944 ,p_level => C_LEVEL_STATEMENT
83945 ,p_module => l_log_module);
83946
83947 END IF;
83948 --
83949 --
83950 LOOP
83951 --
83952 FETCH line_cur BULK COLLECT INTO
83953 l_array_entity_id
83954 , l_array_legal_entity_id
83955 , l_array_entity_code
83956 , l_array_transaction_num
83957 , l_array_event_id
83958 , l_array_class_code
83959 , l_array_event_type
83960 , l_array_event_number
83961 , l_array_event_date
83962 , l_array_transaction_date
83963 , l_array_reference_num_1
83964 , l_array_reference_num_2
83965 , l_array_reference_num_3
83966 , l_array_reference_num_4
83967 , l_array_reference_char_1
83968 , l_array_reference_char_2
83969 , l_array_reference_char_3
83970 , l_array_reference_char_4
83971 , l_array_reference_date_1
83972 , l_array_reference_date_2
83973 , l_array_reference_date_3
83974 , l_array_reference_date_4
83975 , l_array_event_created_by
83976 , l_array_budgetary_control_flag
83977 , l_array_extract_line_num
83978 , l_array_source_3
83979 , l_array_source_4
83980 , l_array_source_5
83981 , l_array_source_6
83982 , l_array_source_7
83983 , l_array_source_22
83984 , l_array_source_23
83985 , l_array_source_24
83986 , l_array_source_25
83987 , l_array_source_26
83988 , l_array_source_27
83989 , l_array_source_28
83990 , l_array_source_29
83991 , l_array_source_30
83992 , l_array_source_31
83993 , l_array_source_33
83994 , l_array_source_34
83995 , l_array_source_34_meaning
83996 , l_array_source_35
83997 LIMIT l_rows;
83998
83999 --
84000 IF (C_LEVEL_EVENT >= g_log_level) THEN
84001 trace
84002 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
84003 ,p_level => C_LEVEL_EVENT
84004 ,p_module => l_log_module);
84005 END IF;
84006 --
84007 EXIT WHEN l_array_entity_id.count = 0;
84008
84009 XLA_AE_LINES_PKG.g_rec_lines := null;
84010
84011 --
84012 -- Bug 4458708
84013 --
84014 XLA_AE_LINES_PKG.g_LineNumber := 0;
84015 --
84016 --
84017
84018 FOR Idx IN 1..l_array_event_id.count LOOP
84019 --
84020 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
84021 --
84022 l_event_id := l_array_event_id(idx); -- 5648433
84023
84024 --
84025 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
84026 --
84027
84028 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
84029 (g_array_event(l_event_id).array_value_num('header_index'))
84030 ,'N'
84031 ) <> 'Y'
84032 THEN
84033 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84034 trace
84035 (p_msg => 'Trancaction revesal option is not Y '
84036 ,p_level => C_LEVEL_STATEMENT
84037 ,p_module => l_log_module);
84038 END IF;
84039
84040 --
84041 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
84042 --
84043 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
84044 --
84045 -- set event info as cache for other routines to refer event attributes
84046 --
84047
84048 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
84049 l_previous_event_id := l_event_id;
84050
84051 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
84052 (p_application_id => p_application_id
84053 ,p_primary_ledger_id => p_primary_ledger_id
84054 ,p_base_ledger_id => p_base_ledger_id
84055 ,p_target_ledger_id => p_target_ledger_id
84056 ,p_entity_id => l_array_entity_id(Idx)
84057 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
84058 ,p_entity_code => l_array_entity_code(Idx)
84059 ,p_transaction_num => l_array_transaction_num(Idx)
84060 ,p_event_id => l_array_event_id(Idx)
84061 ,p_event_class_code => l_array_class_code(Idx)
84062 ,p_event_type_code => l_array_event_type(Idx)
84063 ,p_event_number => l_array_event_number(Idx)
84064 ,p_event_date => l_array_event_date(Idx)
84065 ,p_transaction_date => l_array_transaction_date(Idx)
84066 ,p_reference_num_1 => l_array_reference_num_1(Idx)
84067 ,p_reference_num_2 => l_array_reference_num_2(Idx)
84068 ,p_reference_num_3 => l_array_reference_num_3(Idx)
84069 ,p_reference_num_4 => l_array_reference_num_4(Idx)
84070 ,p_reference_char_1 => l_array_reference_char_1(Idx)
84071 ,p_reference_char_2 => l_array_reference_char_2(Idx)
84072 ,p_reference_char_3 => l_array_reference_char_3(Idx)
84073 ,p_reference_char_4 => l_array_reference_char_4(Idx)
84074 ,p_reference_date_1 => l_array_reference_date_1(Idx)
84075 ,p_reference_date_2 => l_array_reference_date_2(Idx)
84076 ,p_reference_date_3 => l_array_reference_date_3(Idx)
84077 ,p_reference_date_4 => l_array_reference_date_4(Idx)
84078 ,p_event_created_by => l_array_event_created_by(Idx)
84079 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
84080 --
84081 END IF;
84082
84086 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
84083
84084
84085 --
84087
84088 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
84089
84090 IF l_continue_with_lines THEN
84091 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
84092 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
84093
84094 xla_accounting_err_pkg.build_message
84095 (p_appli_s_name => 'XLA'
84096 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
84097 ,p_token_1 => 'LINE_NUMBER'
84098 ,p_value_1 => l_array_extract_line_num(Idx)
84099 ,p_token_2 => 'PRODUCT_NAME'
84100 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
84101 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
84102 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
84103 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
84104
84105 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
84106 --
84107 -- following sets the accounting attributes needed to reverse
84108 -- accounting for a distributeion
84109 --
84110
84111 --
84112 -- 5217187
84113 --
84114 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
84115 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
84116 g_array_event(l_event_id).array_value_num('header_index'));
84117 --
84118 --
84119
84120 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
84121 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
84122 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
84123 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
84124 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
84125 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
84126 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
84127 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
84128 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
84129 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
84130 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
84131 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
84132 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
84133 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
84134 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
84135 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
84136 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
84137 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
84138 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
84139 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
84140 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
84141 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
84142 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
84143 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
84144 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
84145 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
84146 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
84147 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
84148 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
84149 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
84150 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
84151 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
84152 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
84153 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
84154 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
84155 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
84156 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
84157 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
84158 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
84159 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
84160 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
84161 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
84162 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
84163 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
84164 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
84165 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
84166 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
84167 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
84168
84169
84170 xla_ae_lines_pkg.SetAcctReversalAttrs
84171 (p_event_id => l_event_id
84172 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
84173 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84174 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
84175 END IF;
84176
84177 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
84181 AcctLineType_49 (
84178 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
84179
84180 --
84182 p_application_id => p_application_id
84183 ,p_event_id => l_event_id
84184 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84185 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84186 ,p_actual_flag => l_actual_flag
84187 ,p_balance_type_code => l_balance_type_code
84188 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84189
84190 , p_source_3 => l_array_source_3(Idx)
84191 , p_source_4 => l_array_source_4(Idx)
84192 , p_source_5 => l_array_source_5(Idx)
84193 , p_source_6 => l_array_source_6(Idx)
84194 , p_source_22 => l_array_source_22(Idx)
84195 , p_source_23 => l_array_source_23(Idx)
84196 , p_source_24 => l_array_source_24(Idx)
84197 , p_source_25 => l_array_source_25(Idx)
84198 , p_source_26 => l_array_source_26(Idx)
84199 , p_source_27 => l_array_source_27(Idx)
84200 , p_source_28 => l_array_source_28(Idx)
84201 , p_source_29 => l_array_source_29(Idx)
84202 , p_source_30 => l_array_source_30(Idx)
84203 , p_source_31 => l_array_source_31(Idx)
84204 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
84205 , p_source_33 => l_array_source_33(Idx)
84206 , p_source_34 => l_array_source_34(Idx)
84207 , p_source_34_meaning => l_array_source_34_meaning(Idx)
84208 , p_source_35 => l_array_source_35(Idx)
84209 );
84210 If(l_balance_type_code = 'A') THEN
84211 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84212 END IF;
84213
84214 --
84215
84216
84217 --
84218 AcctLineType_61 (
84219 p_application_id => p_application_id
84220 ,p_event_id => l_event_id
84221 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84222 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84223 ,p_actual_flag => l_actual_flag
84224 ,p_balance_type_code => l_balance_type_code
84225 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84226
84227 , p_source_3 => l_array_source_3(Idx)
84228 , p_source_4 => l_array_source_4(Idx)
84229 , p_source_6 => l_array_source_6(Idx)
84230 , p_source_7 => l_array_source_7(Idx)
84231 , p_source_22 => l_array_source_22(Idx)
84232 , p_source_23 => l_array_source_23(Idx)
84233 , p_source_24 => l_array_source_24(Idx)
84234 , p_source_25 => l_array_source_25(Idx)
84235 , p_source_26 => l_array_source_26(Idx)
84236 , p_source_27 => l_array_source_27(Idx)
84237 , p_source_28 => l_array_source_28(Idx)
84238 , p_source_29 => l_array_source_29(Idx)
84239 , p_source_30 => l_array_source_30(Idx)
84240 , p_source_31 => l_array_source_31(Idx)
84241 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
84242 , p_source_33 => l_array_source_33(Idx)
84243 , p_source_34 => l_array_source_34(Idx)
84244 , p_source_34_meaning => l_array_source_34_meaning(Idx)
84245 , p_source_35 => l_array_source_35(Idx)
84246 );
84247 If(l_balance_type_code = 'A') THEN
84248 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84249 END IF;
84250
84251 --
84252
84253 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
84254 -- or secondary ledger that has different currency with primary
84255 -- or alc that is calculated by sla
84256 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
84257 (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'))
84258
84259 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
84260 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
84261 AND (l_actual_flag = 'A')) THEN
84262 XLA_AE_LINES_PKG.CreateGainOrLossLines(
84263 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
84264 ,p_application_id => p_application_id
84265 ,p_amb_context_code => 'DEFAULT'
84266 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
84267 ,p_event_class_code => C_EVENT_CLASS_CODE
84268 ,p_event_type_code => C_EVENT_TYPE_CODE
84269
84270 ,p_gain_ccid => -1
84271 ,p_loss_ccid => -1
84272
84273 ,p_actual_flag => l_actual_flag
84274 ,p_enc_flag => null
84275 ,p_actual_g_l_ref => l_actual_gain_loss_ref
84276 ,p_enc_g_l_ref => null
84277 );
84278 END IF;
84279 END IF;
84280 END IF;
84281
84282 ELSE
84283 --
84284 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
84285 --
84286 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84287 trace
84288 (p_msg => 'Trancaction revesal option is Y'
84289 ,p_level => C_LEVEL_STATEMENT
84290 ,p_module => l_log_module);
84291 END IF;
84292 END IF;
84293
84294 END LOOP;
84295 l_result := XLA_AE_LINES_PKG.InsertLines ;
84296 end loop;
84297 close line_cur;
84298
84299
84300 --
84301 -- insert headers into xla_ae_headers_gt table
84302 --
84303 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
84304
84305 -- insert into errors table here.
84306
84307 END LOOP;
84308
84309 --
84310 -- 4865292
84311 --
84312 -- Compare g_hdr_extract_count with event count in
84313 -- CreateHeadersAndLines.
84314 --
84315 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
84316
84317 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84318 trace (p_msg => '# rows extracted from header extract objects '
84319 || ' (running total): '
84320 || g_hdr_extract_count
84321 ,p_level => C_LEVEL_STATEMENT
84322 ,p_module => l_log_module);
84326 --
84323 END IF;
84324
84325 CLOSE header_cur;
84327
84328 --
84329 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84330 trace
84331 (p_msg => 'END of EventClass_129'
84332 ,p_level => C_LEVEL_PROCEDURE
84333 ,p_module => l_log_module);
84334 END IF;
84335 --
84336 RETURN l_result;
84337 EXCEPTION
84338 WHEN xla_exceptions_pkg.application_exception THEN
84339
84340 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
84341
84342
84343 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
84344
84345 RAISE;
84346 WHEN OTHERS THEN
84347 xla_exceptions_pkg.raise_message
84348 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_129');
84349 END EventClass_129;
84350 --
84351
84352 ---------------------------------------
84353 --
84354 -- PRIVATE PROCEDURE
84355 -- insert_sources_130
84356 --
84357 ----------------------------------------
84358 --
84359 PROCEDURE insert_sources_130(
84360 p_target_ledger_id IN NUMBER
84361 , p_language IN VARCHAR2
84362 , p_sla_ledger_id IN NUMBER
84363 , p_pad_start_date IN DATE
84364 , p_pad_end_date IN DATE
84365 )
84366 IS
84367
84368 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ALL';
84369 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST';
84370 p_apps_owner VARCHAR2(30);
84371 l_log_module VARCHAR2(240);
84372 BEGIN
84373 IF g_log_enabled THEN
84374 l_log_module := C_DEFAULT_MODULE||'.insert_sources_130';
84375 END IF;
84376 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84377
84378 trace
84379 (p_msg => 'BEGIN of insert_sources_130'
84380 ,p_level => C_LEVEL_PROCEDURE
84381 ,p_module => l_log_module);
84382
84383 END IF;
84384
84385 -- select APPS owner
84386 SELECT oracle_username
84387 INTO p_apps_owner
84388 FROM fnd_oracle_userid
84389 WHERE read_only_flag = 'U'
84390 ;
84391
84392 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84393 trace
84394 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
84395 ' - p_language = '||p_language||
84396 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
84397 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
84398 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
84399 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
84400 ,p_level => C_LEVEL_STATEMENT
84401 ,p_module => l_log_module);
84402 END IF;
84403
84404
84405 --
84406 INSERT INTO xla_diag_sources --hdr2
84407 (
84408 event_id
84409 , ledger_id
84410 , sla_ledger_id
84411 , description_language
84412 , object_name
84413 , object_type_code
84414 , line_number
84415 , source_application_id
84416 , source_type_code
84417 , source_code
84418 , source_value
84419 , source_meaning
84420 , created_by
84421 , creation_date
84422 , last_update_date
84423 , last_updated_by
84424 , last_update_login
84425 , program_update_date
84426 , program_application_id
84427 , program_id
84428 , request_id
84429 )
84430 SELECT
84431 event_id
84432 , p_target_ledger_id
84433 , p_sla_ledger_id
84434 , p_language
84435 , object_name
84436 , object_type_code
84437 , line_number
84438 , source_application_id
84439 , source_type_code
84440 , source_code
84441 , SUBSTR(source_value ,1,1996)
84442 , SUBSTR(source_meaning ,1,200)
84443 , xla_environment_pkg.g_Usr_Id
84444 , TRUNC(SYSDATE)
84445 , TRUNC(SYSDATE)
84446 , xla_environment_pkg.g_Usr_Id
84447 , xla_environment_pkg.g_Login_Id
84448 , TRUNC(SYSDATE)
84449 , xla_environment_pkg.g_Prog_Appl_Id
84450 , xla_environment_pkg.g_Prog_Id
84451 , xla_environment_pkg.g_Req_Id
84452 FROM (
84453 SELECT xet.event_id event_id
84454 , 0 line_number
84455 , CASE r
84456 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
84457 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
84458
84459 ELSE null
84460 END object_name
84461 , CASE r
84462 WHEN 1 THEN 'HEADER'
84463 WHEN 2 THEN 'HEADER'
84464
84465 ELSE null
84466 END object_type_code
84467 , CASE r
84468 WHEN 1 THEN '275'
84469 WHEN 2 THEN '275'
84470
84471 ELSE null
84472 END source_application_id
84473 , 'S' source_type_code
84474 , CASE r
84475 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
84476 WHEN 2 THEN 'GL_DATE'
84477
84478 ELSE null
84479 END source_code
84480 , CASE r
84481 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
84482 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
84483
84484 ELSE null
84485 END source_value
84489 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
84486 , null source_meaning
84487 FROM xla_events_gt xet
84488 , PA_XLA_EXP_HEADER_V h2
84490 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
84491 AND xet.event_class_code = C_EVENT_CLASS_CODE
84492 AND h2.event_id = xet.event_id
84493
84494 )
84495 ;
84496 --
84497 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84498
84499 trace
84500 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
84501 ,p_level => C_LEVEL_STATEMENT
84502 ,p_module => l_log_module);
84503
84504 END IF;
84505 --
84506
84507
84508
84509 --
84510 INSERT INTO xla_diag_sources --line2
84511 (
84512 event_id
84513 , ledger_id
84514 , sla_ledger_id
84515 , description_language
84516 , object_name
84517 , object_type_code
84518 , line_number
84519 , source_application_id
84520 , source_type_code
84521 , source_code
84522 , source_value
84523 , source_meaning
84524 , created_by
84525 , creation_date
84526 , last_update_date
84527 , last_updated_by
84528 , last_update_login
84529 , program_update_date
84530 , program_application_id
84531 , program_id
84532 , request_id
84533 )
84534 SELECT event_id
84535 , p_target_ledger_id
84536 , p_sla_ledger_id
84537 , p_language
84538 , object_name
84539 , object_type_code
84540 , line_number
84541 , source_application_id
84542 , source_type_code
84543 , source_code
84544 , SUBSTR(source_value,1,1996)
84545 , SUBSTR(source_meaning ,1,200)
84546 , xla_environment_pkg.g_Usr_Id
84547 , TRUNC(SYSDATE)
84548 , TRUNC(SYSDATE)
84549 , xla_environment_pkg.g_Usr_Id
84550 , xla_environment_pkg.g_Login_Id
84551 , TRUNC(SYSDATE)
84552 , xla_environment_pkg.g_Prog_Appl_Id
84553 , xla_environment_pkg.g_Prog_Id
84554 , xla_environment_pkg.g_Req_Id
84555 FROM (
84556 SELECT xet.event_id event_id
84557 , l1.line_number line_number
84558 , CASE r
84559 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
84560 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
84561 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
84562 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
84563 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
84564 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
84565 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
84566 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
84567 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
84568 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
84569 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
84570 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
84571 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
84572 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
84573 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
84574 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
84575 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
84576 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
84577
84578 ELSE null
84579 END object_name
84580 , CASE r
84581 WHEN 1 THEN 'LINE'
84582 WHEN 2 THEN 'LINE'
84583 WHEN 3 THEN 'LINE'
84584 WHEN 4 THEN 'LINE'
84585 WHEN 5 THEN 'LINE'
84586 WHEN 6 THEN 'LINE'
84587 WHEN 7 THEN 'LINE'
84588 WHEN 8 THEN 'LINE'
84589 WHEN 9 THEN 'LINE'
84590 WHEN 10 THEN 'LINE'
84591 WHEN 11 THEN 'LINE'
84592 WHEN 12 THEN 'LINE'
84593 WHEN 13 THEN 'LINE'
84594 WHEN 14 THEN 'LINE'
84595 WHEN 15 THEN 'LINE'
84596 WHEN 16 THEN 'LINE'
84597 WHEN 17 THEN 'LINE'
84598 WHEN 18 THEN 'LINE'
84599
84600 ELSE null
84601 END object_type_code
84602 , CASE r
84603 WHEN 1 THEN '275'
84604 WHEN 2 THEN '275'
84605 WHEN 3 THEN '275'
84606 WHEN 4 THEN '275'
84607 WHEN 5 THEN '275'
84608 WHEN 6 THEN '275'
84609 WHEN 7 THEN '275'
84610 WHEN 8 THEN '275'
84611 WHEN 9 THEN '275'
84612 WHEN 10 THEN '275'
84613 WHEN 11 THEN '275'
84614 WHEN 12 THEN '275'
84615 WHEN 13 THEN '275'
84616 WHEN 14 THEN '275'
84617 WHEN 15 THEN '275'
84618 WHEN 16 THEN '275'
84619 WHEN 17 THEN '275'
84620 WHEN 18 THEN '275'
84621
84622 ELSE null
84623 END source_application_id
84624 , 'S' source_type_code
84625 , CASE r
84626 WHEN 1 THEN 'COST_CCID'
84627 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
84628 WHEN 3 THEN 'ADJ_COST_CCID'
84629 WHEN 4 THEN 'COST_CLEARING_CCID'
84630 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
84631 WHEN 6 THEN 'REVERSING_LINE_FLAG'
84632 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
84633 WHEN 8 THEN 'ENTERED_RAW_COST'
84637 WHEN 12 THEN 'EXCHANGE_RATE'
84634 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
84635 WHEN 10 THEN 'ACCT_RAW_COST'
84636 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
84638 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
84639 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
84640 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
84641 WHEN 16 THEN 'LINE_NUMBER'
84642 WHEN 17 THEN 'LINE_TYPE'
84643 WHEN 18 THEN 'LINE_NUM_REVERSED'
84644
84645 ELSE null
84646 END source_code
84647 , CASE r
84648 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
84649 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
84650 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
84651 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
84652 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
84653 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
84654 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
84655 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
84656 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
84657 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
84658 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
84659 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
84660 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
84661 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
84662 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
84663 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
84664 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
84665 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
84666
84667 ELSE null
84668 END source_value
84669 , CASE r
84670 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
84671 103371
84672 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
84673 ,'ALLOW_OVERRIDE_CCID_FLAG'
84674 ,'S'
84675 ,275)
84676 WHEN 17 THEN fvl34.meaning
84677
84678 ELSE null
84679 END source_meaning
84680 FROM xla_events_gt xet
84681 , PA_XLA_CDL_LINES_V l1
84682 , fnd_lookup_values fvl34
84683 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
84684 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
84685 AND xet.event_class_code = C_EVENT_CLASS_CODE
84686 AND l1.event_id = xet.event_id
84687 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
84688 AND fvl34.lookup_code(+) = l1.LINE_TYPE
84689 AND fvl34.view_application_id(+) = 275
84690 AND fvl34.language(+) = USERENV('LANG')
84691
84692 )
84693 ;
84694 --
84695 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84696
84697 trace
84698 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
84699 ,p_level => C_LEVEL_STATEMENT
84700 ,p_module => l_log_module);
84701
84702 END IF;
84703
84704
84705 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84706 trace
84707 (p_msg => 'END of insert_sources_130'
84708 ,p_level => C_LEVEL_PROCEDURE
84709 ,p_module => l_log_module);
84710 END IF;
84711 EXCEPTION
84712 WHEN xla_exceptions_pkg.application_exception THEN
84713 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
84714 trace
84715 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
84716 ,p_level => C_LEVEL_EXCEPTION
84717 ,p_module => l_log_module);
84718 END IF;
84719 RAISE;
84720 WHEN OTHERS THEN
84721 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
84722 trace
84723 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
84724 ,p_level => C_LEVEL_EXCEPTION
84725 ,p_module => l_log_module);
84726 END IF;
84727 xla_exceptions_pkg.raise_message
84728 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_130');
84729 END insert_sources_130;
84730 --
84731
84732 ---------------------------------------
84733 --
84734 -- PRIVATE FUNCTION
84735 -- EventClass_130
84736 --
84737 ----------------------------------------
84738 --
84739 FUNCTION EventClass_130
84740 (p_application_id IN NUMBER
84741 ,p_base_ledger_id IN NUMBER
84742 ,p_target_ledger_id IN NUMBER
84743 ,p_language IN VARCHAR2
84744 ,p_currency_code IN VARCHAR2
84745 ,p_sla_ledger_id IN NUMBER
84746 ,p_pad_start_date IN DATE
84747 ,p_pad_end_date IN DATE
84748 ,p_primary_ledger_id IN NUMBER)
84749 RETURN BOOLEAN IS
84750 --
84751 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ALL';
84752 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST';
84753
84754 l_calculate_acctd_flag VARCHAR2(1) :='N';
84755 l_calculate_g_l_flag VARCHAR2(1) :='N';
84756 --
84757 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84758 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84759 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84760 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84761 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84762 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84766 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84763 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84764 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84765 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84767 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84768 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84769 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84770 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84771 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84772 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84773 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84774 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84775 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84776 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84777 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84778 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84779 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
84780 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84781
84782 l_event_id NUMBER;
84783 l_previous_event_id NUMBER;
84784 l_first_event_id NUMBER;
84785 l_last_event_id NUMBER;
84786
84787 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
84788 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
84789 --
84790 --
84791 l_result BOOLEAN := TRUE;
84792 l_rows NUMBER := 1000;
84793 l_event_type_name VARCHAR2(80) := 'All';
84794 l_event_class_name VARCHAR2(80) := 'Usage Cost';
84795 l_description VARCHAR2(4000);
84796 l_transaction_reversal NUMBER;
84797 l_ae_header_id NUMBER;
84798 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
84799 l_log_module VARCHAR2(240);
84800 --
84801 l_acct_reversal_source VARCHAR2(30);
84802 l_trx_reversal_source VARCHAR2(30);
84803
84804 l_continue_with_lines BOOLEAN := TRUE;
84805 --
84806 l_acc_rev_gl_date_source DATE; -- 4262811
84807 --
84808 type t_array_event_id is table of number index by binary_integer;
84809
84810 l_rec_array_event t_rec_array_event;
84811 l_null_rec_array_event t_rec_array_event;
84812 l_array_ae_header_id xla_number_array_type;
84813 l_actual_flag VARCHAR2(1) := NULL;
84814 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
84815 l_balance_type_code VARCHAR2(1) :=NULL;
84816 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
84817
84818 --
84819 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
84820 --
84821
84822 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
84823 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
84824
84825 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
84826 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
84827 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
84828 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
84829 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
84830 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
84831 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
84832 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
84833 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
84834 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
84835 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
84836 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
84837 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
84838 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
84839 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
84840 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
84841 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
84842 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
84843
84844 l_array_source_32 t_array_source_32;
84845 l_array_source_88 t_array_source_88;
84846
84847 l_array_source_3 t_array_source_3;
84848 l_array_source_4 t_array_source_4;
84849 l_array_source_5 t_array_source_5;
84850 l_array_source_6 t_array_source_6;
84851 l_array_source_7 t_array_source_7;
84852 l_array_source_22 t_array_source_22;
84853 l_array_source_23 t_array_source_23;
84854 l_array_source_24 t_array_source_24;
84855 l_array_source_25 t_array_source_25;
84856 l_array_source_26 t_array_source_26;
84857 l_array_source_27 t_array_source_27;
84858 l_array_source_28 t_array_source_28;
84859 l_array_source_29 t_array_source_29;
84860 l_array_source_30 t_array_source_30;
84864 l_array_source_34_meaning t_array_lookup_meaning;
84861 l_array_source_31 t_array_source_31;
84862 l_array_source_33 t_array_source_33;
84863 l_array_source_34 t_array_source_34;
84865 l_array_source_35 t_array_source_35;
84866
84867 --
84868 CURSOR header_cur
84869 IS
84870 SELECT /*+ leading(xet) cardinality(xet,1) */
84871 -- Event Class Code: USG_COST
84872 xet.entity_id
84873 ,xet.legal_entity_id
84874 ,xet.entity_code
84875 ,xet.transaction_number
84876 ,xet.event_id
84877 ,xet.event_class_code
84878 ,xet.event_type_code
84879 ,xet.event_number
84880 ,xet.event_date
84881 ,xet.transaction_date
84882 ,xet.reference_num_1
84883 ,xet.reference_num_2
84884 ,xet.reference_num_3
84885 ,xet.reference_num_4
84886 ,xet.reference_char_1
84887 ,xet.reference_char_2
84888 ,xet.reference_char_3
84889 ,xet.reference_char_4
84890 ,xet.reference_date_1
84891 ,xet.reference_date_2
84892 ,xet.reference_date_3
84893 ,xet.reference_date_4
84894 ,xet.event_created_by
84895 ,xet.budgetary_control_flag
84896 , h2.EXPENDITURE_ITEM_ID source_32
84897 , h2.GL_DATE source_88
84898 FROM xla_events_gt xet
84899 , PA_XLA_EXP_HEADER_V h2
84900 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
84901 and xet.event_class_code = C_EVENT_CLASS_CODE
84902 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
84903
84904 ORDER BY event_id
84905 ;
84906
84907
84908 --
84909 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
84910 IS
84911 SELECT /*+ leading(xet) cardinality(xet,1) */
84912 -- Event Class Code: USG_COST
84913 xet.entity_id
84914 ,xet.legal_entity_id
84915 ,xet.entity_code
84916 ,xet.transaction_number
84917 ,xet.event_id
84918 ,xet.event_class_code
84919 ,xet.event_type_code
84920 ,xet.event_number
84921 ,xet.event_date
84922 ,xet.transaction_date
84923 ,xet.reference_num_1
84924 ,xet.reference_num_2
84925 ,xet.reference_num_3
84926 ,xet.reference_num_4
84927 ,xet.reference_char_1
84928 ,xet.reference_char_2
84929 ,xet.reference_char_3
84930 ,xet.reference_char_4
84931 ,xet.reference_date_1
84932 ,xet.reference_date_2
84933 ,xet.reference_date_3
84934 ,xet.reference_date_4
84935 ,xet.event_created_by
84936 ,xet.budgetary_control_flag
84937 , l1.LINE_NUMBER
84938 , l1.COST_CCID source_3
84939 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
84940 , l1.ADJ_COST_CCID source_5
84941 , l1.COST_CLEARING_CCID source_6
84942 , l1.ADJ_COST_CLEARING_CCID source_7
84943 , l1.REVERSING_LINE_FLAG source_22
84944 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
84945 , l1.ENTERED_RAW_COST source_24
84946 , l1.ENTERED_CURRENCY_CODE source_25
84947 , l1.ACCT_RAW_COST source_26
84948 , l1.EXCHANGE_RATE_DATE source_27
84949 , l1.EXCHANGE_RATE source_28
84950 , l1.EXCHANGE_RATE_TYPE source_29
84951 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
84952 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
84953 , l1.LINE_NUMBER source_33
84954 , l1.LINE_TYPE source_34
84955 , fvl34.meaning source_34_meaning
84956 , l1.LINE_NUM_REVERSED source_35
84957 FROM xla_events_gt xet
84958 , PA_XLA_CDL_LINES_V l1
84959 , fnd_lookup_values fvl34
84960 WHERE xet.event_id between x_first_event_id and x_last_event_id
84961 and xet.event_date between p_pad_start_date and p_pad_end_date
84962 and xet.event_class_code = C_EVENT_CLASS_CODE
84963 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
84964 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
84965 AND fvl34.lookup_code(+) = l1.LINE_TYPE
84966 AND fvl34.view_application_id(+) = 275
84967 AND fvl34.language(+) = USERENV('LANG')
84968 ;
84969
84970 --
84971 BEGIN
84972 IF g_log_enabled THEN
84973 l_log_module := C_DEFAULT_MODULE||'.EventClass_130';
84974 END IF;
84975 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84976 trace
84977 (p_msg => 'BEGIN of EventClass_130'
84978 ,p_level => C_LEVEL_PROCEDURE
84979 ,p_module => l_log_module);
84980 END IF;
84981
84982 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84983 trace
84984 (p_msg => 'p_application_id = '||p_application_id||
84985 ' - p_base_ledger_id = '||p_base_ledger_id||
84986 ' - p_target_ledger_id = '||p_target_ledger_id||
84987 ' - p_language = '||p_language||
84988 ' - p_currency_code = '||p_currency_code||
84989 ' - p_sla_ledger_id = '||p_sla_ledger_id
84990 ,p_level => C_LEVEL_STATEMENT
84991 ,p_module => l_log_module);
84992 END IF;
84993 --
84994 -- initialze arrays
84995 --
84996 g_array_event.DELETE;
84997 l_rec_array_event := l_null_rec_array_event;
84998 --
84999 --------------------------------------
85000 -- 4262811 Initialze MPA Line Number
85001 --------------------------------------
85002 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
85003
85004 --
85005
85006 --
85007 OPEN header_cur;
85008 --
85009 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85010 trace
85011 (p_msg => 'SQL - FETCH header_cur'
85012 ,p_level => C_LEVEL_STATEMENT
85013 ,p_module => l_log_module);
85014 END IF;
85015 --
85016 LOOP
85017 FETCH header_cur BULK COLLECT INTO
85018 l_array_entity_id
85019 , l_array_legal_entity_id
85020 , l_array_entity_code
85021 , l_array_transaction_num
85022 , l_array_event_id
85026 , l_array_event_date
85023 , l_array_class_code
85024 , l_array_event_type
85025 , l_array_event_number
85027 , l_array_transaction_date
85028 , l_array_reference_num_1
85029 , l_array_reference_num_2
85030 , l_array_reference_num_3
85031 , l_array_reference_num_4
85032 , l_array_reference_char_1
85033 , l_array_reference_char_2
85034 , l_array_reference_char_3
85035 , l_array_reference_char_4
85036 , l_array_reference_date_1
85037 , l_array_reference_date_2
85038 , l_array_reference_date_3
85039 , l_array_reference_date_4
85040 , l_array_event_created_by
85041 , l_array_budgetary_control_flag
85042 , l_array_source_32
85043 , l_array_source_88
85044 LIMIT l_rows;
85045 --
85046 IF (C_LEVEL_EVENT >= g_log_level) THEN
85047 trace
85048 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
85049 ,p_level => C_LEVEL_EVENT
85050 ,p_module => l_log_module);
85051 END IF;
85052 --
85053 EXIT WHEN l_array_entity_id.COUNT = 0;
85054
85055 -- initialize arrays
85056 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
85057 XLA_AE_LINES_PKG.g_rec_lines := NULL;
85058
85059 --
85060 -- Bug 4458708
85061 --
85062 XLA_AE_LINES_PKG.g_LineNumber := 0;
85063
85064
85065 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
85066 g_last_hdr_idx := l_array_event_id.LAST;
85067 --
85068 -- loop for the headers. Each iteration is for each header extract row
85069 -- fetched in header cursor
85070 --
85071 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
85072
85073 --
85074 -- set event info as cache for other routines to refer event attributes
85075 --
85076 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
85077 (p_application_id => p_application_id
85078 ,p_primary_ledger_id => p_primary_ledger_id
85079 ,p_base_ledger_id => p_base_ledger_id
85080 ,p_target_ledger_id => p_target_ledger_id
85081 ,p_entity_id => l_array_entity_id(hdr_idx)
85082 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
85083 ,p_entity_code => l_array_entity_code(hdr_idx)
85084 ,p_transaction_num => l_array_transaction_num(hdr_idx)
85085 ,p_event_id => l_array_event_id(hdr_idx)
85086 ,p_event_class_code => l_array_class_code(hdr_idx)
85087 ,p_event_type_code => l_array_event_type(hdr_idx)
85088 ,p_event_number => l_array_event_number(hdr_idx)
85089 ,p_event_date => l_array_event_date(hdr_idx)
85090 ,p_transaction_date => l_array_transaction_date(hdr_idx)
85091 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
85092 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
85093 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
85094 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
85095 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
85096 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
85097 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
85098 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
85099 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
85100 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
85101 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
85102 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
85103 ,p_event_created_by => l_array_event_created_by(hdr_idx)
85104 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
85105
85106 --
85107 -- set the status of entry to C_VALID (0)
85108 --
85109 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
85110
85111 --
85112 -- initialize a row for ae header
85113 --
85114 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
85115
85116 l_event_id := l_array_event_id(hdr_idx);
85117
85118 --
85119 -- storing the hdr_idx for event. May be used by line cursor.
85120 --
85121 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
85122
85123 --
85124 -- store sources from header extract. This can be improved to
85125 -- store only those sources from header extract that may be used in lines
85126 --
85127
85128 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
85129 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
85130
85131 --
85132 -- initilaize the status of ae headers for diffrent balance types
85133 -- the status is initialised to C_NOT_CREATED (2)
85134 --
85135 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
85136 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
85137 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
85138
85139 --
85140 -- call api to validate and store accounting attributes for header
85141 --
85142
85143 ------------------------------------------------------------
85144 -- Accrual Reversal : to get date for Standard Source (NONE)
85145 ------------------------------------------------------------
85146 l_acc_rev_gl_date_source := NULL;
85147
85148 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
85149 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
85150
85151
85152 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
85153
85154 XLA_AE_HEADER_PKG.SetJeCategoryName;
85155
85159 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
85156 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
85157 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
85158 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
85160 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
85161
85162
85163 -- No header level analytical criteria
85164
85165 --
85166 --accounting attribute enhancement, bug 3612931
85167 --
85168 l_trx_reversal_source := SUBSTR(NULL, 1,30);
85169
85170 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
85171 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
85172
85173 xla_accounting_err_pkg.build_message
85174 (p_appli_s_name => 'XLA'
85175 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
85176 ,p_token_1 => 'ACCT_ATTR_NAME'
85177 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
85178 ,p_token_2 => 'PRODUCT_NAME'
85179 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
85180 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
85181 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
85182 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
85183
85184 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
85185 --
85186 -- following sets the accounting attributes needed to reverse
85187 -- accounting for a distributeion
85188 --
85189 xla_ae_lines_pkg.SetTrxReversalAttrs
85190 (p_event_id => l_event_id
85191 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
85192 ,p_trx_reversal_source => l_trx_reversal_source);
85193
85194 END IF;
85195
85196
85197 ----------------------------------------------------------------
85198 -- 4262811 - update the header statuses to invalid in need be
85199 ----------------------------------------------------------------
85200 --
85201 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
85202
85203
85204 -----------------------------------------------
85205 -- No accrual reversal for the event class/type
85206 -----------------------------------------------
85207 ----------------------------------------------------------------
85208
85209 --
85210 -- this ends the header loop iteration for one bulk fetch
85211 --
85212 END LOOP;
85213
85214 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
85215 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
85216
85217 --
85218 -- insert dummy rows into lines gt table that were created due to
85219 -- transaction reversals
85220 --
85221 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
85222 l_result := XLA_AE_LINES_PKG.InsertLines;
85223 END IF;
85224
85225 --
85226 -- reset the temp_line_num for each set of events fetched from header
85227 -- cursor rather than doing it for each new event in line cursor
85228 -- Bug 3939231
85229 --
85230 xla_ae_lines_pkg.g_temp_line_num := 0;
85231
85232
85233
85234 --
85235 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
85236 --
85237 --
85238 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85239
85240 trace
85241 (p_msg => 'SQL - FETCH line_cur'
85242 ,p_level => C_LEVEL_STATEMENT
85243 ,p_module => l_log_module);
85244
85245 END IF;
85246 --
85247 --
85248 LOOP
85249 --
85250 FETCH line_cur BULK COLLECT INTO
85251 l_array_entity_id
85252 , l_array_legal_entity_id
85253 , l_array_entity_code
85254 , l_array_transaction_num
85255 , l_array_event_id
85256 , l_array_class_code
85257 , l_array_event_type
85258 , l_array_event_number
85259 , l_array_event_date
85260 , l_array_transaction_date
85261 , l_array_reference_num_1
85262 , l_array_reference_num_2
85263 , l_array_reference_num_3
85264 , l_array_reference_num_4
85265 , l_array_reference_char_1
85266 , l_array_reference_char_2
85267 , l_array_reference_char_3
85268 , l_array_reference_char_4
85269 , l_array_reference_date_1
85270 , l_array_reference_date_2
85271 , l_array_reference_date_3
85272 , l_array_reference_date_4
85273 , l_array_event_created_by
85274 , l_array_budgetary_control_flag
85275 , l_array_extract_line_num
85276 , l_array_source_3
85277 , l_array_source_4
85278 , l_array_source_5
85279 , l_array_source_6
85280 , l_array_source_7
85281 , l_array_source_22
85282 , l_array_source_23
85283 , l_array_source_24
85284 , l_array_source_25
85285 , l_array_source_26
85286 , l_array_source_27
85287 , l_array_source_28
85288 , l_array_source_29
85289 , l_array_source_30
85290 , l_array_source_31
85291 , l_array_source_33
85292 , l_array_source_34
85293 , l_array_source_34_meaning
85294 , l_array_source_35
85295 LIMIT l_rows;
85296
85297 --
85298 IF (C_LEVEL_EVENT >= g_log_level) THEN
85299 trace
85300 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
85301 ,p_level => C_LEVEL_EVENT
85302 ,p_module => l_log_module);
85303 END IF;
85307 XLA_AE_LINES_PKG.g_rec_lines := null;
85304 --
85305 EXIT WHEN l_array_entity_id.count = 0;
85306
85308
85309 --
85310 -- Bug 4458708
85311 --
85312 XLA_AE_LINES_PKG.g_LineNumber := 0;
85313 --
85314 --
85315
85316 FOR Idx IN 1..l_array_event_id.count LOOP
85317 --
85318 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
85319 --
85320 l_event_id := l_array_event_id(idx); -- 5648433
85321
85322 --
85323 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
85324 --
85325
85326 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
85327 (g_array_event(l_event_id).array_value_num('header_index'))
85328 ,'N'
85329 ) <> 'Y'
85330 THEN
85331 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85332 trace
85333 (p_msg => 'Trancaction revesal option is not Y '
85334 ,p_level => C_LEVEL_STATEMENT
85335 ,p_module => l_log_module);
85336 END IF;
85337
85338 --
85339 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
85340 --
85341 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
85342 --
85343 -- set event info as cache for other routines to refer event attributes
85344 --
85345
85346 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
85347 l_previous_event_id := l_event_id;
85348
85349 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
85350 (p_application_id => p_application_id
85351 ,p_primary_ledger_id => p_primary_ledger_id
85352 ,p_base_ledger_id => p_base_ledger_id
85353 ,p_target_ledger_id => p_target_ledger_id
85354 ,p_entity_id => l_array_entity_id(Idx)
85355 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
85356 ,p_entity_code => l_array_entity_code(Idx)
85357 ,p_transaction_num => l_array_transaction_num(Idx)
85358 ,p_event_id => l_array_event_id(Idx)
85359 ,p_event_class_code => l_array_class_code(Idx)
85360 ,p_event_type_code => l_array_event_type(Idx)
85361 ,p_event_number => l_array_event_number(Idx)
85362 ,p_event_date => l_array_event_date(Idx)
85363 ,p_transaction_date => l_array_transaction_date(Idx)
85364 ,p_reference_num_1 => l_array_reference_num_1(Idx)
85365 ,p_reference_num_2 => l_array_reference_num_2(Idx)
85366 ,p_reference_num_3 => l_array_reference_num_3(Idx)
85367 ,p_reference_num_4 => l_array_reference_num_4(Idx)
85368 ,p_reference_char_1 => l_array_reference_char_1(Idx)
85369 ,p_reference_char_2 => l_array_reference_char_2(Idx)
85370 ,p_reference_char_3 => l_array_reference_char_3(Idx)
85371 ,p_reference_char_4 => l_array_reference_char_4(Idx)
85372 ,p_reference_date_1 => l_array_reference_date_1(Idx)
85373 ,p_reference_date_2 => l_array_reference_date_2(Idx)
85374 ,p_reference_date_3 => l_array_reference_date_3(Idx)
85375 ,p_reference_date_4 => l_array_reference_date_4(Idx)
85376 ,p_event_created_by => l_array_event_created_by(Idx)
85377 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
85378 --
85379 END IF;
85380
85381
85382
85383 --
85384 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
85385
85386 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
85387
85388 IF l_continue_with_lines THEN
85389 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
85390 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
85391
85392 xla_accounting_err_pkg.build_message
85393 (p_appli_s_name => 'XLA'
85394 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
85395 ,p_token_1 => 'LINE_NUMBER'
85396 ,p_value_1 => l_array_extract_line_num(Idx)
85397 ,p_token_2 => 'PRODUCT_NAME'
85398 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
85399 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
85400 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
85401 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
85402
85403 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
85404 --
85405 -- following sets the accounting attributes needed to reverse
85406 -- accounting for a distributeion
85407 --
85408
85409 --
85410 -- 5217187
85411 --
85412 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
85413 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
85414 g_array_event(l_event_id).array_value_num('header_index'));
85415 --
85416 --
85417
85418 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
85419 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
85420 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
85421 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
85422 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
85423 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
85424 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
85425 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
85426 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
85430 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
85427 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
85428 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
85429 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
85431 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
85432 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
85433 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
85434 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
85435 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
85436 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
85437 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
85438 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
85439 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
85440 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
85441 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
85442 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
85443 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
85444 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
85445 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
85446 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
85447 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
85448 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
85449 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
85450 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
85451 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
85452 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
85453 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
85454 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
85455 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
85456 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
85457 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
85458 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
85459 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
85460 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
85461 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
85462 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
85463 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
85464 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
85465 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
85466
85467
85468 xla_ae_lines_pkg.SetAcctReversalAttrs
85469 (p_event_id => l_event_id
85470 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
85471 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85472 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
85473 END IF;
85474
85475 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
85476 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
85477
85478 --
85479 AcctLineType_42 (
85480 p_application_id => p_application_id
85481 ,p_event_id => l_event_id
85482 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85483 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85484 ,p_actual_flag => l_actual_flag
85485 ,p_balance_type_code => l_balance_type_code
85486 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85487
85488 , p_source_3 => l_array_source_3(Idx)
85489 , p_source_4 => l_array_source_4(Idx)
85490 , p_source_5 => l_array_source_5(Idx)
85491 , p_source_6 => l_array_source_6(Idx)
85492 , p_source_22 => l_array_source_22(Idx)
85493 , p_source_23 => l_array_source_23(Idx)
85494 , p_source_24 => l_array_source_24(Idx)
85495 , p_source_25 => l_array_source_25(Idx)
85496 , p_source_26 => l_array_source_26(Idx)
85497 , p_source_27 => l_array_source_27(Idx)
85498 , p_source_28 => l_array_source_28(Idx)
85499 , p_source_29 => l_array_source_29(Idx)
85500 , p_source_30 => l_array_source_30(Idx)
85501 , p_source_31 => l_array_source_31(Idx)
85502 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
85503 , p_source_33 => l_array_source_33(Idx)
85504 , p_source_34 => l_array_source_34(Idx)
85505 , p_source_34_meaning => l_array_source_34_meaning(Idx)
85506 , p_source_35 => l_array_source_35(Idx)
85507 );
85508 If(l_balance_type_code = 'A') THEN
85509 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85510 END IF;
85511
85512 --
85513
85514
85515 --
85516 AcctLineType_54 (
85517 p_application_id => p_application_id
85518 ,p_event_id => l_event_id
85519 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85520 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85521 ,p_actual_flag => l_actual_flag
85522 ,p_balance_type_code => l_balance_type_code
85523 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85524
85525 , p_source_3 => l_array_source_3(Idx)
85526 , p_source_4 => l_array_source_4(Idx)
85527 , p_source_6 => l_array_source_6(Idx)
85528 , p_source_7 => l_array_source_7(Idx)
85529 , p_source_22 => l_array_source_22(Idx)
85530 , p_source_23 => l_array_source_23(Idx)
85531 , p_source_24 => l_array_source_24(Idx)
85532 , p_source_25 => l_array_source_25(Idx)
85533 , p_source_26 => l_array_source_26(Idx)
85534 , p_source_27 => l_array_source_27(Idx)
85535 , p_source_28 => l_array_source_28(Idx)
85539 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
85536 , p_source_29 => l_array_source_29(Idx)
85537 , p_source_30 => l_array_source_30(Idx)
85538 , p_source_31 => l_array_source_31(Idx)
85540 , p_source_33 => l_array_source_33(Idx)
85541 , p_source_34 => l_array_source_34(Idx)
85542 , p_source_34_meaning => l_array_source_34_meaning(Idx)
85543 , p_source_35 => l_array_source_35(Idx)
85544 );
85545 If(l_balance_type_code = 'A') THEN
85546 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85547 END IF;
85548
85549 --
85550
85551 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
85552 -- or secondary ledger that has different currency with primary
85553 -- or alc that is calculated by sla
85554 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
85555 (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'))
85556
85557 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
85558 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
85559 AND (l_actual_flag = 'A')) THEN
85560 XLA_AE_LINES_PKG.CreateGainOrLossLines(
85561 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
85562 ,p_application_id => p_application_id
85563 ,p_amb_context_code => 'DEFAULT'
85564 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
85565 ,p_event_class_code => C_EVENT_CLASS_CODE
85566 ,p_event_type_code => C_EVENT_TYPE_CODE
85567
85568 ,p_gain_ccid => -1
85569 ,p_loss_ccid => -1
85570
85571 ,p_actual_flag => l_actual_flag
85572 ,p_enc_flag => null
85573 ,p_actual_g_l_ref => l_actual_gain_loss_ref
85574 ,p_enc_g_l_ref => null
85575 );
85576 END IF;
85577 END IF;
85578 END IF;
85579
85580 ELSE
85581 --
85582 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
85583 --
85584 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85585 trace
85586 (p_msg => 'Trancaction revesal option is Y'
85587 ,p_level => C_LEVEL_STATEMENT
85588 ,p_module => l_log_module);
85589 END IF;
85590 END IF;
85591
85592 END LOOP;
85593 l_result := XLA_AE_LINES_PKG.InsertLines ;
85594 end loop;
85595 close line_cur;
85596
85597
85598 --
85599 -- insert headers into xla_ae_headers_gt table
85600 --
85601 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
85602
85603 -- insert into errors table here.
85604
85605 END LOOP;
85606
85607 --
85608 -- 4865292
85609 --
85610 -- Compare g_hdr_extract_count with event count in
85611 -- CreateHeadersAndLines.
85612 --
85613 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
85614
85615 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85616 trace (p_msg => '# rows extracted from header extract objects '
85617 || ' (running total): '
85618 || g_hdr_extract_count
85619 ,p_level => C_LEVEL_STATEMENT
85620 ,p_module => l_log_module);
85621 END IF;
85622
85623 CLOSE header_cur;
85624 --
85625
85626 --
85627 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85628 trace
85629 (p_msg => 'END of EventClass_130'
85630 ,p_level => C_LEVEL_PROCEDURE
85631 ,p_module => l_log_module);
85632 END IF;
85633 --
85634 RETURN l_result;
85635 EXCEPTION
85636 WHEN xla_exceptions_pkg.application_exception THEN
85637
85638 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
85639
85640
85641 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
85642
85643 RAISE;
85644 WHEN OTHERS THEN
85645 xla_exceptions_pkg.raise_message
85646 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_130');
85647 END EventClass_130;
85648 --
85649
85650 ---------------------------------------
85651 --
85652 -- PRIVATE PROCEDURE
85653 -- insert_sources_131
85654 --
85655 ----------------------------------------
85656 --
85657 PROCEDURE insert_sources_131(
85658 p_target_ledger_id IN NUMBER
85659 , p_language IN VARCHAR2
85660 , p_sla_ledger_id IN NUMBER
85661 , p_pad_start_date IN DATE
85662 , p_pad_end_date IN DATE
85663 )
85664 IS
85665
85666 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ_ALL';
85667 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ';
85668 p_apps_owner VARCHAR2(30);
85669 l_log_module VARCHAR2(240);
85670 BEGIN
85671 IF g_log_enabled THEN
85672 l_log_module := C_DEFAULT_MODULE||'.insert_sources_131';
85673 END IF;
85674 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85675
85676 trace
85677 (p_msg => 'BEGIN of insert_sources_131'
85678 ,p_level => C_LEVEL_PROCEDURE
85679 ,p_module => l_log_module);
85680
85681 END IF;
85682
85683 -- select APPS owner
85684 SELECT oracle_username
85685 INTO p_apps_owner
85686 FROM fnd_oracle_userid
85687 WHERE read_only_flag = 'U'
85688 ;
85689
85690 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85691 trace
85692 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
85696 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
85693 ' - p_language = '||p_language||
85694 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
85695 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
85697 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
85698 ,p_level => C_LEVEL_STATEMENT
85699 ,p_module => l_log_module);
85700 END IF;
85701
85702
85703 --
85704 INSERT INTO xla_diag_sources --hdr2
85705 (
85706 event_id
85707 , ledger_id
85708 , sla_ledger_id
85709 , description_language
85710 , object_name
85711 , object_type_code
85712 , line_number
85713 , source_application_id
85714 , source_type_code
85715 , source_code
85716 , source_value
85717 , source_meaning
85718 , created_by
85719 , creation_date
85720 , last_update_date
85721 , last_updated_by
85722 , last_update_login
85723 , program_update_date
85724 , program_application_id
85725 , program_id
85726 , request_id
85727 )
85728 SELECT
85729 event_id
85730 , p_target_ledger_id
85731 , p_sla_ledger_id
85732 , p_language
85733 , object_name
85734 , object_type_code
85735 , line_number
85736 , source_application_id
85737 , source_type_code
85738 , source_code
85739 , SUBSTR(source_value ,1,1996)
85740 , SUBSTR(source_meaning ,1,200)
85741 , xla_environment_pkg.g_Usr_Id
85742 , TRUNC(SYSDATE)
85743 , TRUNC(SYSDATE)
85744 , xla_environment_pkg.g_Usr_Id
85745 , xla_environment_pkg.g_Login_Id
85746 , TRUNC(SYSDATE)
85747 , xla_environment_pkg.g_Prog_Appl_Id
85748 , xla_environment_pkg.g_Prog_Id
85749 , xla_environment_pkg.g_Req_Id
85750 FROM (
85751 SELECT xet.event_id event_id
85752 , 0 line_number
85753 , CASE r
85754 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
85755 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
85756
85757 ELSE null
85758 END object_name
85759 , CASE r
85760 WHEN 1 THEN 'HEADER'
85761 WHEN 2 THEN 'HEADER'
85762
85763 ELSE null
85764 END object_type_code
85765 , CASE r
85766 WHEN 1 THEN '275'
85767 WHEN 2 THEN '275'
85768
85769 ELSE null
85770 END source_application_id
85771 , 'S' source_type_code
85772 , CASE r
85773 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
85774 WHEN 2 THEN 'GL_DATE'
85775
85776 ELSE null
85777 END source_code
85778 , CASE r
85779 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
85780 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
85781
85782 ELSE null
85783 END source_value
85784 , null source_meaning
85785 FROM xla_events_gt xet
85786 , PA_XLA_EXP_HEADER_V h2
85787 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
85788 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
85789 AND xet.event_class_code = C_EVENT_CLASS_CODE
85790 AND h2.event_id = xet.event_id
85791
85792 )
85793 ;
85794 --
85795 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85796
85797 trace
85798 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
85799 ,p_level => C_LEVEL_STATEMENT
85800 ,p_module => l_log_module);
85801
85802 END IF;
85803 --
85804
85805
85806
85807 --
85808 INSERT INTO xla_diag_sources --line2
85809 (
85810 event_id
85811 , ledger_id
85812 , sla_ledger_id
85813 , description_language
85814 , object_name
85815 , object_type_code
85816 , line_number
85817 , source_application_id
85818 , source_type_code
85819 , source_code
85820 , source_value
85821 , source_meaning
85822 , created_by
85823 , creation_date
85824 , last_update_date
85825 , last_updated_by
85826 , last_update_login
85827 , program_update_date
85828 , program_application_id
85829 , program_id
85830 , request_id
85831 )
85832 SELECT event_id
85833 , p_target_ledger_id
85834 , p_sla_ledger_id
85835 , p_language
85836 , object_name
85837 , object_type_code
85838 , line_number
85839 , source_application_id
85840 , source_type_code
85841 , source_code
85842 , SUBSTR(source_value,1,1996)
85843 , SUBSTR(source_meaning ,1,200)
85844 , xla_environment_pkg.g_Usr_Id
85845 , TRUNC(SYSDATE)
85846 , TRUNC(SYSDATE)
85847 , xla_environment_pkg.g_Usr_Id
85848 , xla_environment_pkg.g_Login_Id
85849 , TRUNC(SYSDATE)
85850 , xla_environment_pkg.g_Prog_Appl_Id
85851 , xla_environment_pkg.g_Prog_Id
85852 , xla_environment_pkg.g_Req_Id
85853 FROM (
85854 SELECT xet.event_id event_id
85855 , l1.line_number line_number
85859 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
85856 , CASE r
85857 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
85858 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
85860 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
85861 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
85862 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
85863 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
85864 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
85865 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
85866 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
85867 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
85868 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
85869 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
85870 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
85871 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
85872 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
85873 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
85874 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
85875
85876 ELSE null
85877 END object_name
85878 , CASE r
85879 WHEN 1 THEN 'LINE'
85880 WHEN 2 THEN 'LINE'
85881 WHEN 3 THEN 'LINE'
85882 WHEN 4 THEN 'LINE'
85883 WHEN 5 THEN 'LINE'
85884 WHEN 6 THEN 'LINE'
85885 WHEN 7 THEN 'LINE'
85886 WHEN 8 THEN 'LINE'
85887 WHEN 9 THEN 'LINE'
85888 WHEN 10 THEN 'LINE'
85889 WHEN 11 THEN 'LINE'
85890 WHEN 12 THEN 'LINE'
85891 WHEN 13 THEN 'LINE'
85892 WHEN 14 THEN 'LINE'
85893 WHEN 15 THEN 'LINE'
85894 WHEN 16 THEN 'LINE'
85895 WHEN 17 THEN 'LINE'
85896 WHEN 18 THEN 'LINE'
85897
85898 ELSE null
85899 END object_type_code
85900 , CASE r
85901 WHEN 1 THEN '275'
85902 WHEN 2 THEN '275'
85903 WHEN 3 THEN '275'
85904 WHEN 4 THEN '275'
85905 WHEN 5 THEN '275'
85906 WHEN 6 THEN '275'
85907 WHEN 7 THEN '275'
85908 WHEN 8 THEN '275'
85909 WHEN 9 THEN '275'
85910 WHEN 10 THEN '275'
85911 WHEN 11 THEN '275'
85912 WHEN 12 THEN '275'
85913 WHEN 13 THEN '275'
85914 WHEN 14 THEN '275'
85915 WHEN 15 THEN '275'
85916 WHEN 16 THEN '275'
85917 WHEN 17 THEN '275'
85918 WHEN 18 THEN '275'
85919
85920 ELSE null
85921 END source_application_id
85922 , 'S' source_type_code
85923 , CASE r
85924 WHEN 1 THEN 'COST_CCID'
85925 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
85926 WHEN 3 THEN 'ADJ_COST_CCID'
85927 WHEN 4 THEN 'COST_CLEARING_CCID'
85928 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
85929 WHEN 6 THEN 'REVERSING_LINE_FLAG'
85930 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
85931 WHEN 8 THEN 'ENTERED_RAW_COST'
85932 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
85933 WHEN 10 THEN 'ACCT_RAW_COST'
85934 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
85935 WHEN 12 THEN 'EXCHANGE_RATE'
85936 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
85937 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
85938 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
85939 WHEN 16 THEN 'LINE_NUMBER'
85940 WHEN 17 THEN 'LINE_TYPE'
85941 WHEN 18 THEN 'LINE_NUM_REVERSED'
85942
85943 ELSE null
85944 END source_code
85945 , CASE r
85946 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
85947 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
85948 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
85949 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
85950 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
85951 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
85952 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
85953 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
85954 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
85955 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
85956 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
85957 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
85958 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
85959 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
85960 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
85961 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
85962 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
85963 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
85964
85965 ELSE null
85966 END source_value
85967 , CASE r
85968 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
85969 103371
85970 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
85971 ,'ALLOW_OVERRIDE_CCID_FLAG'
85972 ,'S'
85973 ,275)
85974 WHEN 17 THEN fvl34.meaning
85975
85976 ELSE null
85977 END source_meaning
85978 FROM xla_events_gt xet
85982 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
85979 , PA_XLA_CDL_LINES_V l1
85980 , fnd_lookup_values fvl34
85981 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
85983 AND xet.event_class_code = C_EVENT_CLASS_CODE
85984 AND l1.event_id = xet.event_id
85985 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
85986 AND fvl34.lookup_code(+) = l1.LINE_TYPE
85987 AND fvl34.view_application_id(+) = 275
85988 AND fvl34.language(+) = USERENV('LANG')
85989
85990 )
85991 ;
85992 --
85993 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85994
85995 trace
85996 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
85997 ,p_level => C_LEVEL_STATEMENT
85998 ,p_module => l_log_module);
85999
86000 END IF;
86001
86002
86003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86004 trace
86005 (p_msg => 'END of insert_sources_131'
86006 ,p_level => C_LEVEL_PROCEDURE
86007 ,p_module => l_log_module);
86008 END IF;
86009 EXCEPTION
86010 WHEN xla_exceptions_pkg.application_exception THEN
86011 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
86012 trace
86013 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
86014 ,p_level => C_LEVEL_EXCEPTION
86015 ,p_module => l_log_module);
86016 END IF;
86017 RAISE;
86018 WHEN OTHERS THEN
86019 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
86020 trace
86021 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
86022 ,p_level => C_LEVEL_EXCEPTION
86023 ,p_module => l_log_module);
86024 END IF;
86025 xla_exceptions_pkg.raise_message
86026 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_131');
86027 END insert_sources_131;
86028 --
86029
86030 ---------------------------------------
86031 --
86032 -- PRIVATE FUNCTION
86033 -- EventClass_131
86034 --
86035 ----------------------------------------
86036 --
86037 FUNCTION EventClass_131
86038 (p_application_id IN NUMBER
86039 ,p_base_ledger_id IN NUMBER
86040 ,p_target_ledger_id IN NUMBER
86041 ,p_language IN VARCHAR2
86042 ,p_currency_code IN VARCHAR2
86043 ,p_sla_ledger_id IN NUMBER
86044 ,p_pad_start_date IN DATE
86045 ,p_pad_end_date IN DATE
86046 ,p_primary_ledger_id IN NUMBER)
86047 RETURN BOOLEAN IS
86048 --
86049 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ_ALL';
86050 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ';
86051
86052 l_calculate_acctd_flag VARCHAR2(1) :='N';
86053 l_calculate_g_l_flag VARCHAR2(1) :='N';
86054 --
86055 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
86056 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
86057 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
86058 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
86059 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
86060 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
86061 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
86062 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
86063 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
86064 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
86065 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
86066 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
86067 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
86068 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
86069 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
86070 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
86071 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
86072 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
86073 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
86074 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
86075 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
86076 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
86077 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
86078 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
86079
86080 l_event_id NUMBER;
86081 l_previous_event_id NUMBER;
86082 l_first_event_id NUMBER;
86083 l_last_event_id NUMBER;
86084
86085 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
86086 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
86087 --
86088 --
86089 l_result BOOLEAN := TRUE;
86090 l_rows NUMBER := 1000;
86091 l_event_type_name VARCHAR2(80) := 'All';
86092 l_event_class_name VARCHAR2(80) := 'Work in Process Cost Adjustment';
86093 l_description VARCHAR2(4000);
86094 l_transaction_reversal NUMBER;
86095 l_ae_header_id NUMBER;
86096 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
86097 l_log_module VARCHAR2(240);
86098 --
86099 l_acct_reversal_source VARCHAR2(30);
86100 l_trx_reversal_source VARCHAR2(30);
86101
86102 l_continue_with_lines BOOLEAN := TRUE;
86106 type t_array_event_id is table of number index by binary_integer;
86103 --
86104 l_acc_rev_gl_date_source DATE; -- 4262811
86105 --
86107
86108 l_rec_array_event t_rec_array_event;
86109 l_null_rec_array_event t_rec_array_event;
86110 l_array_ae_header_id xla_number_array_type;
86111 l_actual_flag VARCHAR2(1) := NULL;
86112 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
86113 l_balance_type_code VARCHAR2(1) :=NULL;
86114 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
86115
86116 --
86117 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
86118 --
86119
86120 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
86121 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
86122
86123 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
86124 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
86125 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
86126 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
86127 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
86128 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
86129 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
86130 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
86131 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
86132 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
86133 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
86134 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
86135 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
86136 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
86137 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
86138 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
86139 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
86140 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
86141
86142 l_array_source_32 t_array_source_32;
86143 l_array_source_88 t_array_source_88;
86144
86145 l_array_source_3 t_array_source_3;
86146 l_array_source_4 t_array_source_4;
86147 l_array_source_5 t_array_source_5;
86148 l_array_source_6 t_array_source_6;
86149 l_array_source_7 t_array_source_7;
86150 l_array_source_22 t_array_source_22;
86151 l_array_source_23 t_array_source_23;
86152 l_array_source_24 t_array_source_24;
86153 l_array_source_25 t_array_source_25;
86154 l_array_source_26 t_array_source_26;
86155 l_array_source_27 t_array_source_27;
86156 l_array_source_28 t_array_source_28;
86157 l_array_source_29 t_array_source_29;
86158 l_array_source_30 t_array_source_30;
86159 l_array_source_31 t_array_source_31;
86160 l_array_source_33 t_array_source_33;
86161 l_array_source_34 t_array_source_34;
86162 l_array_source_34_meaning t_array_lookup_meaning;
86163 l_array_source_35 t_array_source_35;
86164
86165 --
86166 CURSOR header_cur
86167 IS
86168 SELECT /*+ leading(xet) cardinality(xet,1) */
86169 -- Event Class Code: WIP_COST_ADJ
86170 xet.entity_id
86171 ,xet.legal_entity_id
86172 ,xet.entity_code
86173 ,xet.transaction_number
86174 ,xet.event_id
86175 ,xet.event_class_code
86176 ,xet.event_type_code
86177 ,xet.event_number
86178 ,xet.event_date
86179 ,xet.transaction_date
86180 ,xet.reference_num_1
86181 ,xet.reference_num_2
86182 ,xet.reference_num_3
86183 ,xet.reference_num_4
86184 ,xet.reference_char_1
86185 ,xet.reference_char_2
86186 ,xet.reference_char_3
86187 ,xet.reference_char_4
86188 ,xet.reference_date_1
86189 ,xet.reference_date_2
86190 ,xet.reference_date_3
86191 ,xet.reference_date_4
86192 ,xet.event_created_by
86193 ,xet.budgetary_control_flag
86194 , h2.EXPENDITURE_ITEM_ID source_32
86195 , h2.GL_DATE source_88
86196 FROM xla_events_gt xet
86197 , PA_XLA_EXP_HEADER_V h2
86198 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
86199 and xet.event_class_code = C_EVENT_CLASS_CODE
86200 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
86201
86202 ORDER BY event_id
86203 ;
86204
86205
86206 --
86207 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
86208 IS
86209 SELECT /*+ leading(xet) cardinality(xet,1) */
86210 -- Event Class Code: WIP_COST_ADJ
86211 xet.entity_id
86212 ,xet.legal_entity_id
86213 ,xet.entity_code
86214 ,xet.transaction_number
86215 ,xet.event_id
86216 ,xet.event_class_code
86217 ,xet.event_type_code
86218 ,xet.event_number
86219 ,xet.event_date
86220 ,xet.transaction_date
86221 ,xet.reference_num_1
86222 ,xet.reference_num_2
86223 ,xet.reference_num_3
86224 ,xet.reference_num_4
86225 ,xet.reference_char_1
86226 ,xet.reference_char_2
86227 ,xet.reference_char_3
86228 ,xet.reference_char_4
86229 ,xet.reference_date_1
86230 ,xet.reference_date_2
86234 ,xet.budgetary_control_flag
86231 ,xet.reference_date_3
86232 ,xet.reference_date_4
86233 ,xet.event_created_by
86235 , l1.LINE_NUMBER
86236 , l1.COST_CCID source_3
86237 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
86238 , l1.ADJ_COST_CCID source_5
86239 , l1.COST_CLEARING_CCID source_6
86240 , l1.ADJ_COST_CLEARING_CCID source_7
86241 , l1.REVERSING_LINE_FLAG source_22
86242 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
86243 , l1.ENTERED_RAW_COST source_24
86244 , l1.ENTERED_CURRENCY_CODE source_25
86245 , l1.ACCT_RAW_COST source_26
86246 , l1.EXCHANGE_RATE_DATE source_27
86247 , l1.EXCHANGE_RATE source_28
86248 , l1.EXCHANGE_RATE_TYPE source_29
86249 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
86250 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
86251 , l1.LINE_NUMBER source_33
86252 , l1.LINE_TYPE source_34
86253 , fvl34.meaning source_34_meaning
86254 , l1.LINE_NUM_REVERSED source_35
86255 FROM xla_events_gt xet
86256 , PA_XLA_CDL_LINES_V l1
86257 , fnd_lookup_values fvl34
86258 WHERE xet.event_id between x_first_event_id and x_last_event_id
86259 and xet.event_date between p_pad_start_date and p_pad_end_date
86260 and xet.event_class_code = C_EVENT_CLASS_CODE
86261 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
86262 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
86263 AND fvl34.lookup_code(+) = l1.LINE_TYPE
86264 AND fvl34.view_application_id(+) = 275
86265 AND fvl34.language(+) = USERENV('LANG')
86266 ;
86267
86268 --
86269 BEGIN
86270 IF g_log_enabled THEN
86271 l_log_module := C_DEFAULT_MODULE||'.EventClass_131';
86272 END IF;
86273 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86274 trace
86275 (p_msg => 'BEGIN of EventClass_131'
86276 ,p_level => C_LEVEL_PROCEDURE
86277 ,p_module => l_log_module);
86278 END IF;
86279
86280 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86281 trace
86282 (p_msg => 'p_application_id = '||p_application_id||
86283 ' - p_base_ledger_id = '||p_base_ledger_id||
86284 ' - p_target_ledger_id = '||p_target_ledger_id||
86285 ' - p_language = '||p_language||
86286 ' - p_currency_code = '||p_currency_code||
86287 ' - p_sla_ledger_id = '||p_sla_ledger_id
86288 ,p_level => C_LEVEL_STATEMENT
86289 ,p_module => l_log_module);
86290 END IF;
86291 --
86292 -- initialze arrays
86293 --
86294 g_array_event.DELETE;
86295 l_rec_array_event := l_null_rec_array_event;
86296 --
86297 --------------------------------------
86298 -- 4262811 Initialze MPA Line Number
86299 --------------------------------------
86300 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
86301
86302 --
86303
86304 --
86305 OPEN header_cur;
86306 --
86307 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86308 trace
86309 (p_msg => 'SQL - FETCH header_cur'
86310 ,p_level => C_LEVEL_STATEMENT
86311 ,p_module => l_log_module);
86312 END IF;
86313 --
86314 LOOP
86315 FETCH header_cur BULK COLLECT INTO
86316 l_array_entity_id
86317 , l_array_legal_entity_id
86318 , l_array_entity_code
86319 , l_array_transaction_num
86320 , l_array_event_id
86321 , l_array_class_code
86322 , l_array_event_type
86323 , l_array_event_number
86324 , l_array_event_date
86325 , l_array_transaction_date
86326 , l_array_reference_num_1
86327 , l_array_reference_num_2
86328 , l_array_reference_num_3
86329 , l_array_reference_num_4
86330 , l_array_reference_char_1
86331 , l_array_reference_char_2
86332 , l_array_reference_char_3
86333 , l_array_reference_char_4
86334 , l_array_reference_date_1
86335 , l_array_reference_date_2
86336 , l_array_reference_date_3
86337 , l_array_reference_date_4
86338 , l_array_event_created_by
86339 , l_array_budgetary_control_flag
86340 , l_array_source_32
86341 , l_array_source_88
86342 LIMIT l_rows;
86343 --
86344 IF (C_LEVEL_EVENT >= g_log_level) THEN
86345 trace
86346 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
86347 ,p_level => C_LEVEL_EVENT
86348 ,p_module => l_log_module);
86349 END IF;
86350 --
86351 EXIT WHEN l_array_entity_id.COUNT = 0;
86352
86353 -- initialize arrays
86354 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
86355 XLA_AE_LINES_PKG.g_rec_lines := NULL;
86356
86357 --
86358 -- Bug 4458708
86359 --
86360 XLA_AE_LINES_PKG.g_LineNumber := 0;
86361
86362
86363 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
86364 g_last_hdr_idx := l_array_event_id.LAST;
86365 --
86366 -- loop for the headers. Each iteration is for each header extract row
86367 -- fetched in header cursor
86368 --
86369 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
86370
86371 --
86372 -- set event info as cache for other routines to refer event attributes
86373 --
86374 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
86375 (p_application_id => p_application_id
86376 ,p_primary_ledger_id => p_primary_ledger_id
86377 ,p_base_ledger_id => p_base_ledger_id
86378 ,p_target_ledger_id => p_target_ledger_id
86379 ,p_entity_id => l_array_entity_id(hdr_idx)
86380 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
86381 ,p_entity_code => l_array_entity_code(hdr_idx)
86385 ,p_event_type_code => l_array_event_type(hdr_idx)
86382 ,p_transaction_num => l_array_transaction_num(hdr_idx)
86383 ,p_event_id => l_array_event_id(hdr_idx)
86384 ,p_event_class_code => l_array_class_code(hdr_idx)
86386 ,p_event_number => l_array_event_number(hdr_idx)
86387 ,p_event_date => l_array_event_date(hdr_idx)
86388 ,p_transaction_date => l_array_transaction_date(hdr_idx)
86389 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
86390 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
86391 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
86392 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
86393 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
86394 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
86395 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
86396 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
86397 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
86398 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
86399 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
86400 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
86401 ,p_event_created_by => l_array_event_created_by(hdr_idx)
86402 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
86403
86404 --
86405 -- set the status of entry to C_VALID (0)
86406 --
86407 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
86408
86409 --
86410 -- initialize a row for ae header
86411 --
86412 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
86413
86414 l_event_id := l_array_event_id(hdr_idx);
86415
86416 --
86417 -- storing the hdr_idx for event. May be used by line cursor.
86418 --
86419 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
86420
86421 --
86422 -- store sources from header extract. This can be improved to
86423 -- store only those sources from header extract that may be used in lines
86424 --
86425
86426 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
86427 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
86428
86429 --
86430 -- initilaize the status of ae headers for diffrent balance types
86431 -- the status is initialised to C_NOT_CREATED (2)
86432 --
86433 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
86434 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
86435 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
86436
86437 --
86438 -- call api to validate and store accounting attributes for header
86439 --
86440
86441 ------------------------------------------------------------
86442 -- Accrual Reversal : to get date for Standard Source (NONE)
86443 ------------------------------------------------------------
86444 l_acc_rev_gl_date_source := NULL;
86445
86446 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
86447 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
86448
86449
86450 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
86451
86452 XLA_AE_HEADER_PKG.SetJeCategoryName;
86453
86454 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
86455 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
86456 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
86457 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
86458 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
86459
86460
86461 -- No header level analytical criteria
86462
86463 --
86464 --accounting attribute enhancement, bug 3612931
86465 --
86466 l_trx_reversal_source := SUBSTR(NULL, 1,30);
86467
86468 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
86469 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
86470
86471 xla_accounting_err_pkg.build_message
86472 (p_appli_s_name => 'XLA'
86473 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
86474 ,p_token_1 => 'ACCT_ATTR_NAME'
86475 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
86476 ,p_token_2 => 'PRODUCT_NAME'
86477 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
86478 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
86479 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
86480 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
86481
86482 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
86483 --
86484 -- following sets the accounting attributes needed to reverse
86485 -- accounting for a distributeion
86486 --
86487 xla_ae_lines_pkg.SetTrxReversalAttrs
86488 (p_event_id => l_event_id
86489 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
86490 ,p_trx_reversal_source => l_trx_reversal_source);
86491
86492 END IF;
86493
86494
86495 ----------------------------------------------------------------
86496 -- 4262811 - update the header statuses to invalid in need be
86497 ----------------------------------------------------------------
86498 --
86499 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
86500
86501
86502 -----------------------------------------------
86506
86503 -- No accrual reversal for the event class/type
86504 -----------------------------------------------
86505 ----------------------------------------------------------------
86507 --
86508 -- this ends the header loop iteration for one bulk fetch
86509 --
86510 END LOOP;
86511
86512 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
86513 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
86514
86515 --
86516 -- insert dummy rows into lines gt table that were created due to
86517 -- transaction reversals
86518 --
86519 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
86520 l_result := XLA_AE_LINES_PKG.InsertLines;
86521 END IF;
86522
86523 --
86524 -- reset the temp_line_num for each set of events fetched from header
86525 -- cursor rather than doing it for each new event in line cursor
86526 -- Bug 3939231
86527 --
86528 xla_ae_lines_pkg.g_temp_line_num := 0;
86529
86530
86531
86532 --
86533 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
86534 --
86535 --
86536 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86537
86538 trace
86539 (p_msg => 'SQL - FETCH line_cur'
86540 ,p_level => C_LEVEL_STATEMENT
86541 ,p_module => l_log_module);
86542
86543 END IF;
86544 --
86545 --
86546 LOOP
86547 --
86548 FETCH line_cur BULK COLLECT INTO
86549 l_array_entity_id
86550 , l_array_legal_entity_id
86551 , l_array_entity_code
86552 , l_array_transaction_num
86553 , l_array_event_id
86554 , l_array_class_code
86555 , l_array_event_type
86556 , l_array_event_number
86557 , l_array_event_date
86558 , l_array_transaction_date
86559 , l_array_reference_num_1
86560 , l_array_reference_num_2
86561 , l_array_reference_num_3
86562 , l_array_reference_num_4
86563 , l_array_reference_char_1
86564 , l_array_reference_char_2
86565 , l_array_reference_char_3
86566 , l_array_reference_char_4
86567 , l_array_reference_date_1
86568 , l_array_reference_date_2
86569 , l_array_reference_date_3
86570 , l_array_reference_date_4
86571 , l_array_event_created_by
86572 , l_array_budgetary_control_flag
86573 , l_array_extract_line_num
86574 , l_array_source_3
86575 , l_array_source_4
86576 , l_array_source_5
86577 , l_array_source_6
86578 , l_array_source_7
86579 , l_array_source_22
86580 , l_array_source_23
86581 , l_array_source_24
86582 , l_array_source_25
86583 , l_array_source_26
86584 , l_array_source_27
86585 , l_array_source_28
86586 , l_array_source_29
86587 , l_array_source_30
86588 , l_array_source_31
86589 , l_array_source_33
86590 , l_array_source_34
86591 , l_array_source_34_meaning
86592 , l_array_source_35
86593 LIMIT l_rows;
86594
86595 --
86596 IF (C_LEVEL_EVENT >= g_log_level) THEN
86597 trace
86598 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
86599 ,p_level => C_LEVEL_EVENT
86600 ,p_module => l_log_module);
86601 END IF;
86602 --
86603 EXIT WHEN l_array_entity_id.count = 0;
86604
86605 XLA_AE_LINES_PKG.g_rec_lines := null;
86606
86607 --
86608 -- Bug 4458708
86609 --
86610 XLA_AE_LINES_PKG.g_LineNumber := 0;
86611 --
86612 --
86613
86614 FOR Idx IN 1..l_array_event_id.count LOOP
86615 --
86616 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
86617 --
86618 l_event_id := l_array_event_id(idx); -- 5648433
86619
86620 --
86621 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
86622 --
86623
86624 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
86625 (g_array_event(l_event_id).array_value_num('header_index'))
86626 ,'N'
86627 ) <> 'Y'
86628 THEN
86629 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86630 trace
86631 (p_msg => 'Trancaction revesal option is not Y '
86632 ,p_level => C_LEVEL_STATEMENT
86633 ,p_module => l_log_module);
86634 END IF;
86635
86636 --
86637 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
86638 --
86639 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
86640 --
86641 -- set event info as cache for other routines to refer event attributes
86642 --
86643
86644 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
86645 l_previous_event_id := l_event_id;
86646
86647 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
86648 (p_application_id => p_application_id
86649 ,p_primary_ledger_id => p_primary_ledger_id
86650 ,p_base_ledger_id => p_base_ledger_id
86651 ,p_target_ledger_id => p_target_ledger_id
86652 ,p_entity_id => l_array_entity_id(Idx)
86653 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
86654 ,p_entity_code => l_array_entity_code(Idx)
86655 ,p_transaction_num => l_array_transaction_num(Idx)
86656 ,p_event_id => l_array_event_id(Idx)
86657 ,p_event_class_code => l_array_class_code(Idx)
86658 ,p_event_type_code => l_array_event_type(Idx)
86659 ,p_event_number => l_array_event_number(Idx)
86660 ,p_event_date => l_array_event_date(Idx)
86664 ,p_reference_num_3 => l_array_reference_num_3(Idx)
86661 ,p_transaction_date => l_array_transaction_date(Idx)
86662 ,p_reference_num_1 => l_array_reference_num_1(Idx)
86663 ,p_reference_num_2 => l_array_reference_num_2(Idx)
86665 ,p_reference_num_4 => l_array_reference_num_4(Idx)
86666 ,p_reference_char_1 => l_array_reference_char_1(Idx)
86667 ,p_reference_char_2 => l_array_reference_char_2(Idx)
86668 ,p_reference_char_3 => l_array_reference_char_3(Idx)
86669 ,p_reference_char_4 => l_array_reference_char_4(Idx)
86670 ,p_reference_date_1 => l_array_reference_date_1(Idx)
86671 ,p_reference_date_2 => l_array_reference_date_2(Idx)
86672 ,p_reference_date_3 => l_array_reference_date_3(Idx)
86673 ,p_reference_date_4 => l_array_reference_date_4(Idx)
86674 ,p_event_created_by => l_array_event_created_by(Idx)
86675 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
86676 --
86677 END IF;
86678
86679
86680
86681 --
86682 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
86683
86684 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
86685
86686 IF l_continue_with_lines THEN
86687 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
86688 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
86689
86690 xla_accounting_err_pkg.build_message
86691 (p_appli_s_name => 'XLA'
86692 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
86693 ,p_token_1 => 'LINE_NUMBER'
86694 ,p_value_1 => l_array_extract_line_num(Idx)
86695 ,p_token_2 => 'PRODUCT_NAME'
86696 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
86697 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
86698 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
86699 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
86700
86701 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
86702 --
86703 -- following sets the accounting attributes needed to reverse
86704 -- accounting for a distributeion
86705 --
86706
86707 --
86708 -- 5217187
86709 --
86710 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
86711 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
86712 g_array_event(l_event_id).array_value_num('header_index'));
86713 --
86714 --
86715
86716 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
86717 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
86718 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
86719 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
86720 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
86721 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
86722 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
86723 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
86724 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
86725 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
86726 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
86727 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
86728 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
86729 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
86730 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
86731 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
86732 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
86733 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
86734 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
86735 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
86736 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
86737 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
86738 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
86739 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
86740 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
86741 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
86742 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
86743 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
86744 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
86745 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
86746 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
86747 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
86748 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
86749 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
86750 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
86751 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
86752 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
86753 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
86754 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
86755 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
86759 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
86756 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
86757 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
86758 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
86760 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
86761 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
86762 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
86763 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
86764
86765
86766 xla_ae_lines_pkg.SetAcctReversalAttrs
86767 (p_event_id => l_event_id
86768 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
86769 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86770 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
86771 END IF;
86772
86773 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
86774 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
86775
86776 --
86777 AcctLineType_52 (
86778 p_application_id => p_application_id
86779 ,p_event_id => l_event_id
86780 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86781 ,p_calculate_g_l_flag => l_calculate_g_l_flag
86782 ,p_actual_flag => l_actual_flag
86783 ,p_balance_type_code => l_balance_type_code
86784 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
86785
86786 , p_source_3 => l_array_source_3(Idx)
86787 , p_source_4 => l_array_source_4(Idx)
86788 , p_source_5 => l_array_source_5(Idx)
86789 , p_source_6 => l_array_source_6(Idx)
86790 , p_source_22 => l_array_source_22(Idx)
86791 , p_source_23 => l_array_source_23(Idx)
86792 , p_source_24 => l_array_source_24(Idx)
86793 , p_source_25 => l_array_source_25(Idx)
86794 , p_source_26 => l_array_source_26(Idx)
86795 , p_source_27 => l_array_source_27(Idx)
86796 , p_source_28 => l_array_source_28(Idx)
86797 , p_source_29 => l_array_source_29(Idx)
86798 , p_source_30 => l_array_source_30(Idx)
86799 , p_source_31 => l_array_source_31(Idx)
86800 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
86801 , p_source_33 => l_array_source_33(Idx)
86802 , p_source_34 => l_array_source_34(Idx)
86803 , p_source_34_meaning => l_array_source_34_meaning(Idx)
86804 , p_source_35 => l_array_source_35(Idx)
86805 );
86806 If(l_balance_type_code = 'A') THEN
86807 l_actual_gain_loss_ref := l_gain_or_loss_ref;
86808 END IF;
86809
86810 --
86811
86812
86813 --
86814 AcctLineType_63 (
86815 p_application_id => p_application_id
86816 ,p_event_id => l_event_id
86817 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86818 ,p_calculate_g_l_flag => l_calculate_g_l_flag
86819 ,p_actual_flag => l_actual_flag
86820 ,p_balance_type_code => l_balance_type_code
86821 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
86822
86823 , p_source_3 => l_array_source_3(Idx)
86824 , p_source_4 => l_array_source_4(Idx)
86825 , p_source_6 => l_array_source_6(Idx)
86826 , p_source_7 => l_array_source_7(Idx)
86827 , p_source_22 => l_array_source_22(Idx)
86828 , p_source_23 => l_array_source_23(Idx)
86829 , p_source_24 => l_array_source_24(Idx)
86830 , p_source_25 => l_array_source_25(Idx)
86831 , p_source_26 => l_array_source_26(Idx)
86832 , p_source_27 => l_array_source_27(Idx)
86833 , p_source_28 => l_array_source_28(Idx)
86834 , p_source_29 => l_array_source_29(Idx)
86835 , p_source_30 => l_array_source_30(Idx)
86836 , p_source_31 => l_array_source_31(Idx)
86837 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
86838 , p_source_33 => l_array_source_33(Idx)
86839 , p_source_34 => l_array_source_34(Idx)
86840 , p_source_34_meaning => l_array_source_34_meaning(Idx)
86841 , p_source_35 => l_array_source_35(Idx)
86842 );
86843 If(l_balance_type_code = 'A') THEN
86844 l_actual_gain_loss_ref := l_gain_or_loss_ref;
86845 END IF;
86846
86847 --
86848
86849 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
86850 -- or secondary ledger that has different currency with primary
86851 -- or alc that is calculated by sla
86852 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
86853 (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'))
86854
86855 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
86856 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
86857 AND (l_actual_flag = 'A')) THEN
86858 XLA_AE_LINES_PKG.CreateGainOrLossLines(
86859 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
86860 ,p_application_id => p_application_id
86861 ,p_amb_context_code => 'DEFAULT'
86862 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
86863 ,p_event_class_code => C_EVENT_CLASS_CODE
86864 ,p_event_type_code => C_EVENT_TYPE_CODE
86865
86866 ,p_gain_ccid => -1
86867 ,p_loss_ccid => -1
86868
86869 ,p_actual_flag => l_actual_flag
86870 ,p_enc_flag => null
86871 ,p_actual_g_l_ref => l_actual_gain_loss_ref
86872 ,p_enc_g_l_ref => null
86873 );
86874 END IF;
86875 END IF;
86876 END IF;
86877
86878 ELSE
86879 --
86880 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
86881 --
86882 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86883 trace
86884 (p_msg => 'Trancaction revesal option is Y'
86888 END IF;
86885 ,p_level => C_LEVEL_STATEMENT
86886 ,p_module => l_log_module);
86887 END IF;
86889
86890 END LOOP;
86891 l_result := XLA_AE_LINES_PKG.InsertLines ;
86892 end loop;
86893 close line_cur;
86894
86895
86896 --
86897 -- insert headers into xla_ae_headers_gt table
86898 --
86899 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
86900
86901 -- insert into errors table here.
86902
86903 END LOOP;
86904
86905 --
86906 -- 4865292
86907 --
86908 -- Compare g_hdr_extract_count with event count in
86909 -- CreateHeadersAndLines.
86910 --
86911 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
86912
86913 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86914 trace (p_msg => '# rows extracted from header extract objects '
86915 || ' (running total): '
86916 || g_hdr_extract_count
86917 ,p_level => C_LEVEL_STATEMENT
86918 ,p_module => l_log_module);
86919 END IF;
86920
86921 CLOSE header_cur;
86922 --
86923
86924 --
86925 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86926 trace
86927 (p_msg => 'END of EventClass_131'
86928 ,p_level => C_LEVEL_PROCEDURE
86929 ,p_module => l_log_module);
86930 END IF;
86931 --
86932 RETURN l_result;
86933 EXCEPTION
86934 WHEN xla_exceptions_pkg.application_exception THEN
86935
86936 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
86937
86938
86939 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
86940
86941 RAISE;
86942 WHEN OTHERS THEN
86943 xla_exceptions_pkg.raise_message
86944 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_131');
86945 END EventClass_131;
86946 --
86947
86948 ---------------------------------------
86949 --
86950 -- PRIVATE PROCEDURE
86951 -- insert_sources_132
86952 --
86953 ----------------------------------------
86954 --
86955 PROCEDURE insert_sources_132(
86956 p_target_ledger_id IN NUMBER
86957 , p_language IN VARCHAR2
86958 , p_sla_ledger_id IN NUMBER
86959 , p_pad_start_date IN DATE
86960 , p_pad_end_date IN DATE
86961 )
86962 IS
86963
86964 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ALL';
86965 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST';
86966 p_apps_owner VARCHAR2(30);
86967 l_log_module VARCHAR2(240);
86968 BEGIN
86969 IF g_log_enabled THEN
86970 l_log_module := C_DEFAULT_MODULE||'.insert_sources_132';
86971 END IF;
86972 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86973
86974 trace
86975 (p_msg => 'BEGIN of insert_sources_132'
86976 ,p_level => C_LEVEL_PROCEDURE
86977 ,p_module => l_log_module);
86978
86979 END IF;
86980
86981 -- select APPS owner
86982 SELECT oracle_username
86983 INTO p_apps_owner
86984 FROM fnd_oracle_userid
86985 WHERE read_only_flag = 'U'
86986 ;
86987
86988 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86989 trace
86990 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
86991 ' - p_language = '||p_language||
86992 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
86993 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
86994 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
86995 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
86996 ,p_level => C_LEVEL_STATEMENT
86997 ,p_module => l_log_module);
86998 END IF;
86999
87000
87001 --
87002 INSERT INTO xla_diag_sources --hdr2
87003 (
87004 event_id
87005 , ledger_id
87006 , sla_ledger_id
87007 , description_language
87008 , object_name
87009 , object_type_code
87010 , line_number
87011 , source_application_id
87012 , source_type_code
87013 , source_code
87014 , source_value
87015 , source_meaning
87016 , created_by
87017 , creation_date
87018 , last_update_date
87019 , last_updated_by
87020 , last_update_login
87021 , program_update_date
87022 , program_application_id
87023 , program_id
87024 , request_id
87025 )
87026 SELECT
87027 event_id
87028 , p_target_ledger_id
87029 , p_sla_ledger_id
87030 , p_language
87031 , object_name
87032 , object_type_code
87033 , line_number
87034 , source_application_id
87035 , source_type_code
87036 , source_code
87037 , SUBSTR(source_value ,1,1996)
87038 , SUBSTR(source_meaning ,1,200)
87039 , xla_environment_pkg.g_Usr_Id
87040 , TRUNC(SYSDATE)
87041 , TRUNC(SYSDATE)
87042 , xla_environment_pkg.g_Usr_Id
87043 , xla_environment_pkg.g_Login_Id
87044 , TRUNC(SYSDATE)
87045 , xla_environment_pkg.g_Prog_Appl_Id
87046 , xla_environment_pkg.g_Prog_Id
87047 , xla_environment_pkg.g_Req_Id
87048 FROM (
87049 SELECT xet.event_id event_id
87050 , 0 line_number
87051 , CASE r
87052 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
87053 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
87054
87055 ELSE null
87059 WHEN 2 THEN 'HEADER'
87056 END object_name
87057 , CASE r
87058 WHEN 1 THEN 'HEADER'
87060
87061 ELSE null
87062 END object_type_code
87063 , CASE r
87064 WHEN 1 THEN '275'
87065 WHEN 2 THEN '275'
87066
87067 ELSE null
87068 END source_application_id
87069 , 'S' source_type_code
87070 , CASE r
87071 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
87072 WHEN 2 THEN 'GL_DATE'
87073
87074 ELSE null
87075 END source_code
87076 , CASE r
87077 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
87078 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
87079
87080 ELSE null
87081 END source_value
87082 , null source_meaning
87083 FROM xla_events_gt xet
87084 , PA_XLA_EXP_HEADER_V h2
87085 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
87086 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
87087 AND xet.event_class_code = C_EVENT_CLASS_CODE
87088 AND h2.event_id = xet.event_id
87089
87090 )
87091 ;
87092 --
87093 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87094
87095 trace
87096 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
87097 ,p_level => C_LEVEL_STATEMENT
87098 ,p_module => l_log_module);
87099
87100 END IF;
87101 --
87102
87103
87104
87105 --
87106 INSERT INTO xla_diag_sources --line2
87107 (
87108 event_id
87109 , ledger_id
87110 , sla_ledger_id
87111 , description_language
87112 , object_name
87113 , object_type_code
87114 , line_number
87115 , source_application_id
87116 , source_type_code
87117 , source_code
87118 , source_value
87119 , source_meaning
87120 , created_by
87121 , creation_date
87122 , last_update_date
87123 , last_updated_by
87124 , last_update_login
87125 , program_update_date
87126 , program_application_id
87127 , program_id
87128 , request_id
87129 )
87130 SELECT event_id
87131 , p_target_ledger_id
87132 , p_sla_ledger_id
87133 , p_language
87134 , object_name
87135 , object_type_code
87136 , line_number
87137 , source_application_id
87138 , source_type_code
87139 , source_code
87140 , SUBSTR(source_value,1,1996)
87141 , SUBSTR(source_meaning ,1,200)
87142 , xla_environment_pkg.g_Usr_Id
87143 , TRUNC(SYSDATE)
87144 , TRUNC(SYSDATE)
87145 , xla_environment_pkg.g_Usr_Id
87146 , xla_environment_pkg.g_Login_Id
87147 , TRUNC(SYSDATE)
87148 , xla_environment_pkg.g_Prog_Appl_Id
87149 , xla_environment_pkg.g_Prog_Id
87150 , xla_environment_pkg.g_Req_Id
87151 FROM (
87152 SELECT xet.event_id event_id
87153 , l1.line_number line_number
87154 , CASE r
87155 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
87156 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
87157 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
87158 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
87159 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
87160 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
87161 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
87162 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
87163 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
87164 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
87165 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
87166 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
87167 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
87168 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
87169 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
87170 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
87171 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
87172 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
87173
87174 ELSE null
87175 END object_name
87176 , CASE r
87177 WHEN 1 THEN 'LINE'
87178 WHEN 2 THEN 'LINE'
87179 WHEN 3 THEN 'LINE'
87180 WHEN 4 THEN 'LINE'
87181 WHEN 5 THEN 'LINE'
87182 WHEN 6 THEN 'LINE'
87183 WHEN 7 THEN 'LINE'
87184 WHEN 8 THEN 'LINE'
87185 WHEN 9 THEN 'LINE'
87186 WHEN 10 THEN 'LINE'
87187 WHEN 11 THEN 'LINE'
87188 WHEN 12 THEN 'LINE'
87189 WHEN 13 THEN 'LINE'
87190 WHEN 14 THEN 'LINE'
87191 WHEN 15 THEN 'LINE'
87192 WHEN 16 THEN 'LINE'
87193 WHEN 17 THEN 'LINE'
87194 WHEN 18 THEN 'LINE'
87195
87196 ELSE null
87197 END object_type_code
87198 , CASE r
87199 WHEN 1 THEN '275'
87200 WHEN 2 THEN '275'
87201 WHEN 3 THEN '275'
87202 WHEN 4 THEN '275'
87203 WHEN 5 THEN '275'
87204 WHEN 6 THEN '275'
87205 WHEN 7 THEN '275'
87209 WHEN 11 THEN '275'
87206 WHEN 8 THEN '275'
87207 WHEN 9 THEN '275'
87208 WHEN 10 THEN '275'
87210 WHEN 12 THEN '275'
87211 WHEN 13 THEN '275'
87212 WHEN 14 THEN '275'
87213 WHEN 15 THEN '275'
87214 WHEN 16 THEN '275'
87215 WHEN 17 THEN '275'
87216 WHEN 18 THEN '275'
87217
87218 ELSE null
87219 END source_application_id
87220 , 'S' source_type_code
87221 , CASE r
87222 WHEN 1 THEN 'COST_CCID'
87223 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
87224 WHEN 3 THEN 'ADJ_COST_CCID'
87225 WHEN 4 THEN 'COST_CLEARING_CCID'
87226 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
87227 WHEN 6 THEN 'REVERSING_LINE_FLAG'
87228 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
87229 WHEN 8 THEN 'ENTERED_RAW_COST'
87230 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
87231 WHEN 10 THEN 'ACCT_RAW_COST'
87232 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
87233 WHEN 12 THEN 'EXCHANGE_RATE'
87234 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
87235 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
87236 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
87237 WHEN 16 THEN 'LINE_NUMBER'
87238 WHEN 17 THEN 'LINE_TYPE'
87239 WHEN 18 THEN 'LINE_NUM_REVERSED'
87240
87241 ELSE null
87242 END source_code
87243 , CASE r
87244 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
87245 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
87246 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
87247 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
87248 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
87249 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
87250 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
87251 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
87252 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
87253 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
87254 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
87255 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
87256 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
87257 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
87258 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
87259 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
87260 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
87261 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
87262
87263 ELSE null
87264 END source_value
87265 , CASE r
87266 WHEN 2 THEN XLA_00275_AAD_S_000016_PKG.GetMeaning(
87267 103371
87268 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
87269 ,'ALLOW_OVERRIDE_CCID_FLAG'
87270 ,'S'
87271 ,275)
87272 WHEN 17 THEN fvl34.meaning
87273
87274 ELSE null
87275 END source_meaning
87276 FROM xla_events_gt xet
87277 , PA_XLA_CDL_LINES_V l1
87278 , fnd_lookup_values fvl34
87279 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
87280 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
87281 AND xet.event_class_code = C_EVENT_CLASS_CODE
87282 AND l1.event_id = xet.event_id
87283 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
87284 AND fvl34.lookup_code(+) = l1.LINE_TYPE
87285 AND fvl34.view_application_id(+) = 275
87286 AND fvl34.language(+) = USERENV('LANG')
87287
87288 )
87289 ;
87290 --
87291 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87292
87293 trace
87294 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
87295 ,p_level => C_LEVEL_STATEMENT
87296 ,p_module => l_log_module);
87297
87298 END IF;
87299
87300
87301 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87302 trace
87303 (p_msg => 'END of insert_sources_132'
87304 ,p_level => C_LEVEL_PROCEDURE
87305 ,p_module => l_log_module);
87306 END IF;
87307 EXCEPTION
87308 WHEN xla_exceptions_pkg.application_exception THEN
87309 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
87310 trace
87311 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
87312 ,p_level => C_LEVEL_EXCEPTION
87313 ,p_module => l_log_module);
87314 END IF;
87315 RAISE;
87316 WHEN OTHERS THEN
87317 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
87318 trace
87319 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
87320 ,p_level => C_LEVEL_EXCEPTION
87321 ,p_module => l_log_module);
87322 END IF;
87323 xla_exceptions_pkg.raise_message
87324 (p_location => 'XLA_00275_AAD_S_000016_PKG.insert_sources_132');
87325 END insert_sources_132;
87326 --
87327
87328 ---------------------------------------
87329 --
87330 -- PRIVATE FUNCTION
87331 -- EventClass_132
87332 --
87333 ----------------------------------------
87334 --
87335 FUNCTION EventClass_132
87336 (p_application_id IN NUMBER
87337 ,p_base_ledger_id IN NUMBER
87341 ,p_sla_ledger_id IN NUMBER
87338 ,p_target_ledger_id IN NUMBER
87339 ,p_language IN VARCHAR2
87340 ,p_currency_code IN VARCHAR2
87342 ,p_pad_start_date IN DATE
87343 ,p_pad_end_date IN DATE
87344 ,p_primary_ledger_id IN NUMBER)
87345 RETURN BOOLEAN IS
87346 --
87347 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ALL';
87348 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST';
87349
87350 l_calculate_acctd_flag VARCHAR2(1) :='N';
87351 l_calculate_g_l_flag VARCHAR2(1) :='N';
87352 --
87353 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87354 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87355 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87356 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87357 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87358 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87359 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87360 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87361 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87362 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87363 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87364 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87365 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87366 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87367 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87368 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87369 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87370 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87371 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87372 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87373 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87374 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87375 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
87376 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87377
87378 l_event_id NUMBER;
87379 l_previous_event_id NUMBER;
87380 l_first_event_id NUMBER;
87381 l_last_event_id NUMBER;
87382
87383 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
87384 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
87385 --
87386 --
87387 l_result BOOLEAN := TRUE;
87388 l_rows NUMBER := 1000;
87389 l_event_type_name VARCHAR2(80) := 'All';
87390 l_event_class_name VARCHAR2(80) := 'Work in Process Cost';
87391 l_description VARCHAR2(4000);
87392 l_transaction_reversal NUMBER;
87393 l_ae_header_id NUMBER;
87394 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
87395 l_log_module VARCHAR2(240);
87396 --
87397 l_acct_reversal_source VARCHAR2(30);
87398 l_trx_reversal_source VARCHAR2(30);
87399
87400 l_continue_with_lines BOOLEAN := TRUE;
87401 --
87402 l_acc_rev_gl_date_source DATE; -- 4262811
87403 --
87404 type t_array_event_id is table of number index by binary_integer;
87405
87406 l_rec_array_event t_rec_array_event;
87407 l_null_rec_array_event t_rec_array_event;
87408 l_array_ae_header_id xla_number_array_type;
87409 l_actual_flag VARCHAR2(1) := NULL;
87410 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
87411 l_balance_type_code VARCHAR2(1) :=NULL;
87412 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
87413
87414 --
87415 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
87416 --
87417
87418 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
87419 TYPE t_array_source_88 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
87420
87421 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
87422 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
87423 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
87424 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
87425 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
87426 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
87427 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
87428 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
87429 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
87430 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
87431 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
87432 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
87433 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
87434 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
87435 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
87439
87436 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
87437 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
87438 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
87440 l_array_source_32 t_array_source_32;
87441 l_array_source_88 t_array_source_88;
87442
87443 l_array_source_3 t_array_source_3;
87444 l_array_source_4 t_array_source_4;
87445 l_array_source_5 t_array_source_5;
87446 l_array_source_6 t_array_source_6;
87447 l_array_source_7 t_array_source_7;
87448 l_array_source_22 t_array_source_22;
87449 l_array_source_23 t_array_source_23;
87450 l_array_source_24 t_array_source_24;
87451 l_array_source_25 t_array_source_25;
87452 l_array_source_26 t_array_source_26;
87453 l_array_source_27 t_array_source_27;
87454 l_array_source_28 t_array_source_28;
87455 l_array_source_29 t_array_source_29;
87456 l_array_source_30 t_array_source_30;
87457 l_array_source_31 t_array_source_31;
87458 l_array_source_33 t_array_source_33;
87459 l_array_source_34 t_array_source_34;
87460 l_array_source_34_meaning t_array_lookup_meaning;
87461 l_array_source_35 t_array_source_35;
87462
87463 --
87464 CURSOR header_cur
87465 IS
87466 SELECT /*+ leading(xet) cardinality(xet,1) */
87467 -- Event Class Code: WIP_COST
87468 xet.entity_id
87469 ,xet.legal_entity_id
87470 ,xet.entity_code
87471 ,xet.transaction_number
87472 ,xet.event_id
87473 ,xet.event_class_code
87474 ,xet.event_type_code
87475 ,xet.event_number
87476 ,xet.event_date
87477 ,xet.transaction_date
87478 ,xet.reference_num_1
87479 ,xet.reference_num_2
87480 ,xet.reference_num_3
87481 ,xet.reference_num_4
87482 ,xet.reference_char_1
87483 ,xet.reference_char_2
87484 ,xet.reference_char_3
87485 ,xet.reference_char_4
87486 ,xet.reference_date_1
87487 ,xet.reference_date_2
87488 ,xet.reference_date_3
87489 ,xet.reference_date_4
87490 ,xet.event_created_by
87491 ,xet.budgetary_control_flag
87492 , h2.EXPENDITURE_ITEM_ID source_32
87493 , h2.GL_DATE source_88
87494 FROM xla_events_gt xet
87495 , PA_XLA_EXP_HEADER_V h2
87496 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
87497 and xet.event_class_code = C_EVENT_CLASS_CODE
87498 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
87499
87500 ORDER BY event_id
87501 ;
87502
87503
87504 --
87505 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
87506 IS
87507 SELECT /*+ leading(xet) cardinality(xet,1) */
87508 -- Event Class Code: WIP_COST
87509 xet.entity_id
87510 ,xet.legal_entity_id
87511 ,xet.entity_code
87512 ,xet.transaction_number
87513 ,xet.event_id
87514 ,xet.event_class_code
87515 ,xet.event_type_code
87516 ,xet.event_number
87517 ,xet.event_date
87518 ,xet.transaction_date
87519 ,xet.reference_num_1
87520 ,xet.reference_num_2
87521 ,xet.reference_num_3
87522 ,xet.reference_num_4
87523 ,xet.reference_char_1
87524 ,xet.reference_char_2
87525 ,xet.reference_char_3
87526 ,xet.reference_char_4
87527 ,xet.reference_date_1
87528 ,xet.reference_date_2
87529 ,xet.reference_date_3
87530 ,xet.reference_date_4
87531 ,xet.event_created_by
87532 ,xet.budgetary_control_flag
87533 , l1.LINE_NUMBER
87534 , l1.COST_CCID source_3
87535 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
87536 , l1.ADJ_COST_CCID source_5
87537 , l1.COST_CLEARING_CCID source_6
87538 , l1.ADJ_COST_CLEARING_CCID source_7
87539 , l1.REVERSING_LINE_FLAG source_22
87540 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
87541 , l1.ENTERED_RAW_COST source_24
87542 , l1.ENTERED_CURRENCY_CODE source_25
87543 , l1.ACCT_RAW_COST source_26
87544 , l1.EXCHANGE_RATE_DATE source_27
87545 , l1.EXCHANGE_RATE source_28
87546 , l1.EXCHANGE_RATE_TYPE source_29
87547 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
87548 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
87549 , l1.LINE_NUMBER source_33
87550 , l1.LINE_TYPE source_34
87551 , fvl34.meaning source_34_meaning
87552 , l1.LINE_NUM_REVERSED source_35
87553 FROM xla_events_gt xet
87554 , PA_XLA_CDL_LINES_V l1
87555 , fnd_lookup_values fvl34
87556 WHERE xet.event_id between x_first_event_id and x_last_event_id
87557 and xet.event_date between p_pad_start_date and p_pad_end_date
87558 and xet.event_class_code = C_EVENT_CLASS_CODE
87559 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
87560 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
87561 AND fvl34.lookup_code(+) = l1.LINE_TYPE
87562 AND fvl34.view_application_id(+) = 275
87563 AND fvl34.language(+) = USERENV('LANG')
87564 ;
87565
87566 --
87567 BEGIN
87568 IF g_log_enabled THEN
87569 l_log_module := C_DEFAULT_MODULE||'.EventClass_132';
87570 END IF;
87571 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87572 trace
87573 (p_msg => 'BEGIN of EventClass_132'
87574 ,p_level => C_LEVEL_PROCEDURE
87575 ,p_module => l_log_module);
87576 END IF;
87577
87578 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87579 trace
87580 (p_msg => 'p_application_id = '||p_application_id||
87581 ' - p_base_ledger_id = '||p_base_ledger_id||
87582 ' - p_target_ledger_id = '||p_target_ledger_id||
87583 ' - p_language = '||p_language||
87584 ' - p_currency_code = '||p_currency_code||
87588 END IF;
87585 ' - p_sla_ledger_id = '||p_sla_ledger_id
87586 ,p_level => C_LEVEL_STATEMENT
87587 ,p_module => l_log_module);
87589 --
87590 -- initialze arrays
87591 --
87592 g_array_event.DELETE;
87593 l_rec_array_event := l_null_rec_array_event;
87594 --
87595 --------------------------------------
87596 -- 4262811 Initialze MPA Line Number
87597 --------------------------------------
87598 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
87599
87600 --
87601
87602 --
87603 OPEN header_cur;
87604 --
87605 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87606 trace
87607 (p_msg => 'SQL - FETCH header_cur'
87608 ,p_level => C_LEVEL_STATEMENT
87609 ,p_module => l_log_module);
87610 END IF;
87611 --
87612 LOOP
87613 FETCH header_cur BULK COLLECT INTO
87614 l_array_entity_id
87615 , l_array_legal_entity_id
87616 , l_array_entity_code
87617 , l_array_transaction_num
87618 , l_array_event_id
87619 , l_array_class_code
87620 , l_array_event_type
87621 , l_array_event_number
87622 , l_array_event_date
87623 , l_array_transaction_date
87624 , l_array_reference_num_1
87625 , l_array_reference_num_2
87626 , l_array_reference_num_3
87627 , l_array_reference_num_4
87628 , l_array_reference_char_1
87629 , l_array_reference_char_2
87630 , l_array_reference_char_3
87631 , l_array_reference_char_4
87632 , l_array_reference_date_1
87633 , l_array_reference_date_2
87634 , l_array_reference_date_3
87635 , l_array_reference_date_4
87636 , l_array_event_created_by
87637 , l_array_budgetary_control_flag
87638 , l_array_source_32
87639 , l_array_source_88
87640 LIMIT l_rows;
87641 --
87642 IF (C_LEVEL_EVENT >= g_log_level) THEN
87643 trace
87644 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
87645 ,p_level => C_LEVEL_EVENT
87646 ,p_module => l_log_module);
87647 END IF;
87648 --
87649 EXIT WHEN l_array_entity_id.COUNT = 0;
87650
87651 -- initialize arrays
87652 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
87653 XLA_AE_LINES_PKG.g_rec_lines := NULL;
87654
87655 --
87656 -- Bug 4458708
87657 --
87658 XLA_AE_LINES_PKG.g_LineNumber := 0;
87659
87660
87661 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
87662 g_last_hdr_idx := l_array_event_id.LAST;
87663 --
87664 -- loop for the headers. Each iteration is for each header extract row
87665 -- fetched in header cursor
87666 --
87667 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
87668
87669 --
87670 -- set event info as cache for other routines to refer event attributes
87671 --
87672 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
87673 (p_application_id => p_application_id
87674 ,p_primary_ledger_id => p_primary_ledger_id
87675 ,p_base_ledger_id => p_base_ledger_id
87676 ,p_target_ledger_id => p_target_ledger_id
87677 ,p_entity_id => l_array_entity_id(hdr_idx)
87678 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
87679 ,p_entity_code => l_array_entity_code(hdr_idx)
87680 ,p_transaction_num => l_array_transaction_num(hdr_idx)
87681 ,p_event_id => l_array_event_id(hdr_idx)
87682 ,p_event_class_code => l_array_class_code(hdr_idx)
87683 ,p_event_type_code => l_array_event_type(hdr_idx)
87684 ,p_event_number => l_array_event_number(hdr_idx)
87685 ,p_event_date => l_array_event_date(hdr_idx)
87686 ,p_transaction_date => l_array_transaction_date(hdr_idx)
87687 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
87688 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
87689 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
87690 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
87691 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
87692 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
87693 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
87694 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
87695 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
87696 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
87697 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
87698 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
87699 ,p_event_created_by => l_array_event_created_by(hdr_idx)
87700 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
87701
87702 --
87703 -- set the status of entry to C_VALID (0)
87704 --
87705 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
87706
87707 --
87708 -- initialize a row for ae header
87709 --
87710 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
87711
87712 l_event_id := l_array_event_id(hdr_idx);
87713
87714 --
87715 -- storing the hdr_idx for event. May be used by line cursor.
87716 --
87717 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
87718
87719 --
87720 -- store sources from header extract. This can be improved to
87721 -- store only those sources from header extract that may be used in lines
87722 --
87723
87724 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
87725 g_array_event(l_event_id).array_value_date('source_88') := l_array_source_88(hdr_idx);
87726
87727 --
87728 -- initilaize the status of ae headers for diffrent balance types
87729 -- the status is initialised to C_NOT_CREATED (2)
87733 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
87730 --
87731 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
87732 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
87734
87735 --
87736 -- call api to validate and store accounting attributes for header
87737 --
87738
87739 ------------------------------------------------------------
87740 -- Accrual Reversal : to get date for Standard Source (NONE)
87741 ------------------------------------------------------------
87742 l_acc_rev_gl_date_source := NULL;
87743
87744 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
87745 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_88');
87746
87747
87748 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
87749
87750 XLA_AE_HEADER_PKG.SetJeCategoryName;
87751
87752 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
87753 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
87754 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
87755 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
87756 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
87757
87758
87759 -- No header level analytical criteria
87760
87761 --
87762 --accounting attribute enhancement, bug 3612931
87763 --
87764 l_trx_reversal_source := SUBSTR(NULL, 1,30);
87765
87766 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
87767 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
87768
87769 xla_accounting_err_pkg.build_message
87770 (p_appli_s_name => 'XLA'
87771 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
87772 ,p_token_1 => 'ACCT_ATTR_NAME'
87773 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
87774 ,p_token_2 => 'PRODUCT_NAME'
87775 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
87776 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
87777 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
87778 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
87779
87780 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
87781 --
87782 -- following sets the accounting attributes needed to reverse
87783 -- accounting for a distributeion
87784 --
87785 xla_ae_lines_pkg.SetTrxReversalAttrs
87786 (p_event_id => l_event_id
87787 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
87788 ,p_trx_reversal_source => l_trx_reversal_source);
87789
87790 END IF;
87791
87792
87793 ----------------------------------------------------------------
87794 -- 4262811 - update the header statuses to invalid in need be
87795 ----------------------------------------------------------------
87796 --
87797 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
87798
87799
87800 -----------------------------------------------
87801 -- No accrual reversal for the event class/type
87802 -----------------------------------------------
87803 ----------------------------------------------------------------
87804
87805 --
87806 -- this ends the header loop iteration for one bulk fetch
87807 --
87808 END LOOP;
87809
87810 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
87811 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
87812
87813 --
87814 -- insert dummy rows into lines gt table that were created due to
87815 -- transaction reversals
87816 --
87817 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
87818 l_result := XLA_AE_LINES_PKG.InsertLines;
87819 END IF;
87820
87821 --
87822 -- reset the temp_line_num for each set of events fetched from header
87823 -- cursor rather than doing it for each new event in line cursor
87824 -- Bug 3939231
87825 --
87826 xla_ae_lines_pkg.g_temp_line_num := 0;
87827
87828
87829
87830 --
87831 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
87832 --
87833 --
87834 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87835
87836 trace
87837 (p_msg => 'SQL - FETCH line_cur'
87838 ,p_level => C_LEVEL_STATEMENT
87839 ,p_module => l_log_module);
87840
87841 END IF;
87842 --
87843 --
87844 LOOP
87845 --
87846 FETCH line_cur BULK COLLECT INTO
87847 l_array_entity_id
87848 , l_array_legal_entity_id
87849 , l_array_entity_code
87850 , l_array_transaction_num
87851 , l_array_event_id
87852 , l_array_class_code
87853 , l_array_event_type
87854 , l_array_event_number
87855 , l_array_event_date
87856 , l_array_transaction_date
87857 , l_array_reference_num_1
87858 , l_array_reference_num_2
87859 , l_array_reference_num_3
87860 , l_array_reference_num_4
87861 , l_array_reference_char_1
87862 , l_array_reference_char_2
87863 , l_array_reference_char_3
87864 , l_array_reference_char_4
87865 , l_array_reference_date_1
87866 , l_array_reference_date_2
87867 , l_array_reference_date_3
87868 , l_array_reference_date_4
87869 , l_array_event_created_by
87870 , l_array_budgetary_control_flag
87871 , l_array_extract_line_num
87875 , l_array_source_6
87872 , l_array_source_3
87873 , l_array_source_4
87874 , l_array_source_5
87876 , l_array_source_7
87877 , l_array_source_22
87878 , l_array_source_23
87879 , l_array_source_24
87880 , l_array_source_25
87881 , l_array_source_26
87882 , l_array_source_27
87883 , l_array_source_28
87884 , l_array_source_29
87885 , l_array_source_30
87886 , l_array_source_31
87887 , l_array_source_33
87888 , l_array_source_34
87889 , l_array_source_34_meaning
87890 , l_array_source_35
87891 LIMIT l_rows;
87892
87893 --
87894 IF (C_LEVEL_EVENT >= g_log_level) THEN
87895 trace
87896 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
87897 ,p_level => C_LEVEL_EVENT
87898 ,p_module => l_log_module);
87899 END IF;
87900 --
87901 EXIT WHEN l_array_entity_id.count = 0;
87902
87903 XLA_AE_LINES_PKG.g_rec_lines := null;
87904
87905 --
87906 -- Bug 4458708
87907 --
87908 XLA_AE_LINES_PKG.g_LineNumber := 0;
87909 --
87910 --
87911
87912 FOR Idx IN 1..l_array_event_id.count LOOP
87913 --
87914 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
87915 --
87916 l_event_id := l_array_event_id(idx); -- 5648433
87917
87918 --
87919 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
87920 --
87921
87922 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
87923 (g_array_event(l_event_id).array_value_num('header_index'))
87924 ,'N'
87925 ) <> 'Y'
87926 THEN
87927 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87928 trace
87929 (p_msg => 'Trancaction revesal option is not Y '
87930 ,p_level => C_LEVEL_STATEMENT
87931 ,p_module => l_log_module);
87932 END IF;
87933
87934 --
87935 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
87936 --
87937 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
87938 --
87939 -- set event info as cache for other routines to refer event attributes
87940 --
87941
87942 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
87943 l_previous_event_id := l_event_id;
87944
87945 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
87946 (p_application_id => p_application_id
87947 ,p_primary_ledger_id => p_primary_ledger_id
87948 ,p_base_ledger_id => p_base_ledger_id
87949 ,p_target_ledger_id => p_target_ledger_id
87950 ,p_entity_id => l_array_entity_id(Idx)
87951 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
87952 ,p_entity_code => l_array_entity_code(Idx)
87953 ,p_transaction_num => l_array_transaction_num(Idx)
87954 ,p_event_id => l_array_event_id(Idx)
87955 ,p_event_class_code => l_array_class_code(Idx)
87956 ,p_event_type_code => l_array_event_type(Idx)
87957 ,p_event_number => l_array_event_number(Idx)
87958 ,p_event_date => l_array_event_date(Idx)
87959 ,p_transaction_date => l_array_transaction_date(Idx)
87960 ,p_reference_num_1 => l_array_reference_num_1(Idx)
87961 ,p_reference_num_2 => l_array_reference_num_2(Idx)
87962 ,p_reference_num_3 => l_array_reference_num_3(Idx)
87963 ,p_reference_num_4 => l_array_reference_num_4(Idx)
87964 ,p_reference_char_1 => l_array_reference_char_1(Idx)
87965 ,p_reference_char_2 => l_array_reference_char_2(Idx)
87966 ,p_reference_char_3 => l_array_reference_char_3(Idx)
87967 ,p_reference_char_4 => l_array_reference_char_4(Idx)
87968 ,p_reference_date_1 => l_array_reference_date_1(Idx)
87969 ,p_reference_date_2 => l_array_reference_date_2(Idx)
87970 ,p_reference_date_3 => l_array_reference_date_3(Idx)
87971 ,p_reference_date_4 => l_array_reference_date_4(Idx)
87972 ,p_event_created_by => l_array_event_created_by(Idx)
87973 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
87974 --
87975 END IF;
87976
87977
87978
87979 --
87980 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
87981
87982 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
87983
87984 IF l_continue_with_lines THEN
87985 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
87986 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
87987
87988 xla_accounting_err_pkg.build_message
87989 (p_appli_s_name => 'XLA'
87990 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
87991 ,p_token_1 => 'LINE_NUMBER'
87992 ,p_value_1 => l_array_extract_line_num(Idx)
87993 ,p_token_2 => 'PRODUCT_NAME'
87994 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
87995 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
87996 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
87997 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
87998
87999 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
88000 --
88001 -- following sets the accounting attributes needed to reverse
88002 -- accounting for a distributeion
88003 --
88004
88005 --
88006 -- 5217187
88007 --
88011 --
88008 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
88009 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
88010 g_array_event(l_event_id).array_value_num('header_index'));
88012 --
88013
88014 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
88015 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
88016 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
88017 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
88018 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
88019 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
88020 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
88021 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
88022 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
88023 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
88024 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
88025 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
88026 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
88027 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
88028 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
88029 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
88030 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
88031 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
88032 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
88033 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
88034 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
88035 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
88036 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
88037 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
88038 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
88039 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
88040 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
88041 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
88042 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
88043 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
88044 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
88045 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
88046 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
88047 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
88048 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
88049 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
88050 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
88051 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
88052 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
88053 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
88054 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
88055 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
88056 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
88057 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
88058 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
88059 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
88060 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
88061 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
88062
88063
88064 xla_ae_lines_pkg.SetAcctReversalAttrs
88065 (p_event_id => l_event_id
88066 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
88067 ,p_calculate_acctd_flag => l_calculate_acctd_flag
88068 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
88069 END IF;
88070
88071 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
88072 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
88073
88074 --
88075 AcctLineType_41 (
88076 p_application_id => p_application_id
88077 ,p_event_id => l_event_id
88078 ,p_calculate_acctd_flag => l_calculate_acctd_flag
88079 ,p_calculate_g_l_flag => l_calculate_g_l_flag
88080 ,p_actual_flag => l_actual_flag
88081 ,p_balance_type_code => l_balance_type_code
88082 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
88083
88084 , p_source_3 => l_array_source_3(Idx)
88085 , p_source_4 => l_array_source_4(Idx)
88086 , p_source_5 => l_array_source_5(Idx)
88087 , p_source_6 => l_array_source_6(Idx)
88088 , p_source_22 => l_array_source_22(Idx)
88089 , p_source_23 => l_array_source_23(Idx)
88090 , p_source_24 => l_array_source_24(Idx)
88091 , p_source_25 => l_array_source_25(Idx)
88092 , p_source_26 => l_array_source_26(Idx)
88093 , p_source_27 => l_array_source_27(Idx)
88094 , p_source_28 => l_array_source_28(Idx)
88095 , p_source_29 => l_array_source_29(Idx)
88096 , p_source_30 => l_array_source_30(Idx)
88097 , p_source_31 => l_array_source_31(Idx)
88098 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
88099 , p_source_33 => l_array_source_33(Idx)
88100 , p_source_34 => l_array_source_34(Idx)
88101 , p_source_34_meaning => l_array_source_34_meaning(Idx)
88102 , p_source_35 => l_array_source_35(Idx)
88103 );
88104 If(l_balance_type_code = 'A') THEN
88108 --
88105 l_actual_gain_loss_ref := l_gain_or_loss_ref;
88106 END IF;
88107
88109
88110
88111 --
88112 AcctLineType_53 (
88113 p_application_id => p_application_id
88114 ,p_event_id => l_event_id
88115 ,p_calculate_acctd_flag => l_calculate_acctd_flag
88116 ,p_calculate_g_l_flag => l_calculate_g_l_flag
88117 ,p_actual_flag => l_actual_flag
88118 ,p_balance_type_code => l_balance_type_code
88119 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
88120
88121 , p_source_3 => l_array_source_3(Idx)
88122 , p_source_4 => l_array_source_4(Idx)
88123 , p_source_6 => l_array_source_6(Idx)
88124 , p_source_7 => l_array_source_7(Idx)
88125 , p_source_22 => l_array_source_22(Idx)
88126 , p_source_23 => l_array_source_23(Idx)
88127 , p_source_24 => l_array_source_24(Idx)
88128 , p_source_25 => l_array_source_25(Idx)
88129 , p_source_26 => l_array_source_26(Idx)
88130 , p_source_27 => l_array_source_27(Idx)
88131 , p_source_28 => l_array_source_28(Idx)
88132 , p_source_29 => l_array_source_29(Idx)
88133 , p_source_30 => l_array_source_30(Idx)
88134 , p_source_31 => l_array_source_31(Idx)
88135 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
88136 , p_source_33 => l_array_source_33(Idx)
88137 , p_source_34 => l_array_source_34(Idx)
88138 , p_source_34_meaning => l_array_source_34_meaning(Idx)
88139 , p_source_35 => l_array_source_35(Idx)
88140 );
88141 If(l_balance_type_code = 'A') THEN
88142 l_actual_gain_loss_ref := l_gain_or_loss_ref;
88143 END IF;
88144
88145 --
88146
88147 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
88148 -- or secondary ledger that has different currency with primary
88149 -- or alc that is calculated by sla
88150 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
88151 (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'))
88152
88153 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
88154 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
88155 AND (l_actual_flag = 'A')) THEN
88156 XLA_AE_LINES_PKG.CreateGainOrLossLines(
88157 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
88158 ,p_application_id => p_application_id
88159 ,p_amb_context_code => 'DEFAULT'
88160 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
88161 ,p_event_class_code => C_EVENT_CLASS_CODE
88162 ,p_event_type_code => C_EVENT_TYPE_CODE
88163
88164 ,p_gain_ccid => -1
88165 ,p_loss_ccid => -1
88166
88167 ,p_actual_flag => l_actual_flag
88168 ,p_enc_flag => null
88169 ,p_actual_g_l_ref => l_actual_gain_loss_ref
88170 ,p_enc_g_l_ref => null
88171 );
88172 END IF;
88173 END IF;
88174 END IF;
88175
88176 ELSE
88177 --
88178 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
88179 --
88180 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88181 trace
88182 (p_msg => 'Trancaction revesal option is Y'
88183 ,p_level => C_LEVEL_STATEMENT
88184 ,p_module => l_log_module);
88185 END IF;
88186 END IF;
88187
88188 END LOOP;
88189 l_result := XLA_AE_LINES_PKG.InsertLines ;
88190 end loop;
88191 close line_cur;
88192
88193
88194 --
88195 -- insert headers into xla_ae_headers_gt table
88196 --
88197 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
88198
88199 -- insert into errors table here.
88200
88201 END LOOP;
88202
88203 --
88204 -- 4865292
88205 --
88206 -- Compare g_hdr_extract_count with event count in
88207 -- CreateHeadersAndLines.
88208 --
88209 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
88210
88211 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88212 trace (p_msg => '# rows extracted from header extract objects '
88213 || ' (running total): '
88214 || g_hdr_extract_count
88215 ,p_level => C_LEVEL_STATEMENT
88216 ,p_module => l_log_module);
88217 END IF;
88218
88219 CLOSE header_cur;
88220 --
88221
88222 --
88223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88224 trace
88225 (p_msg => 'END of EventClass_132'
88226 ,p_level => C_LEVEL_PROCEDURE
88227 ,p_module => l_log_module);
88228 END IF;
88229 --
88230 RETURN l_result;
88231 EXCEPTION
88232 WHEN xla_exceptions_pkg.application_exception THEN
88233
88234 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
88235
88236
88237 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
88238
88239 RAISE;
88240 WHEN OTHERS THEN
88241 xla_exceptions_pkg.raise_message
88242 (p_location => 'XLA_00275_AAD_S_000016_PKG.EventClass_132');
88243 END EventClass_132;
88244 --
88245
88246 --
88247 --+============================================+
88248 --| |
88249 --| PRIVATE FUNCTION |
88250 --| |
88251 --+============================================+
88252 --
88253 FUNCTION CreateHeadersAndLines
88254 (p_application_id IN NUMBER
88255 ,p_base_ledger_id IN NUMBER
88256 ,p_target_ledger_id IN NUMBER
88257 ,p_pad_start_date IN DATE
88258 ,p_pad_end_date IN DATE
88262 l_event_id NUMBER;
88259 ,p_primary_ledger_id IN NUMBER)
88260 RETURN BOOLEAN IS
88261 l_created BOOLEAN:=FALSE;
88263 l_event_date DATE;
88264 l_language VARCHAR2(30);
88265 l_currency_code VARCHAR2(30);
88266 l_sla_ledger_id NUMBER;
88267 l_log_module VARCHAR2(240);
88268
88269 BEGIN
88270 --
88271 IF g_log_enabled THEN
88272 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
88273 END IF;
88274 --
88275 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88276 trace
88277 (p_msg => 'BEGIN of CreateHeadersAndLines'
88278 ,p_level => C_LEVEL_PROCEDURE
88279 ,p_module => l_log_module);
88280 END IF;
88281
88282 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
88283 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
88284 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
88285
88286 --
88287 -- initialize array of lines with NULL
88288 --
88289 xla_ae_lines_pkg.SetNullLine;
88290
88291 --
88292 -- initialize header extract count -- Bug 4865292
88293 --
88294 g_hdr_extract_count:= 0;
88295
88296
88297 l_created := EventClass_110(
88298 p_application_id => p_application_id
88299 , p_base_ledger_id => p_base_ledger_id
88300 , p_target_ledger_id => p_target_ledger_id
88301 , p_language => l_language
88302 , p_currency_code => l_currency_code
88303 , p_sla_ledger_id => l_sla_ledger_id
88304 , p_pad_start_date => p_pad_start_date
88305 , p_pad_end_date => p_pad_end_date
88306 , p_primary_ledger_id => p_primary_ledger_id
88307 );
88308
88309
88310
88311 IF ( g_diagnostics_mode ='Y' ) THEN
88312
88313 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88314 trace
88315 (p_msg => 'CALL Transaction Objects Diagnostics'
88316 ,p_level => C_LEVEL_STATEMENT
88317 ,p_module => l_log_module);
88318
88319 END IF;
88320
88321 insert_sources_110(
88322 p_target_ledger_id => p_target_ledger_id
88323 , p_language => l_language
88324 , p_sla_ledger_id => l_sla_ledger_id
88325 , p_pad_start_date => p_pad_start_date
88326 , p_pad_end_date => p_pad_end_date
88327 );
88328
88329 END IF;
88330
88331 l_created := EventClass_111(
88332 p_application_id => p_application_id
88333 , p_base_ledger_id => p_base_ledger_id
88334 , p_target_ledger_id => p_target_ledger_id
88335 , p_language => l_language
88336 , p_currency_code => l_currency_code
88337 , p_sla_ledger_id => l_sla_ledger_id
88338 , p_pad_start_date => p_pad_start_date
88339 , p_pad_end_date => p_pad_end_date
88340 , p_primary_ledger_id => p_primary_ledger_id
88341 );
88342
88343
88344
88345 IF ( g_diagnostics_mode ='Y' ) THEN
88346
88347 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88348 trace
88349 (p_msg => 'CALL Transaction Objects Diagnostics'
88350 ,p_level => C_LEVEL_STATEMENT
88351 ,p_module => l_log_module);
88352
88353 END IF;
88354
88355 insert_sources_111(
88356 p_target_ledger_id => p_target_ledger_id
88357 , p_language => l_language
88358 , p_sla_ledger_id => l_sla_ledger_id
88359 , p_pad_start_date => p_pad_start_date
88360 , p_pad_end_date => p_pad_end_date
88361 );
88362
88363 END IF;
88364
88365 l_created := EventClass_112(
88366 p_application_id => p_application_id
88367 , p_base_ledger_id => p_base_ledger_id
88368 , p_target_ledger_id => p_target_ledger_id
88369 , p_language => l_language
88370 , p_currency_code => l_currency_code
88371 , p_sla_ledger_id => l_sla_ledger_id
88372 , p_pad_start_date => p_pad_start_date
88373 , p_pad_end_date => p_pad_end_date
88374 , p_primary_ledger_id => p_primary_ledger_id
88375 );
88376
88377
88378
88379 IF ( g_diagnostics_mode ='Y' ) THEN
88380
88381 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88382 trace
88383 (p_msg => 'CALL Transaction Objects Diagnostics'
88384 ,p_level => C_LEVEL_STATEMENT
88385 ,p_module => l_log_module);
88386
88387 END IF;
88388
88389 insert_sources_112(
88390 p_target_ledger_id => p_target_ledger_id
88391 , p_language => l_language
88392 , p_sla_ledger_id => l_sla_ledger_id
88393 , p_pad_start_date => p_pad_start_date
88394 , p_pad_end_date => p_pad_end_date
88395 );
88396
88397 END IF;
88398
88399 l_created := EventClass_113(
88400 p_application_id => p_application_id
88401 , p_base_ledger_id => p_base_ledger_id
88402 , p_target_ledger_id => p_target_ledger_id
88403 , p_language => l_language
88404 , p_currency_code => l_currency_code
88405 , p_sla_ledger_id => l_sla_ledger_id
88406 , p_pad_start_date => p_pad_start_date
88407 , p_pad_end_date => p_pad_end_date
88411
88408 , p_primary_ledger_id => p_primary_ledger_id
88409 );
88410
88412
88413 IF ( g_diagnostics_mode ='Y' ) THEN
88414
88415 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88416 trace
88417 (p_msg => 'CALL Transaction Objects Diagnostics'
88418 ,p_level => C_LEVEL_STATEMENT
88419 ,p_module => l_log_module);
88420
88421 END IF;
88422
88423 insert_sources_113(
88424 p_target_ledger_id => p_target_ledger_id
88425 , p_language => l_language
88426 , p_sla_ledger_id => l_sla_ledger_id
88427 , p_pad_start_date => p_pad_start_date
88428 , p_pad_end_date => p_pad_end_date
88429 );
88430
88431 END IF;
88432
88433 l_created := EventClass_114(
88434 p_application_id => p_application_id
88435 , p_base_ledger_id => p_base_ledger_id
88436 , p_target_ledger_id => p_target_ledger_id
88437 , p_language => l_language
88438 , p_currency_code => l_currency_code
88439 , p_sla_ledger_id => l_sla_ledger_id
88440 , p_pad_start_date => p_pad_start_date
88441 , p_pad_end_date => p_pad_end_date
88442 , p_primary_ledger_id => p_primary_ledger_id
88443 );
88444
88445
88446
88447 IF ( g_diagnostics_mode ='Y' ) THEN
88448
88449 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88450 trace
88451 (p_msg => 'CALL Transaction Objects Diagnostics'
88452 ,p_level => C_LEVEL_STATEMENT
88453 ,p_module => l_log_module);
88454
88455 END IF;
88456
88457 insert_sources_114(
88458 p_target_ledger_id => p_target_ledger_id
88459 , p_language => l_language
88460 , p_sla_ledger_id => l_sla_ledger_id
88461 , p_pad_start_date => p_pad_start_date
88462 , p_pad_end_date => p_pad_end_date
88463 );
88464
88465 END IF;
88466
88467 l_created := EventClass_115(
88468 p_application_id => p_application_id
88469 , p_base_ledger_id => p_base_ledger_id
88470 , p_target_ledger_id => p_target_ledger_id
88471 , p_language => l_language
88472 , p_currency_code => l_currency_code
88473 , p_sla_ledger_id => l_sla_ledger_id
88474 , p_pad_start_date => p_pad_start_date
88475 , p_pad_end_date => p_pad_end_date
88476 , p_primary_ledger_id => p_primary_ledger_id
88477 );
88478
88479
88480
88481 IF ( g_diagnostics_mode ='Y' ) THEN
88482
88483 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88484 trace
88485 (p_msg => 'CALL Transaction Objects Diagnostics'
88486 ,p_level => C_LEVEL_STATEMENT
88487 ,p_module => l_log_module);
88488
88489 END IF;
88490
88491 insert_sources_115(
88492 p_target_ledger_id => p_target_ledger_id
88493 , p_language => l_language
88494 , p_sla_ledger_id => l_sla_ledger_id
88495 , p_pad_start_date => p_pad_start_date
88496 , p_pad_end_date => p_pad_end_date
88497 );
88498
88499 END IF;
88500
88501 l_created := EventClass_116(
88502 p_application_id => p_application_id
88503 , p_base_ledger_id => p_base_ledger_id
88504 , p_target_ledger_id => p_target_ledger_id
88505 , p_language => l_language
88506 , p_currency_code => l_currency_code
88507 , p_sla_ledger_id => l_sla_ledger_id
88508 , p_pad_start_date => p_pad_start_date
88509 , p_pad_end_date => p_pad_end_date
88510 , p_primary_ledger_id => p_primary_ledger_id
88511 );
88512
88513
88514
88515 IF ( g_diagnostics_mode ='Y' ) THEN
88516
88517 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88518 trace
88519 (p_msg => 'CALL Transaction Objects Diagnostics'
88520 ,p_level => C_LEVEL_STATEMENT
88521 ,p_module => l_log_module);
88522
88523 END IF;
88524
88525 insert_sources_116(
88526 p_target_ledger_id => p_target_ledger_id
88527 , p_language => l_language
88528 , p_sla_ledger_id => l_sla_ledger_id
88529 , p_pad_start_date => p_pad_start_date
88530 , p_pad_end_date => p_pad_end_date
88531 );
88532
88533 END IF;
88534
88535 l_created := EventClass_117(
88536 p_application_id => p_application_id
88537 , p_base_ledger_id => p_base_ledger_id
88538 , p_target_ledger_id => p_target_ledger_id
88539 , p_language => l_language
88540 , p_currency_code => l_currency_code
88541 , p_sla_ledger_id => l_sla_ledger_id
88542 , p_pad_start_date => p_pad_start_date
88543 , p_pad_end_date => p_pad_end_date
88544 , p_primary_ledger_id => p_primary_ledger_id
88545 );
88546
88547
88548
88549 IF ( g_diagnostics_mode ='Y' ) THEN
88550
88551 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88552 trace
88553 (p_msg => 'CALL Transaction Objects Diagnostics'
88554 ,p_level => C_LEVEL_STATEMENT
88555 ,p_module => l_log_module);
88556
88560 p_target_ledger_id => p_target_ledger_id
88557 END IF;
88558
88559 insert_sources_117(
88561 , p_language => l_language
88562 , p_sla_ledger_id => l_sla_ledger_id
88563 , p_pad_start_date => p_pad_start_date
88564 , p_pad_end_date => p_pad_end_date
88565 );
88566
88567 END IF;
88568
88569 l_created := EventClass_118(
88570 p_application_id => p_application_id
88571 , p_base_ledger_id => p_base_ledger_id
88572 , p_target_ledger_id => p_target_ledger_id
88573 , p_language => l_language
88574 , p_currency_code => l_currency_code
88575 , p_sla_ledger_id => l_sla_ledger_id
88576 , p_pad_start_date => p_pad_start_date
88577 , p_pad_end_date => p_pad_end_date
88578 , p_primary_ledger_id => p_primary_ledger_id
88579 );
88580
88581
88582
88583 IF ( g_diagnostics_mode ='Y' ) THEN
88584
88585 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88586 trace
88587 (p_msg => 'CALL Transaction Objects Diagnostics'
88588 ,p_level => C_LEVEL_STATEMENT
88589 ,p_module => l_log_module);
88590
88591 END IF;
88592
88593 insert_sources_118(
88594 p_target_ledger_id => p_target_ledger_id
88595 , p_language => l_language
88596 , p_sla_ledger_id => l_sla_ledger_id
88597 , p_pad_start_date => p_pad_start_date
88598 , p_pad_end_date => p_pad_end_date
88599 );
88600
88601 END IF;
88602
88603 l_created := EventClass_119(
88604 p_application_id => p_application_id
88605 , p_base_ledger_id => p_base_ledger_id
88606 , p_target_ledger_id => p_target_ledger_id
88607 , p_language => l_language
88608 , p_currency_code => l_currency_code
88609 , p_sla_ledger_id => l_sla_ledger_id
88610 , p_pad_start_date => p_pad_start_date
88611 , p_pad_end_date => p_pad_end_date
88612 , p_primary_ledger_id => p_primary_ledger_id
88613 );
88614
88615
88616
88617 IF ( g_diagnostics_mode ='Y' ) THEN
88618
88619 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88620 trace
88621 (p_msg => 'CALL Transaction Objects Diagnostics'
88622 ,p_level => C_LEVEL_STATEMENT
88623 ,p_module => l_log_module);
88624
88625 END IF;
88626
88627 insert_sources_119(
88628 p_target_ledger_id => p_target_ledger_id
88629 , p_language => l_language
88630 , p_sla_ledger_id => l_sla_ledger_id
88631 , p_pad_start_date => p_pad_start_date
88632 , p_pad_end_date => p_pad_end_date
88633 );
88634
88635 END IF;
88636
88637 l_created := EventClass_120(
88638 p_application_id => p_application_id
88639 , p_base_ledger_id => p_base_ledger_id
88640 , p_target_ledger_id => p_target_ledger_id
88641 , p_language => l_language
88642 , p_currency_code => l_currency_code
88643 , p_sla_ledger_id => l_sla_ledger_id
88644 , p_pad_start_date => p_pad_start_date
88645 , p_pad_end_date => p_pad_end_date
88646 , p_primary_ledger_id => p_primary_ledger_id
88647 );
88648
88649
88650
88651 IF ( g_diagnostics_mode ='Y' ) THEN
88652
88653 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88654 trace
88655 (p_msg => 'CALL Transaction Objects Diagnostics'
88656 ,p_level => C_LEVEL_STATEMENT
88657 ,p_module => l_log_module);
88658
88659 END IF;
88660
88661 insert_sources_120(
88662 p_target_ledger_id => p_target_ledger_id
88663 , p_language => l_language
88664 , p_sla_ledger_id => l_sla_ledger_id
88665 , p_pad_start_date => p_pad_start_date
88666 , p_pad_end_date => p_pad_end_date
88667 );
88668
88669 END IF;
88670
88671 l_created := EventClass_121(
88672 p_application_id => p_application_id
88673 , p_base_ledger_id => p_base_ledger_id
88674 , p_target_ledger_id => p_target_ledger_id
88675 , p_language => l_language
88676 , p_currency_code => l_currency_code
88677 , p_sla_ledger_id => l_sla_ledger_id
88678 , p_pad_start_date => p_pad_start_date
88679 , p_pad_end_date => p_pad_end_date
88680 , p_primary_ledger_id => p_primary_ledger_id
88681 );
88682
88683
88684
88685 IF ( g_diagnostics_mode ='Y' ) THEN
88686
88687 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88688 trace
88689 (p_msg => 'CALL Transaction Objects Diagnostics'
88690 ,p_level => C_LEVEL_STATEMENT
88691 ,p_module => l_log_module);
88692
88693 END IF;
88694
88695 insert_sources_121(
88696 p_target_ledger_id => p_target_ledger_id
88697 , p_language => l_language
88698 , p_sla_ledger_id => l_sla_ledger_id
88699 , p_pad_start_date => p_pad_start_date
88700 , p_pad_end_date => p_pad_end_date
88701 );
88705 l_created := EventClass_122(
88702
88703 END IF;
88704
88706 p_application_id => p_application_id
88707 , p_base_ledger_id => p_base_ledger_id
88708 , p_target_ledger_id => p_target_ledger_id
88709 , p_language => l_language
88710 , p_currency_code => l_currency_code
88711 , p_sla_ledger_id => l_sla_ledger_id
88712 , p_pad_start_date => p_pad_start_date
88713 , p_pad_end_date => p_pad_end_date
88714 , p_primary_ledger_id => p_primary_ledger_id
88715 );
88716
88717
88718
88719 IF ( g_diagnostics_mode ='Y' ) THEN
88720
88721 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88722 trace
88723 (p_msg => 'CALL Transaction Objects Diagnostics'
88724 ,p_level => C_LEVEL_STATEMENT
88725 ,p_module => l_log_module);
88726
88727 END IF;
88728
88729 insert_sources_122(
88730 p_target_ledger_id => p_target_ledger_id
88731 , p_language => l_language
88732 , p_sla_ledger_id => l_sla_ledger_id
88733 , p_pad_start_date => p_pad_start_date
88734 , p_pad_end_date => p_pad_end_date
88735 );
88736
88737 END IF;
88738
88739 l_created := EventClass_123(
88740 p_application_id => p_application_id
88741 , p_base_ledger_id => p_base_ledger_id
88742 , p_target_ledger_id => p_target_ledger_id
88743 , p_language => l_language
88744 , p_currency_code => l_currency_code
88745 , p_sla_ledger_id => l_sla_ledger_id
88746 , p_pad_start_date => p_pad_start_date
88747 , p_pad_end_date => p_pad_end_date
88748 , p_primary_ledger_id => p_primary_ledger_id
88749 );
88750
88751
88752
88753 IF ( g_diagnostics_mode ='Y' ) THEN
88754
88755 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88756 trace
88757 (p_msg => 'CALL Transaction Objects Diagnostics'
88758 ,p_level => C_LEVEL_STATEMENT
88759 ,p_module => l_log_module);
88760
88761 END IF;
88762
88763 insert_sources_123(
88764 p_target_ledger_id => p_target_ledger_id
88765 , p_language => l_language
88766 , p_sla_ledger_id => l_sla_ledger_id
88767 , p_pad_start_date => p_pad_start_date
88768 , p_pad_end_date => p_pad_end_date
88769 );
88770
88771 END IF;
88772
88773 l_created := EventClass_124(
88774 p_application_id => p_application_id
88775 , p_base_ledger_id => p_base_ledger_id
88776 , p_target_ledger_id => p_target_ledger_id
88777 , p_language => l_language
88778 , p_currency_code => l_currency_code
88779 , p_sla_ledger_id => l_sla_ledger_id
88780 , p_pad_start_date => p_pad_start_date
88781 , p_pad_end_date => p_pad_end_date
88782 , p_primary_ledger_id => p_primary_ledger_id
88783 );
88784
88785
88786
88787 IF ( g_diagnostics_mode ='Y' ) THEN
88788
88789 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88790 trace
88791 (p_msg => 'CALL Transaction Objects Diagnostics'
88792 ,p_level => C_LEVEL_STATEMENT
88793 ,p_module => l_log_module);
88794
88795 END IF;
88796
88797 insert_sources_124(
88798 p_target_ledger_id => p_target_ledger_id
88799 , p_language => l_language
88800 , p_sla_ledger_id => l_sla_ledger_id
88801 , p_pad_start_date => p_pad_start_date
88802 , p_pad_end_date => p_pad_end_date
88803 );
88804
88805 END IF;
88806
88807 l_created := EventClass_125(
88808 p_application_id => p_application_id
88809 , p_base_ledger_id => p_base_ledger_id
88810 , p_target_ledger_id => p_target_ledger_id
88811 , p_language => l_language
88812 , p_currency_code => l_currency_code
88813 , p_sla_ledger_id => l_sla_ledger_id
88814 , p_pad_start_date => p_pad_start_date
88815 , p_pad_end_date => p_pad_end_date
88816 , p_primary_ledger_id => p_primary_ledger_id
88817 );
88818
88819
88820
88821 IF ( g_diagnostics_mode ='Y' ) THEN
88822
88823 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88824 trace
88825 (p_msg => 'CALL Transaction Objects Diagnostics'
88826 ,p_level => C_LEVEL_STATEMENT
88827 ,p_module => l_log_module);
88828
88829 END IF;
88830
88831 insert_sources_125(
88832 p_target_ledger_id => p_target_ledger_id
88833 , p_language => l_language
88834 , p_sla_ledger_id => l_sla_ledger_id
88835 , p_pad_start_date => p_pad_start_date
88836 , p_pad_end_date => p_pad_end_date
88837 );
88838
88839 END IF;
88840
88841 l_created := EventClass_126(
88842 p_application_id => p_application_id
88843 , p_base_ledger_id => p_base_ledger_id
88844 , p_target_ledger_id => p_target_ledger_id
88845 , p_language => l_language
88846 , p_currency_code => l_currency_code
88847 , p_sla_ledger_id => l_sla_ledger_id
88848 , p_pad_start_date => p_pad_start_date
88852
88849 , p_pad_end_date => p_pad_end_date
88850 , p_primary_ledger_id => p_primary_ledger_id
88851 );
88853
88854
88855 IF ( g_diagnostics_mode ='Y' ) THEN
88856
88857 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88858 trace
88859 (p_msg => 'CALL Transaction Objects Diagnostics'
88860 ,p_level => C_LEVEL_STATEMENT
88861 ,p_module => l_log_module);
88862
88863 END IF;
88864
88865 insert_sources_126(
88866 p_target_ledger_id => p_target_ledger_id
88867 , p_language => l_language
88868 , p_sla_ledger_id => l_sla_ledger_id
88869 , p_pad_start_date => p_pad_start_date
88870 , p_pad_end_date => p_pad_end_date
88871 );
88872
88873 END IF;
88874
88875 l_created := EventClass_127(
88876 p_application_id => p_application_id
88877 , p_base_ledger_id => p_base_ledger_id
88878 , p_target_ledger_id => p_target_ledger_id
88879 , p_language => l_language
88880 , p_currency_code => l_currency_code
88881 , p_sla_ledger_id => l_sla_ledger_id
88882 , p_pad_start_date => p_pad_start_date
88883 , p_pad_end_date => p_pad_end_date
88884 , p_primary_ledger_id => p_primary_ledger_id
88885 );
88886
88887
88888
88889 IF ( g_diagnostics_mode ='Y' ) THEN
88890
88891 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88892 trace
88893 (p_msg => 'CALL Transaction Objects Diagnostics'
88894 ,p_level => C_LEVEL_STATEMENT
88895 ,p_module => l_log_module);
88896
88897 END IF;
88898
88899 insert_sources_127(
88900 p_target_ledger_id => p_target_ledger_id
88901 , p_language => l_language
88902 , p_sla_ledger_id => l_sla_ledger_id
88903 , p_pad_start_date => p_pad_start_date
88904 , p_pad_end_date => p_pad_end_date
88905 );
88906
88907 END IF;
88908
88909 l_created := EventClass_128(
88910 p_application_id => p_application_id
88911 , p_base_ledger_id => p_base_ledger_id
88912 , p_target_ledger_id => p_target_ledger_id
88913 , p_language => l_language
88914 , p_currency_code => l_currency_code
88915 , p_sla_ledger_id => l_sla_ledger_id
88916 , p_pad_start_date => p_pad_start_date
88917 , p_pad_end_date => p_pad_end_date
88918 , p_primary_ledger_id => p_primary_ledger_id
88919 );
88920
88921
88922
88923 IF ( g_diagnostics_mode ='Y' ) THEN
88924
88925 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88926 trace
88927 (p_msg => 'CALL Transaction Objects Diagnostics'
88928 ,p_level => C_LEVEL_STATEMENT
88929 ,p_module => l_log_module);
88930
88931 END IF;
88932
88933 insert_sources_128(
88934 p_target_ledger_id => p_target_ledger_id
88935 , p_language => l_language
88936 , p_sla_ledger_id => l_sla_ledger_id
88937 , p_pad_start_date => p_pad_start_date
88938 , p_pad_end_date => p_pad_end_date
88939 );
88940
88941 END IF;
88942
88943 l_created := EventClass_129(
88944 p_application_id => p_application_id
88945 , p_base_ledger_id => p_base_ledger_id
88946 , p_target_ledger_id => p_target_ledger_id
88947 , p_language => l_language
88948 , p_currency_code => l_currency_code
88949 , p_sla_ledger_id => l_sla_ledger_id
88950 , p_pad_start_date => p_pad_start_date
88951 , p_pad_end_date => p_pad_end_date
88952 , p_primary_ledger_id => p_primary_ledger_id
88953 );
88954
88955
88956
88957 IF ( g_diagnostics_mode ='Y' ) THEN
88958
88959 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88960 trace
88961 (p_msg => 'CALL Transaction Objects Diagnostics'
88962 ,p_level => C_LEVEL_STATEMENT
88963 ,p_module => l_log_module);
88964
88965 END IF;
88966
88967 insert_sources_129(
88968 p_target_ledger_id => p_target_ledger_id
88969 , p_language => l_language
88970 , p_sla_ledger_id => l_sla_ledger_id
88971 , p_pad_start_date => p_pad_start_date
88972 , p_pad_end_date => p_pad_end_date
88973 );
88974
88975 END IF;
88976
88977 l_created := EventClass_130(
88978 p_application_id => p_application_id
88979 , p_base_ledger_id => p_base_ledger_id
88980 , p_target_ledger_id => p_target_ledger_id
88981 , p_language => l_language
88982 , p_currency_code => l_currency_code
88983 , p_sla_ledger_id => l_sla_ledger_id
88984 , p_pad_start_date => p_pad_start_date
88985 , p_pad_end_date => p_pad_end_date
88986 , p_primary_ledger_id => p_primary_ledger_id
88987 );
88988
88989
88990
88991 IF ( g_diagnostics_mode ='Y' ) THEN
88992
88993 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88994 trace
88995 (p_msg => 'CALL Transaction Objects Diagnostics'
88996 ,p_level => C_LEVEL_STATEMENT
89000
88997 ,p_module => l_log_module);
88998
88999 END IF;
89001 insert_sources_130(
89002 p_target_ledger_id => p_target_ledger_id
89003 , p_language => l_language
89004 , p_sla_ledger_id => l_sla_ledger_id
89005 , p_pad_start_date => p_pad_start_date
89006 , p_pad_end_date => p_pad_end_date
89007 );
89008
89009 END IF;
89010
89011 l_created := EventClass_131(
89012 p_application_id => p_application_id
89013 , p_base_ledger_id => p_base_ledger_id
89014 , p_target_ledger_id => p_target_ledger_id
89015 , p_language => l_language
89016 , p_currency_code => l_currency_code
89017 , p_sla_ledger_id => l_sla_ledger_id
89018 , p_pad_start_date => p_pad_start_date
89019 , p_pad_end_date => p_pad_end_date
89020 , p_primary_ledger_id => p_primary_ledger_id
89021 );
89022
89023
89024
89025 IF ( g_diagnostics_mode ='Y' ) THEN
89026
89027 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89028 trace
89029 (p_msg => 'CALL Transaction Objects Diagnostics'
89030 ,p_level => C_LEVEL_STATEMENT
89031 ,p_module => l_log_module);
89032
89033 END IF;
89034
89035 insert_sources_131(
89036 p_target_ledger_id => p_target_ledger_id
89037 , p_language => l_language
89038 , p_sla_ledger_id => l_sla_ledger_id
89039 , p_pad_start_date => p_pad_start_date
89040 , p_pad_end_date => p_pad_end_date
89041 );
89042
89043 END IF;
89044
89045 l_created := EventClass_132(
89046 p_application_id => p_application_id
89047 , p_base_ledger_id => p_base_ledger_id
89048 , p_target_ledger_id => p_target_ledger_id
89049 , p_language => l_language
89050 , p_currency_code => l_currency_code
89051 , p_sla_ledger_id => l_sla_ledger_id
89052 , p_pad_start_date => p_pad_start_date
89053 , p_pad_end_date => p_pad_end_date
89054 , p_primary_ledger_id => p_primary_ledger_id
89055 );
89056
89057
89058
89059 IF ( g_diagnostics_mode ='Y' ) THEN
89060
89061 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89062 trace
89063 (p_msg => 'CALL Transaction Objects Diagnostics'
89064 ,p_level => C_LEVEL_STATEMENT
89065 ,p_module => l_log_module);
89066
89067 END IF;
89068
89069 insert_sources_132(
89070 p_target_ledger_id => p_target_ledger_id
89071 , p_language => l_language
89072 , p_sla_ledger_id => l_sla_ledger_id
89073 , p_pad_start_date => p_pad_start_date
89074 , p_pad_end_date => p_pad_end_date
89075 );
89076
89077 END IF;
89078
89079
89080 --
89081 -- Bug 4865292
89082 -- When the number of events and that of header extract do not match,
89083 -- set the no header extract flag to indicate there are some issues
89084 -- in header extract.
89085 --
89086 -- Event count context is set in xla_accounting_pkg.unit_processor.
89087 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
89088 -- to report it as a general error.
89089 --
89090 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
89091 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
89092
89093 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89094 trace
89095 (p_msg => '# of extracted headers and events does not match'
89096 ,p_level => C_LEVEL_STATEMENT
89097 ,p_module => l_log_module);
89098
89099 trace
89100 (p_msg => '# of extracted headers: '
89101 ||g_hdr_extract_count
89102 ,p_level => C_LEVEL_STATEMENT
89103 ,p_module => l_log_module);
89104
89105 trace
89106 (p_msg => '# of events in xla_events_gt: '
89107 ||xla_context_pkg.get_event_count_context
89108 ,p_level => C_LEVEL_STATEMENT
89109 ,p_module => l_log_module);
89110
89111 trace
89112 (p_msg => 'Event No Header Extract Context: '
89113 ||xla_context_pkg.get_event_nohdr_context
89114 ,p_level => C_LEVEL_STATEMENT
89115 ,p_module => l_log_module);
89116
89117 END IF;
89118
89119
89120 xla_context_pkg.set_event_nohdr_context
89121 (p_nohdr_extract_flag => 'Y'
89122 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
89123
89124 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89125 trace
89126 (p_msg => 'No Header Extract Flag is set to Y'
89127 ,p_level => C_LEVEL_STATEMENT
89128 ,p_module => l_log_module);
89129 END IF;
89130
89131 END IF;
89132
89133 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89134 trace
89135 (p_msg => 'END of CreateHeadersAndLines'
89136 ,p_level => C_LEVEL_PROCEDURE
89137 ,p_module => l_log_module);
89138 END IF;
89139
89140 RETURN l_created;
89141 EXCEPTION
89142 WHEN xla_exceptions_pkg.application_exception THEN
89143 RAISE;
89144 WHEN OTHERS THEN
89145 xla_exceptions_pkg.raise_message
89149 --
89146 (p_location => 'XLA_00275_AAD_S_000016_PKG.CreateHeadersAndLines');
89147 END CreateHeadersAndLines;
89148 --
89150
89151 --
89152 --+============================================+
89153 --| |
89154 --| PUBLIC FUNCTION |
89155 --| |
89156 --+============================================+
89157 --
89158 FUNCTION CreateJournalEntries
89159 (p_application_id IN NUMBER
89160 ,p_base_ledger_id IN NUMBER
89161 ,p_pad_start_date IN DATE
89162 ,p_pad_end_date IN DATE
89163 ,p_primary_ledger_id IN NUMBER)
89164 RETURN NUMBER IS
89165 l_log_module VARCHAR2(240);
89166 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
89167 l_temp_result BOOLEAN;
89168 l_result NUMBER;
89169 BEGIN
89170 --
89171 IF g_log_enabled THEN
89172 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
89173 END IF;
89174 --
89175 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89176 trace
89177 (p_msg => 'BEGIN of CreateJournalEntries'||
89178 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
89179 ,p_level => C_LEVEL_PROCEDURE
89180 ,p_module => l_log_module);
89181
89182 END IF;
89183
89184 --
89185 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
89186
89187 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89188 trace
89189 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
89190 ,p_level => C_LEVEL_STATEMENT
89191 ,p_module => l_log_module);
89192 END IF;
89193 --
89194 xla_ae_journal_entry_pkg.SetProductAcctDefinition
89195 (p_product_rule_code => 'JA_CN_PA_DEFAULT_ACCRUAL'
89196 ,p_product_rule_type_code => 'S'
89197 ,p_product_rule_version => ''
89198 ,p_product_rule_name => 'China Projects Standard Accounting'
89199 ,p_amb_context_code => 'DEFAULT'
89200 );
89201
89202 l_array_ledgers :=
89203 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
89204 (p_base_ledger_id => p_base_ledger_id);
89205
89206 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
89207 l_temp_result :=
89208 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
89209 (p_application_id => p_application_id
89210 ,p_base_ledger_id => p_base_ledger_id
89211 ,p_target_ledger_id => l_array_ledgers(Idx)
89212 ,p_primary_ledger_id => p_primary_ledger_id
89213 ,p_pad_start_date => p_pad_start_date
89214 ,p_pad_end_date => p_pad_end_date);
89215
89216 l_temp_result :=
89217 l_temp_result AND
89218 CreateHeadersAndLines
89219 (p_application_id => p_application_id
89220 ,p_base_ledger_id => p_base_ledger_id
89221 ,p_target_ledger_id => l_array_ledgers(Idx)
89222 ,p_pad_start_date => p_pad_start_date
89223 ,p_pad_end_date => p_pad_end_date
89224 ,p_primary_ledger_id => p_primary_ledger_id
89225 );
89226 END LOOP;
89227
89228
89229 IF (g_diagnostics_mode = 'Y' AND
89230 C_LEVEL_UNEXPECTED >= g_log_level AND
89231 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
89232
89233 xla_accounting_dump_pkg.acctg_event_extract_log(
89234 p_application_id => p_application_id
89235 ,p_request_id => xla_environment_pkg.g_Req_Id
89236 );
89237
89238 END IF;
89239
89240 CASE l_temp_result
89241 WHEN TRUE THEN l_result := 0;
89242 ELSE l_result := 2;
89243 END CASE;
89244
89245 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89246 trace
89247 (p_msg => 'return value. = '||TO_CHAR(l_result)
89248 ,p_level => C_LEVEL_PROCEDURE
89249 ,p_module => l_log_module);
89250 trace
89251 (p_msg => 'END of CreateJournalEntries '
89252 ,p_level => C_LEVEL_PROCEDURE
89253 ,p_module => l_log_module);
89254 END IF;
89255
89256 RETURN l_result;
89257 EXCEPTION
89258 WHEN xla_exceptions_pkg.application_exception THEN
89259 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89260 trace
89261 (p_msg => 'ERROR. = '||sqlerrm
89262 ,p_level => C_LEVEL_PROCEDURE
89263 ,p_module => l_log_module);
89264 END IF;
89265 RAISE;
89266 WHEN OTHERS THEN
89267 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89268 trace
89269 (p_msg => 'ERROR. = '||sqlerrm
89270 ,p_level => C_LEVEL_PROCEDURE
89271 ,p_module => l_log_module);
89272 END IF;
89273 xla_exceptions_pkg.raise_message
89274 (p_location => 'XLA_00275_AAD_S_000016_PKG.CreateJournalEntries');
89275 END CreateJournalEntries;
89276 --
89277 --=============================================================================
89278 --
89279 --
89280 --
89281 --
89282 --
89283 --
89284 --
89285 --
89286 --
89287 --
89288 --
89289 --
89290 --
89291 --
89292 --
89293 --
89294 --
89295 --
89296 --
89297 --
89298 --
89299 --
89300 --=============================================================================
89301 --=============================================================================
89302 -- *********** Initialization routine **********
89303 --=============================================================================
89304
89305 BEGIN
89306 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
89307 g_log_enabled := fnd_log.test
89308 (log_level => g_log_level
89309 ,module => C_DEFAULT_MODULE);
89310
89311 IF NOT g_log_enabled THEN
89312 g_log_level := C_LEVEL_LOG_DISABLED;
89313 END IF;
89314 --
89315 END XLA_00275_AAD_S_000016_PKG;
89316 --