[Home] [Help]
PACKAGE BODY: APPS.XLA_00275_AAD_S_000004_PKG
Source
1 PACKAGE BODY XLA_00275_AAD_S_000004_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_000004_PKG |
10 | |
11 | DESCRIPTION |
12 | Package generated From Product Accounting Definition |
13 | Name : Projects Standard Accounting |
14 | Code : PA_STANDARD_ACCOUNTING |
15 | Owner : PRODUCT |
16 | Version : |
17 | AMB Context Code: DEFAULT |
18 | HISTORY |
19 | Generated at 06-11-2008 at 02:11:54 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_000004_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_000004_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_000004_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
302 l_meaning_meaning := l_array_meaning(103371).array_meaning(l_Idx);
303
304 ELSE
305
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(
364 )
361 p_source_code
362 , p_source_type_code
363 , p_source_application_id
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
426 ,p_module => l_log_module);
427 END IF;
428
429 RETURN NULL;
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_000004_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
486 (p_msg => 'END of AcctDerRule_1'
483 --
484 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
485 trace
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_000004_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 ;
564 l_amb_context_code VARCHAR2(30) ;
565 l_log_module VARCHAR2(240) ;
566 l_output_value NUMBER ;
567 BEGIN
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;
609 (p_appli_s_name => 'XLA'
606 x_value_type_code := null;
607 l_output_value := null;
608 xla_accounting_err_pkg.build_message
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_000004_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
703 ,p_module => l_log_module);
704 END IF;
705 x_value_type_code := 'S';
706 l_output_value := TO_NUMBER(TO_NUMBER(p_source_3));
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;
736 ,p_msg_name => 'XLA_AP_INVALID_ADR'
733 l_output_value := null;
734 xla_accounting_err_pkg.build_message
735 (p_appli_s_name => 'XLA'
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_000004_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;
842 x_value_type_code := null;
843 l_output_value := null;
844 xla_accounting_err_pkg.build_message
845 (p_appli_s_name => 'XLA'
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
854 )
851 , l_component_type_code
852 , l_component_appl_id
853 , l_amb_context_code
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_000004_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
976 , l_component_code
977 , l_component_type_code
981 ,p_token_2 => 'OWNER'
978 , l_component_appl_id
979 , l_amb_context_code
980 )
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_000004_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
1101 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
1098 ,p_token_4 => 'PAD_OWNER'
1099 ,p_value_4 => xla_lookups_pkg.get_meaning(
1100 'XLA_OWNER_TYPE'
1102 )
1103 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
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_000004_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'
1226 'XLA_OWNER_TYPE'
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(
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
1231 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
1232 ,p_ae_header_id => NULL
1233 );
1234 RETURN l_output_value;
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_000004_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
1343 );
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
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_000004_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
1368 , x_transaction_coa_id OUT NOCOPY NUMBER
1369 , x_accounting_coa_id OUT NOCOPY NUMBER
1370 , x_value_type_code OUT NOCOPY VARCHAR2
1371 )
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
1463
1460 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctDerRule_9');
1461 END AcctDerRule_9;
1462 --
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';
1505 l_component_code := 'PA_RECLASS_DEST_ACCT_RULE';
1506 l_component_type_code := 'S';
1507 l_component_appl_id := 275;
1508 l_amb_context_code := 'DEFAULT';
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
1589
1586 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctDerRule_10');
1587 END AcctDerRule_10;
1588 --
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
1645 ,p_module => l_log_module);
1646 END IF;
1647 x_value_type_code := 'S';
1648 l_output_value := TO_NUMBER(TO_NUMBER(p_source_12));
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_000004_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
1716 , x_transaction_coa_id OUT NOCOPY NUMBER
1713 , p_source_13 IN NUMBER
1714 --Adjustment Provider Cost Source CCID
1715 , p_source_14 IN 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;
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;
1788 xla_accounting_err_pkg.build_message
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_000004_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
1843 )
1840 , x_transaction_coa_id OUT NOCOPY NUMBER
1841 , x_accounting_coa_id OUT NOCOPY NUMBER
1842 , x_value_type_code OUT NOCOPY VARCHAR2
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'
1910 ,p_value_2 => xla_lookups_pkg.get_meaning(
1911 'XLA_OWNER_TYPE'
1912 ,l_component_type_code
1913 )
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_000004_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 ;
1965 BEGIN
1962 l_amb_context_code VARCHAR2(30) ;
1963 l_log_module VARCHAR2(240) ;
1964 l_output_value NUMBER ;
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
2042 ,p_token_4 => 'PAD_OWNER'
2043 ,p_value_4 => xla_lookups_pkg.get_meaning(
2044 'XLA_OWNER_TYPE'
2045 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
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_000004_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
2091 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
2088 IF g_log_enabled THEN
2089 l_log_module := C_DEFAULT_MODULE||'.AcctDerRule_15';
2090 END IF;
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_000004_PKG.AcctDerRule_15');
2163 END AcctDerRule_15;
2164 --
2165
2166 ---------------------------------------
2167 --
2168 -- PRIVATE FUNCTION
2169 -- AcctDerRule_16
2170 --
2171 ---------------------------------------
2172 FUNCTION AcctDerRule_16 (
2173 p_application_id IN NUMBER
2174 , p_ae_header_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'
2218 x_value_type_code := 'S';
2215 ,p_level => C_LEVEL_PROCEDURE
2216 ,p_module => l_log_module);
2217 END IF;
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_000004_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 --
2306 l_component_type := 'AMB_ADR';
2307 l_component_code := 'REVENUE_RULE';
2308 l_component_type_code := 'S';
2309 l_component_appl_id := 275;
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'
2341 l_component_type
2338 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2339 ,p_token_1 => 'COMPONENT_NAME'
2340 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
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_000004_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
2441 (p_appli_s_name => 'XLA'
2442 ,p_msg_name => 'XLA_AP_INVALID_ADR'
2443 ,p_token_1 => 'COMPONENT_NAME'
2444 ,p_value_1 => xla_ae_sources_pkg.GetComponentName (
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'
2455 )
2452 ,p_value_2 => xla_lookups_pkg.get_meaning(
2453 'XLA_OWNER_TYPE'
2454 ,l_component_type_code
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_000004_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
2562 ,p_token_4 => 'PAD_OWNER'
2563 ,p_value_4 => xla_lookups_pkg.get_meaning(
2564 'XLA_OWNER_TYPE'
2565 ,xla_ae_journal_entry_pkg.g_cache_pad.product_rule_type_code
2569 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id
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
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_000004_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
2695 --
2692 ---------------------------------------------------------------------------------------------------------------
2693
2694
2696 -- bulk performance
2697 --
2698 l_balance_type_code VARCHAR2(1);
2699 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
2700 l_log_module VARCHAR2(240);
2701
2702 --
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;
2832 --
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
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) :=
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
2843
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
2922 IF xla_accounting_cache_pkg.GetValueChar
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
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;
2937 -- No business flow processing for business flow method of NONE.
2938 END IF;
2939
2940 --
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
3032
3029 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
3030 ,p_ae_header_id => NULL
3031 );
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 ----------------------------------------------------------------------------------
3057 -- 4219869 Business Flow
3058 -- Update journal entry status -- Need to generate this within IF <condition>
3059 ----------------------------------------------------------------------------------
3060 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
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;
3131 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
3128 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
3129
3130 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
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_000004_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
3185 , p_source_6 IN NUMBER
3186 --Exchange Rate Variance Flag
3187 , p_source_21 IN VARCHAR2
3188 --Reversing Line Flag
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
3268 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
3265 l_bflow_applied_to_amt NUMBER; -- 5132302
3266 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
3267
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
3329 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
3330 l_budgetary_control_flag := 'N';
3331
3332 l_bflow_applied_to_amt_idx := NULL; -- 5132302
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'
3402 --
3399 , p_ae_header_id => l_ae_header_id
3400 );
3401
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);
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';
3456 l_rec_acct_attrs.array_char_value(13) := p_source_25;
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);
3496 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
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 ---------------------------------------------------------------------------------------------------------------
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
3565 , p_side => 'NA'
3566 );
3567
3568
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
3607 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
3604 )
3605 ,p_token_4 => 'PRODUCT_NAME'
3606 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
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);
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
3677
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) :=
3701
3698 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
3699
3700 END IF;
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_000004_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
3813 l_segment VARCHAR2(30);
3814 l_ccid NUMBER;
3815 l_adr_transaction_coa_id NUMBER;
3816 l_adr_accounting_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;
3841 l_recog_line_1 NUMBER;
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;
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(
3950 p_natural_side_code => 'C'
3951 , p_gain_or_loss_flag => 'Y'
3952 , p_gl_transfer_mode_code => 'S'
3953 , p_acct_entry_type_code => 'A'
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
3972 ,p_entity_code => l_entity_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
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';
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;
4063 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
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);
4070 l_rec_acct_attrs.array_char_value(30) := p_source_34;
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';
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
4182 p_lookup_type => 'XLA_OWNER_TYPE'
4179 )
4180 ,p_token_3 => 'OWNER'
4181 ,p_value_3 => xla_lookups_pkg.get_meaning(
4183 ,p_lookup_code => l_component_type_code
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
4275 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
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) :=
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
4280 END IF;
4281
4282 -- 4955764
4283 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
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_000004_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
4411 l_acc_rev_flag VARCHAR2(1);
4408 -- 4262811 Variables ------------------------------------------------------------------------------------------
4409 l_entered_amt_idx NUMBER;
4410 l_accted_amt_idx NUMBER;
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
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
4431 l_same_currency BOOLEAN; -- 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
4542 --
4539 --
4540 --
4541 -- set accounting line type info
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;
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
4573 --
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;
4642 l_rec_acct_attrs.array_char_value(26) := p_source_29;
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';
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')
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
4669 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
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
4758 ,l_entity_code
4755 ,l_component_type_code
4756 ,l_component_appl_id
4757 ,l_amb_context_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.
4788 ------------------------------------------------------------------------------------------------
4789 XLA_AE_LINES_PKG.ValidateCurrentLine;
4790
4791 ------------------------------------------------------------------------------------
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
4850 -- 4262811a Switch Sign
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 ---------------------------------------------------------------------------------------------------
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_000004_PKG.AcctLineType_23');
4901 END AcctLineType_23;
4902 --
4903
4904 ---------------------------------------
4905 --
4906 -- PRIVATE FUNCTION
4907 -- AcctLineType_24
4908 --
4909 ---------------------------------------
4910 PROCEDURE AcctLineType_24 (
4911 p_application_id IN NUMBER
4912 ,p_event_id IN NUMBER
4913 ,p_calculate_acctd_flag IN VARCHAR2
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 ------------------------------------------------------------------------------------------
4980 l_accrual_line_num NUMBER;
4977 l_entered_amt_idx NUMBER;
4978 l_accted_amt_idx NUMBER;
4979 l_acc_rev_flag VARCHAR2(1);
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
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';
5059
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
5117 ,p_accounting_line_type_code => l_component_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
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 ---------------------------------------------------------------------------------------------------------------
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;
5187
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;
5230 l_ccid := AcctDerRule_17(
5227 --
5228 --
5229
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
5300 IF (C_LEVEL_ERROR>= g_log_level) THEN
5301 trace
5302 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
5303 ,p_level => C_LEVEL_ERROR
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>
5329 ,p_balance_type_code => l_balance_type_code
5326 ----------------------------------------------------------------------------------
5327 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
5328 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
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
5416 (p_msg => 'END of AcctLineType_24'
5417 ,p_level => C_LEVEL_PROCEDURE
5418 ,p_module => l_log_module);
5419 END IF;
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_000004_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
5444
5441 ,p_actual_flag IN OUT VARCHAR2
5442 ,p_balance_type_code OUT VARCHAR2
5443 ,p_gain_or_loss_ref OUT VARCHAR2
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
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
5562 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
5563
5564 ---------------------------------------------------------------------------------------------------------------
5565
5566
5567 --
5571 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
5568 -- bulk performance
5569 --
5570 l_balance_type_code VARCHAR2(1);
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;
5795 l_rec_acct_attrs.array_char_value(39) := p_source_55;
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';
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';
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;
5802 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
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
5916 ,p_token_1 => 'LINE_NUMBER'
5913 xla_accounting_err_pkg.build_message
5914 (p_appli_s_name => 'XLA'
5915 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
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
5922 ,l_component_type_code
5923 ,l_component_appl_id
5924 ,l_amb_context_code
5925 ,l_entity_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;
6006 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
6003
6004 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
6005
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) :=
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;
6024 -- 5132302
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_000004_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
6132 , p_source_49 IN VARCHAR2
6129 --Project Encumbrance Applied to Distribution Type
6130 , p_source_48 IN VARCHAR2
6131 --Project Encumbrance Applied to Entity Code
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;
6168 l_adr_accounting_coa_id NUMBER;
6169 l_adr_flexfield_segment_code VARCHAR2(30);
6170 l_adr_flex_value_set_id NUMBER;
6171 l_adr_value_type_code VARCHAR2(30);
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
6262 l_budgetary_control_flag := 'N';
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
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 --
6311 xla_ae_lines_pkg.SetAcctLineType
6312 (p_component_type => l_component_type
6313 ,p_event_type_code => l_event_type_code
6314 ,p_line_definition_owner_code => l_line_definition_owner_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;
6380 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
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';
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;
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';
6418 l_rec_acct_attrs.array_num_value(30) := p_source_2;
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);
6464 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
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 ---------------------------------------------------------------------------------------------------------------
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'
6527 , p_adr_type_code => 'S'
6528 , p_component_type => l_component_type
6529 , p_component_code => l_component_code
6530 , p_component_type_code => l_component_type_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'
6577 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
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
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
6634 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
6635 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
6636
6637 --
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) :=
6675 XLA_AE_LINES_PKG.ValidateCurrentLine;
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
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_000004_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
6770 , p_source_48 IN VARCHAR2
6771 --Project Encumbrance Applied to Entity Code
6772 , p_source_49 IN VARCHAR2
6773 --Project Encumbrance Applied to First Distribution ID
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
6819
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
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
6908 l_acc_rev_flag := NULL; -- 4262811
6909 l_accrual_line_num := NULL; -- 4262811
6910 l_tmp_amt := NULL; -- 4262811
6911 --
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 --
6951 xla_ae_lines_pkg.SetAcctLineType
6948 --
6949 -- set accounting line type info
6950 --
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;
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';
7034 l_rec_acct_attrs.array_char_value(18) := p_source_31;
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);
7050 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
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';
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
7122 ,p_business_class_code => l_bflow_class_code
7123 ,p_balance_type => l_balance_type_code);
7124 ELSE
7125 NULL;
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 --
7144 )
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')
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 ------------------------------------------------------------------------------------
7242 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
7243
7247 ----------------------------------------------------------------------------------
7244 ----------------------------------------------------------------------------------
7245 -- 4219869 Business Flow
7246 -- Update journal entry status -- Need to generate this within IF <condition>
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_000004_PKG.AcctLineType_27');
7348 END AcctLineType_27;
7349 --
7350
7351 ---------------------------------------
7352 --
7353 -- PRIVATE FUNCTION
7354 -- AcctLineType_28
7355 --
7356 ---------------------------------------
7357 PROCEDURE AcctLineType_28 (
7361 ,p_calculate_g_l_flag IN VARCHAR2
7358 p_application_id IN NUMBER
7359 ,p_event_id IN NUMBER
7360 ,p_calculate_acctd_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
7369 , p_source_3 IN NUMBER
7370 --Allow Account Override Flag
7371 , p_source_4 IN VARCHAR2
7372 --Cost Clearing CCID
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
7486
7483 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
7484
7485 ---------------------------------------------------------------------------------------------------------------
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'
7512 ,p_level => C_LEVEL_PROCEDURE
7513 ,p_module => l_log_module);
7514
7515 END IF;
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 --
7625 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
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) :=
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;
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';
7650 l_rec_acct_attrs.array_num_value(6) := p_source_45;
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;
7714 l_rec_acct_attrs.array_num_value(38) := 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';
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;
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
7740 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
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 --
7822 -- Bug 4922099
7819 --
7820 END IF;
7821 --
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'
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
7858 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_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;
7919 -- Update the line information that should be overwritten
7916 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
7917
7918 --
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
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
7963 END IF;
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_000004_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);
8045 l_line_definition_code VARCHAR2(30);
8042 l_event_class_code VARCHAR2(30);
8043 l_ae_header_id NUMBER;
8044 l_event_type_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 --
8112 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
8113
8114 trace
8115 (p_msg => 'BEGIN of AcctLineType_29'
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;
8174 p_actual_flag :='A';
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
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';
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;
8255 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
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
8287 THEN
8284 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
8285 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
8286 )
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
8373 ,l_event_class_code
8374 )
8375 ,p_token_3 => 'OWNER'
8376 ,p_value_3 => xla_lookups_pkg.get_meaning(
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 ------------------------------------------------------------------------------------------------
8402 ------------------------------------------------------------------------------------------------
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.
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
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
8475 END IF;
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);
8510 WHEN xla_exceptions_pkg.application_exception THEN
8507 END IF;
8508 --
8509 EXCEPTION
8511 RAISE;
8512 WHEN OTHERS THEN
8513 xla_exceptions_pkg.raise_message
8514 (p_location => 'XLA_00275_AAD_S_000004_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
8615
8616 ---------------------------------------------------------------------------------------------------------------
8617
8618
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 --
8651 l_component_appl_id := 275;
8648 l_component_type := 'AMB_JLT';
8649 l_component_code := 'PA_EVENT_REV';
8650 l_component_type_code := 'S';
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) :=
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
8767
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);
8779 l_rec_acct_attrs.array_char_value(3) := p_source_36;
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';
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'
8894 l_component_type
8891 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
8892 ,p_token_2 => 'LINE_TYPE_NAME'
8893 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
8895 ,l_component_code
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
8984 --
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
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 ---------------------------------------------------------------------------------------------------
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
8994 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
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_000004_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);
9116 l_event_class_code VARCHAR2(30);
9113 l_component_appl_id INTEGER;
9114 l_amb_context_code VARCHAR2(30);
9115 l_entity_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
9135 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
9136 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9137
9138 -- 4262811 Variables ------------------------------------------------------------------------------------------
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
9247 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
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
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
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
9281 ,p_amb_context_code => l_amb_context_code
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';
9357 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
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;
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);
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
9384 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
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 (
9463 ,l_component_appl_id
9460 l_component_type
9461 ,l_component_code
9462 ,l_component_type_code
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
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 ------------------------------------------------------------------------------------------------
9496 -- No ValidateCurrentLine for business flow method of Prior Entry
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 --
9554 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
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
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_000004_PKG.AcctLineType_31');
9608 END AcctLineType_31;
9609 --
9610
9611 ---------------------------------------
9612 --
9613 -- PRIVATE FUNCTION
9614 -- AcctLineType_32
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
9685 l_entered_amt_idx NUMBER;
9682 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
9683
9684 -- 4262811 Variables ------------------------------------------------------------------------------------------
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;
9758 l_adr_flex_value_set_id := NULL;
9759 l_adr_value_type_code := NULL;
9760 l_adr_value_combination_id := NULL;
9761 l_adr_value_segment_code := 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 --
9820 (p_component_type => l_component_type
9817 -- set accounting line type info
9818 --
9819 xla_ae_lines_pkg.SetAcctLineType
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
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
9891 ---------------------------------------------------------------------------------------------------------------
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
9930 (NVL(l_actual_upg_option, 'N') = 'O') OR
9927 -- Bug 4922099
9928 --
9929 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') 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
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
10006 );
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 ------------------------------------------------------------------------------------
10032 -- 4219869 Business Flow
10029 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
10030
10031 ----------------------------------------------------------------------------------
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
10111 -----------------------------------------------------------------------------------------
10112 -- 4262811 Multiperiod Accounting
10113 -----------------------------------------------------------------------------------------
10114 -- No MPA option is assigned.
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_000004_PKG.AcctLineType_32');
10135 END AcctLineType_32;
10136 --
10137
10138 ---------------------------------------
10139 --
10143 ---------------------------------------
10140 -- PRIVATE FUNCTION
10141 -- AcctLineType_33
10142 --
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
10254 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
10255
10256 ---------------------------------------------------------------------------------------------------------------
10257
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);
10273 BEGIN
10270 l_enc_upg_option VARCHAR2(1);
10271
10272 --
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
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
10402 -- 4955764
10403 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
10407
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
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);
10489 (p_source_code => 'LEDGER_CATEGORY_CODE'
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
10490 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
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
10494 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
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
10594 ------------------------------------------------------------------------------------
10591 ------------------------------------------------------------------------------------
10592 -- 4219869 Business Flow
10593 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
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')
10603 ,p_balance_type_code => l_balance_type_code
10604 );
10605
10606 -------------------------------------------------------------------------------------------
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
10699 xla_exceptions_pkg.raise_message
10696 WHEN xla_exceptions_pkg.application_exception THEN
10697 RAISE;
10698 WHEN OTHERS THEN
10700 (p_location => 'XLA_00275_AAD_S_000004_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
10732 , p_source_37 IN VARCHAR2
10733 --Crediting Revenue Flag
10734 , p_source_38 IN VARCHAR2
10735 --Revenue First Distribution ID
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';
10837 l_amb_context_code := 'DEFAULT';
10834 l_component_code := 'PA_INV_REV';
10835 l_component_type_code := 'S';
10836 l_component_appl_id := 275;
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
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,'
10872 ') = 'Revenue - Normal Revenue' AND
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);
10964 l_rec_acct_attrs.array_char_value(3) := p_source_36;
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';
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
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')
10994 AND l_bflow_method_code = 'PRIOR_ENTRY'
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
11080 ,l_component_code
11077 ,p_token_2 => 'LINE_TYPE_NAME'
11078 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
11079 l_component_type
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 --
11110 ------------------------------------------------------------------------------------------------
11111 -- 4219869 Business Flow
11112 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
11113 -- Prior Entry. Currently, the following code is always generated.
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
11169 --
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
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
11225 xla_exceptions_pkg.raise_message
11226 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_34');
11227 END AcctLineType_34;
11228 --
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);
11295 l_adr_value_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;
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';
11371 l_segment := NULL;
11372 l_ccid := NULL;
11373 l_adr_transaction_coa_id := NULL;
11374 l_adr_accounting_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 ,
11424 --
11421 p_header_num => 0); -- 4262811
11422 --
11423 -- set accounting line options
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';
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);
11505 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
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
11528 xla_ae_lines_pkg.BflowUpgEntry
11525 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
11526 )
11527 THEN
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
11619 )
11620 ,p_token_4 => 'PRODUCT_NAME'
11621 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
11622 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
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 --
11641 -- Prior Entry. Currently, the following code is always generated.
11638 ------------------------------------------------------------------------------------------------
11639 -- 4219869 Business Flow
11640 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
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
11722 XLA_AE_LINES_PKG.ValidateCurrentLine;
11723 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
11724
11725 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
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
11740
11737 END IF;
11738 END IF;
11739 --
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_000004_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 --
11868 l_actual_upg_option VARCHAR2(1);
11869 l_enc_upg_option VARCHAR2(1);
11870
11871 --
11872 BEGIN
11873 --
11874 IF g_log_enabled THEN
11878 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
11875 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_36';
11876 END IF;
11877 --
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) :=
12006
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
12007 --
12008 -- set accounting attributes for the line type
12009 --
12010 l_entered_amt_idx := 4;
12011 l_accted_amt_idx := 10;
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);
12015 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
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')
12120 THEN
12117 ) AND
12118 (l_bflow_method_code = 'PRIOR_ENTRY')
12119 )
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 (
12133 l_component_type
12134 ,l_component_code
12135 ,l_component_type_code
12136 ,l_component_appl_id
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 --
12216
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;
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
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) :=
12234 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
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_000004_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
12340 IS
12337 , p_source_67 IN VARCHAR2
12338 , p_source_67_meaning IN VARCHAR2
12339 )
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
12370 -- 4262811 Variables ------------------------------------------------------------------------------------------
12371 l_entered_amt_idx NUMBER;
12372 l_accted_amt_idx NUMBER;
12373 l_acc_rev_flag VARCHAR2(1);
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
12466 ') = 'COST_TRANSFER' OR
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,'
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
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
12513 ,p_entity_code => l_entity_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';
12580 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
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;
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);
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 ---------------------------------------------------------------------------------------------------------------
12617 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
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
12683 , p_component_code => l_component_code
12680 , p_adr_code => 'PA_PROV_COST_REV_ACCT_RULE'
12681 , p_adr_type_code => 'S'
12682 , p_component_type => l_component_type
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
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
12732 ,p_ae_header_id => NULL
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
12777 WHEN OTHERS THEN
12774 l_acc_rev_flag := 'N';
12775 END IF;
12776 EXCEPTION
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')
12834 ,p_balance_type_code => l_balance_type_code);
12835
12836 END IF;
12837
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_000004_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
12898 --Exchange Rate Type
12895 , p_source_27 IN DATE
12896 --Exchange Rate
12897 , p_source_28 IN NUMBER
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 ---------------------------------------------------------------------------------------------------------------
12977
12978
12979 --
12980 -- bulk performance
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;
13028 l_adr_value_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;
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) :=
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
13126
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;
13148 l_rec_acct_attrs.array_num_value(8) := p_source_28;
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';
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
13217 ,p_balance_type => l_balance_type_code);
13218 ELSE
13219 NULL;
13220 -- No business flow processing for business flow method of NONE.
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 --
13246 , p_ae_header_id => l_ae_header_id
13243
13244 l_ccid := AcctDerRule_8(
13245 p_application_id => p_application_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>
13335 ------------------------------------------------------------------------------------
13336 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
13337
13338 ----------------------------------------------------------------------------------
13339 -- 4219869 Business Flow
13343 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
13340 -- Update journal entry status -- Need to generate this within IF <condition>
13341 ----------------------------------------------------------------------------------
13342 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
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_000004_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';
13594 l_event_class_code := 'BORROWED_AND_LENT';
13591 l_component_appl_id := 275;
13592 l_amb_context_code := 'DEFAULT';
13593 l_entity_code := 'EXPENDITURES';
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';
13600 l_segment := NULL;
13601 l_ccid := NULL;
13602 l_adr_transaction_coa_id := NULL;
13603 l_adr_accounting_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;
13717 l_rec_acct_attrs.array_num_value(4) := p_source_41;
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';
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';
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;
13730 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
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.
13801 -- call analytical criteria
13798 END IF;
13799
13800 --
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
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'
13840 , p_component_type => l_component_type
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.
13910 ------------------------------------------------------------------------------------
13907 ------------------------------------------------------------------------------------------------
13908 XLA_AE_LINES_PKG.ValidateCurrentLine;
13909
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 ------------------------------------------------------------------------------
13942 -- To allow MPA report to determine if it should generate report process
13943 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
13944 ------------------------------------------------------------------------------------------
13945
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
14018 xla_exceptions_pkg.raise_message
14015 WHEN xla_exceptions_pkg.application_exception THEN
14016 RAISE;
14017 WHEN OTHERS THEN
14019 (p_location => 'XLA_00275_AAD_S_000004_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
14074 , p_source_43 IN NUMBER
14075 --Transfer Amount Type
14076 , p_source_67 IN VARCHAR2
14077 , p_source_67_meaning 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 --
14150 --
14147 l_actual_upg_option VARCHAR2(1);
14148 l_enc_upg_option VARCHAR2(1);
14149
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;
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
14215 p_actual_flag :='A';
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
14280 -- 4458381 Public Sector Enh
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
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';
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;
14330 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
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'
14365 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
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
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'
14448 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
14449 l_component_type
14450 ,l_component_code
14451 ,l_component_type_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
14473 ,p_level => C_LEVEL_ERROR
14470 IF (C_LEVEL_ERROR>= g_log_level) THEN
14471 trace
14472 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
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 ---------------------------------------------------------------------------------------------------
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
14549 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
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
14576 -- No MPA option is assigned.
14573 -----------------------------------------------------------------------------------------
14574 -- 4262811 Multiperiod Accounting
14575 -----------------------------------------------------------------------------------------
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_000004_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;
14685 l_accted_amt_idx NUMBER;
14686 l_acc_rev_flag VARCHAR2(1);
14687 l_accrual_line_num NUMBER;
14688 l_tmp_amt 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
14709
14706 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
14707
14708 ---------------------------------------------------------------------------------------------------------------
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
14824 --
14825 xla_ae_lines_pkg.SetAcctClass(
14826 p_accounting_class_code => 'COST'
14827 , p_ae_header_id => l_ae_header_id
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;
14841 --
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
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'
15038 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
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
15039 ,p_ae_header_id => NULL
15040 );
15041
15042 IF (C_LEVEL_ERROR>= g_log_level) THEN
15043 trace
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) :=
15136 XLA_AE_LINES_PKG.ValidateCurrentLine;
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
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;
15152 --
15153
15154 --
15155 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
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_000004_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;
15270 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
15267 l_recog_line_1 NUMBER;
15268 l_recog_line_2 NUMBER;
15269
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;
15301 --
15302 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
15303
15304 trace
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'
15401 --
15398 , p_ae_header_id => l_ae_header_id
15399 );
15400
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);
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';
15439 l_rec_acct_attrs.array_char_value(5) := p_source_25;
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);
15495 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
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 ---------------------------------------------------------------------------------------------------------------
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(
15542 p_application_id => p_application_id
15543 , p_ae_header_id => l_ae_header_id
15544 , p_source_3 => p_source_3
15545 , p_source_4 => p_source_4
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'
15606 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
15603 ,p_lookup_code => l_component_type_code
15604 )
15605 ,p_token_4 => 'PRODUCT_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
15647 -------------------------------------------------------------------------------------------
15648 BEGIN
15649 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
15650 (g_array_event(p_event_id).array_value_num('header_index'));
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
15700 END IF;
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
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_000004_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
15777 --Exchange Rate
15778 , p_source_28 IN NUMBER
15779 --Exchange Rate Type
15780 , p_source_29 IN VARCHAR2
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;
15837 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
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;
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
15915 l_tmp_amt := NULL; -- 4262811
15916 --
15917
15918 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
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
15964 --
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);
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;
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';
16038 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
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';
16059 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
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);
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'
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
16161 ,p_token_2 => 'LINE_TYPE_NAME'
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
16173 p_lookup_type => 'XLA_OWNER_TYPE'
16170 )
16171 ,p_token_3 => 'OWNER'
16172 ,p_value_3 => xla_lookups_pkg.get_meaning(
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
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;
16258 ELSE
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) :=
16267 -- 5132302
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;
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_000004_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
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
16399 l_entered_amt_idx NUMBER;
16396 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
16397
16398 -- 4262811 Variables ------------------------------------------------------------------------------------------
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
16531 ,p_event_type_code => l_event_type_code
16528 --
16529 xla_ae_lines_pkg.SetAcctLineType
16530 (p_component_type => l_component_type
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
16535 ,p_accounting_line_type_code => l_component_type_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;
16628 l_rec_acct_attrs.array_char_value(26) := p_source_29;
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';
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);
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
16638 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
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
16744 ,l_entity_code
16741 ,l_component_type_code
16742 ,l_component_appl_id
16743 ,l_amb_context_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 )
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
16755 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_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;
16837 ---------------------------------------------------------------------------------------------------
16834 ELSE
16835 ---------------------------------------------------------------------------------------------------
16836 -- 4262811a Switch Sign
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;
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')
16859 ,p_balance_type_code => l_balance_type_code);
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_000004_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);
16968 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
16965 l_adr_value_combination_id NUMBER;
16966 l_adr_value_segment_code VARCHAR2(30);
16967
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
16998 ---------------------------------------------------------------------------------------------------------------
16999
17000
17001 --
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'
17093 , p_merge_duplicate_code => 'N'
17090 , p_gl_transfer_mode_code => 'S'
17091 , p_acct_entry_type_code => 'A'
17092 , p_switch_side_flag => 'Y'
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
17141 -- 4458381 Public Sector Enh
17142
17143 --
17144 -- set accounting attributes for the line type
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;
17194 l_rec_acct_attrs.array_char_value(23) := p_source_25;
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';
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;
17236 -- No business flow processing for business flow method of NONE.
17237 END IF;
17238
17239 --
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
17312 ,l_component_code
17309 ,p_token_2 => 'LINE_TYPE_NAME'
17310 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17311 l_component_type
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;
17354
17355 ----------------------------------------------------------------------------------
17356 -- 4219869 Business Flow
17357 -- Update journal entry status -- Need to generate this within IF <condition>
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
17401 --
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
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_000004_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
17478 --Allow Account Override Flag
17479 , p_source_4 IN VARCHAR2
17480 --Adjustment Cost CCID
17481 , p_source_5 IN NUMBER
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 )
17514 IS
17515
17516 l_component_type VARCHAR2(80);
17517 l_component_code VARCHAR2(30);
17518 l_component_type_code VARCHAR2(1);
17519 l_component_appl_id INTEGER;
17520 l_amb_context_code VARCHAR2(30);
17521 l_entity_code VARCHAR2(30);
17522 l_event_class_code VARCHAR2(30);
17523 l_ae_header_id NUMBER;
17527 --
17524 l_event_type_code VARCHAR2(30);
17525 l_line_definition_code VARCHAR2(30);
17526 l_line_definition_owner_code VARCHAR2(1);
17528 -- adr variables
17529 l_segment VARCHAR2(30);
17530 l_ccid NUMBER;
17531 l_adr_transaction_coa_id NUMBER;
17532 l_adr_accounting_coa_id NUMBER;
17533 l_adr_flexfield_segment_code VARCHAR2(30);
17534 l_adr_flex_value_set_id NUMBER;
17535 l_adr_value_type_code VARCHAR2(30);
17536 l_adr_value_combination_id NUMBER;
17537 l_adr_value_segment_code VARCHAR2(30);
17538
17539 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
17540 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
17541 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
17542 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
17543
17544 -- 4262811 Variables ------------------------------------------------------------------------------------------
17545 l_entered_amt_idx NUMBER;
17546 l_accted_amt_idx NUMBER;
17547 l_acc_rev_flag VARCHAR2(1);
17548 l_accrual_line_num NUMBER;
17549 l_tmp_amt NUMBER;
17550 l_acc_rev_natural_side_code VARCHAR2(1);
17551
17552 l_num_entries NUMBER;
17553 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
17554 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
17555 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
17556 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
17557 l_recog_line_1 NUMBER;
17558 l_recog_line_2 NUMBER;
17559
17560 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
17561 l_bflow_applied_to_amt NUMBER; -- 5132302
17562 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
17563
17564 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
17565
17566 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
17567 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
17568
17569 ---------------------------------------------------------------------------------------------------------------
17570
17571
17572 --
17573 -- bulk performance
17574 --
17575 l_balance_type_code VARCHAR2(1);
17576 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
17577 l_log_module VARCHAR2(240);
17578
17579 --
17580 -- Upgrade strategy
17581 --
17582 l_actual_upg_option VARCHAR2(1);
17583 l_enc_upg_option VARCHAR2(1);
17584
17585 --
17586 BEGIN
17587 --
17588 IF g_log_enabled THEN
17589 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_46';
17590 END IF;
17591 --
17592 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
17593
17594 trace
17595 (p_msg => 'BEGIN of AcctLineType_46'
17596 ,p_level => C_LEVEL_PROCEDURE
17597 ,p_module => l_log_module);
17598
17599 END IF;
17600 --
17601 l_component_type := 'AMB_JLT';
17602 l_component_code := 'PA_RAW_COST';
17603 l_component_type_code := 'S';
17604 l_component_appl_id := 275;
17605 l_amb_context_code := 'DEFAULT';
17606 l_entity_code := 'EXPENDITURES';
17607 l_event_class_code := 'MISC_COST';
17608 l_event_type_code := 'MISC_COST_ALL';
17609 l_line_definition_owner_code := 'S';
17610 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
17611 --
17612 l_balance_type_code := 'A';
17613 l_segment := NULL;
17614 l_ccid := NULL;
17615 l_adr_transaction_coa_id := NULL;
17616 l_adr_accounting_coa_id := NULL;
17617 l_adr_flexfield_segment_code := NULL;
17618 l_adr_flex_value_set_id := NULL;
17619 l_adr_value_type_code := NULL;
17620 l_adr_value_combination_id := NULL;
17621 l_adr_value_segment_code := NULL;
17622
17623 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
17624 l_bflow_class_code := ''; -- 4219869 Business Flow
17625 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
17626 l_budgetary_control_flag := 'N';
17627
17628 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17629 l_bflow_applied_to_amt := NULL; -- 5132302
17630 l_entered_amt_idx := NULL; -- 4262811
17631 l_accted_amt_idx := NULL; -- 4262811
17632 l_acc_rev_flag := NULL; -- 4262811
17633 l_accrual_line_num := NULL; -- 4262811
17634 l_tmp_amt := NULL; -- 4262811
17635 --
17636
17637 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
17638 l_balance_type_code <> 'B' THEN
17639
17640 --
17641 XLA_AE_LINES_PKG.SetNewLine;
17642
17643 p_balance_type_code := l_balance_type_code;
17644 -- set the flag so later we will know whether the gain loss line needs to be created
17645
17646 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
17647 p_actual_flag :='A';
17648 END IF;
17649
17650 --
17654 p_header_num => 0); -- 4262811
17651 -- bulk performance
17652 --
17653 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
17655 --
17656 -- set accounting line options
17657 --
17658 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
17659 p_natural_side_code => 'D'
17660 , p_gain_or_loss_flag => 'N'
17661 , p_gl_transfer_mode_code => 'S'
17662 , p_acct_entry_type_code => 'A'
17663 , p_switch_side_flag => 'Y'
17664 , p_merge_duplicate_code => 'N'
17665 );
17666 --
17667 l_acc_rev_natural_side_code := 'C'; -- 4262811
17668 --
17669 --
17670 -- set accounting line type info
17671 --
17672 xla_ae_lines_pkg.SetAcctLineType
17673 (p_component_type => l_component_type
17674 ,p_event_type_code => l_event_type_code
17675 ,p_line_definition_owner_code => l_line_definition_owner_code
17676 ,p_line_definition_code => l_line_definition_code
17677 ,p_accounting_line_code => l_component_code
17678 ,p_accounting_line_type_code => l_component_type_code
17679 ,p_accounting_line_appl_id => l_component_appl_id
17680 ,p_amb_context_code => l_amb_context_code
17681 ,p_entity_code => l_entity_code
17682 ,p_event_class_code => l_event_class_code);
17683 --
17684 -- set accounting class
17685 --
17686 xla_ae_lines_pkg.SetAcctClass(
17687 p_accounting_class_code => 'COST'
17688 , p_ae_header_id => l_ae_header_id
17689 );
17690
17691 --
17692 -- set rounding class
17693 --
17694 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
17695 'COST';
17696
17697 --
17698 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
17699 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
17700 --
17701 -- bulk performance
17702 --
17703 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
17704
17705 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
17706 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
17707
17708 -- 4955764
17709 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17710 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
17711
17712 -- 4458381 Public Sector Enh
17713
17714 --
17715 -- set accounting attributes for the line type
17716 --
17717 l_entered_amt_idx := 22;
17718 l_accted_amt_idx := 27;
17719 l_bflow_applied_to_amt_idx := NULL; -- 5132302
17720 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
17721 l_rec_acct_attrs.array_char_value(1) := p_source_22;
17722 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
17723 l_rec_acct_attrs.array_char_value(2) := p_source_23;
17724 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
17725 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
17726 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
17727 l_rec_acct_attrs.array_num_value(4) := p_source_24;
17728 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
17729 l_rec_acct_attrs.array_char_value(5) := p_source_25;
17730 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
17731 l_rec_acct_attrs.array_num_value(6) := p_source_26;
17732 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
17733 l_rec_acct_attrs.array_date_value(7) := p_source_27;
17734 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
17735 l_rec_acct_attrs.array_num_value(8) := p_source_28;
17736 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
17737 l_rec_acct_attrs.array_char_value(9) := p_source_29;
17738 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
17739 l_rec_acct_attrs.array_char_value(10) := p_source_30;
17740 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
17741 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
17742 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
17743 l_rec_acct_attrs.array_num_value(12) := p_source_24;
17744 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
17745 l_rec_acct_attrs.array_char_value(13) := p_source_25;
17746 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
17747 l_rec_acct_attrs.array_num_value(14) := p_source_26;
17748 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
17749 l_rec_acct_attrs.array_date_value(15) := p_source_27;
17750 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
17751 l_rec_acct_attrs.array_num_value(16) := p_source_28;
17752 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
17753 l_rec_acct_attrs.array_char_value(17) := p_source_29;
17754 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
17755 l_rec_acct_attrs.array_char_value(18) := p_source_31;
17759 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
17756 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
17757 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
17758 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
17760 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
17761 l_rec_acct_attrs.array_char_value(21) := p_source_34;
17762 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
17763 l_rec_acct_attrs.array_num_value(22) := p_source_24;
17764 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
17765 l_rec_acct_attrs.array_char_value(23) := p_source_25;
17766 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
17767 l_rec_acct_attrs.array_date_value(24) := p_source_27;
17768 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
17769 l_rec_acct_attrs.array_num_value(25) := p_source_28;
17770 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
17771 l_rec_acct_attrs.array_char_value(26) := p_source_29;
17772 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
17773 l_rec_acct_attrs.array_num_value(27) := p_source_26;
17774 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
17775 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
17776 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
17777 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
17778 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
17779 l_rec_acct_attrs.array_char_value(30) := p_source_34;
17780
17781 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
17782 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
17783
17784 ---------------------------------------------------------------------------------------------------------------
17785 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
17786 ---------------------------------------------------------------------------------------------------------------
17787 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
17788
17789 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17790 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
17791
17792 IF xla_accounting_cache_pkg.GetValueChar
17793 (p_source_code => 'LEDGER_CATEGORY_CODE'
17794 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
17795 AND l_bflow_method_code = 'PRIOR_ENTRY'
17796 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
17797 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
17798 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
17799 )
17800 THEN
17801 xla_ae_lines_pkg.BflowUpgEntry
17802 (p_business_method_code => l_bflow_method_code
17803 ,p_business_class_code => l_bflow_class_code
17804 ,p_balance_type => l_balance_type_code);
17805 ELSE
17806 NULL;
17807 -- No business flow processing for business flow method of NONE.
17808 END IF;
17809
17810 --
17811 -- call analytical criteria
17812 --
17813
17814 --
17815 -- call description
17816 --
17817 -- No description or it is inherited.
17818 --
17819 -- call ADRs
17820 -- Bug 4922099
17821 --
17822 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
17823 (NVL(l_actual_upg_option, 'N') = 'O') OR
17824 (NVL(l_enc_upg_option, 'N') = 'O')
17825 )
17826 THEN
17827 NULL;
17828 --
17829 --
17830
17831 l_ccid := AcctDerRule_3(
17832 p_application_id => p_application_id
17833 , p_ae_header_id => l_ae_header_id
17834 , p_source_3 => p_source_3
17835 , p_source_4 => p_source_4
17836 , p_source_5 => p_source_5
17837 , x_transaction_coa_id => l_adr_transaction_coa_id
17838 , x_accounting_coa_id => l_adr_accounting_coa_id
17839 , x_value_type_code => l_adr_value_type_code
17840 , p_side => 'NA'
17841 );
17842
17843 xla_ae_lines_pkg.set_ccid(
17844 p_code_combination_id => l_ccid
17845 , p_value_type_code => l_adr_value_type_code
17846 , p_transaction_coa_id => l_adr_transaction_coa_id
17847 , p_accounting_coa_id => l_adr_accounting_coa_id
17848 , p_adr_code => 'PA_COST_ACCT_RULE'
17849 , p_adr_type_code => 'S'
17850 , p_component_type => l_component_type
17851 , p_component_code => l_component_code
17852 , p_component_type_code => l_component_type_code
17853 , p_component_appl_id => l_component_appl_id
17854 , p_amb_context_code => l_amb_context_code
17855 , p_side => 'NA'
17856 );
17857
17858
17859 --
17860 --
17861 END IF;
17862 --
17863 -- Bug 4922099
17864 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
17865 (NVL(l_enc_upg_option, 'N') = 'O')
17866 ) AND
17867 (l_bflow_method_code = 'PRIOR_ENTRY')
17868 )
17869 THEN
17870 IF
17871 --
17872 1 = 2
17873 --
17877 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17874 THEN
17875 xla_accounting_err_pkg.build_message
17876 (p_appli_s_name => 'XLA'
17878 ,p_token_1 => 'LINE_NUMBER'
17879 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
17880 ,p_token_2 => 'LINE_TYPE_NAME'
17881 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
17882 l_component_type
17883 ,l_component_code
17884 ,l_component_type_code
17885 ,l_component_appl_id
17886 ,l_amb_context_code
17887 ,l_entity_code
17888 ,l_event_class_code
17889 )
17890 ,p_token_3 => 'OWNER'
17891 ,p_value_3 => xla_lookups_pkg.get_meaning(
17892 p_lookup_type => 'XLA_OWNER_TYPE'
17893 ,p_lookup_code => l_component_type_code
17894 )
17895 ,p_token_4 => 'PRODUCT_NAME'
17896 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
17897 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
17898 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
17899 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
17900 ,p_ae_header_id => NULL
17901 );
17902
17903 IF (C_LEVEL_ERROR>= g_log_level) THEN
17904 trace
17905 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
17906 ,p_level => C_LEVEL_ERROR
17907 ,p_module => l_log_module);
17908 END IF;
17909 END IF;
17910 END IF;
17911 --
17912 --
17913 ------------------------------------------------------------------------------------------------
17914 -- 4219869 Business Flow
17915 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
17916 -- Prior Entry. Currently, the following code is always generated.
17917 ------------------------------------------------------------------------------------------------
17918 XLA_AE_LINES_PKG.ValidateCurrentLine;
17919
17920 ------------------------------------------------------------------------------------
17921 -- 4219869 Business Flow
17922 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
17923 ------------------------------------------------------------------------------------
17924 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17925
17926 ----------------------------------------------------------------------------------
17927 -- 4219869 Business Flow
17928 -- Update journal entry status -- Need to generate this within IF <condition>
17929 ----------------------------------------------------------------------------------
17930 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
17931 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
17932 ,p_balance_type_code => l_balance_type_code
17933 );
17934
17935 -------------------------------------------------------------------------------------------
17936 -- 4262811 - Generate the Accrual Reversal lines
17937 -------------------------------------------------------------------------------------------
17938 BEGIN
17939 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
17940 (g_array_event(p_event_id).array_value_num('header_index'));
17941 IF l_acc_rev_flag IS NULL THEN
17942 l_acc_rev_flag := 'N';
17943 END IF;
17944 EXCEPTION
17945 WHEN OTHERS THEN
17946 l_acc_rev_flag := 'N';
17947 END;
17948 --
17949 IF (l_acc_rev_flag = 'Y') THEN
17950
17951 -- 4645092 ------------------------------------------------------------------------------
17952 -- To allow MPA report to determine if it should generate report process
17953 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
17954 ------------------------------------------------------------------------------------------
17955
17956 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
17957 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
17958
17959 --
17960 -- Update the line information that should be overwritten
17961 --
17962 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
17966 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
17963 p_header_num => 1);
17964 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
17965
17967
17968 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
17969 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
17970 END IF;
17971
17972 --
17973 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
17974 --
17975 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
17976 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
17977 ELSE
17978 ---------------------------------------------------------------------------------------------------
17979 -- 4262811a Switch Sign
17980 ---------------------------------------------------------------------------------------------------
17981 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
17982 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17983 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17984 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
17985 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17986 -- 5132302
17987 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
17988 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
17989
17990 END IF;
17991
17992 -- 4955764
17993 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
17994 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
17995
17996
17997 XLA_AE_LINES_PKG.ValidateCurrentLine;
17998 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
17999
18000 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18001 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18002 ,p_balance_type_code => l_balance_type_code);
18003
18004 END IF;
18005
18006 -----------------------------------------------------------------------------------------
18007 -- 4262811 Multiperiod Accounting
18008 -----------------------------------------------------------------------------------------
18009 -- No MPA option is assigned.
18010
18011
18012 END IF;
18013 --
18014
18015 --
18016 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18017 trace
18018 (p_msg => 'END of AcctLineType_46'
18019 ,p_level => C_LEVEL_PROCEDURE
18020 ,p_module => l_log_module);
18021 END IF;
18022 --
18023 EXCEPTION
18024 WHEN xla_exceptions_pkg.application_exception THEN
18025 RAISE;
18026 WHEN OTHERS THEN
18027 xla_exceptions_pkg.raise_message
18028 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_46');
18029 END AcctLineType_46;
18030 --
18031
18032 ---------------------------------------
18033 --
18034 -- PRIVATE FUNCTION
18035 -- AcctLineType_47
18036 --
18037 ---------------------------------------
18038 PROCEDURE AcctLineType_47 (
18039 p_application_id IN NUMBER
18040 ,p_event_id IN NUMBER
18041 ,p_calculate_acctd_flag IN VARCHAR2
18042 ,p_calculate_g_l_flag IN VARCHAR2
18043 ,p_actual_flag IN OUT VARCHAR2
18044 ,p_balance_type_code OUT VARCHAR2
18045 ,p_gain_or_loss_ref OUT VARCHAR2
18046
18047 --Cost CCID
18048 , p_source_3 IN NUMBER
18049 --Allow Account Override Flag
18050 , p_source_4 IN VARCHAR2
18051 --Adjustment Cost CCID
18052 , p_source_5 IN NUMBER
18053 --Cost Clearing CCID
18054 , p_source_6 IN NUMBER
18055 --Reversing Line Flag
18056 , p_source_22 IN VARCHAR2
18057 --Actual Upgrade Credit Accounting Class
18058 , p_source_23 IN VARCHAR2
18059 --Entered Raw Cost
18060 , p_source_24 IN NUMBER
18061 --Entered Currency Code
18062 , p_source_25 IN VARCHAR2
18063 --Accounted Raw Cost
18064 , p_source_26 IN NUMBER
18065 --Exchange Rate Date
18066 , p_source_27 IN DATE
18067 --Exchange Rate
18068 , p_source_28 IN NUMBER
18069 --Exchange Rate Type
18070 , p_source_29 IN VARCHAR2
18071 --Actual Upgrade Debit Accounting Class
18072 , p_source_30 IN VARCHAR2
18073 --Use Actuals Upgrade Attributes Flag
18074 , p_source_31 IN VARCHAR2
18075 --Expenditure Item ID
18076 , p_source_32 IN NUMBER
18077 --Cost Distribution Line Number
18078 , p_source_33 IN NUMBER
18079 --Line Type
18080 , p_source_34 IN VARCHAR2
18081 , p_source_34_meaning IN VARCHAR2
18082 --Reversed Line Number
18083 , p_source_35 IN NUMBER
18084 )
18085 IS
18086
18090 l_component_appl_id INTEGER;
18087 l_component_type VARCHAR2(80);
18088 l_component_code VARCHAR2(30);
18089 l_component_type_code VARCHAR2(1);
18091 l_amb_context_code VARCHAR2(30);
18092 l_entity_code VARCHAR2(30);
18093 l_event_class_code VARCHAR2(30);
18094 l_ae_header_id NUMBER;
18095 l_event_type_code VARCHAR2(30);
18096 l_line_definition_code VARCHAR2(30);
18097 l_line_definition_owner_code VARCHAR2(1);
18098 --
18099 -- adr variables
18100 l_segment VARCHAR2(30);
18101 l_ccid NUMBER;
18102 l_adr_transaction_coa_id NUMBER;
18103 l_adr_accounting_coa_id NUMBER;
18104 l_adr_flexfield_segment_code VARCHAR2(30);
18105 l_adr_flex_value_set_id NUMBER;
18106 l_adr_value_type_code VARCHAR2(30);
18107 l_adr_value_combination_id NUMBER;
18108 l_adr_value_segment_code VARCHAR2(30);
18109
18110 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18111 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18112 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18113 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18114
18115 -- 4262811 Variables ------------------------------------------------------------------------------------------
18116 l_entered_amt_idx NUMBER;
18117 l_accted_amt_idx NUMBER;
18118 l_acc_rev_flag VARCHAR2(1);
18119 l_accrual_line_num NUMBER;
18120 l_tmp_amt NUMBER;
18121 l_acc_rev_natural_side_code VARCHAR2(1);
18122
18123 l_num_entries NUMBER;
18124 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18125 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18126 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18127 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18128 l_recog_line_1 NUMBER;
18129 l_recog_line_2 NUMBER;
18130
18131 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18132 l_bflow_applied_to_amt NUMBER; -- 5132302
18133 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18134
18135 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18136
18137 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18138 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18139
18140 ---------------------------------------------------------------------------------------------------------------
18141
18142
18143 --
18144 -- bulk performance
18145 --
18146 l_balance_type_code VARCHAR2(1);
18147 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18148 l_log_module VARCHAR2(240);
18149
18150 --
18151 -- Upgrade strategy
18152 --
18153 l_actual_upg_option VARCHAR2(1);
18154 l_enc_upg_option VARCHAR2(1);
18155
18156 --
18157 BEGIN
18158 --
18159 IF g_log_enabled THEN
18160 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_47';
18161 END IF;
18162 --
18163 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18164
18165 trace
18166 (p_msg => 'BEGIN of AcctLineType_47'
18167 ,p_level => C_LEVEL_PROCEDURE
18168 ,p_module => l_log_module);
18169
18170 END IF;
18171 --
18172 l_component_type := 'AMB_JLT';
18173 l_component_code := 'PA_RAW_COST_ADJ';
18174 l_component_type_code := 'S';
18175 l_component_appl_id := 275;
18176 l_amb_context_code := 'DEFAULT';
18177 l_entity_code := 'EXPENDITURES';
18178 l_event_class_code := 'USG_COST_ADJ';
18179 l_event_type_code := 'USG_COST_ADJ_ALL';
18180 l_line_definition_owner_code := 'S';
18181 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
18182 --
18183 l_balance_type_code := 'A';
18184 l_segment := NULL;
18185 l_ccid := NULL;
18186 l_adr_transaction_coa_id := NULL;
18187 l_adr_accounting_coa_id := NULL;
18188 l_adr_flexfield_segment_code := NULL;
18189 l_adr_flex_value_set_id := NULL;
18190 l_adr_value_type_code := NULL;
18191 l_adr_value_combination_id := NULL;
18192 l_adr_value_segment_code := NULL;
18193
18194 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18195 l_bflow_class_code := ''; -- 4219869 Business Flow
18196 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18197 l_budgetary_control_flag := 'N';
18198
18199 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18200 l_bflow_applied_to_amt := NULL; -- 5132302
18201 l_entered_amt_idx := NULL; -- 4262811
18202 l_accted_amt_idx := NULL; -- 4262811
18203 l_acc_rev_flag := NULL; -- 4262811
18204 l_accrual_line_num := NULL; -- 4262811
18205 l_tmp_amt := NULL; -- 4262811
18206 --
18207
18211 --
18208 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18209 l_balance_type_code <> 'B' THEN
18210
18212 XLA_AE_LINES_PKG.SetNewLine;
18213
18214 p_balance_type_code := l_balance_type_code;
18215 -- set the flag so later we will know whether the gain loss line needs to be created
18216
18217 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18218 p_actual_flag :='A';
18219 END IF;
18220
18221 --
18222 -- bulk performance
18223 --
18224 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18225 p_header_num => 0); -- 4262811
18226 --
18227 -- set accounting line options
18228 --
18229 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18230 p_natural_side_code => 'D'
18231 , p_gain_or_loss_flag => 'N'
18232 , p_gl_transfer_mode_code => 'S'
18233 , p_acct_entry_type_code => 'A'
18234 , p_switch_side_flag => 'Y'
18235 , p_merge_duplicate_code => 'N'
18236 );
18237 --
18238 l_acc_rev_natural_side_code := 'C'; -- 4262811
18239 --
18240 --
18241 -- set accounting line type info
18242 --
18243 xla_ae_lines_pkg.SetAcctLineType
18244 (p_component_type => l_component_type
18245 ,p_event_type_code => l_event_type_code
18246 ,p_line_definition_owner_code => l_line_definition_owner_code
18247 ,p_line_definition_code => l_line_definition_code
18248 ,p_accounting_line_code => l_component_code
18249 ,p_accounting_line_type_code => l_component_type_code
18250 ,p_accounting_line_appl_id => l_component_appl_id
18251 ,p_amb_context_code => l_amb_context_code
18252 ,p_entity_code => l_entity_code
18253 ,p_event_class_code => l_event_class_code);
18254 --
18255 -- set accounting class
18256 --
18257 xla_ae_lines_pkg.SetAcctClass(
18258 p_accounting_class_code => 'COST'
18259 , p_ae_header_id => l_ae_header_id
18260 );
18261
18262 --
18263 -- set rounding class
18264 --
18265 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18266 'COST';
18267
18268 --
18269 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18270 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18271 --
18272 -- bulk performance
18273 --
18274 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18275
18276 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18277 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18278
18279 -- 4955764
18280 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18281 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18282
18283 -- 4458381 Public Sector Enh
18284
18285 --
18286 -- set accounting attributes for the line type
18287 --
18288 l_entered_amt_idx := 22;
18289 l_accted_amt_idx := 27;
18290 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18291 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18292 l_rec_acct_attrs.array_char_value(1) := p_source_22;
18293 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
18294 l_rec_acct_attrs.array_char_value(2) := p_source_23;
18295 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
18296 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
18297 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
18298 l_rec_acct_attrs.array_num_value(4) := p_source_24;
18299 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
18300 l_rec_acct_attrs.array_char_value(5) := p_source_25;
18301 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
18302 l_rec_acct_attrs.array_num_value(6) := p_source_26;
18303 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
18304 l_rec_acct_attrs.array_date_value(7) := p_source_27;
18305 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
18306 l_rec_acct_attrs.array_num_value(8) := p_source_28;
18307 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
18308 l_rec_acct_attrs.array_char_value(9) := p_source_29;
18309 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
18310 l_rec_acct_attrs.array_char_value(10) := p_source_30;
18311 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
18312 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
18313 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
18314 l_rec_acct_attrs.array_num_value(12) := p_source_24;
18315 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
18316 l_rec_acct_attrs.array_char_value(13) := p_source_25;
18317 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
18318 l_rec_acct_attrs.array_num_value(14) := p_source_26;
18319 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
18323 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
18320 l_rec_acct_attrs.array_date_value(15) := p_source_27;
18321 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
18322 l_rec_acct_attrs.array_num_value(16) := p_source_28;
18324 l_rec_acct_attrs.array_char_value(17) := p_source_29;
18325 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
18326 l_rec_acct_attrs.array_char_value(18) := p_source_31;
18327 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
18328 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
18329 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
18330 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
18331 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
18332 l_rec_acct_attrs.array_char_value(21) := p_source_34;
18333 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
18334 l_rec_acct_attrs.array_num_value(22) := p_source_24;
18335 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
18336 l_rec_acct_attrs.array_char_value(23) := p_source_25;
18337 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
18338 l_rec_acct_attrs.array_date_value(24) := p_source_27;
18339 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
18340 l_rec_acct_attrs.array_num_value(25) := p_source_28;
18341 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
18342 l_rec_acct_attrs.array_char_value(26) := p_source_29;
18343 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
18344 l_rec_acct_attrs.array_num_value(27) := p_source_26;
18345 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
18346 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
18347 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
18348 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
18349 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
18350 l_rec_acct_attrs.array_char_value(30) := p_source_34;
18351
18352 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18353 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18354
18355 ---------------------------------------------------------------------------------------------------------------
18356 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18357 ---------------------------------------------------------------------------------------------------------------
18358 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18359
18360 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18361 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18362
18363 IF xla_accounting_cache_pkg.GetValueChar
18364 (p_source_code => 'LEDGER_CATEGORY_CODE'
18365 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18366 AND l_bflow_method_code = 'PRIOR_ENTRY'
18367 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18368 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18369 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18370 )
18371 THEN
18372 xla_ae_lines_pkg.BflowUpgEntry
18373 (p_business_method_code => l_bflow_method_code
18374 ,p_business_class_code => l_bflow_class_code
18375 ,p_balance_type => l_balance_type_code);
18376 ELSE
18377 NULL;
18378 -- No business flow processing for business flow method of NONE.
18379 END IF;
18380
18381 --
18382 -- call analytical criteria
18383 --
18384
18385 --
18386 -- call description
18387 --
18388 -- No description or it is inherited.
18389 --
18390 -- call ADRs
18391 -- Bug 4922099
18392 --
18393 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18394 (NVL(l_actual_upg_option, 'N') = 'O') OR
18395 (NVL(l_enc_upg_option, 'N') = 'O')
18396 )
18397 THEN
18398 NULL;
18399 --
18400 --
18401
18402 l_ccid := AcctDerRule_4(
18403 p_application_id => p_application_id
18404 , p_ae_header_id => l_ae_header_id
18405 , p_source_4 => p_source_4
18406 , p_source_5 => p_source_5
18407 , x_transaction_coa_id => l_adr_transaction_coa_id
18408 , x_accounting_coa_id => l_adr_accounting_coa_id
18409 , x_value_type_code => l_adr_value_type_code
18410 , p_side => 'NA'
18411 );
18412
18413 xla_ae_lines_pkg.set_ccid(
18414 p_code_combination_id => l_ccid
18415 , p_value_type_code => l_adr_value_type_code
18416 , p_transaction_coa_id => l_adr_transaction_coa_id
18417 , p_accounting_coa_id => l_adr_accounting_coa_id
18418 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
18419 , p_adr_type_code => 'S'
18420 , p_component_type => l_component_type
18421 , p_component_code => l_component_code
18422 , p_component_type_code => l_component_type_code
18423 , p_component_appl_id => l_component_appl_id
18424 , p_amb_context_code => l_amb_context_code
18425 , p_side => 'NA'
18426 );
18427
18428
18432 --
18429 --
18430 --
18431 END IF;
18433 -- Bug 4922099
18434 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
18435 (NVL(l_enc_upg_option, 'N') = 'O')
18436 ) AND
18437 (l_bflow_method_code = 'PRIOR_ENTRY')
18438 )
18439 THEN
18440 IF
18441 --
18442 1 = 2
18443 --
18444 THEN
18445 xla_accounting_err_pkg.build_message
18446 (p_appli_s_name => 'XLA'
18447 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18448 ,p_token_1 => 'LINE_NUMBER'
18449 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
18450 ,p_token_2 => 'LINE_TYPE_NAME'
18451 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
18452 l_component_type
18453 ,l_component_code
18454 ,l_component_type_code
18455 ,l_component_appl_id
18456 ,l_amb_context_code
18457 ,l_entity_code
18458 ,l_event_class_code
18459 )
18460 ,p_token_3 => 'OWNER'
18461 ,p_value_3 => xla_lookups_pkg.get_meaning(
18462 p_lookup_type => 'XLA_OWNER_TYPE'
18463 ,p_lookup_code => l_component_type_code
18464 )
18465 ,p_token_4 => 'PRODUCT_NAME'
18466 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
18467 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
18468 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
18469 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
18470 ,p_ae_header_id => NULL
18471 );
18472
18473 IF (C_LEVEL_ERROR>= g_log_level) THEN
18474 trace
18475 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
18476 ,p_level => C_LEVEL_ERROR
18477 ,p_module => l_log_module);
18478 END IF;
18479 END IF;
18480 END IF;
18481 --
18482 --
18483 ------------------------------------------------------------------------------------------------
18484 -- 4219869 Business Flow
18485 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
18486 -- Prior Entry. Currently, the following code is always generated.
18487 ------------------------------------------------------------------------------------------------
18488 XLA_AE_LINES_PKG.ValidateCurrentLine;
18489
18490 ------------------------------------------------------------------------------------
18491 -- 4219869 Business Flow
18492 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
18493 ------------------------------------------------------------------------------------
18494 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18495
18496 ----------------------------------------------------------------------------------
18497 -- 4219869 Business Flow
18498 -- Update journal entry status -- Need to generate this within IF <condition>
18499 ----------------------------------------------------------------------------------
18500 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18501 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
18502 ,p_balance_type_code => l_balance_type_code
18503 );
18504
18505 -------------------------------------------------------------------------------------------
18506 -- 4262811 - Generate the Accrual Reversal lines
18507 -------------------------------------------------------------------------------------------
18508 BEGIN
18509 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
18510 (g_array_event(p_event_id).array_value_num('header_index'));
18511 IF l_acc_rev_flag IS NULL THEN
18512 l_acc_rev_flag := 'N';
18513 END IF;
18514 EXCEPTION
18515 WHEN OTHERS THEN
18516 l_acc_rev_flag := 'N';
18517 END;
18518 --
18519 IF (l_acc_rev_flag = 'Y') THEN
18520
18521 -- 4645092 ------------------------------------------------------------------------------
18522 -- To allow MPA report to determine if it should generate report process
18526 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
18523 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
18524 ------------------------------------------------------------------------------------------
18525
18527 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
18528
18529 --
18530 -- Update the line information that should be overwritten
18531 --
18532 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
18533 p_header_num => 1);
18534 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
18535
18536 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
18537
18538 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
18539 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
18540 END IF;
18541
18542 --
18543 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
18544 --
18545 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
18546 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
18547 ELSE
18548 ---------------------------------------------------------------------------------------------------
18549 -- 4262811a Switch Sign
18550 ---------------------------------------------------------------------------------------------------
18551 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
18552 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18553 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18554 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
18555 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18556 -- 5132302
18557 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
18558 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
18559
18560 END IF;
18561
18562 -- 4955764
18563 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18564 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
18565
18566
18567 XLA_AE_LINES_PKG.ValidateCurrentLine;
18568 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
18569
18570 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
18571 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
18572 ,p_balance_type_code => l_balance_type_code);
18573
18574 END IF;
18575
18576 -----------------------------------------------------------------------------------------
18577 -- 4262811 Multiperiod Accounting
18578 -----------------------------------------------------------------------------------------
18579 -- No MPA option is assigned.
18580
18581
18582 END IF;
18583 --
18584
18585 --
18586 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18587 trace
18588 (p_msg => 'END of AcctLineType_47'
18589 ,p_level => C_LEVEL_PROCEDURE
18590 ,p_module => l_log_module);
18591 END IF;
18592 --
18593 EXCEPTION
18594 WHEN xla_exceptions_pkg.application_exception THEN
18595 RAISE;
18596 WHEN OTHERS THEN
18597 xla_exceptions_pkg.raise_message
18598 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_47');
18599 END AcctLineType_47;
18600 --
18601
18602 ---------------------------------------
18603 --
18604 -- PRIVATE FUNCTION
18605 -- AcctLineType_48
18606 --
18607 ---------------------------------------
18608 PROCEDURE AcctLineType_48 (
18609 p_application_id IN NUMBER
18610 ,p_event_id IN NUMBER
18611 ,p_calculate_acctd_flag IN VARCHAR2
18612 ,p_calculate_g_l_flag IN VARCHAR2
18613 ,p_actual_flag IN OUT VARCHAR2
18614 ,p_balance_type_code OUT VARCHAR2
18615 ,p_gain_or_loss_ref OUT VARCHAR2
18616
18617 --Cost CCID
18618 , p_source_3 IN NUMBER
18619 --Allow Account Override Flag
18620 , p_source_4 IN VARCHAR2
18621 --Adjustment Cost CCID
18622 , p_source_5 IN NUMBER
18623 --Cost Clearing CCID
18624 , p_source_6 IN NUMBER
18625 --Exchange Rate Variance Flag
18626 , p_source_21 IN VARCHAR2
18627 --Reversing Line Flag
18628 , p_source_22 IN VARCHAR2
18629 --Actual Upgrade Credit Accounting Class
18630 , p_source_23 IN VARCHAR2
18631 --Entered Raw Cost
18632 , p_source_24 IN NUMBER
18633 --Entered Currency Code
18634 , p_source_25 IN VARCHAR2
18635 --Accounted Raw Cost
18636 , p_source_26 IN NUMBER
18637 --Exchange Rate Date
18638 , p_source_27 IN DATE
18639 --Exchange Rate
18640 , p_source_28 IN NUMBER
18641 --Exchange Rate Type
18642 , p_source_29 IN VARCHAR2
18643 --Actual Upgrade Debit Accounting Class
18644 , p_source_30 IN VARCHAR2
18645 --Use Actuals Upgrade Attributes Flag
18649 --Cost Distribution Line Number
18646 , p_source_31 IN VARCHAR2
18647 --Expenditure Item ID
18648 , p_source_32 IN NUMBER
18650 , p_source_33 IN NUMBER
18651 --Line Type
18652 , p_source_34 IN VARCHAR2
18653 , p_source_34_meaning IN VARCHAR2
18654 --Reversed Line Number
18655 , p_source_35 IN NUMBER
18656 )
18657 IS
18658
18659 l_component_type VARCHAR2(80);
18660 l_component_code VARCHAR2(30);
18661 l_component_type_code VARCHAR2(1);
18662 l_component_appl_id INTEGER;
18663 l_amb_context_code VARCHAR2(30);
18664 l_entity_code VARCHAR2(30);
18665 l_event_class_code VARCHAR2(30);
18666 l_ae_header_id NUMBER;
18667 l_event_type_code VARCHAR2(30);
18668 l_line_definition_code VARCHAR2(30);
18669 l_line_definition_owner_code VARCHAR2(1);
18670 --
18671 -- adr variables
18672 l_segment VARCHAR2(30);
18673 l_ccid NUMBER;
18674 l_adr_transaction_coa_id NUMBER;
18675 l_adr_accounting_coa_id NUMBER;
18676 l_adr_flexfield_segment_code VARCHAR2(30);
18677 l_adr_flex_value_set_id NUMBER;
18678 l_adr_value_type_code VARCHAR2(30);
18679 l_adr_value_combination_id NUMBER;
18680 l_adr_value_segment_code VARCHAR2(30);
18681
18682 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
18683 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
18684 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
18685 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
18686
18687 -- 4262811 Variables ------------------------------------------------------------------------------------------
18688 l_entered_amt_idx NUMBER;
18689 l_accted_amt_idx NUMBER;
18690 l_acc_rev_flag VARCHAR2(1);
18691 l_accrual_line_num NUMBER;
18692 l_tmp_amt NUMBER;
18693 l_acc_rev_natural_side_code VARCHAR2(1);
18694
18695 l_num_entries NUMBER;
18696 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
18697 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
18698 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
18699 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
18700 l_recog_line_1 NUMBER;
18701 l_recog_line_2 NUMBER;
18702
18703 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
18704 l_bflow_applied_to_amt NUMBER; -- 5132302
18705 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
18706
18707 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
18708
18709 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
18710 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
18711
18712 ---------------------------------------------------------------------------------------------------------------
18713
18714
18715 --
18716 -- bulk performance
18717 --
18718 l_balance_type_code VARCHAR2(1);
18719 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
18720 l_log_module VARCHAR2(240);
18721
18722 --
18723 -- Upgrade strategy
18724 --
18725 l_actual_upg_option VARCHAR2(1);
18726 l_enc_upg_option VARCHAR2(1);
18727
18728 --
18729 BEGIN
18730 --
18731 IF g_log_enabled THEN
18732 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_48';
18733 END IF;
18734 --
18735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
18736
18737 trace
18738 (p_msg => 'BEGIN of AcctLineType_48'
18739 ,p_level => C_LEVEL_PROCEDURE
18740 ,p_module => l_log_module);
18741
18742 END IF;
18743 --
18744 l_component_type := 'AMB_JLT';
18745 l_component_code := 'PA_RAW_COST_ADJ';
18746 l_component_type_code := 'S';
18747 l_component_appl_id := 275;
18748 l_amb_context_code := 'DEFAULT';
18749 l_entity_code := 'EXPENDITURES';
18750 l_event_class_code := 'SUPPLIER_COST_ADJ';
18751 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
18752 l_line_definition_owner_code := 'S';
18753 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
18754 --
18755 l_balance_type_code := 'A';
18756 l_segment := NULL;
18757 l_ccid := NULL;
18758 l_adr_transaction_coa_id := NULL;
18759 l_adr_accounting_coa_id := NULL;
18760 l_adr_flexfield_segment_code := NULL;
18761 l_adr_flex_value_set_id := NULL;
18762 l_adr_value_type_code := NULL;
18763 l_adr_value_combination_id := NULL;
18764 l_adr_value_segment_code := NULL;
18765
18766 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
18767 l_bflow_class_code := ''; -- 4219869 Business Flow
18768 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
18769 l_budgetary_control_flag := 'N';
18770
18771 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18772 l_bflow_applied_to_amt := NULL; -- 5132302
18776 l_accrual_line_num := NULL; -- 4262811
18773 l_entered_amt_idx := NULL; -- 4262811
18774 l_accted_amt_idx := NULL; -- 4262811
18775 l_acc_rev_flag := NULL; -- 4262811
18777 l_tmp_amt := NULL; -- 4262811
18778 --
18779
18780 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
18781 l_balance_type_code <> 'B' THEN
18782 IF NVL(p_source_21,'
18783 ') = 'N'
18784 THEN
18785
18786 --
18787 XLA_AE_LINES_PKG.SetNewLine;
18788
18789 p_balance_type_code := l_balance_type_code;
18790 -- set the flag so later we will know whether the gain loss line needs to be created
18791
18792 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
18793 p_actual_flag :='A';
18794 END IF;
18795
18796 --
18797 -- bulk performance
18798 --
18799 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
18800 p_header_num => 0); -- 4262811
18801 --
18802 -- set accounting line options
18803 --
18804 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
18805 p_natural_side_code => 'D'
18806 , p_gain_or_loss_flag => 'N'
18807 , p_gl_transfer_mode_code => 'S'
18808 , p_acct_entry_type_code => 'A'
18809 , p_switch_side_flag => 'Y'
18810 , p_merge_duplicate_code => 'N'
18811 );
18812 --
18813 l_acc_rev_natural_side_code := 'C'; -- 4262811
18814 --
18815 --
18816 -- set accounting line type info
18817 --
18818 xla_ae_lines_pkg.SetAcctLineType
18819 (p_component_type => l_component_type
18820 ,p_event_type_code => l_event_type_code
18821 ,p_line_definition_owner_code => l_line_definition_owner_code
18822 ,p_line_definition_code => l_line_definition_code
18823 ,p_accounting_line_code => l_component_code
18824 ,p_accounting_line_type_code => l_component_type_code
18825 ,p_accounting_line_appl_id => l_component_appl_id
18826 ,p_amb_context_code => l_amb_context_code
18827 ,p_entity_code => l_entity_code
18828 ,p_event_class_code => l_event_class_code);
18829 --
18830 -- set accounting class
18831 --
18832 xla_ae_lines_pkg.SetAcctClass(
18833 p_accounting_class_code => 'COST'
18834 , p_ae_header_id => l_ae_header_id
18835 );
18836
18837 --
18838 -- set rounding class
18839 --
18840 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
18841 'COST';
18842
18843 --
18844 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
18845 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
18846 --
18847 -- bulk performance
18848 --
18849 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
18850
18851 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
18852 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
18853
18854 -- 4955764
18855 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
18856 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
18857
18858 -- 4458381 Public Sector Enh
18859
18860 --
18861 -- set accounting attributes for the line type
18862 --
18863 l_entered_amt_idx := 22;
18864 l_accted_amt_idx := 27;
18865 l_bflow_applied_to_amt_idx := NULL; -- 5132302
18866 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
18867 l_rec_acct_attrs.array_char_value(1) := p_source_22;
18868 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
18869 l_rec_acct_attrs.array_char_value(2) := p_source_23;
18870 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
18871 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
18872 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
18873 l_rec_acct_attrs.array_num_value(4) := p_source_24;
18874 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
18875 l_rec_acct_attrs.array_char_value(5) := p_source_25;
18876 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
18877 l_rec_acct_attrs.array_num_value(6) := p_source_26;
18878 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
18879 l_rec_acct_attrs.array_date_value(7) := p_source_27;
18880 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
18881 l_rec_acct_attrs.array_num_value(8) := p_source_28;
18882 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
18883 l_rec_acct_attrs.array_char_value(9) := p_source_29;
18884 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
18885 l_rec_acct_attrs.array_char_value(10) := p_source_30;
18886 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
18887 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
18888 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
18892 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
18889 l_rec_acct_attrs.array_num_value(12) := p_source_24;
18890 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
18891 l_rec_acct_attrs.array_char_value(13) := p_source_25;
18893 l_rec_acct_attrs.array_num_value(14) := p_source_26;
18894 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
18895 l_rec_acct_attrs.array_date_value(15) := p_source_27;
18896 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
18897 l_rec_acct_attrs.array_num_value(16) := p_source_28;
18898 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
18899 l_rec_acct_attrs.array_char_value(17) := p_source_29;
18900 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
18901 l_rec_acct_attrs.array_char_value(18) := p_source_31;
18902 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
18903 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
18904 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
18905 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
18906 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
18907 l_rec_acct_attrs.array_char_value(21) := p_source_34;
18908 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
18909 l_rec_acct_attrs.array_num_value(22) := p_source_24;
18910 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
18911 l_rec_acct_attrs.array_char_value(23) := p_source_25;
18912 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
18913 l_rec_acct_attrs.array_date_value(24) := p_source_27;
18914 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
18915 l_rec_acct_attrs.array_num_value(25) := p_source_28;
18916 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
18917 l_rec_acct_attrs.array_char_value(26) := p_source_29;
18918 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
18919 l_rec_acct_attrs.array_num_value(27) := p_source_26;
18920 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
18921 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
18922 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
18923 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
18924 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
18925 l_rec_acct_attrs.array_char_value(30) := p_source_34;
18926
18927 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
18928 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
18929
18930 ---------------------------------------------------------------------------------------------------------------
18931 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
18932 ---------------------------------------------------------------------------------------------------------------
18933 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
18934
18935 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18936 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
18937
18938 IF xla_accounting_cache_pkg.GetValueChar
18939 (p_source_code => 'LEDGER_CATEGORY_CODE'
18940 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
18941 AND l_bflow_method_code = 'PRIOR_ENTRY'
18942 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
18943 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
18944 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
18945 )
18946 THEN
18947 xla_ae_lines_pkg.BflowUpgEntry
18948 (p_business_method_code => l_bflow_method_code
18949 ,p_business_class_code => l_bflow_class_code
18950 ,p_balance_type => l_balance_type_code);
18951 ELSE
18952 NULL;
18953 -- No business flow processing for business flow method of NONE.
18954 END IF;
18955
18956 --
18957 -- call analytical criteria
18958 --
18959
18960 --
18961 -- call description
18962 --
18963 -- No description or it is inherited.
18964 --
18965 -- call ADRs
18966 -- Bug 4922099
18967 --
18968 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
18969 (NVL(l_actual_upg_option, 'N') = 'O') OR
18970 (NVL(l_enc_upg_option, 'N') = 'O')
18971 )
18972 THEN
18973 NULL;
18974 --
18975 --
18976
18977 l_ccid := AcctDerRule_4(
18978 p_application_id => p_application_id
18979 , p_ae_header_id => l_ae_header_id
18980 , p_source_4 => p_source_4
18981 , p_source_5 => p_source_5
18982 , x_transaction_coa_id => l_adr_transaction_coa_id
18983 , x_accounting_coa_id => l_adr_accounting_coa_id
18984 , x_value_type_code => l_adr_value_type_code
18985 , p_side => 'NA'
18986 );
18987
18988 xla_ae_lines_pkg.set_ccid(
18989 p_code_combination_id => l_ccid
18990 , p_value_type_code => l_adr_value_type_code
18991 , p_transaction_coa_id => l_adr_transaction_coa_id
18992 , p_accounting_coa_id => l_adr_accounting_coa_id
18996 , p_component_code => l_component_code
18993 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
18994 , p_adr_type_code => 'S'
18995 , p_component_type => l_component_type
18997 , p_component_type_code => l_component_type_code
18998 , p_component_appl_id => l_component_appl_id
18999 , p_amb_context_code => l_amb_context_code
19000 , p_side => 'NA'
19001 );
19002
19003
19004 --
19005 --
19006 END IF;
19007 --
19008 -- Bug 4922099
19009 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19010 (NVL(l_enc_upg_option, 'N') = 'O')
19011 ) AND
19012 (l_bflow_method_code = 'PRIOR_ENTRY')
19013 )
19014 THEN
19015 IF
19016 --
19017 1 = 2
19018 --
19019 THEN
19020 xla_accounting_err_pkg.build_message
19021 (p_appli_s_name => 'XLA'
19022 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19023 ,p_token_1 => 'LINE_NUMBER'
19024 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19025 ,p_token_2 => 'LINE_TYPE_NAME'
19026 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19027 l_component_type
19028 ,l_component_code
19029 ,l_component_type_code
19030 ,l_component_appl_id
19031 ,l_amb_context_code
19032 ,l_entity_code
19033 ,l_event_class_code
19034 )
19035 ,p_token_3 => 'OWNER'
19036 ,p_value_3 => xla_lookups_pkg.get_meaning(
19037 p_lookup_type => 'XLA_OWNER_TYPE'
19038 ,p_lookup_code => l_component_type_code
19039 )
19040 ,p_token_4 => 'PRODUCT_NAME'
19041 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19042 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19043 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19044 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19045 ,p_ae_header_id => NULL
19046 );
19047
19048 IF (C_LEVEL_ERROR>= g_log_level) THEN
19049 trace
19050 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19051 ,p_level => C_LEVEL_ERROR
19052 ,p_module => l_log_module);
19053 END IF;
19054 END IF;
19055 END IF;
19056 --
19057 --
19058 ------------------------------------------------------------------------------------------------
19059 -- 4219869 Business Flow
19060 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19061 -- Prior Entry. Currently, the following code is always generated.
19062 ------------------------------------------------------------------------------------------------
19063 XLA_AE_LINES_PKG.ValidateCurrentLine;
19064
19065 ------------------------------------------------------------------------------------
19066 -- 4219869 Business Flow
19067 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19068 ------------------------------------------------------------------------------------
19069 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19070
19071 ----------------------------------------------------------------------------------
19072 -- 4219869 Business Flow
19073 -- Update journal entry status -- Need to generate this within IF <condition>
19074 ----------------------------------------------------------------------------------
19075 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19076 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19077 ,p_balance_type_code => l_balance_type_code
19078 );
19079
19080 -------------------------------------------------------------------------------------------
19081 -- 4262811 - Generate the Accrual Reversal lines
19082 -------------------------------------------------------------------------------------------
19083 BEGIN
19084 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19085 (g_array_event(p_event_id).array_value_num('header_index'));
19086 IF l_acc_rev_flag IS NULL THEN
19087 l_acc_rev_flag := 'N';
19088 END IF;
19092 END;
19089 EXCEPTION
19090 WHEN OTHERS THEN
19091 l_acc_rev_flag := 'N';
19093 --
19094 IF (l_acc_rev_flag = 'Y') THEN
19095
19096 -- 4645092 ------------------------------------------------------------------------------
19097 -- To allow MPA report to determine if it should generate report process
19098 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19099 ------------------------------------------------------------------------------------------
19100
19101 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19102 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19103
19104 --
19105 -- Update the line information that should be overwritten
19106 --
19107 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19108 p_header_num => 1);
19109 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19110
19111 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19112
19113 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19114 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19115 END IF;
19116
19117 --
19118 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19119 --
19120 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19121 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19122 ELSE
19123 ---------------------------------------------------------------------------------------------------
19124 -- 4262811a Switch Sign
19125 ---------------------------------------------------------------------------------------------------
19126 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19127 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19128 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19129 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19130 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19131 -- 5132302
19132 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19133 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19134
19135 END IF;
19136
19137 -- 4955764
19138 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19139 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19140
19141
19142 XLA_AE_LINES_PKG.ValidateCurrentLine;
19143 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19144
19145 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19146 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19147 ,p_balance_type_code => l_balance_type_code);
19148
19149 END IF;
19150
19151 -----------------------------------------------------------------------------------------
19152 -- 4262811 Multiperiod Accounting
19153 -----------------------------------------------------------------------------------------
19154 -- No MPA option is assigned.
19155
19156
19157 END IF;
19158 END IF;
19159 --
19160
19161 --
19162 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19163 trace
19164 (p_msg => 'END of AcctLineType_48'
19165 ,p_level => C_LEVEL_PROCEDURE
19166 ,p_module => l_log_module);
19167 END IF;
19168 --
19169 EXCEPTION
19170 WHEN xla_exceptions_pkg.application_exception THEN
19171 RAISE;
19172 WHEN OTHERS THEN
19173 xla_exceptions_pkg.raise_message
19174 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_48');
19175 END AcctLineType_48;
19176 --
19177
19178 ---------------------------------------
19179 --
19180 -- PRIVATE FUNCTION
19181 -- AcctLineType_49
19182 --
19183 ---------------------------------------
19184 PROCEDURE AcctLineType_49 (
19185 p_application_id IN NUMBER
19186 ,p_event_id IN NUMBER
19187 ,p_calculate_acctd_flag IN VARCHAR2
19188 ,p_calculate_g_l_flag IN VARCHAR2
19189 ,p_actual_flag IN OUT VARCHAR2
19190 ,p_balance_type_code OUT VARCHAR2
19191 ,p_gain_or_loss_ref OUT VARCHAR2
19192
19193 --Cost CCID
19194 , p_source_3 IN NUMBER
19195 --Allow Account Override Flag
19196 , p_source_4 IN VARCHAR2
19197 --Adjustment Cost CCID
19198 , p_source_5 IN NUMBER
19199 --Cost Clearing CCID
19200 , p_source_6 IN NUMBER
19201 --Reversing Line Flag
19202 , p_source_22 IN VARCHAR2
19203 --Actual Upgrade Credit Accounting Class
19204 , p_source_23 IN VARCHAR2
19205 --Entered Raw Cost
19206 , p_source_24 IN NUMBER
19207 --Entered Currency Code
19211 --Exchange Rate Date
19208 , p_source_25 IN VARCHAR2
19209 --Accounted Raw Cost
19210 , p_source_26 IN NUMBER
19212 , p_source_27 IN DATE
19213 --Exchange Rate
19214 , p_source_28 IN NUMBER
19215 --Exchange Rate Type
19216 , p_source_29 IN VARCHAR2
19217 --Actual Upgrade Debit Accounting Class
19218 , p_source_30 IN VARCHAR2
19219 --Use Actuals Upgrade Attributes Flag
19220 , p_source_31 IN VARCHAR2
19221 --Expenditure Item ID
19222 , p_source_32 IN NUMBER
19223 --Cost Distribution Line Number
19224 , p_source_33 IN NUMBER
19225 --Line Type
19226 , p_source_34 IN VARCHAR2
19227 , p_source_34_meaning IN VARCHAR2
19228 --Reversed Line Number
19229 , p_source_35 IN NUMBER
19230 )
19231 IS
19232
19233 l_component_type VARCHAR2(80);
19234 l_component_code VARCHAR2(30);
19235 l_component_type_code VARCHAR2(1);
19236 l_component_appl_id INTEGER;
19237 l_amb_context_code VARCHAR2(30);
19238 l_entity_code VARCHAR2(30);
19239 l_event_class_code VARCHAR2(30);
19240 l_ae_header_id NUMBER;
19241 l_event_type_code VARCHAR2(30);
19242 l_line_definition_code VARCHAR2(30);
19243 l_line_definition_owner_code VARCHAR2(1);
19244 --
19245 -- adr variables
19246 l_segment VARCHAR2(30);
19247 l_ccid NUMBER;
19248 l_adr_transaction_coa_id NUMBER;
19249 l_adr_accounting_coa_id NUMBER;
19250 l_adr_flexfield_segment_code VARCHAR2(30);
19251 l_adr_flex_value_set_id NUMBER;
19252 l_adr_value_type_code VARCHAR2(30);
19253 l_adr_value_combination_id NUMBER;
19254 l_adr_value_segment_code VARCHAR2(30);
19255
19256 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19257 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19258 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19259 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19260
19261 -- 4262811 Variables ------------------------------------------------------------------------------------------
19262 l_entered_amt_idx NUMBER;
19263 l_accted_amt_idx NUMBER;
19264 l_acc_rev_flag VARCHAR2(1);
19265 l_accrual_line_num NUMBER;
19266 l_tmp_amt NUMBER;
19267 l_acc_rev_natural_side_code VARCHAR2(1);
19268
19269 l_num_entries NUMBER;
19270 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19271 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19272 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19273 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19274 l_recog_line_1 NUMBER;
19275 l_recog_line_2 NUMBER;
19276
19277 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19278 l_bflow_applied_to_amt NUMBER; -- 5132302
19279 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19280
19281 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19282
19283 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19284 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19285
19286 ---------------------------------------------------------------------------------------------------------------
19287
19288
19289 --
19290 -- bulk performance
19291 --
19292 l_balance_type_code VARCHAR2(1);
19293 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19294 l_log_module VARCHAR2(240);
19295
19296 --
19297 -- Upgrade strategy
19298 --
19299 l_actual_upg_option VARCHAR2(1);
19300 l_enc_upg_option VARCHAR2(1);
19301
19302 --
19303 BEGIN
19304 --
19305 IF g_log_enabled THEN
19306 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_49';
19307 END IF;
19308 --
19309 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19310
19311 trace
19312 (p_msg => 'BEGIN of AcctLineType_49'
19313 ,p_level => C_LEVEL_PROCEDURE
19314 ,p_module => l_log_module);
19315
19316 END IF;
19317 --
19318 l_component_type := 'AMB_JLT';
19319 l_component_code := 'PA_RAW_COST_ADJ';
19320 l_component_type_code := 'S';
19321 l_component_appl_id := 275;
19322 l_amb_context_code := 'DEFAULT';
19323 l_entity_code := 'EXPENDITURES';
19324 l_event_class_code := 'MISC_COST_ADJ';
19325 l_event_type_code := 'MISC_COST_ADJ_ALL';
19326 l_line_definition_owner_code := 'S';
19327 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
19328 --
19329 l_balance_type_code := 'A';
19330 l_segment := NULL;
19331 l_ccid := NULL;
19332 l_adr_transaction_coa_id := NULL;
19333 l_adr_accounting_coa_id := NULL;
19334 l_adr_flexfield_segment_code := NULL;
19335 l_adr_flex_value_set_id := NULL;
19336 l_adr_value_type_code := NULL;
19340 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19337 l_adr_value_combination_id := NULL;
19338 l_adr_value_segment_code := NULL;
19339
19341 l_bflow_class_code := ''; -- 4219869 Business Flow
19342 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19343 l_budgetary_control_flag := 'N';
19344
19345 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19346 l_bflow_applied_to_amt := NULL; -- 5132302
19347 l_entered_amt_idx := NULL; -- 4262811
19348 l_accted_amt_idx := NULL; -- 4262811
19349 l_acc_rev_flag := NULL; -- 4262811
19350 l_accrual_line_num := NULL; -- 4262811
19351 l_tmp_amt := NULL; -- 4262811
19352 --
19353
19354 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19355 l_balance_type_code <> 'B' THEN
19356
19357 --
19358 XLA_AE_LINES_PKG.SetNewLine;
19359
19360 p_balance_type_code := l_balance_type_code;
19361 -- set the flag so later we will know whether the gain loss line needs to be created
19362
19363 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19364 p_actual_flag :='A';
19365 END IF;
19366
19367 --
19368 -- bulk performance
19369 --
19370 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19371 p_header_num => 0); -- 4262811
19372 --
19373 -- set accounting line options
19374 --
19375 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19376 p_natural_side_code => 'D'
19377 , p_gain_or_loss_flag => 'N'
19378 , p_gl_transfer_mode_code => 'S'
19379 , p_acct_entry_type_code => 'A'
19380 , p_switch_side_flag => 'Y'
19381 , p_merge_duplicate_code => 'N'
19382 );
19383 --
19384 l_acc_rev_natural_side_code := 'C'; -- 4262811
19385 --
19386 --
19387 -- set accounting line type info
19388 --
19389 xla_ae_lines_pkg.SetAcctLineType
19390 (p_component_type => l_component_type
19391 ,p_event_type_code => l_event_type_code
19392 ,p_line_definition_owner_code => l_line_definition_owner_code
19393 ,p_line_definition_code => l_line_definition_code
19394 ,p_accounting_line_code => l_component_code
19395 ,p_accounting_line_type_code => l_component_type_code
19396 ,p_accounting_line_appl_id => l_component_appl_id
19397 ,p_amb_context_code => l_amb_context_code
19398 ,p_entity_code => l_entity_code
19399 ,p_event_class_code => l_event_class_code);
19400 --
19401 -- set accounting class
19402 --
19403 xla_ae_lines_pkg.SetAcctClass(
19404 p_accounting_class_code => 'COST'
19405 , p_ae_header_id => l_ae_header_id
19406 );
19407
19408 --
19409 -- set rounding class
19410 --
19411 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19412 'COST';
19413
19414 --
19415 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19416 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19417 --
19418 -- bulk performance
19419 --
19420 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19421
19422 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19423 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19424
19425 -- 4955764
19426 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19427 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19428
19429 -- 4458381 Public Sector Enh
19430
19431 --
19432 -- set accounting attributes for the line type
19433 --
19434 l_entered_amt_idx := 22;
19435 l_accted_amt_idx := 27;
19436 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19437 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
19438 l_rec_acct_attrs.array_char_value(1) := p_source_22;
19439 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
19440 l_rec_acct_attrs.array_char_value(2) := p_source_23;
19441 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
19442 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
19443 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
19444 l_rec_acct_attrs.array_num_value(4) := p_source_24;
19445 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
19446 l_rec_acct_attrs.array_char_value(5) := p_source_25;
19447 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
19448 l_rec_acct_attrs.array_num_value(6) := p_source_26;
19449 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
19450 l_rec_acct_attrs.array_date_value(7) := p_source_27;
19451 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
19452 l_rec_acct_attrs.array_num_value(8) := p_source_28;
19453 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
19454 l_rec_acct_attrs.array_char_value(9) := p_source_29;
19458 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
19455 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
19456 l_rec_acct_attrs.array_char_value(10) := p_source_30;
19457 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
19459 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
19460 l_rec_acct_attrs.array_num_value(12) := p_source_24;
19461 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
19462 l_rec_acct_attrs.array_char_value(13) := p_source_25;
19463 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
19464 l_rec_acct_attrs.array_num_value(14) := p_source_26;
19465 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
19466 l_rec_acct_attrs.array_date_value(15) := p_source_27;
19467 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
19468 l_rec_acct_attrs.array_num_value(16) := p_source_28;
19469 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
19470 l_rec_acct_attrs.array_char_value(17) := p_source_29;
19471 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
19472 l_rec_acct_attrs.array_char_value(18) := p_source_31;
19473 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
19474 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
19475 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
19476 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
19477 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
19478 l_rec_acct_attrs.array_char_value(21) := p_source_34;
19479 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
19480 l_rec_acct_attrs.array_num_value(22) := p_source_24;
19481 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
19482 l_rec_acct_attrs.array_char_value(23) := p_source_25;
19483 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
19484 l_rec_acct_attrs.array_date_value(24) := p_source_27;
19485 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
19486 l_rec_acct_attrs.array_num_value(25) := p_source_28;
19487 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
19488 l_rec_acct_attrs.array_char_value(26) := p_source_29;
19489 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
19490 l_rec_acct_attrs.array_num_value(27) := p_source_26;
19491 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
19492 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
19493 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
19494 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
19495 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
19496 l_rec_acct_attrs.array_char_value(30) := p_source_34;
19497
19498 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
19499 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
19500
19501 ---------------------------------------------------------------------------------------------------------------
19502 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
19503 ---------------------------------------------------------------------------------------------------------------
19504 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
19505
19506 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19507 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
19508
19509 IF xla_accounting_cache_pkg.GetValueChar
19510 (p_source_code => 'LEDGER_CATEGORY_CODE'
19511 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
19512 AND l_bflow_method_code = 'PRIOR_ENTRY'
19513 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
19514 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
19515 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
19516 )
19517 THEN
19518 xla_ae_lines_pkg.BflowUpgEntry
19519 (p_business_method_code => l_bflow_method_code
19520 ,p_business_class_code => l_bflow_class_code
19521 ,p_balance_type => l_balance_type_code);
19522 ELSE
19523 NULL;
19524 -- No business flow processing for business flow method of NONE.
19525 END IF;
19526
19527 --
19528 -- call analytical criteria
19529 --
19530
19531 --
19532 -- call description
19533 --
19534 -- No description or it is inherited.
19535 --
19536 -- call ADRs
19537 -- Bug 4922099
19538 --
19539 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
19540 (NVL(l_actual_upg_option, 'N') = 'O') OR
19541 (NVL(l_enc_upg_option, 'N') = 'O')
19542 )
19543 THEN
19544 NULL;
19545 --
19546 --
19547
19548 l_ccid := AcctDerRule_4(
19549 p_application_id => p_application_id
19550 , p_ae_header_id => l_ae_header_id
19551 , p_source_4 => p_source_4
19552 , p_source_5 => p_source_5
19553 , x_transaction_coa_id => l_adr_transaction_coa_id
19554 , x_accounting_coa_id => l_adr_accounting_coa_id
19555 , x_value_type_code => l_adr_value_type_code
19559 xla_ae_lines_pkg.set_ccid(
19556 , p_side => 'NA'
19557 );
19558
19560 p_code_combination_id => l_ccid
19561 , p_value_type_code => l_adr_value_type_code
19562 , p_transaction_coa_id => l_adr_transaction_coa_id
19563 , p_accounting_coa_id => l_adr_accounting_coa_id
19564 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
19565 , p_adr_type_code => 'S'
19566 , p_component_type => l_component_type
19567 , p_component_code => l_component_code
19568 , p_component_type_code => l_component_type_code
19569 , p_component_appl_id => l_component_appl_id
19570 , p_amb_context_code => l_amb_context_code
19571 , p_side => 'NA'
19572 );
19573
19574
19575 --
19576 --
19577 END IF;
19578 --
19579 -- Bug 4922099
19580 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
19581 (NVL(l_enc_upg_option, 'N') = 'O')
19582 ) AND
19583 (l_bflow_method_code = 'PRIOR_ENTRY')
19584 )
19585 THEN
19586 IF
19587 --
19588 1 = 2
19589 --
19590 THEN
19591 xla_accounting_err_pkg.build_message
19592 (p_appli_s_name => 'XLA'
19593 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19594 ,p_token_1 => 'LINE_NUMBER'
19595 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
19596 ,p_token_2 => 'LINE_TYPE_NAME'
19597 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
19598 l_component_type
19599 ,l_component_code
19600 ,l_component_type_code
19601 ,l_component_appl_id
19602 ,l_amb_context_code
19603 ,l_entity_code
19604 ,l_event_class_code
19605 )
19606 ,p_token_3 => 'OWNER'
19607 ,p_value_3 => xla_lookups_pkg.get_meaning(
19608 p_lookup_type => 'XLA_OWNER_TYPE'
19609 ,p_lookup_code => l_component_type_code
19610 )
19611 ,p_token_4 => 'PRODUCT_NAME'
19612 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
19613 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
19614 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
19615 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
19616 ,p_ae_header_id => NULL
19617 );
19618
19619 IF (C_LEVEL_ERROR>= g_log_level) THEN
19620 trace
19621 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
19622 ,p_level => C_LEVEL_ERROR
19623 ,p_module => l_log_module);
19624 END IF;
19625 END IF;
19626 END IF;
19627 --
19628 --
19629 ------------------------------------------------------------------------------------------------
19630 -- 4219869 Business Flow
19631 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
19632 -- Prior Entry. Currently, the following code is always generated.
19633 ------------------------------------------------------------------------------------------------
19634 XLA_AE_LINES_PKG.ValidateCurrentLine;
19635
19636 ------------------------------------------------------------------------------------
19637 -- 4219869 Business Flow
19638 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
19639 ------------------------------------------------------------------------------------
19640 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19641
19642 ----------------------------------------------------------------------------------
19643 -- 4219869 Business Flow
19644 -- Update journal entry status -- Need to generate this within IF <condition>
19645 ----------------------------------------------------------------------------------
19646 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19647 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
19648 ,p_balance_type_code => l_balance_type_code
19649 );
19650
19651 -------------------------------------------------------------------------------------------
19655 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
19652 -- 4262811 - Generate the Accrual Reversal lines
19653 -------------------------------------------------------------------------------------------
19654 BEGIN
19656 (g_array_event(p_event_id).array_value_num('header_index'));
19657 IF l_acc_rev_flag IS NULL THEN
19658 l_acc_rev_flag := 'N';
19659 END IF;
19660 EXCEPTION
19661 WHEN OTHERS THEN
19662 l_acc_rev_flag := 'N';
19663 END;
19664 --
19665 IF (l_acc_rev_flag = 'Y') THEN
19666
19667 -- 4645092 ------------------------------------------------------------------------------
19668 -- To allow MPA report to determine if it should generate report process
19669 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
19670 ------------------------------------------------------------------------------------------
19671
19672 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
19673 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
19674
19675 --
19676 -- Update the line information that should be overwritten
19677 --
19678 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
19679 p_header_num => 1);
19680 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
19681
19682 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
19683
19684 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
19685 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
19686 END IF;
19687
19688 --
19689 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
19690 --
19691 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
19692 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
19693 ELSE
19694 ---------------------------------------------------------------------------------------------------
19695 -- 4262811a Switch Sign
19696 ---------------------------------------------------------------------------------------------------
19697 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
19698 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19699 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19700 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
19701 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19702 -- 5132302
19703 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
19704 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
19705
19706 END IF;
19707
19708 -- 4955764
19709 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19710 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
19711
19712
19713 XLA_AE_LINES_PKG.ValidateCurrentLine;
19714 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
19715
19716 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
19717 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
19718 ,p_balance_type_code => l_balance_type_code);
19719
19720 END IF;
19721
19722 -----------------------------------------------------------------------------------------
19723 -- 4262811 Multiperiod Accounting
19724 -----------------------------------------------------------------------------------------
19725 -- No MPA option is assigned.
19726
19727
19728 END IF;
19729 --
19730
19731 --
19732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19733 trace
19734 (p_msg => 'END of AcctLineType_49'
19735 ,p_level => C_LEVEL_PROCEDURE
19736 ,p_module => l_log_module);
19737 END IF;
19738 --
19739 EXCEPTION
19740 WHEN xla_exceptions_pkg.application_exception THEN
19741 RAISE;
19742 WHEN OTHERS THEN
19743 xla_exceptions_pkg.raise_message
19744 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_49');
19745 END AcctLineType_49;
19746 --
19747
19748 ---------------------------------------
19749 --
19750 -- PRIVATE FUNCTION
19751 -- AcctLineType_50
19752 --
19753 ---------------------------------------
19754 PROCEDURE AcctLineType_50 (
19755 p_application_id IN NUMBER
19756 ,p_event_id IN NUMBER
19757 ,p_calculate_acctd_flag IN VARCHAR2
19758 ,p_calculate_g_l_flag IN VARCHAR2
19759 ,p_actual_flag IN OUT VARCHAR2
19760 ,p_balance_type_code OUT VARCHAR2
19761 ,p_gain_or_loss_ref OUT VARCHAR2
19762
19763 --Cost CCID
19764 , p_source_3 IN NUMBER
19765 --Allow Account Override Flag
19766 , p_source_4 IN VARCHAR2
19767 --Adjustment Cost CCID
19768 , p_source_5 IN NUMBER
19769 --Cost Clearing CCID
19773 --Actual Upgrade Credit Accounting Class
19770 , p_source_6 IN NUMBER
19771 --Reversing Line Flag
19772 , p_source_22 IN VARCHAR2
19774 , p_source_23 IN VARCHAR2
19775 --Entered Raw Cost
19776 , p_source_24 IN NUMBER
19777 --Entered Currency Code
19778 , p_source_25 IN VARCHAR2
19779 --Accounted Raw Cost
19780 , p_source_26 IN NUMBER
19781 --Exchange Rate Date
19782 , p_source_27 IN DATE
19783 --Exchange Rate
19784 , p_source_28 IN NUMBER
19785 --Exchange Rate Type
19786 , p_source_29 IN VARCHAR2
19787 --Actual Upgrade Debit Accounting Class
19788 , p_source_30 IN VARCHAR2
19789 --Use Actuals Upgrade Attributes Flag
19790 , p_source_31 IN VARCHAR2
19791 --Expenditure Item ID
19792 , p_source_32 IN NUMBER
19793 --Cost Distribution Line Number
19794 , p_source_33 IN NUMBER
19795 --Line Type
19796 , p_source_34 IN VARCHAR2
19797 , p_source_34_meaning IN VARCHAR2
19798 --Reversed Line Number
19799 , p_source_35 IN NUMBER
19800 )
19801 IS
19802
19803 l_component_type VARCHAR2(80);
19804 l_component_code VARCHAR2(30);
19805 l_component_type_code VARCHAR2(1);
19806 l_component_appl_id INTEGER;
19807 l_amb_context_code VARCHAR2(30);
19808 l_entity_code VARCHAR2(30);
19809 l_event_class_code VARCHAR2(30);
19810 l_ae_header_id NUMBER;
19811 l_event_type_code VARCHAR2(30);
19812 l_line_definition_code VARCHAR2(30);
19813 l_line_definition_owner_code VARCHAR2(1);
19814 --
19815 -- adr variables
19816 l_segment VARCHAR2(30);
19817 l_ccid NUMBER;
19818 l_adr_transaction_coa_id NUMBER;
19819 l_adr_accounting_coa_id NUMBER;
19820 l_adr_flexfield_segment_code VARCHAR2(30);
19821 l_adr_flex_value_set_id NUMBER;
19822 l_adr_value_type_code VARCHAR2(30);
19823 l_adr_value_combination_id NUMBER;
19824 l_adr_value_segment_code VARCHAR2(30);
19825
19826 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
19827 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
19828 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
19829 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
19830
19831 -- 4262811 Variables ------------------------------------------------------------------------------------------
19832 l_entered_amt_idx NUMBER;
19833 l_accted_amt_idx NUMBER;
19834 l_acc_rev_flag VARCHAR2(1);
19835 l_accrual_line_num NUMBER;
19836 l_tmp_amt NUMBER;
19837 l_acc_rev_natural_side_code VARCHAR2(1);
19838
19839 l_num_entries NUMBER;
19840 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
19841 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
19842 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
19843 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
19844 l_recog_line_1 NUMBER;
19845 l_recog_line_2 NUMBER;
19846
19847 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
19848 l_bflow_applied_to_amt NUMBER; -- 5132302
19849 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
19850
19851 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
19852
19853 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
19854 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
19855
19856 ---------------------------------------------------------------------------------------------------------------
19857
19858
19859 --
19860 -- bulk performance
19861 --
19862 l_balance_type_code VARCHAR2(1);
19863 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
19864 l_log_module VARCHAR2(240);
19865
19866 --
19867 -- Upgrade strategy
19868 --
19869 l_actual_upg_option VARCHAR2(1);
19870 l_enc_upg_option VARCHAR2(1);
19871
19872 --
19873 BEGIN
19874 --
19875 IF g_log_enabled THEN
19876 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_50';
19877 END IF;
19878 --
19879 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
19880
19881 trace
19882 (p_msg => 'BEGIN of AcctLineType_50'
19883 ,p_level => C_LEVEL_PROCEDURE
19884 ,p_module => l_log_module);
19885
19886 END IF;
19887 --
19888 l_component_type := 'AMB_JLT';
19889 l_component_code := 'PA_RAW_COST_ADJ';
19890 l_component_type_code := 'S';
19891 l_component_appl_id := 275;
19892 l_amb_context_code := 'DEFAULT';
19893 l_entity_code := 'EXPENDITURES';
19894 l_event_class_code := 'INVENTORY_COST_ADJ';
19895 l_event_type_code := 'INVENTORY_COST_ADJ_ALL';
19896 l_line_definition_owner_code := 'S';
19897 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
19898 --
19899 l_balance_type_code := 'A';
19903 l_adr_accounting_coa_id := NULL;
19900 l_segment := NULL;
19901 l_ccid := NULL;
19902 l_adr_transaction_coa_id := NULL;
19904 l_adr_flexfield_segment_code := NULL;
19905 l_adr_flex_value_set_id := NULL;
19906 l_adr_value_type_code := NULL;
19907 l_adr_value_combination_id := NULL;
19908 l_adr_value_segment_code := NULL;
19909
19910 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
19911 l_bflow_class_code := ''; -- 4219869 Business Flow
19912 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
19913 l_budgetary_control_flag := 'N';
19914
19915 l_bflow_applied_to_amt_idx := NULL; -- 5132302
19916 l_bflow_applied_to_amt := NULL; -- 5132302
19917 l_entered_amt_idx := NULL; -- 4262811
19918 l_accted_amt_idx := NULL; -- 4262811
19919 l_acc_rev_flag := NULL; -- 4262811
19920 l_accrual_line_num := NULL; -- 4262811
19921 l_tmp_amt := NULL; -- 4262811
19922 --
19923
19924 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
19925 l_balance_type_code <> 'B' THEN
19926
19927 --
19928 XLA_AE_LINES_PKG.SetNewLine;
19929
19930 p_balance_type_code := l_balance_type_code;
19931 -- set the flag so later we will know whether the gain loss line needs to be created
19932
19933 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
19934 p_actual_flag :='A';
19935 END IF;
19936
19937 --
19938 -- bulk performance
19939 --
19940 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
19941 p_header_num => 0); -- 4262811
19942 --
19943 -- set accounting line options
19944 --
19945 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
19946 p_natural_side_code => 'D'
19947 , p_gain_or_loss_flag => 'N'
19948 , p_gl_transfer_mode_code => 'S'
19949 , p_acct_entry_type_code => 'A'
19950 , p_switch_side_flag => 'Y'
19951 , p_merge_duplicate_code => 'N'
19952 );
19953 --
19954 l_acc_rev_natural_side_code := 'C'; -- 4262811
19955 --
19956 --
19957 -- set accounting line type info
19958 --
19959 xla_ae_lines_pkg.SetAcctLineType
19960 (p_component_type => l_component_type
19961 ,p_event_type_code => l_event_type_code
19962 ,p_line_definition_owner_code => l_line_definition_owner_code
19963 ,p_line_definition_code => l_line_definition_code
19964 ,p_accounting_line_code => l_component_code
19965 ,p_accounting_line_type_code => l_component_type_code
19966 ,p_accounting_line_appl_id => l_component_appl_id
19967 ,p_amb_context_code => l_amb_context_code
19968 ,p_entity_code => l_entity_code
19969 ,p_event_class_code => l_event_class_code);
19970 --
19971 -- set accounting class
19972 --
19973 xla_ae_lines_pkg.SetAcctClass(
19974 p_accounting_class_code => 'COST'
19975 , p_ae_header_id => l_ae_header_id
19976 );
19977
19978 --
19979 -- set rounding class
19980 --
19981 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
19982 'COST';
19983
19984 --
19985 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
19986 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
19987 --
19988 -- bulk performance
19989 --
19990 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
19991
19992 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
19993 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
19994
19995 -- 4955764
19996 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
19997 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
19998
19999 -- 4458381 Public Sector Enh
20000
20001 --
20002 -- set accounting attributes for the line type
20003 --
20004 l_entered_amt_idx := 22;
20005 l_accted_amt_idx := 27;
20006 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20007 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20008 l_rec_acct_attrs.array_char_value(1) := p_source_22;
20009 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
20010 l_rec_acct_attrs.array_char_value(2) := p_source_23;
20011 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
20012 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
20013 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
20014 l_rec_acct_attrs.array_num_value(4) := p_source_24;
20015 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
20016 l_rec_acct_attrs.array_char_value(5) := p_source_25;
20017 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
20018 l_rec_acct_attrs.array_num_value(6) := p_source_26;
20019 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
20020 l_rec_acct_attrs.array_date_value(7) := p_source_27;
20024 l_rec_acct_attrs.array_char_value(9) := p_source_29;
20021 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
20022 l_rec_acct_attrs.array_num_value(8) := p_source_28;
20023 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
20025 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
20026 l_rec_acct_attrs.array_char_value(10) := p_source_30;
20027 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
20028 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
20029 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
20030 l_rec_acct_attrs.array_num_value(12) := p_source_24;
20031 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
20032 l_rec_acct_attrs.array_char_value(13) := p_source_25;
20033 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
20034 l_rec_acct_attrs.array_num_value(14) := p_source_26;
20035 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
20036 l_rec_acct_attrs.array_date_value(15) := p_source_27;
20037 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
20038 l_rec_acct_attrs.array_num_value(16) := p_source_28;
20039 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
20040 l_rec_acct_attrs.array_char_value(17) := p_source_29;
20041 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
20042 l_rec_acct_attrs.array_char_value(18) := p_source_31;
20043 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
20044 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
20045 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
20046 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
20047 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
20048 l_rec_acct_attrs.array_char_value(21) := p_source_34;
20049 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
20050 l_rec_acct_attrs.array_num_value(22) := p_source_24;
20051 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
20052 l_rec_acct_attrs.array_char_value(23) := p_source_25;
20053 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
20054 l_rec_acct_attrs.array_date_value(24) := p_source_27;
20055 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
20056 l_rec_acct_attrs.array_num_value(25) := p_source_28;
20057 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
20058 l_rec_acct_attrs.array_char_value(26) := p_source_29;
20059 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
20060 l_rec_acct_attrs.array_num_value(27) := p_source_26;
20061 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
20062 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
20063 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
20064 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
20065 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
20066 l_rec_acct_attrs.array_char_value(30) := p_source_34;
20067
20068 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20069 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20070
20071 ---------------------------------------------------------------------------------------------------------------
20072 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20073 ---------------------------------------------------------------------------------------------------------------
20074 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20075
20076 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20077 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20078
20079 IF xla_accounting_cache_pkg.GetValueChar
20080 (p_source_code => 'LEDGER_CATEGORY_CODE'
20081 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20082 AND l_bflow_method_code = 'PRIOR_ENTRY'
20083 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20084 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20085 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20086 )
20087 THEN
20088 xla_ae_lines_pkg.BflowUpgEntry
20089 (p_business_method_code => l_bflow_method_code
20090 ,p_business_class_code => l_bflow_class_code
20091 ,p_balance_type => l_balance_type_code);
20092 ELSE
20093 NULL;
20094 -- No business flow processing for business flow method of NONE.
20095 END IF;
20096
20097 --
20098 -- call analytical criteria
20099 --
20100
20101 --
20102 -- call description
20103 --
20104 -- No description or it is inherited.
20105 --
20106 -- call ADRs
20107 -- Bug 4922099
20108 --
20109 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20110 (NVL(l_actual_upg_option, 'N') = 'O') OR
20111 (NVL(l_enc_upg_option, 'N') = 'O')
20112 )
20113 THEN
20114 NULL;
20115 --
20116 --
20117
20118 l_ccid := AcctDerRule_4(
20119 p_application_id => p_application_id
20120 , p_ae_header_id => l_ae_header_id
20124 , x_accounting_coa_id => l_adr_accounting_coa_id
20121 , p_source_4 => p_source_4
20122 , p_source_5 => p_source_5
20123 , x_transaction_coa_id => l_adr_transaction_coa_id
20125 , x_value_type_code => l_adr_value_type_code
20126 , p_side => 'NA'
20127 );
20128
20129 xla_ae_lines_pkg.set_ccid(
20130 p_code_combination_id => l_ccid
20131 , p_value_type_code => l_adr_value_type_code
20132 , p_transaction_coa_id => l_adr_transaction_coa_id
20133 , p_accounting_coa_id => l_adr_accounting_coa_id
20134 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
20135 , p_adr_type_code => 'S'
20136 , p_component_type => l_component_type
20137 , p_component_code => l_component_code
20138 , p_component_type_code => l_component_type_code
20139 , p_component_appl_id => l_component_appl_id
20140 , p_amb_context_code => l_amb_context_code
20141 , p_side => 'NA'
20142 );
20143
20144
20145 --
20146 --
20147 END IF;
20148 --
20149 -- Bug 4922099
20150 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20151 (NVL(l_enc_upg_option, 'N') = 'O')
20152 ) AND
20153 (l_bflow_method_code = 'PRIOR_ENTRY')
20154 )
20155 THEN
20156 IF
20157 --
20158 1 = 2
20159 --
20160 THEN
20161 xla_accounting_err_pkg.build_message
20162 (p_appli_s_name => 'XLA'
20163 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20164 ,p_token_1 => 'LINE_NUMBER'
20165 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20166 ,p_token_2 => 'LINE_TYPE_NAME'
20167 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20168 l_component_type
20169 ,l_component_code
20170 ,l_component_type_code
20171 ,l_component_appl_id
20172 ,l_amb_context_code
20173 ,l_entity_code
20174 ,l_event_class_code
20175 )
20176 ,p_token_3 => 'OWNER'
20177 ,p_value_3 => xla_lookups_pkg.get_meaning(
20178 p_lookup_type => 'XLA_OWNER_TYPE'
20179 ,p_lookup_code => l_component_type_code
20180 )
20181 ,p_token_4 => 'PRODUCT_NAME'
20182 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20183 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20184 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20185 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20186 ,p_ae_header_id => NULL
20187 );
20188
20189 IF (C_LEVEL_ERROR>= g_log_level) THEN
20190 trace
20191 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20192 ,p_level => C_LEVEL_ERROR
20193 ,p_module => l_log_module);
20194 END IF;
20195 END IF;
20196 END IF;
20197 --
20198 --
20199 ------------------------------------------------------------------------------------------------
20200 -- 4219869 Business Flow
20201 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20202 -- Prior Entry. Currently, the following code is always generated.
20203 ------------------------------------------------------------------------------------------------
20204 XLA_AE_LINES_PKG.ValidateCurrentLine;
20205
20206 ------------------------------------------------------------------------------------
20207 -- 4219869 Business Flow
20208 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20209 ------------------------------------------------------------------------------------
20210 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20211
20212 ----------------------------------------------------------------------------------
20213 -- 4219869 Business Flow
20214 -- Update journal entry status -- Need to generate this within IF <condition>
20215 ----------------------------------------------------------------------------------
20216 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20220
20217 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20218 ,p_balance_type_code => l_balance_type_code
20219 );
20221 -------------------------------------------------------------------------------------------
20222 -- 4262811 - Generate the Accrual Reversal lines
20223 -------------------------------------------------------------------------------------------
20224 BEGIN
20225 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20226 (g_array_event(p_event_id).array_value_num('header_index'));
20227 IF l_acc_rev_flag IS NULL THEN
20228 l_acc_rev_flag := 'N';
20229 END IF;
20230 EXCEPTION
20231 WHEN OTHERS THEN
20232 l_acc_rev_flag := 'N';
20233 END;
20234 --
20235 IF (l_acc_rev_flag = 'Y') THEN
20236
20237 -- 4645092 ------------------------------------------------------------------------------
20238 -- To allow MPA report to determine if it should generate report process
20239 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20240 ------------------------------------------------------------------------------------------
20241
20242 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20243 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20244
20245 --
20246 -- Update the line information that should be overwritten
20247 --
20248 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20249 p_header_num => 1);
20250 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20251
20252 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20253
20254 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20255 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20256 END IF;
20257
20258 --
20259 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20260 --
20261 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20262 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20263 ELSE
20264 ---------------------------------------------------------------------------------------------------
20265 -- 4262811a Switch Sign
20266 ---------------------------------------------------------------------------------------------------
20267 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20268 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20269 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20270 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20271 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20272 -- 5132302
20273 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20274 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20275
20276 END IF;
20277
20278 -- 4955764
20279 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20280 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20281
20282
20283 XLA_AE_LINES_PKG.ValidateCurrentLine;
20284 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20285
20286 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20287 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20288 ,p_balance_type_code => l_balance_type_code);
20289
20290 END IF;
20291
20292 -----------------------------------------------------------------------------------------
20293 -- 4262811 Multiperiod Accounting
20294 -----------------------------------------------------------------------------------------
20295 -- No MPA option is assigned.
20296
20297
20298 END IF;
20299 --
20300
20301 --
20302 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20303 trace
20304 (p_msg => 'END of AcctLineType_50'
20305 ,p_level => C_LEVEL_PROCEDURE
20306 ,p_module => l_log_module);
20307 END IF;
20308 --
20309 EXCEPTION
20310 WHEN xla_exceptions_pkg.application_exception THEN
20311 RAISE;
20312 WHEN OTHERS THEN
20313 xla_exceptions_pkg.raise_message
20314 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_50');
20315 END AcctLineType_50;
20316 --
20317
20318 ---------------------------------------
20319 --
20320 -- PRIVATE FUNCTION
20321 -- AcctLineType_51
20322 --
20323 ---------------------------------------
20324 PROCEDURE AcctLineType_51 (
20325 p_application_id IN NUMBER
20326 ,p_event_id IN NUMBER
20327 ,p_calculate_acctd_flag IN VARCHAR2
20328 ,p_calculate_g_l_flag IN VARCHAR2
20329 ,p_actual_flag IN OUT VARCHAR2
20333 --Cost CCID
20330 ,p_balance_type_code OUT VARCHAR2
20331 ,p_gain_or_loss_ref OUT VARCHAR2
20332
20334 , p_source_3 IN NUMBER
20335 --Allow Account Override Flag
20336 , p_source_4 IN VARCHAR2
20337 --Adjustment Cost CCID
20338 , p_source_5 IN NUMBER
20339 --Cost Clearing CCID
20340 , p_source_6 IN NUMBER
20341 --Reversing Line Flag
20342 , p_source_22 IN VARCHAR2
20343 --Actual Upgrade Credit Accounting Class
20344 , p_source_23 IN VARCHAR2
20345 --Entered Raw Cost
20346 , p_source_24 IN NUMBER
20347 --Entered Currency Code
20348 , p_source_25 IN VARCHAR2
20349 --Accounted Raw Cost
20350 , p_source_26 IN NUMBER
20351 --Exchange Rate Date
20352 , p_source_27 IN DATE
20353 --Exchange Rate
20354 , p_source_28 IN NUMBER
20355 --Exchange Rate Type
20356 , p_source_29 IN VARCHAR2
20357 --Actual Upgrade Debit Accounting Class
20358 , p_source_30 IN VARCHAR2
20359 --Use Actuals Upgrade Attributes Flag
20360 , p_source_31 IN VARCHAR2
20361 --Expenditure Item ID
20362 , p_source_32 IN NUMBER
20363 --Cost Distribution Line Number
20364 , p_source_33 IN NUMBER
20365 --Line Type
20366 , p_source_34 IN VARCHAR2
20367 , p_source_34_meaning IN VARCHAR2
20368 --Reversed Line Number
20369 , p_source_35 IN NUMBER
20370 )
20371 IS
20372
20373 l_component_type VARCHAR2(80);
20374 l_component_code VARCHAR2(30);
20375 l_component_type_code VARCHAR2(1);
20376 l_component_appl_id INTEGER;
20377 l_amb_context_code VARCHAR2(30);
20378 l_entity_code VARCHAR2(30);
20379 l_event_class_code VARCHAR2(30);
20380 l_ae_header_id NUMBER;
20381 l_event_type_code VARCHAR2(30);
20382 l_line_definition_code VARCHAR2(30);
20383 l_line_definition_owner_code VARCHAR2(1);
20384 --
20385 -- adr variables
20386 l_segment VARCHAR2(30);
20387 l_ccid NUMBER;
20388 l_adr_transaction_coa_id NUMBER;
20389 l_adr_accounting_coa_id NUMBER;
20390 l_adr_flexfield_segment_code VARCHAR2(30);
20391 l_adr_flex_value_set_id NUMBER;
20392 l_adr_value_type_code VARCHAR2(30);
20393 l_adr_value_combination_id NUMBER;
20394 l_adr_value_segment_code VARCHAR2(30);
20395
20396 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20397 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20398 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20399 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20400
20401 -- 4262811 Variables ------------------------------------------------------------------------------------------
20402 l_entered_amt_idx NUMBER;
20403 l_accted_amt_idx NUMBER;
20404 l_acc_rev_flag VARCHAR2(1);
20405 l_accrual_line_num NUMBER;
20406 l_tmp_amt NUMBER;
20407 l_acc_rev_natural_side_code VARCHAR2(1);
20408
20409 l_num_entries NUMBER;
20410 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20411 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20412 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20413 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20414 l_recog_line_1 NUMBER;
20415 l_recog_line_2 NUMBER;
20416
20417 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20418 l_bflow_applied_to_amt NUMBER; -- 5132302
20419 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20420
20421 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20422
20423 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20424 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20425
20426 ---------------------------------------------------------------------------------------------------------------
20427
20428
20429 --
20430 -- bulk performance
20431 --
20432 l_balance_type_code VARCHAR2(1);
20433 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
20434 l_log_module VARCHAR2(240);
20435
20436 --
20437 -- Upgrade strategy
20438 --
20439 l_actual_upg_option VARCHAR2(1);
20440 l_enc_upg_option VARCHAR2(1);
20441
20442 --
20443 BEGIN
20444 --
20445 IF g_log_enabled THEN
20446 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_51';
20447 END IF;
20448 --
20449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20450
20451 trace
20452 (p_msg => 'BEGIN of AcctLineType_51'
20453 ,p_level => C_LEVEL_PROCEDURE
20454 ,p_module => l_log_module);
20455
20456 END IF;
20457 --
20458 l_component_type := 'AMB_JLT';
20459 l_component_code := 'PA_RAW_COST_ADJ';
20460 l_component_type_code := 'S';
20461 l_component_appl_id := 275;
20462 l_amb_context_code := 'DEFAULT';
20466 l_line_definition_owner_code := 'S';
20463 l_entity_code := 'EXPENDITURES';
20464 l_event_class_code := 'LABOR_COST_ADJ';
20465 l_event_type_code := 'LABOR_COST_ADJ_ALL';
20467 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
20468 --
20469 l_balance_type_code := 'A';
20470 l_segment := NULL;
20471 l_ccid := NULL;
20472 l_adr_transaction_coa_id := NULL;
20473 l_adr_accounting_coa_id := NULL;
20474 l_adr_flexfield_segment_code := NULL;
20475 l_adr_flex_value_set_id := NULL;
20476 l_adr_value_type_code := NULL;
20477 l_adr_value_combination_id := NULL;
20478 l_adr_value_segment_code := NULL;
20479
20480 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
20481 l_bflow_class_code := ''; -- 4219869 Business Flow
20482 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
20483 l_budgetary_control_flag := 'N';
20484
20485 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20486 l_bflow_applied_to_amt := NULL; -- 5132302
20487 l_entered_amt_idx := NULL; -- 4262811
20488 l_accted_amt_idx := NULL; -- 4262811
20489 l_acc_rev_flag := NULL; -- 4262811
20490 l_accrual_line_num := NULL; -- 4262811
20491 l_tmp_amt := NULL; -- 4262811
20492 --
20493
20494 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
20495 l_balance_type_code <> 'B' THEN
20496
20497 --
20498 XLA_AE_LINES_PKG.SetNewLine;
20499
20500 p_balance_type_code := l_balance_type_code;
20501 -- set the flag so later we will know whether the gain loss line needs to be created
20502
20503 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
20504 p_actual_flag :='A';
20505 END IF;
20506
20507 --
20508 -- bulk performance
20509 --
20510 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
20511 p_header_num => 0); -- 4262811
20512 --
20513 -- set accounting line options
20514 --
20515 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
20516 p_natural_side_code => 'D'
20517 , p_gain_or_loss_flag => 'N'
20518 , p_gl_transfer_mode_code => 'S'
20519 , p_acct_entry_type_code => 'A'
20520 , p_switch_side_flag => 'Y'
20521 , p_merge_duplicate_code => 'N'
20522 );
20523 --
20524 l_acc_rev_natural_side_code := 'C'; -- 4262811
20525 --
20526 --
20527 -- set accounting line type info
20528 --
20529 xla_ae_lines_pkg.SetAcctLineType
20530 (p_component_type => l_component_type
20531 ,p_event_type_code => l_event_type_code
20532 ,p_line_definition_owner_code => l_line_definition_owner_code
20533 ,p_line_definition_code => l_line_definition_code
20534 ,p_accounting_line_code => l_component_code
20535 ,p_accounting_line_type_code => l_component_type_code
20536 ,p_accounting_line_appl_id => l_component_appl_id
20537 ,p_amb_context_code => l_amb_context_code
20538 ,p_entity_code => l_entity_code
20539 ,p_event_class_code => l_event_class_code);
20540 --
20541 -- set accounting class
20542 --
20543 xla_ae_lines_pkg.SetAcctClass(
20544 p_accounting_class_code => 'COST'
20545 , p_ae_header_id => l_ae_header_id
20546 );
20547
20548 --
20549 -- set rounding class
20550 --
20551 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
20552 'COST';
20553
20554 --
20555 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
20556 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
20557 --
20558 -- bulk performance
20559 --
20560 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
20561
20562 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
20563 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
20564
20565 -- 4955764
20566 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20567 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
20568
20569 -- 4458381 Public Sector Enh
20570
20571 --
20572 -- set accounting attributes for the line type
20573 --
20574 l_entered_amt_idx := 22;
20575 l_accted_amt_idx := 27;
20576 l_bflow_applied_to_amt_idx := NULL; -- 5132302
20577 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
20578 l_rec_acct_attrs.array_char_value(1) := p_source_22;
20579 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
20580 l_rec_acct_attrs.array_char_value(2) := p_source_23;
20581 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
20582 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
20583 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
20584 l_rec_acct_attrs.array_num_value(4) := p_source_24;
20585 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
20589 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
20586 l_rec_acct_attrs.array_char_value(5) := p_source_25;
20587 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
20588 l_rec_acct_attrs.array_num_value(6) := p_source_26;
20590 l_rec_acct_attrs.array_date_value(7) := p_source_27;
20591 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
20592 l_rec_acct_attrs.array_num_value(8) := p_source_28;
20593 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
20594 l_rec_acct_attrs.array_char_value(9) := p_source_29;
20595 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
20596 l_rec_acct_attrs.array_char_value(10) := p_source_30;
20597 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
20598 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
20599 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
20600 l_rec_acct_attrs.array_num_value(12) := p_source_24;
20601 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
20602 l_rec_acct_attrs.array_char_value(13) := p_source_25;
20603 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
20604 l_rec_acct_attrs.array_num_value(14) := p_source_26;
20605 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
20606 l_rec_acct_attrs.array_date_value(15) := p_source_27;
20607 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
20608 l_rec_acct_attrs.array_num_value(16) := p_source_28;
20609 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
20610 l_rec_acct_attrs.array_char_value(17) := p_source_29;
20611 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
20612 l_rec_acct_attrs.array_char_value(18) := p_source_31;
20613 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
20614 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
20615 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
20616 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
20617 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
20618 l_rec_acct_attrs.array_char_value(21) := p_source_34;
20619 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
20620 l_rec_acct_attrs.array_num_value(22) := p_source_24;
20621 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
20622 l_rec_acct_attrs.array_char_value(23) := p_source_25;
20623 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
20624 l_rec_acct_attrs.array_date_value(24) := p_source_27;
20625 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
20626 l_rec_acct_attrs.array_num_value(25) := p_source_28;
20627 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
20628 l_rec_acct_attrs.array_char_value(26) := p_source_29;
20629 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
20630 l_rec_acct_attrs.array_num_value(27) := p_source_26;
20631 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
20632 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
20633 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
20634 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
20635 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
20636 l_rec_acct_attrs.array_char_value(30) := p_source_34;
20637
20638 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
20639 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
20640
20641 ---------------------------------------------------------------------------------------------------------------
20642 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
20643 ---------------------------------------------------------------------------------------------------------------
20644 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
20645
20646 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20647 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
20648
20649 IF xla_accounting_cache_pkg.GetValueChar
20650 (p_source_code => 'LEDGER_CATEGORY_CODE'
20651 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
20652 AND l_bflow_method_code = 'PRIOR_ENTRY'
20653 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
20654 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
20655 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
20656 )
20657 THEN
20658 xla_ae_lines_pkg.BflowUpgEntry
20659 (p_business_method_code => l_bflow_method_code
20660 ,p_business_class_code => l_bflow_class_code
20661 ,p_balance_type => l_balance_type_code);
20662 ELSE
20663 NULL;
20664 -- No business flow processing for business flow method of NONE.
20665 END IF;
20666
20667 --
20668 -- call analytical criteria
20669 --
20670
20671 --
20672 -- call description
20673 --
20674 -- No description or it is inherited.
20675 --
20676 -- call ADRs
20677 -- Bug 4922099
20678 --
20682 )
20679 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
20680 (NVL(l_actual_upg_option, 'N') = 'O') OR
20681 (NVL(l_enc_upg_option, 'N') = 'O')
20683 THEN
20684 NULL;
20685 --
20686 --
20687
20688 l_ccid := AcctDerRule_4(
20689 p_application_id => p_application_id
20690 , p_ae_header_id => l_ae_header_id
20691 , p_source_4 => p_source_4
20692 , p_source_5 => p_source_5
20693 , x_transaction_coa_id => l_adr_transaction_coa_id
20694 , x_accounting_coa_id => l_adr_accounting_coa_id
20695 , x_value_type_code => l_adr_value_type_code
20696 , p_side => 'NA'
20697 );
20698
20699 xla_ae_lines_pkg.set_ccid(
20700 p_code_combination_id => l_ccid
20701 , p_value_type_code => l_adr_value_type_code
20702 , p_transaction_coa_id => l_adr_transaction_coa_id
20703 , p_accounting_coa_id => l_adr_accounting_coa_id
20704 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
20705 , p_adr_type_code => 'S'
20706 , p_component_type => l_component_type
20707 , p_component_code => l_component_code
20708 , p_component_type_code => l_component_type_code
20709 , p_component_appl_id => l_component_appl_id
20710 , p_amb_context_code => l_amb_context_code
20711 , p_side => 'NA'
20712 );
20713
20714
20715 --
20716 --
20717 END IF;
20718 --
20719 -- Bug 4922099
20720 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
20721 (NVL(l_enc_upg_option, 'N') = 'O')
20722 ) AND
20723 (l_bflow_method_code = 'PRIOR_ENTRY')
20724 )
20725 THEN
20726 IF
20727 --
20728 1 = 2
20729 --
20730 THEN
20731 xla_accounting_err_pkg.build_message
20732 (p_appli_s_name => 'XLA'
20733 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20734 ,p_token_1 => 'LINE_NUMBER'
20735 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
20736 ,p_token_2 => 'LINE_TYPE_NAME'
20737 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
20738 l_component_type
20739 ,l_component_code
20740 ,l_component_type_code
20741 ,l_component_appl_id
20742 ,l_amb_context_code
20743 ,l_entity_code
20744 ,l_event_class_code
20745 )
20746 ,p_token_3 => 'OWNER'
20747 ,p_value_3 => xla_lookups_pkg.get_meaning(
20748 p_lookup_type => 'XLA_OWNER_TYPE'
20749 ,p_lookup_code => l_component_type_code
20750 )
20751 ,p_token_4 => 'PRODUCT_NAME'
20752 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
20753 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
20754 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
20755 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
20756 ,p_ae_header_id => NULL
20757 );
20758
20759 IF (C_LEVEL_ERROR>= g_log_level) THEN
20760 trace
20761 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
20762 ,p_level => C_LEVEL_ERROR
20763 ,p_module => l_log_module);
20764 END IF;
20765 END IF;
20766 END IF;
20767 --
20768 --
20769 ------------------------------------------------------------------------------------------------
20770 -- 4219869 Business Flow
20771 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
20772 -- Prior Entry. Currently, the following code is always generated.
20773 ------------------------------------------------------------------------------------------------
20774 XLA_AE_LINES_PKG.ValidateCurrentLine;
20775
20776 ------------------------------------------------------------------------------------
20777 -- 4219869 Business Flow
20778 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
20779 ------------------------------------------------------------------------------------
20783 -- 4219869 Business Flow
20780 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20781
20782 ----------------------------------------------------------------------------------
20784 -- Update journal entry status -- Need to generate this within IF <condition>
20785 ----------------------------------------------------------------------------------
20786 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20787 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
20788 ,p_balance_type_code => l_balance_type_code
20789 );
20790
20791 -------------------------------------------------------------------------------------------
20792 -- 4262811 - Generate the Accrual Reversal lines
20793 -------------------------------------------------------------------------------------------
20794 BEGIN
20795 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
20796 (g_array_event(p_event_id).array_value_num('header_index'));
20797 IF l_acc_rev_flag IS NULL THEN
20798 l_acc_rev_flag := 'N';
20799 END IF;
20800 EXCEPTION
20801 WHEN OTHERS THEN
20802 l_acc_rev_flag := 'N';
20803 END;
20804 --
20805 IF (l_acc_rev_flag = 'Y') THEN
20806
20807 -- 4645092 ------------------------------------------------------------------------------
20808 -- To allow MPA report to determine if it should generate report process
20809 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
20810 ------------------------------------------------------------------------------------------
20811
20812 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
20813 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
20814
20815 --
20816 -- Update the line information that should be overwritten
20817 --
20818 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
20819 p_header_num => 1);
20820 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
20821
20822 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
20823
20824 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
20825 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
20826 END IF;
20827
20828 --
20829 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
20830 --
20831 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
20832 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
20833 ELSE
20834 ---------------------------------------------------------------------------------------------------
20835 -- 4262811a Switch Sign
20836 ---------------------------------------------------------------------------------------------------
20837 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
20838 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20839 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20840 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
20841 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20842 -- 5132302
20843 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
20844 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
20845
20846 END IF;
20847
20848 -- 4955764
20849 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
20850 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
20851
20852
20853 XLA_AE_LINES_PKG.ValidateCurrentLine;
20854 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
20855
20856 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
20857 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
20858 ,p_balance_type_code => l_balance_type_code);
20859
20860 END IF;
20861
20862 -----------------------------------------------------------------------------------------
20863 -- 4262811 Multiperiod Accounting
20864 -----------------------------------------------------------------------------------------
20865 -- No MPA option is assigned.
20866
20867
20868 END IF;
20869 --
20870
20871 --
20872 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
20873 trace
20874 (p_msg => 'END of AcctLineType_51'
20875 ,p_level => C_LEVEL_PROCEDURE
20876 ,p_module => l_log_module);
20877 END IF;
20878 --
20879 EXCEPTION
20880 WHEN xla_exceptions_pkg.application_exception THEN
20881 RAISE;
20882 WHEN OTHERS THEN
20883 xla_exceptions_pkg.raise_message
20884 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_51');
20885 END AcctLineType_51;
20886 --
20887
20888 ---------------------------------------
20889 --
20890 -- PRIVATE FUNCTION
20894 PROCEDURE AcctLineType_52 (
20891 -- AcctLineType_52
20892 --
20893 ---------------------------------------
20895 p_application_id IN NUMBER
20896 ,p_event_id IN NUMBER
20897 ,p_calculate_acctd_flag IN VARCHAR2
20898 ,p_calculate_g_l_flag IN VARCHAR2
20899 ,p_actual_flag IN OUT VARCHAR2
20900 ,p_balance_type_code OUT VARCHAR2
20901 ,p_gain_or_loss_ref OUT VARCHAR2
20902
20903 --Cost CCID
20904 , p_source_3 IN NUMBER
20905 --Allow Account Override Flag
20906 , p_source_4 IN VARCHAR2
20907 --Adjustment Cost CCID
20908 , p_source_5 IN NUMBER
20909 --Cost Clearing CCID
20910 , p_source_6 IN NUMBER
20911 --Reversing Line Flag
20912 , p_source_22 IN VARCHAR2
20913 --Actual Upgrade Credit Accounting Class
20914 , p_source_23 IN VARCHAR2
20915 --Entered Raw Cost
20916 , p_source_24 IN NUMBER
20917 --Entered Currency Code
20918 , p_source_25 IN VARCHAR2
20919 --Accounted Raw Cost
20920 , p_source_26 IN NUMBER
20921 --Exchange Rate Date
20922 , p_source_27 IN DATE
20923 --Exchange Rate
20924 , p_source_28 IN NUMBER
20925 --Exchange Rate Type
20926 , p_source_29 IN VARCHAR2
20927 --Actual Upgrade Debit Accounting Class
20928 , p_source_30 IN VARCHAR2
20929 --Use Actuals Upgrade Attributes Flag
20930 , p_source_31 IN VARCHAR2
20931 --Expenditure Item ID
20932 , p_source_32 IN NUMBER
20933 --Cost Distribution Line Number
20934 , p_source_33 IN NUMBER
20935 --Line Type
20936 , p_source_34 IN VARCHAR2
20937 , p_source_34_meaning IN VARCHAR2
20938 --Reversed Line Number
20939 , p_source_35 IN NUMBER
20940 )
20941 IS
20942
20943 l_component_type VARCHAR2(80);
20944 l_component_code VARCHAR2(30);
20945 l_component_type_code VARCHAR2(1);
20946 l_component_appl_id INTEGER;
20947 l_amb_context_code VARCHAR2(30);
20948 l_entity_code VARCHAR2(30);
20949 l_event_class_code VARCHAR2(30);
20950 l_ae_header_id NUMBER;
20951 l_event_type_code VARCHAR2(30);
20952 l_line_definition_code VARCHAR2(30);
20953 l_line_definition_owner_code VARCHAR2(1);
20954 --
20955 -- adr variables
20956 l_segment VARCHAR2(30);
20957 l_ccid NUMBER;
20958 l_adr_transaction_coa_id NUMBER;
20959 l_adr_accounting_coa_id NUMBER;
20960 l_adr_flexfield_segment_code VARCHAR2(30);
20961 l_adr_flex_value_set_id NUMBER;
20962 l_adr_value_type_code VARCHAR2(30);
20963 l_adr_value_combination_id NUMBER;
20964 l_adr_value_segment_code VARCHAR2(30);
20965
20966 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
20967 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
20968 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
20969 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
20970
20971 -- 4262811 Variables ------------------------------------------------------------------------------------------
20972 l_entered_amt_idx NUMBER;
20973 l_accted_amt_idx NUMBER;
20974 l_acc_rev_flag VARCHAR2(1);
20975 l_accrual_line_num NUMBER;
20976 l_tmp_amt NUMBER;
20977 l_acc_rev_natural_side_code VARCHAR2(1);
20978
20979 l_num_entries NUMBER;
20980 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
20981 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
20982 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
20983 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
20984 l_recog_line_1 NUMBER;
20985 l_recog_line_2 NUMBER;
20986
20987 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
20988 l_bflow_applied_to_amt NUMBER; -- 5132302
20989 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
20990
20991 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
20992
20993 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
20994 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
20995
20996 ---------------------------------------------------------------------------------------------------------------
20997
20998
20999 --
21000 -- bulk performance
21001 --
21002 l_balance_type_code VARCHAR2(1);
21003 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21004 l_log_module VARCHAR2(240);
21005
21006 --
21007 -- Upgrade strategy
21008 --
21009 l_actual_upg_option VARCHAR2(1);
21010 l_enc_upg_option VARCHAR2(1);
21011
21012 --
21013 BEGIN
21014 --
21015 IF g_log_enabled THEN
21016 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_52';
21017 END IF;
21018 --
21019 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21020
21021 trace
21022 (p_msg => 'BEGIN of AcctLineType_52'
21023 ,p_level => C_LEVEL_PROCEDURE
21024 ,p_module => l_log_module);
21025
21029 l_component_code := 'PA_RAW_COST_ADJ';
21026 END IF;
21027 --
21028 l_component_type := 'AMB_JLT';
21030 l_component_type_code := 'S';
21031 l_component_appl_id := 275;
21032 l_amb_context_code := 'DEFAULT';
21033 l_entity_code := 'EXPENDITURES';
21034 l_event_class_code := 'WIP_COST_ADJ';
21035 l_event_type_code := 'WIP_COST_ADJ_ALL';
21036 l_line_definition_owner_code := 'S';
21037 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
21038 --
21039 l_balance_type_code := 'A';
21040 l_segment := NULL;
21041 l_ccid := NULL;
21042 l_adr_transaction_coa_id := NULL;
21043 l_adr_accounting_coa_id := NULL;
21044 l_adr_flexfield_segment_code := NULL;
21045 l_adr_flex_value_set_id := NULL;
21046 l_adr_value_type_code := NULL;
21047 l_adr_value_combination_id := NULL;
21048 l_adr_value_segment_code := NULL;
21049
21050 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21051 l_bflow_class_code := ''; -- 4219869 Business Flow
21052 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21053 l_budgetary_control_flag := 'N';
21054
21055 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21056 l_bflow_applied_to_amt := NULL; -- 5132302
21057 l_entered_amt_idx := NULL; -- 4262811
21058 l_accted_amt_idx := NULL; -- 4262811
21059 l_acc_rev_flag := NULL; -- 4262811
21060 l_accrual_line_num := NULL; -- 4262811
21061 l_tmp_amt := NULL; -- 4262811
21062 --
21063
21064 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21065 l_balance_type_code <> 'B' THEN
21066
21067 --
21068 XLA_AE_LINES_PKG.SetNewLine;
21069
21070 p_balance_type_code := l_balance_type_code;
21071 -- set the flag so later we will know whether the gain loss line needs to be created
21072
21073 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21074 p_actual_flag :='A';
21075 END IF;
21076
21077 --
21078 -- bulk performance
21079 --
21080 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21081 p_header_num => 0); -- 4262811
21082 --
21083 -- set accounting line options
21084 --
21085 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21086 p_natural_side_code => 'D'
21087 , p_gain_or_loss_flag => 'N'
21088 , p_gl_transfer_mode_code => 'S'
21089 , p_acct_entry_type_code => 'A'
21090 , p_switch_side_flag => 'Y'
21091 , p_merge_duplicate_code => 'N'
21092 );
21093 --
21094 l_acc_rev_natural_side_code := 'C'; -- 4262811
21095 --
21096 --
21097 -- set accounting line type info
21098 --
21099 xla_ae_lines_pkg.SetAcctLineType
21100 (p_component_type => l_component_type
21101 ,p_event_type_code => l_event_type_code
21102 ,p_line_definition_owner_code => l_line_definition_owner_code
21103 ,p_line_definition_code => l_line_definition_code
21104 ,p_accounting_line_code => l_component_code
21105 ,p_accounting_line_type_code => l_component_type_code
21106 ,p_accounting_line_appl_id => l_component_appl_id
21107 ,p_amb_context_code => l_amb_context_code
21108 ,p_entity_code => l_entity_code
21109 ,p_event_class_code => l_event_class_code);
21110 --
21111 -- set accounting class
21112 --
21113 xla_ae_lines_pkg.SetAcctClass(
21114 p_accounting_class_code => 'COST'
21115 , p_ae_header_id => l_ae_header_id
21116 );
21117
21118 --
21119 -- set rounding class
21120 --
21121 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21122 'COST';
21123
21124 --
21125 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21126 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21127 --
21128 -- bulk performance
21129 --
21130 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21131
21132 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21133 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21134
21135 -- 4955764
21136 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21137 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21138
21139 -- 4458381 Public Sector Enh
21140
21141 --
21142 -- set accounting attributes for the line type
21143 --
21144 l_entered_amt_idx := 22;
21145 l_accted_amt_idx := 27;
21146 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21147 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21148 l_rec_acct_attrs.array_char_value(1) := p_source_22;
21149 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
21150 l_rec_acct_attrs.array_char_value(2) := p_source_23;
21154 l_rec_acct_attrs.array_num_value(4) := p_source_24;
21151 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
21152 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
21153 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
21155 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
21156 l_rec_acct_attrs.array_char_value(5) := p_source_25;
21157 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
21158 l_rec_acct_attrs.array_num_value(6) := p_source_26;
21159 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
21160 l_rec_acct_attrs.array_date_value(7) := p_source_27;
21161 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
21162 l_rec_acct_attrs.array_num_value(8) := p_source_28;
21163 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
21164 l_rec_acct_attrs.array_char_value(9) := p_source_29;
21165 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
21166 l_rec_acct_attrs.array_char_value(10) := p_source_30;
21167 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
21168 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
21169 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
21170 l_rec_acct_attrs.array_num_value(12) := p_source_24;
21171 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
21172 l_rec_acct_attrs.array_char_value(13) := p_source_25;
21173 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
21174 l_rec_acct_attrs.array_num_value(14) := p_source_26;
21175 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
21176 l_rec_acct_attrs.array_date_value(15) := p_source_27;
21177 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
21178 l_rec_acct_attrs.array_num_value(16) := p_source_28;
21179 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
21180 l_rec_acct_attrs.array_char_value(17) := p_source_29;
21181 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
21182 l_rec_acct_attrs.array_char_value(18) := p_source_31;
21183 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
21184 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
21185 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
21186 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
21187 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
21188 l_rec_acct_attrs.array_char_value(21) := p_source_34;
21189 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
21190 l_rec_acct_attrs.array_num_value(22) := p_source_24;
21191 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
21192 l_rec_acct_attrs.array_char_value(23) := p_source_25;
21193 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
21194 l_rec_acct_attrs.array_date_value(24) := p_source_27;
21195 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
21196 l_rec_acct_attrs.array_num_value(25) := p_source_28;
21197 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
21198 l_rec_acct_attrs.array_char_value(26) := p_source_29;
21199 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
21200 l_rec_acct_attrs.array_num_value(27) := p_source_26;
21201 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
21202 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
21203 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
21204 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
21205 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
21206 l_rec_acct_attrs.array_char_value(30) := p_source_34;
21207
21208 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21209 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21210
21211 ---------------------------------------------------------------------------------------------------------------
21212 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21213 ---------------------------------------------------------------------------------------------------------------
21214 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21215
21216 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21217 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21218
21219 IF xla_accounting_cache_pkg.GetValueChar
21220 (p_source_code => 'LEDGER_CATEGORY_CODE'
21221 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21222 AND l_bflow_method_code = 'PRIOR_ENTRY'
21223 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21224 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21225 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21226 )
21227 THEN
21228 xla_ae_lines_pkg.BflowUpgEntry
21229 (p_business_method_code => l_bflow_method_code
21230 ,p_business_class_code => l_bflow_class_code
21231 ,p_balance_type => l_balance_type_code);
21232 ELSE
21233 NULL;
21234 -- No business flow processing for business flow method of NONE.
21235 END IF;
21236
21237 --
21238 -- call analytical criteria
21242 -- call description
21239 --
21240
21241 --
21243 --
21244 -- No description or it is inherited.
21245 --
21246 -- call ADRs
21247 -- Bug 4922099
21248 --
21249 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21250 (NVL(l_actual_upg_option, 'N') = 'O') OR
21251 (NVL(l_enc_upg_option, 'N') = 'O')
21252 )
21253 THEN
21254 NULL;
21255 --
21256 --
21257
21258 l_ccid := AcctDerRule_4(
21259 p_application_id => p_application_id
21260 , p_ae_header_id => l_ae_header_id
21261 , p_source_4 => p_source_4
21262 , p_source_5 => p_source_5
21263 , x_transaction_coa_id => l_adr_transaction_coa_id
21264 , x_accounting_coa_id => l_adr_accounting_coa_id
21265 , x_value_type_code => l_adr_value_type_code
21266 , p_side => 'NA'
21267 );
21268
21269 xla_ae_lines_pkg.set_ccid(
21270 p_code_combination_id => l_ccid
21271 , p_value_type_code => l_adr_value_type_code
21272 , p_transaction_coa_id => l_adr_transaction_coa_id
21273 , p_accounting_coa_id => l_adr_accounting_coa_id
21274 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
21275 , p_adr_type_code => 'S'
21276 , p_component_type => l_component_type
21277 , p_component_code => l_component_code
21278 , p_component_type_code => l_component_type_code
21279 , p_component_appl_id => l_component_appl_id
21280 , p_amb_context_code => l_amb_context_code
21281 , p_side => 'NA'
21282 );
21283
21284
21285 --
21286 --
21287 END IF;
21288 --
21289 -- Bug 4922099
21290 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21291 (NVL(l_enc_upg_option, 'N') = 'O')
21292 ) AND
21293 (l_bflow_method_code = 'PRIOR_ENTRY')
21294 )
21295 THEN
21296 IF
21297 --
21298 1 = 2
21299 --
21300 THEN
21301 xla_accounting_err_pkg.build_message
21302 (p_appli_s_name => 'XLA'
21303 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21304 ,p_token_1 => 'LINE_NUMBER'
21305 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21306 ,p_token_2 => 'LINE_TYPE_NAME'
21307 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21308 l_component_type
21309 ,l_component_code
21310 ,l_component_type_code
21311 ,l_component_appl_id
21312 ,l_amb_context_code
21313 ,l_entity_code
21314 ,l_event_class_code
21315 )
21316 ,p_token_3 => 'OWNER'
21317 ,p_value_3 => xla_lookups_pkg.get_meaning(
21318 p_lookup_type => 'XLA_OWNER_TYPE'
21319 ,p_lookup_code => l_component_type_code
21320 )
21321 ,p_token_4 => 'PRODUCT_NAME'
21322 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21323 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21324 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21325 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21326 ,p_ae_header_id => NULL
21327 );
21328
21329 IF (C_LEVEL_ERROR>= g_log_level) THEN
21330 trace
21331 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21332 ,p_level => C_LEVEL_ERROR
21333 ,p_module => l_log_module);
21334 END IF;
21335 END IF;
21336 END IF;
21337 --
21338 --
21339 ------------------------------------------------------------------------------------------------
21340 -- 4219869 Business Flow
21341 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21342 -- Prior Entry. Currently, the following code is always generated.
21343 ------------------------------------------------------------------------------------------------
21344 XLA_AE_LINES_PKG.ValidateCurrentLine;
21345
21349 ------------------------------------------------------------------------------------
21346 ------------------------------------------------------------------------------------
21347 -- 4219869 Business Flow
21348 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21350 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21351
21352 ----------------------------------------------------------------------------------
21353 -- 4219869 Business Flow
21354 -- Update journal entry status -- Need to generate this within IF <condition>
21355 ----------------------------------------------------------------------------------
21356 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21357 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21358 ,p_balance_type_code => l_balance_type_code
21359 );
21360
21361 -------------------------------------------------------------------------------------------
21362 -- 4262811 - Generate the Accrual Reversal lines
21363 -------------------------------------------------------------------------------------------
21364 BEGIN
21365 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21366 (g_array_event(p_event_id).array_value_num('header_index'));
21367 IF l_acc_rev_flag IS NULL THEN
21368 l_acc_rev_flag := 'N';
21369 END IF;
21370 EXCEPTION
21371 WHEN OTHERS THEN
21372 l_acc_rev_flag := 'N';
21373 END;
21374 --
21375 IF (l_acc_rev_flag = 'Y') THEN
21376
21377 -- 4645092 ------------------------------------------------------------------------------
21378 -- To allow MPA report to determine if it should generate report process
21379 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21380 ------------------------------------------------------------------------------------------
21381
21382 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21383 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21384
21385 --
21386 -- Update the line information that should be overwritten
21387 --
21388 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21389 p_header_num => 1);
21390 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21391
21392 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21393
21394 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21395 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21396 END IF;
21397
21398 --
21399 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21400 --
21401 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21402 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21403 ELSE
21404 ---------------------------------------------------------------------------------------------------
21405 -- 4262811a Switch Sign
21406 ---------------------------------------------------------------------------------------------------
21407 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21408 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21409 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21410 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21411 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21412 -- 5132302
21413 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21414 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21415
21416 END IF;
21417
21418 -- 4955764
21419 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21420 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21421
21422
21423 XLA_AE_LINES_PKG.ValidateCurrentLine;
21424 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21425
21426 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21427 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21428 ,p_balance_type_code => l_balance_type_code);
21429
21430 END IF;
21431
21432 -----------------------------------------------------------------------------------------
21433 -- 4262811 Multiperiod Accounting
21434 -----------------------------------------------------------------------------------------
21435 -- No MPA option is assigned.
21436
21437
21438 END IF;
21439 --
21440
21441 --
21442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21443 trace
21444 (p_msg => 'END of AcctLineType_52'
21445 ,p_level => C_LEVEL_PROCEDURE
21446 ,p_module => l_log_module);
21447 END IF;
21448 --
21449 EXCEPTION
21450 WHEN xla_exceptions_pkg.application_exception THEN
21454 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_52');
21451 RAISE;
21452 WHEN OTHERS THEN
21453 xla_exceptions_pkg.raise_message
21455 END AcctLineType_52;
21456 --
21457
21458 ---------------------------------------
21459 --
21460 -- PRIVATE FUNCTION
21461 -- AcctLineType_53
21462 --
21463 ---------------------------------------
21464 PROCEDURE AcctLineType_53 (
21465 p_application_id IN NUMBER
21466 ,p_event_id IN NUMBER
21467 ,p_calculate_acctd_flag IN VARCHAR2
21468 ,p_calculate_g_l_flag IN VARCHAR2
21469 ,p_actual_flag IN OUT VARCHAR2
21470 ,p_balance_type_code OUT VARCHAR2
21471 ,p_gain_or_loss_ref OUT VARCHAR2
21472
21473 --Cost CCID
21474 , p_source_3 IN NUMBER
21475 --Allow Account Override Flag
21476 , p_source_4 IN VARCHAR2
21477 --Cost Clearing CCID
21478 , p_source_6 IN NUMBER
21479 --Adjustment Cost Clearing CCID
21480 , p_source_7 IN NUMBER
21481 --Reversing Line Flag
21482 , p_source_22 IN VARCHAR2
21483 --Actual Upgrade Credit Accounting Class
21484 , p_source_23 IN VARCHAR2
21485 --Entered Raw Cost
21486 , p_source_24 IN NUMBER
21487 --Entered Currency Code
21488 , p_source_25 IN VARCHAR2
21489 --Accounted Raw Cost
21490 , p_source_26 IN NUMBER
21491 --Exchange Rate Date
21492 , p_source_27 IN DATE
21493 --Exchange Rate
21494 , p_source_28 IN NUMBER
21495 --Exchange Rate Type
21496 , p_source_29 IN VARCHAR2
21497 --Actual Upgrade Debit Accounting Class
21498 , p_source_30 IN VARCHAR2
21499 --Use Actuals Upgrade Attributes Flag
21500 , p_source_31 IN VARCHAR2
21501 --Expenditure Item ID
21502 , p_source_32 IN NUMBER
21503 --Cost Distribution Line Number
21504 , p_source_33 IN NUMBER
21505 --Line Type
21506 , p_source_34 IN VARCHAR2
21507 , p_source_34_meaning IN VARCHAR2
21508 --Reversed Line Number
21509 , p_source_35 IN NUMBER
21510 )
21511 IS
21512
21513 l_component_type VARCHAR2(80);
21514 l_component_code VARCHAR2(30);
21515 l_component_type_code VARCHAR2(1);
21516 l_component_appl_id INTEGER;
21517 l_amb_context_code VARCHAR2(30);
21518 l_entity_code VARCHAR2(30);
21519 l_event_class_code VARCHAR2(30);
21520 l_ae_header_id NUMBER;
21521 l_event_type_code VARCHAR2(30);
21522 l_line_definition_code VARCHAR2(30);
21523 l_line_definition_owner_code VARCHAR2(1);
21524 --
21525 -- adr variables
21526 l_segment VARCHAR2(30);
21527 l_ccid NUMBER;
21528 l_adr_transaction_coa_id NUMBER;
21529 l_adr_accounting_coa_id NUMBER;
21530 l_adr_flexfield_segment_code VARCHAR2(30);
21531 l_adr_flex_value_set_id NUMBER;
21532 l_adr_value_type_code VARCHAR2(30);
21533 l_adr_value_combination_id NUMBER;
21534 l_adr_value_segment_code VARCHAR2(30);
21535
21536 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
21537 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
21538 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
21539 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
21540
21541 -- 4262811 Variables ------------------------------------------------------------------------------------------
21542 l_entered_amt_idx NUMBER;
21543 l_accted_amt_idx NUMBER;
21544 l_acc_rev_flag VARCHAR2(1);
21545 l_accrual_line_num NUMBER;
21546 l_tmp_amt NUMBER;
21547 l_acc_rev_natural_side_code VARCHAR2(1);
21548
21549 l_num_entries NUMBER;
21550 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
21551 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
21552 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
21553 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
21554 l_recog_line_1 NUMBER;
21555 l_recog_line_2 NUMBER;
21556
21557 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
21558 l_bflow_applied_to_amt NUMBER; -- 5132302
21559 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
21560
21561 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
21562
21563 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
21564 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
21565
21566 ---------------------------------------------------------------------------------------------------------------
21567
21568
21569 --
21570 -- bulk performance
21571 --
21572 l_balance_type_code VARCHAR2(1);
21573 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
21574 l_log_module VARCHAR2(240);
21575
21576 --
21577 -- Upgrade strategy
21578 --
21579 l_actual_upg_option VARCHAR2(1);
21580 l_enc_upg_option VARCHAR2(1);
21581
21582 --
21583 BEGIN
21584 --
21585 IF g_log_enabled THEN
21586 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_53';
21590
21587 END IF;
21588 --
21589 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
21591 trace
21592 (p_msg => 'BEGIN of AcctLineType_53'
21593 ,p_level => C_LEVEL_PROCEDURE
21594 ,p_module => l_log_module);
21595
21596 END IF;
21597 --
21598 l_component_type := 'AMB_JLT';
21599 l_component_code := 'PA_RAW_COST_CLEARING';
21600 l_component_type_code := 'S';
21601 l_component_appl_id := 275;
21602 l_amb_context_code := 'DEFAULT';
21603 l_entity_code := 'EXPENDITURES';
21604 l_event_class_code := 'USG_COST';
21605 l_event_type_code := 'USG_COST_ALL';
21606 l_line_definition_owner_code := 'S';
21607 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
21608 --
21609 l_balance_type_code := 'A';
21610 l_segment := NULL;
21611 l_ccid := NULL;
21612 l_adr_transaction_coa_id := NULL;
21613 l_adr_accounting_coa_id := NULL;
21614 l_adr_flexfield_segment_code := NULL;
21615 l_adr_flex_value_set_id := NULL;
21616 l_adr_value_type_code := NULL;
21617 l_adr_value_combination_id := NULL;
21618 l_adr_value_segment_code := NULL;
21619
21620 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
21621 l_bflow_class_code := ''; -- 4219869 Business Flow
21622 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
21623 l_budgetary_control_flag := 'N';
21624
21625 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21626 l_bflow_applied_to_amt := NULL; -- 5132302
21627 l_entered_amt_idx := NULL; -- 4262811
21628 l_accted_amt_idx := NULL; -- 4262811
21629 l_acc_rev_flag := NULL; -- 4262811
21630 l_accrual_line_num := NULL; -- 4262811
21631 l_tmp_amt := NULL; -- 4262811
21632 --
21633
21634 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
21635 l_balance_type_code <> 'B' THEN
21636
21637 --
21638 XLA_AE_LINES_PKG.SetNewLine;
21639
21640 p_balance_type_code := l_balance_type_code;
21641 -- set the flag so later we will know whether the gain loss line needs to be created
21642
21643 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
21644 p_actual_flag :='A';
21645 END IF;
21646
21647 --
21648 -- bulk performance
21649 --
21650 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
21651 p_header_num => 0); -- 4262811
21652 --
21653 -- set accounting line options
21654 --
21655 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
21656 p_natural_side_code => 'C'
21657 , p_gain_or_loss_flag => 'N'
21658 , p_gl_transfer_mode_code => 'S'
21659 , p_acct_entry_type_code => 'A'
21660 , p_switch_side_flag => 'Y'
21661 , p_merge_duplicate_code => 'N'
21662 );
21663 --
21664 l_acc_rev_natural_side_code := 'D'; -- 4262811
21665 --
21666 --
21667 -- set accounting line type info
21668 --
21669 xla_ae_lines_pkg.SetAcctLineType
21670 (p_component_type => l_component_type
21671 ,p_event_type_code => l_event_type_code
21672 ,p_line_definition_owner_code => l_line_definition_owner_code
21673 ,p_line_definition_code => l_line_definition_code
21674 ,p_accounting_line_code => l_component_code
21675 ,p_accounting_line_type_code => l_component_type_code
21676 ,p_accounting_line_appl_id => l_component_appl_id
21677 ,p_amb_context_code => l_amb_context_code
21678 ,p_entity_code => l_entity_code
21679 ,p_event_class_code => l_event_class_code);
21680 --
21681 -- set accounting class
21682 --
21683 xla_ae_lines_pkg.SetAcctClass(
21684 p_accounting_class_code => 'COST_CLEARING'
21685 , p_ae_header_id => l_ae_header_id
21686 );
21687
21688 --
21689 -- set rounding class
21690 --
21691 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
21692 'COST_CLEARING';
21693
21694 --
21695 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
21696 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
21697 --
21698 -- bulk performance
21699 --
21700 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
21701
21702 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
21703 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
21704
21705 -- 4955764
21706 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21707 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
21708
21709 -- 4458381 Public Sector Enh
21710
21711 --
21712 -- set accounting attributes for the line type
21713 --
21714 l_entered_amt_idx := 22;
21715 l_accted_amt_idx := 27;
21716 l_bflow_applied_to_amt_idx := NULL; -- 5132302
21720 l_rec_acct_attrs.array_char_value(2) := p_source_23;
21717 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
21718 l_rec_acct_attrs.array_char_value(1) := p_source_22;
21719 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
21721 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
21722 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
21723 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
21724 l_rec_acct_attrs.array_num_value(4) := p_source_24;
21725 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
21726 l_rec_acct_attrs.array_char_value(5) := p_source_25;
21727 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
21728 l_rec_acct_attrs.array_num_value(6) := p_source_26;
21729 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
21730 l_rec_acct_attrs.array_date_value(7) := p_source_27;
21731 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
21732 l_rec_acct_attrs.array_num_value(8) := p_source_28;
21733 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
21734 l_rec_acct_attrs.array_char_value(9) := p_source_29;
21735 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
21736 l_rec_acct_attrs.array_char_value(10) := p_source_30;
21737 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
21738 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
21739 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
21740 l_rec_acct_attrs.array_num_value(12) := p_source_24;
21741 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
21742 l_rec_acct_attrs.array_char_value(13) := p_source_25;
21743 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
21744 l_rec_acct_attrs.array_num_value(14) := p_source_26;
21745 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
21746 l_rec_acct_attrs.array_date_value(15) := p_source_27;
21747 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
21748 l_rec_acct_attrs.array_num_value(16) := p_source_28;
21749 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
21750 l_rec_acct_attrs.array_char_value(17) := p_source_29;
21751 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
21752 l_rec_acct_attrs.array_char_value(18) := p_source_31;
21753 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
21754 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
21755 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
21756 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
21757 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
21758 l_rec_acct_attrs.array_char_value(21) := p_source_34;
21759 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
21760 l_rec_acct_attrs.array_num_value(22) := p_source_24;
21761 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
21762 l_rec_acct_attrs.array_char_value(23) := p_source_25;
21763 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
21764 l_rec_acct_attrs.array_date_value(24) := p_source_27;
21765 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
21766 l_rec_acct_attrs.array_num_value(25) := p_source_28;
21767 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
21768 l_rec_acct_attrs.array_char_value(26) := p_source_29;
21769 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
21770 l_rec_acct_attrs.array_num_value(27) := p_source_26;
21771 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
21772 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
21773 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
21774 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
21775 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
21776 l_rec_acct_attrs.array_char_value(30) := p_source_34;
21777
21778 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
21779 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
21780
21781 ---------------------------------------------------------------------------------------------------------------
21782 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
21783 ---------------------------------------------------------------------------------------------------------------
21784 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
21785
21786 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21787 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
21788
21789 IF xla_accounting_cache_pkg.GetValueChar
21790 (p_source_code => 'LEDGER_CATEGORY_CODE'
21791 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
21792 AND l_bflow_method_code = 'PRIOR_ENTRY'
21793 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
21794 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
21795 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
21796 )
21797 THEN
21798 xla_ae_lines_pkg.BflowUpgEntry
21802 ELSE
21799 (p_business_method_code => l_bflow_method_code
21800 ,p_business_class_code => l_bflow_class_code
21801 ,p_balance_type => l_balance_type_code);
21803 NULL;
21804 -- No business flow processing for business flow method of NONE.
21805 END IF;
21806
21807 --
21808 -- call analytical criteria
21809 --
21810
21811 --
21812 -- call description
21813 --
21814 -- No description or it is inherited.
21815 --
21816 -- call ADRs
21817 -- Bug 4922099
21818 --
21819 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
21820 (NVL(l_actual_upg_option, 'N') = 'O') OR
21821 (NVL(l_enc_upg_option, 'N') = 'O')
21822 )
21823 THEN
21824 NULL;
21825 --
21826 --
21827
21828 l_ccid := AcctDerRule_5(
21829 p_application_id => p_application_id
21830 , p_ae_header_id => l_ae_header_id
21831 , p_source_4 => p_source_4
21832 , p_source_6 => p_source_6
21833 , p_source_7 => p_source_7
21834 , x_transaction_coa_id => l_adr_transaction_coa_id
21835 , x_accounting_coa_id => l_adr_accounting_coa_id
21836 , x_value_type_code => l_adr_value_type_code
21837 , p_side => 'NA'
21838 );
21839
21840 xla_ae_lines_pkg.set_ccid(
21841 p_code_combination_id => l_ccid
21842 , p_value_type_code => l_adr_value_type_code
21843 , p_transaction_coa_id => l_adr_transaction_coa_id
21844 , p_accounting_coa_id => l_adr_accounting_coa_id
21845 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
21846 , p_adr_type_code => 'S'
21847 , p_component_type => l_component_type
21848 , p_component_code => l_component_code
21849 , p_component_type_code => l_component_type_code
21850 , p_component_appl_id => l_component_appl_id
21851 , p_amb_context_code => l_amb_context_code
21852 , p_side => 'NA'
21853 );
21854
21855
21856 --
21857 --
21858 END IF;
21859 --
21860 -- Bug 4922099
21861 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
21862 (NVL(l_enc_upg_option, 'N') = 'O')
21863 ) AND
21864 (l_bflow_method_code = 'PRIOR_ENTRY')
21865 )
21866 THEN
21867 IF
21868 --
21869 1 = 2
21870 --
21871 THEN
21872 xla_accounting_err_pkg.build_message
21873 (p_appli_s_name => 'XLA'
21874 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21875 ,p_token_1 => 'LINE_NUMBER'
21876 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
21877 ,p_token_2 => 'LINE_TYPE_NAME'
21878 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
21879 l_component_type
21880 ,l_component_code
21881 ,l_component_type_code
21882 ,l_component_appl_id
21883 ,l_amb_context_code
21884 ,l_entity_code
21885 ,l_event_class_code
21886 )
21887 ,p_token_3 => 'OWNER'
21888 ,p_value_3 => xla_lookups_pkg.get_meaning(
21889 p_lookup_type => 'XLA_OWNER_TYPE'
21890 ,p_lookup_code => l_component_type_code
21891 )
21892 ,p_token_4 => 'PRODUCT_NAME'
21893 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
21894 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
21895 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
21896 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
21897 ,p_ae_header_id => NULL
21898 );
21899
21900 IF (C_LEVEL_ERROR>= g_log_level) THEN
21901 trace
21902 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
21903 ,p_level => C_LEVEL_ERROR
21904 ,p_module => l_log_module);
21905 END IF;
21906 END IF;
21907 END IF;
21908 --
21909 --
21910 ------------------------------------------------------------------------------------------------
21911 -- 4219869 Business Flow
21915 XLA_AE_LINES_PKG.ValidateCurrentLine;
21912 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
21913 -- Prior Entry. Currently, the following code is always generated.
21914 ------------------------------------------------------------------------------------------------
21916
21917 ------------------------------------------------------------------------------------
21918 -- 4219869 Business Flow
21919 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
21920 ------------------------------------------------------------------------------------
21921 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21922
21923 ----------------------------------------------------------------------------------
21924 -- 4219869 Business Flow
21925 -- Update journal entry status -- Need to generate this within IF <condition>
21926 ----------------------------------------------------------------------------------
21927 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21928 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
21929 ,p_balance_type_code => l_balance_type_code
21930 );
21931
21932 -------------------------------------------------------------------------------------------
21933 -- 4262811 - Generate the Accrual Reversal lines
21934 -------------------------------------------------------------------------------------------
21935 BEGIN
21936 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
21937 (g_array_event(p_event_id).array_value_num('header_index'));
21938 IF l_acc_rev_flag IS NULL THEN
21939 l_acc_rev_flag := 'N';
21940 END IF;
21941 EXCEPTION
21942 WHEN OTHERS THEN
21943 l_acc_rev_flag := 'N';
21944 END;
21945 --
21946 IF (l_acc_rev_flag = 'Y') THEN
21947
21948 -- 4645092 ------------------------------------------------------------------------------
21949 -- To allow MPA report to determine if it should generate report process
21950 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
21951 ------------------------------------------------------------------------------------------
21952
21953 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
21954 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
21955
21956 --
21957 -- Update the line information that should be overwritten
21958 --
21959 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
21960 p_header_num => 1);
21961 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
21962
21963 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
21964
21965 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
21966 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
21967 END IF;
21968
21969 --
21970 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
21971 --
21972 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
21973 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
21974 ELSE
21975 ---------------------------------------------------------------------------------------------------
21976 -- 4262811a Switch Sign
21977 ---------------------------------------------------------------------------------------------------
21978 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
21979 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21980 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21981 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
21982 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21983 -- 5132302
21984 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
21985 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
21986
21987 END IF;
21988
21989 -- 4955764
21990 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
21991 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
21992
21993
21994 XLA_AE_LINES_PKG.ValidateCurrentLine;
21995 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
21996
21997 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
21998 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
21999 ,p_balance_type_code => l_balance_type_code);
22000
22001 END IF;
22002
22003 -----------------------------------------------------------------------------------------
22004 -- 4262811 Multiperiod Accounting
22005 -----------------------------------------------------------------------------------------
22006 -- No MPA option is assigned.
22007
22008
22009 END IF;
22010 --
22011
22012 --
22016 ,p_level => C_LEVEL_PROCEDURE
22013 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22014 trace
22015 (p_msg => 'END of AcctLineType_53'
22017 ,p_module => l_log_module);
22018 END IF;
22019 --
22020 EXCEPTION
22021 WHEN xla_exceptions_pkg.application_exception THEN
22022 RAISE;
22023 WHEN OTHERS THEN
22024 xla_exceptions_pkg.raise_message
22025 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_53');
22026 END AcctLineType_53;
22027 --
22028
22029 ---------------------------------------
22030 --
22031 -- PRIVATE FUNCTION
22032 -- AcctLineType_54
22033 --
22034 ---------------------------------------
22035 PROCEDURE AcctLineType_54 (
22036 p_application_id IN NUMBER
22037 ,p_event_id IN NUMBER
22038 ,p_calculate_acctd_flag IN VARCHAR2
22039 ,p_calculate_g_l_flag IN VARCHAR2
22040 ,p_actual_flag IN OUT VARCHAR2
22041 ,p_balance_type_code OUT VARCHAR2
22042 ,p_gain_or_loss_ref OUT VARCHAR2
22043
22044 --Cost CCID
22045 , p_source_3 IN NUMBER
22046 --Allow Account Override Flag
22047 , p_source_4 IN VARCHAR2
22048 --Cost Clearing CCID
22049 , p_source_6 IN NUMBER
22050 --Adjustment Cost Clearing CCID
22051 , p_source_7 IN NUMBER
22052 --Reversing Line Flag
22053 , p_source_22 IN VARCHAR2
22054 --Actual Upgrade Credit Accounting Class
22055 , p_source_23 IN VARCHAR2
22056 --Entered Raw Cost
22057 , p_source_24 IN NUMBER
22058 --Entered Currency Code
22059 , p_source_25 IN VARCHAR2
22060 --Accounted Raw Cost
22061 , p_source_26 IN NUMBER
22062 --Exchange Rate Date
22063 , p_source_27 IN DATE
22064 --Exchange Rate
22065 , p_source_28 IN NUMBER
22066 --Exchange Rate Type
22067 , p_source_29 IN VARCHAR2
22068 --Actual Upgrade Debit Accounting Class
22069 , p_source_30 IN VARCHAR2
22070 --Use Actuals Upgrade Attributes Flag
22071 , p_source_31 IN VARCHAR2
22072 --Expenditure Item ID
22073 , p_source_32 IN NUMBER
22074 --Cost Distribution Line Number
22075 , p_source_33 IN NUMBER
22076 --Line Type
22077 , p_source_34 IN VARCHAR2
22078 , p_source_34_meaning IN VARCHAR2
22079 --Reversed Line Number
22080 , p_source_35 IN NUMBER
22081 )
22082 IS
22083
22084 l_component_type VARCHAR2(80);
22085 l_component_code VARCHAR2(30);
22086 l_component_type_code VARCHAR2(1);
22087 l_component_appl_id INTEGER;
22088 l_amb_context_code VARCHAR2(30);
22089 l_entity_code VARCHAR2(30);
22090 l_event_class_code VARCHAR2(30);
22091 l_ae_header_id NUMBER;
22092 l_event_type_code VARCHAR2(30);
22093 l_line_definition_code VARCHAR2(30);
22094 l_line_definition_owner_code VARCHAR2(1);
22095 --
22096 -- adr variables
22097 l_segment VARCHAR2(30);
22098 l_ccid NUMBER;
22099 l_adr_transaction_coa_id NUMBER;
22100 l_adr_accounting_coa_id NUMBER;
22101 l_adr_flexfield_segment_code VARCHAR2(30);
22102 l_adr_flex_value_set_id NUMBER;
22103 l_adr_value_type_code VARCHAR2(30);
22104 l_adr_value_combination_id NUMBER;
22105 l_adr_value_segment_code VARCHAR2(30);
22106
22107 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22108 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22109 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22110 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22111
22112 -- 4262811 Variables ------------------------------------------------------------------------------------------
22113 l_entered_amt_idx NUMBER;
22114 l_accted_amt_idx NUMBER;
22115 l_acc_rev_flag VARCHAR2(1);
22116 l_accrual_line_num NUMBER;
22117 l_tmp_amt NUMBER;
22118 l_acc_rev_natural_side_code VARCHAR2(1);
22119
22120 l_num_entries NUMBER;
22121 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22122 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22123 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22124 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22125 l_recog_line_1 NUMBER;
22126 l_recog_line_2 NUMBER;
22127
22128 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22129 l_bflow_applied_to_amt NUMBER; -- 5132302
22130 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22131
22132 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22133
22134 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22135 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22136
22137 ---------------------------------------------------------------------------------------------------------------
22138
22139
22140 --
22141 -- bulk performance
22142 --
22143 l_balance_type_code VARCHAR2(1);
22144 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22145 l_log_module VARCHAR2(240);
22146
22150 l_actual_upg_option VARCHAR2(1);
22147 --
22148 -- Upgrade strategy
22149 --
22151 l_enc_upg_option VARCHAR2(1);
22152
22153 --
22154 BEGIN
22155 --
22156 IF g_log_enabled THEN
22157 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_54';
22158 END IF;
22159 --
22160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22161
22162 trace
22163 (p_msg => 'BEGIN of AcctLineType_54'
22164 ,p_level => C_LEVEL_PROCEDURE
22165 ,p_module => l_log_module);
22166
22167 END IF;
22168 --
22169 l_component_type := 'AMB_JLT';
22170 l_component_code := 'PA_RAW_COST_CLEARING';
22171 l_component_type_code := 'S';
22172 l_component_appl_id := 275;
22173 l_amb_context_code := 'DEFAULT';
22174 l_entity_code := 'EXPENDITURES';
22175 l_event_class_code := 'INVENTORY_COST';
22176 l_event_type_code := 'INVENTORY_COST_ALL';
22177 l_line_definition_owner_code := 'S';
22178 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
22179 --
22180 l_balance_type_code := 'A';
22181 l_segment := NULL;
22182 l_ccid := NULL;
22183 l_adr_transaction_coa_id := NULL;
22184 l_adr_accounting_coa_id := NULL;
22185 l_adr_flexfield_segment_code := NULL;
22186 l_adr_flex_value_set_id := NULL;
22187 l_adr_value_type_code := NULL;
22188 l_adr_value_combination_id := NULL;
22189 l_adr_value_segment_code := NULL;
22190
22191 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
22192 l_bflow_class_code := ''; -- 4219869 Business Flow
22193 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22194 l_budgetary_control_flag := 'N';
22195
22196 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22197 l_bflow_applied_to_amt := NULL; -- 5132302
22198 l_entered_amt_idx := NULL; -- 4262811
22199 l_accted_amt_idx := NULL; -- 4262811
22200 l_acc_rev_flag := NULL; -- 4262811
22201 l_accrual_line_num := NULL; -- 4262811
22202 l_tmp_amt := NULL; -- 4262811
22203 --
22204
22205 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22206 l_balance_type_code <> 'B' THEN
22207
22208 --
22209 XLA_AE_LINES_PKG.SetNewLine;
22210
22211 p_balance_type_code := l_balance_type_code;
22212 -- set the flag so later we will know whether the gain loss line needs to be created
22213
22214 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22215 p_actual_flag :='A';
22216 END IF;
22217
22218 --
22219 -- bulk performance
22220 --
22221 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22222 p_header_num => 0); -- 4262811
22223 --
22224 -- set accounting line options
22225 --
22226 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22227 p_natural_side_code => 'C'
22228 , p_gain_or_loss_flag => 'N'
22229 , p_gl_transfer_mode_code => 'S'
22230 , p_acct_entry_type_code => 'A'
22231 , p_switch_side_flag => 'Y'
22232 , p_merge_duplicate_code => 'N'
22233 );
22234 --
22235 l_acc_rev_natural_side_code := 'D'; -- 4262811
22236 --
22237 --
22238 -- set accounting line type info
22239 --
22240 xla_ae_lines_pkg.SetAcctLineType
22241 (p_component_type => l_component_type
22242 ,p_event_type_code => l_event_type_code
22243 ,p_line_definition_owner_code => l_line_definition_owner_code
22244 ,p_line_definition_code => l_line_definition_code
22245 ,p_accounting_line_code => l_component_code
22246 ,p_accounting_line_type_code => l_component_type_code
22247 ,p_accounting_line_appl_id => l_component_appl_id
22248 ,p_amb_context_code => l_amb_context_code
22249 ,p_entity_code => l_entity_code
22250 ,p_event_class_code => l_event_class_code);
22251 --
22252 -- set accounting class
22253 --
22254 xla_ae_lines_pkg.SetAcctClass(
22255 p_accounting_class_code => 'COST_CLEARING'
22256 , p_ae_header_id => l_ae_header_id
22257 );
22258
22259 --
22260 -- set rounding class
22261 --
22262 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22263 'COST_CLEARING';
22264
22265 --
22266 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22267 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22268 --
22269 -- bulk performance
22270 --
22271 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22272
22273 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22274 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22275
22276 -- 4955764
22277 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22281
22278 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22279
22280 -- 4458381 Public Sector Enh
22282 --
22283 -- set accounting attributes for the line type
22284 --
22285 l_entered_amt_idx := 22;
22286 l_accted_amt_idx := 27;
22287 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22288 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22289 l_rec_acct_attrs.array_char_value(1) := p_source_22;
22290 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
22291 l_rec_acct_attrs.array_char_value(2) := p_source_23;
22292 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
22293 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
22294 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
22295 l_rec_acct_attrs.array_num_value(4) := p_source_24;
22296 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
22297 l_rec_acct_attrs.array_char_value(5) := p_source_25;
22298 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
22299 l_rec_acct_attrs.array_num_value(6) := p_source_26;
22300 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
22301 l_rec_acct_attrs.array_date_value(7) := p_source_27;
22302 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
22303 l_rec_acct_attrs.array_num_value(8) := p_source_28;
22304 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
22305 l_rec_acct_attrs.array_char_value(9) := p_source_29;
22306 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
22307 l_rec_acct_attrs.array_char_value(10) := p_source_30;
22308 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
22309 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
22310 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
22311 l_rec_acct_attrs.array_num_value(12) := p_source_24;
22312 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
22313 l_rec_acct_attrs.array_char_value(13) := p_source_25;
22314 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
22315 l_rec_acct_attrs.array_num_value(14) := p_source_26;
22316 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
22317 l_rec_acct_attrs.array_date_value(15) := p_source_27;
22318 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
22319 l_rec_acct_attrs.array_num_value(16) := p_source_28;
22320 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
22321 l_rec_acct_attrs.array_char_value(17) := p_source_29;
22322 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
22323 l_rec_acct_attrs.array_char_value(18) := p_source_31;
22324 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
22325 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
22326 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
22327 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
22328 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
22329 l_rec_acct_attrs.array_char_value(21) := p_source_34;
22330 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
22331 l_rec_acct_attrs.array_num_value(22) := p_source_24;
22332 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
22333 l_rec_acct_attrs.array_char_value(23) := p_source_25;
22334 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
22335 l_rec_acct_attrs.array_date_value(24) := p_source_27;
22336 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
22337 l_rec_acct_attrs.array_num_value(25) := p_source_28;
22338 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
22339 l_rec_acct_attrs.array_char_value(26) := p_source_29;
22340 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
22341 l_rec_acct_attrs.array_num_value(27) := p_source_26;
22342 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
22343 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
22344 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
22345 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
22346 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
22347 l_rec_acct_attrs.array_char_value(30) := p_source_34;
22348
22349 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22350 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22351
22352 ---------------------------------------------------------------------------------------------------------------
22353 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22354 ---------------------------------------------------------------------------------------------------------------
22355 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22356
22357 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22358 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22359
22360 IF xla_accounting_cache_pkg.GetValueChar
22361 (p_source_code => 'LEDGER_CATEGORY_CODE'
22362 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22366 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22363 AND l_bflow_method_code = 'PRIOR_ENTRY'
22364 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22365 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22367 )
22368 THEN
22369 xla_ae_lines_pkg.BflowUpgEntry
22370 (p_business_method_code => l_bflow_method_code
22371 ,p_business_class_code => l_bflow_class_code
22372 ,p_balance_type => l_balance_type_code);
22373 ELSE
22374 NULL;
22375 -- No business flow processing for business flow method of NONE.
22376 END IF;
22377
22378 --
22379 -- call analytical criteria
22380 --
22381
22382 --
22383 -- call description
22384 --
22385 -- No description or it is inherited.
22386 --
22387 -- call ADRs
22388 -- Bug 4922099
22389 --
22390 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22391 (NVL(l_actual_upg_option, 'N') = 'O') OR
22392 (NVL(l_enc_upg_option, 'N') = 'O')
22393 )
22394 THEN
22395 NULL;
22396 --
22397 --
22398
22399 l_ccid := AcctDerRule_5(
22400 p_application_id => p_application_id
22401 , p_ae_header_id => l_ae_header_id
22402 , p_source_4 => p_source_4
22403 , p_source_6 => p_source_6
22404 , p_source_7 => p_source_7
22405 , x_transaction_coa_id => l_adr_transaction_coa_id
22406 , x_accounting_coa_id => l_adr_accounting_coa_id
22407 , x_value_type_code => l_adr_value_type_code
22408 , p_side => 'NA'
22409 );
22410
22411 xla_ae_lines_pkg.set_ccid(
22412 p_code_combination_id => l_ccid
22413 , p_value_type_code => l_adr_value_type_code
22414 , p_transaction_coa_id => l_adr_transaction_coa_id
22415 , p_accounting_coa_id => l_adr_accounting_coa_id
22416 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
22417 , p_adr_type_code => 'S'
22418 , p_component_type => l_component_type
22419 , p_component_code => l_component_code
22420 , p_component_type_code => l_component_type_code
22421 , p_component_appl_id => l_component_appl_id
22422 , p_amb_context_code => l_amb_context_code
22423 , p_side => 'NA'
22424 );
22425
22426
22427 --
22428 --
22429 END IF;
22430 --
22431 -- Bug 4922099
22432 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
22433 (NVL(l_enc_upg_option, 'N') = 'O')
22434 ) AND
22435 (l_bflow_method_code = 'PRIOR_ENTRY')
22436 )
22437 THEN
22438 IF
22439 --
22440 1 = 2
22441 --
22442 THEN
22443 xla_accounting_err_pkg.build_message
22444 (p_appli_s_name => 'XLA'
22445 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22446 ,p_token_1 => 'LINE_NUMBER'
22447 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
22448 ,p_token_2 => 'LINE_TYPE_NAME'
22449 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
22450 l_component_type
22451 ,l_component_code
22452 ,l_component_type_code
22453 ,l_component_appl_id
22454 ,l_amb_context_code
22455 ,l_entity_code
22456 ,l_event_class_code
22457 )
22458 ,p_token_3 => 'OWNER'
22459 ,p_value_3 => xla_lookups_pkg.get_meaning(
22460 p_lookup_type => 'XLA_OWNER_TYPE'
22461 ,p_lookup_code => l_component_type_code
22462 )
22463 ,p_token_4 => 'PRODUCT_NAME'
22464 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
22465 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
22466 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
22467 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
22468 ,p_ae_header_id => NULL
22469 );
22470
22471 IF (C_LEVEL_ERROR>= g_log_level) THEN
22472 trace
22476 END IF;
22473 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
22474 ,p_level => C_LEVEL_ERROR
22475 ,p_module => l_log_module);
22477 END IF;
22478 END IF;
22479 --
22480 --
22481 ------------------------------------------------------------------------------------------------
22482 -- 4219869 Business Flow
22483 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
22484 -- Prior Entry. Currently, the following code is always generated.
22485 ------------------------------------------------------------------------------------------------
22486 XLA_AE_LINES_PKG.ValidateCurrentLine;
22487
22488 ------------------------------------------------------------------------------------
22489 -- 4219869 Business Flow
22490 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
22491 ------------------------------------------------------------------------------------
22492 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22493
22494 ----------------------------------------------------------------------------------
22495 -- 4219869 Business Flow
22496 -- Update journal entry status -- Need to generate this within IF <condition>
22497 ----------------------------------------------------------------------------------
22498 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22499 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
22500 ,p_balance_type_code => l_balance_type_code
22501 );
22502
22503 -------------------------------------------------------------------------------------------
22504 -- 4262811 - Generate the Accrual Reversal lines
22505 -------------------------------------------------------------------------------------------
22506 BEGIN
22507 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
22508 (g_array_event(p_event_id).array_value_num('header_index'));
22509 IF l_acc_rev_flag IS NULL THEN
22510 l_acc_rev_flag := 'N';
22511 END IF;
22512 EXCEPTION
22513 WHEN OTHERS THEN
22514 l_acc_rev_flag := 'N';
22515 END;
22516 --
22517 IF (l_acc_rev_flag = 'Y') THEN
22518
22519 -- 4645092 ------------------------------------------------------------------------------
22520 -- To allow MPA report to determine if it should generate report process
22521 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
22522 ------------------------------------------------------------------------------------------
22523
22524 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
22525 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
22526
22527 --
22528 -- Update the line information that should be overwritten
22529 --
22530 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
22531 p_header_num => 1);
22532 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
22533
22534 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
22535
22536 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
22537 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
22538 END IF;
22539
22540 --
22541 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
22542 --
22543 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
22544 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
22545 ELSE
22546 ---------------------------------------------------------------------------------------------------
22547 -- 4262811a Switch Sign
22548 ---------------------------------------------------------------------------------------------------
22549 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
22550 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22551 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22552 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
22553 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22554 -- 5132302
22555 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
22556 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
22557
22558 END IF;
22559
22560 -- 4955764
22561 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22562 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
22563
22564
22565 XLA_AE_LINES_PKG.ValidateCurrentLine;
22566 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
22567
22568 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
22569 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
22570 ,p_balance_type_code => l_balance_type_code);
22574 -----------------------------------------------------------------------------------------
22571
22572 END IF;
22573
22575 -- 4262811 Multiperiod Accounting
22576 -----------------------------------------------------------------------------------------
22577 -- No MPA option is assigned.
22578
22579
22580 END IF;
22581 --
22582
22583 --
22584 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22585 trace
22586 (p_msg => 'END of AcctLineType_54'
22587 ,p_level => C_LEVEL_PROCEDURE
22588 ,p_module => l_log_module);
22589 END IF;
22590 --
22591 EXCEPTION
22592 WHEN xla_exceptions_pkg.application_exception THEN
22593 RAISE;
22594 WHEN OTHERS THEN
22595 xla_exceptions_pkg.raise_message
22596 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_54');
22597 END AcctLineType_54;
22598 --
22599
22600 ---------------------------------------
22601 --
22602 -- PRIVATE FUNCTION
22603 -- AcctLineType_55
22604 --
22605 ---------------------------------------
22606 PROCEDURE AcctLineType_55 (
22607 p_application_id IN NUMBER
22608 ,p_event_id IN NUMBER
22609 ,p_calculate_acctd_flag IN VARCHAR2
22610 ,p_calculate_g_l_flag IN VARCHAR2
22611 ,p_actual_flag IN OUT VARCHAR2
22612 ,p_balance_type_code OUT VARCHAR2
22613 ,p_gain_or_loss_ref OUT VARCHAR2
22614
22615 --Cost CCID
22616 , p_source_3 IN NUMBER
22617 --Allow Account Override Flag
22618 , p_source_4 IN VARCHAR2
22619 --Cost Clearing CCID
22620 , p_source_6 IN NUMBER
22621 --Adjustment Cost Clearing CCID
22622 , p_source_7 IN NUMBER
22623 --Reversing Line Flag
22624 , p_source_22 IN VARCHAR2
22625 --Actual Upgrade Credit Accounting Class
22626 , p_source_23 IN VARCHAR2
22627 --Entered Raw Cost
22628 , p_source_24 IN NUMBER
22629 --Entered Currency Code
22630 , p_source_25 IN VARCHAR2
22631 --Accounted Raw Cost
22632 , p_source_26 IN NUMBER
22633 --Exchange Rate Date
22634 , p_source_27 IN DATE
22635 --Exchange Rate
22636 , p_source_28 IN NUMBER
22637 --Exchange Rate Type
22638 , p_source_29 IN VARCHAR2
22639 --Actual Upgrade Debit Accounting Class
22640 , p_source_30 IN VARCHAR2
22641 --Use Actuals Upgrade Attributes Flag
22642 , p_source_31 IN VARCHAR2
22643 --Expenditure Item ID
22644 , p_source_32 IN NUMBER
22645 --Cost Distribution Line Number
22646 , p_source_33 IN NUMBER
22647 --Line Type
22648 , p_source_34 IN VARCHAR2
22649 , p_source_34_meaning IN VARCHAR2
22650 --Reversed Line Number
22651 , p_source_35 IN NUMBER
22652 )
22653 IS
22654
22655 l_component_type VARCHAR2(80);
22656 l_component_code VARCHAR2(30);
22657 l_component_type_code VARCHAR2(1);
22658 l_component_appl_id INTEGER;
22659 l_amb_context_code VARCHAR2(30);
22660 l_entity_code VARCHAR2(30);
22661 l_event_class_code VARCHAR2(30);
22662 l_ae_header_id NUMBER;
22663 l_event_type_code VARCHAR2(30);
22664 l_line_definition_code VARCHAR2(30);
22665 l_line_definition_owner_code VARCHAR2(1);
22666 --
22667 -- adr variables
22668 l_segment VARCHAR2(30);
22669 l_ccid NUMBER;
22670 l_adr_transaction_coa_id NUMBER;
22671 l_adr_accounting_coa_id NUMBER;
22672 l_adr_flexfield_segment_code VARCHAR2(30);
22673 l_adr_flex_value_set_id NUMBER;
22674 l_adr_value_type_code VARCHAR2(30);
22675 l_adr_value_combination_id NUMBER;
22676 l_adr_value_segment_code VARCHAR2(30);
22677
22678 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
22679 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
22680 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
22681 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
22682
22683 -- 4262811 Variables ------------------------------------------------------------------------------------------
22684 l_entered_amt_idx NUMBER;
22685 l_accted_amt_idx NUMBER;
22686 l_acc_rev_flag VARCHAR2(1);
22687 l_accrual_line_num NUMBER;
22688 l_tmp_amt NUMBER;
22689 l_acc_rev_natural_side_code VARCHAR2(1);
22690
22691 l_num_entries NUMBER;
22692 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
22693 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
22694 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
22695 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
22696 l_recog_line_1 NUMBER;
22697 l_recog_line_2 NUMBER;
22698
22699 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
22700 l_bflow_applied_to_amt NUMBER; -- 5132302
22701 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
22702
22703 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
22704
22708 ---------------------------------------------------------------------------------------------------------------
22705 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
22706 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
22707
22709
22710
22711 --
22712 -- bulk performance
22713 --
22714 l_balance_type_code VARCHAR2(1);
22715 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
22716 l_log_module VARCHAR2(240);
22717
22718 --
22719 -- Upgrade strategy
22720 --
22721 l_actual_upg_option VARCHAR2(1);
22722 l_enc_upg_option VARCHAR2(1);
22723
22724 --
22725 BEGIN
22726 --
22727 IF g_log_enabled THEN
22728 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_55';
22729 END IF;
22730 --
22731 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
22732
22733 trace
22734 (p_msg => 'BEGIN of AcctLineType_55'
22735 ,p_level => C_LEVEL_PROCEDURE
22736 ,p_module => l_log_module);
22737
22738 END IF;
22739 --
22740 l_component_type := 'AMB_JLT';
22741 l_component_code := 'PA_RAW_COST_CLEARING';
22742 l_component_type_code := 'S';
22743 l_component_appl_id := 275;
22744 l_amb_context_code := 'DEFAULT';
22745 l_entity_code := 'EXPENDITURES';
22746 l_event_class_code := 'LABOR_COST';
22747 l_event_type_code := 'LABOR_COST_ALL';
22748 l_line_definition_owner_code := 'S';
22749 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
22750 --
22751 l_balance_type_code := 'A';
22752 l_segment := NULL;
22753 l_ccid := NULL;
22754 l_adr_transaction_coa_id := NULL;
22755 l_adr_accounting_coa_id := NULL;
22756 l_adr_flexfield_segment_code := NULL;
22757 l_adr_flex_value_set_id := NULL;
22758 l_adr_value_type_code := NULL;
22759 l_adr_value_combination_id := NULL;
22760 l_adr_value_segment_code := NULL;
22761
22762 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
22763 l_bflow_class_code := ''; -- 4219869 Business Flow
22764 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
22765 l_budgetary_control_flag := 'N';
22766
22767 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22768 l_bflow_applied_to_amt := NULL; -- 5132302
22769 l_entered_amt_idx := NULL; -- 4262811
22770 l_accted_amt_idx := NULL; -- 4262811
22771 l_acc_rev_flag := NULL; -- 4262811
22772 l_accrual_line_num := NULL; -- 4262811
22773 l_tmp_amt := NULL; -- 4262811
22774 --
22775
22776 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
22777 l_balance_type_code <> 'B' THEN
22778
22779 --
22780 XLA_AE_LINES_PKG.SetNewLine;
22781
22782 p_balance_type_code := l_balance_type_code;
22783 -- set the flag so later we will know whether the gain loss line needs to be created
22784
22785 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
22786 p_actual_flag :='A';
22787 END IF;
22788
22789 --
22790 -- bulk performance
22791 --
22792 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
22793 p_header_num => 0); -- 4262811
22794 --
22795 -- set accounting line options
22796 --
22797 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
22798 p_natural_side_code => 'C'
22799 , p_gain_or_loss_flag => 'N'
22800 , p_gl_transfer_mode_code => 'S'
22801 , p_acct_entry_type_code => 'A'
22802 , p_switch_side_flag => 'Y'
22803 , p_merge_duplicate_code => 'N'
22804 );
22805 --
22806 l_acc_rev_natural_side_code := 'D'; -- 4262811
22807 --
22808 --
22809 -- set accounting line type info
22810 --
22811 xla_ae_lines_pkg.SetAcctLineType
22812 (p_component_type => l_component_type
22813 ,p_event_type_code => l_event_type_code
22814 ,p_line_definition_owner_code => l_line_definition_owner_code
22815 ,p_line_definition_code => l_line_definition_code
22816 ,p_accounting_line_code => l_component_code
22817 ,p_accounting_line_type_code => l_component_type_code
22818 ,p_accounting_line_appl_id => l_component_appl_id
22819 ,p_amb_context_code => l_amb_context_code
22820 ,p_entity_code => l_entity_code
22821 ,p_event_class_code => l_event_class_code);
22822 --
22823 -- set accounting class
22824 --
22825 xla_ae_lines_pkg.SetAcctClass(
22826 p_accounting_class_code => 'COST_CLEARING'
22827 , p_ae_header_id => l_ae_header_id
22828 );
22829
22830 --
22831 -- set rounding class
22832 --
22833 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
22834 'COST_CLEARING';
22835
22836 --
22837 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
22841 --
22838 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
22839 --
22840 -- bulk performance
22842 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
22843
22844 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
22845 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
22846
22847 -- 4955764
22848 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
22849 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
22850
22851 -- 4458381 Public Sector Enh
22852
22853 --
22854 -- set accounting attributes for the line type
22855 --
22856 l_entered_amt_idx := 22;
22857 l_accted_amt_idx := 27;
22858 l_bflow_applied_to_amt_idx := NULL; -- 5132302
22859 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
22860 l_rec_acct_attrs.array_char_value(1) := p_source_22;
22861 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
22862 l_rec_acct_attrs.array_char_value(2) := p_source_23;
22863 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
22864 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
22865 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
22866 l_rec_acct_attrs.array_num_value(4) := p_source_24;
22867 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
22868 l_rec_acct_attrs.array_char_value(5) := p_source_25;
22869 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
22870 l_rec_acct_attrs.array_num_value(6) := p_source_26;
22871 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
22872 l_rec_acct_attrs.array_date_value(7) := p_source_27;
22873 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
22874 l_rec_acct_attrs.array_num_value(8) := p_source_28;
22875 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
22876 l_rec_acct_attrs.array_char_value(9) := p_source_29;
22877 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
22878 l_rec_acct_attrs.array_char_value(10) := p_source_30;
22879 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
22880 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
22881 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
22882 l_rec_acct_attrs.array_num_value(12) := p_source_24;
22883 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
22884 l_rec_acct_attrs.array_char_value(13) := p_source_25;
22885 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
22886 l_rec_acct_attrs.array_num_value(14) := p_source_26;
22887 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
22888 l_rec_acct_attrs.array_date_value(15) := p_source_27;
22889 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
22890 l_rec_acct_attrs.array_num_value(16) := p_source_28;
22891 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
22892 l_rec_acct_attrs.array_char_value(17) := p_source_29;
22893 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
22894 l_rec_acct_attrs.array_char_value(18) := p_source_31;
22895 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
22896 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
22897 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
22898 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
22899 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
22900 l_rec_acct_attrs.array_char_value(21) := p_source_34;
22901 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
22902 l_rec_acct_attrs.array_num_value(22) := p_source_24;
22903 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
22904 l_rec_acct_attrs.array_char_value(23) := p_source_25;
22905 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
22906 l_rec_acct_attrs.array_date_value(24) := p_source_27;
22907 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
22908 l_rec_acct_attrs.array_num_value(25) := p_source_28;
22909 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
22910 l_rec_acct_attrs.array_char_value(26) := p_source_29;
22911 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
22912 l_rec_acct_attrs.array_num_value(27) := p_source_26;
22913 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
22914 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
22915 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
22916 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
22917 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
22918 l_rec_acct_attrs.array_char_value(30) := p_source_34;
22919
22920 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
22921 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
22922
22923 ---------------------------------------------------------------------------------------------------------------
22924 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
22925 ---------------------------------------------------------------------------------------------------------------
22929 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22926 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
22927
22928 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
22930
22931 IF xla_accounting_cache_pkg.GetValueChar
22932 (p_source_code => 'LEDGER_CATEGORY_CODE'
22933 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
22934 AND l_bflow_method_code = 'PRIOR_ENTRY'
22935 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
22936 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
22937 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
22938 )
22939 THEN
22940 xla_ae_lines_pkg.BflowUpgEntry
22941 (p_business_method_code => l_bflow_method_code
22942 ,p_business_class_code => l_bflow_class_code
22943 ,p_balance_type => l_balance_type_code);
22944 ELSE
22945 NULL;
22946 -- No business flow processing for business flow method of NONE.
22947 END IF;
22948
22949 --
22950 -- call analytical criteria
22951 --
22952
22953 --
22954 -- call description
22955 --
22956 -- No description or it is inherited.
22957 --
22958 -- call ADRs
22959 -- Bug 4922099
22960 --
22961 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
22962 (NVL(l_actual_upg_option, 'N') = 'O') OR
22963 (NVL(l_enc_upg_option, 'N') = 'O')
22964 )
22965 THEN
22966 NULL;
22967 --
22968 --
22969
22970 l_ccid := AcctDerRule_5(
22971 p_application_id => p_application_id
22972 , p_ae_header_id => l_ae_header_id
22973 , p_source_4 => p_source_4
22974 , p_source_6 => p_source_6
22975 , p_source_7 => p_source_7
22976 , x_transaction_coa_id => l_adr_transaction_coa_id
22977 , x_accounting_coa_id => l_adr_accounting_coa_id
22978 , x_value_type_code => l_adr_value_type_code
22979 , p_side => 'NA'
22980 );
22981
22982 xla_ae_lines_pkg.set_ccid(
22983 p_code_combination_id => l_ccid
22984 , p_value_type_code => l_adr_value_type_code
22985 , p_transaction_coa_id => l_adr_transaction_coa_id
22986 , p_accounting_coa_id => l_adr_accounting_coa_id
22987 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
22988 , p_adr_type_code => 'S'
22989 , p_component_type => l_component_type
22990 , p_component_code => l_component_code
22991 , p_component_type_code => l_component_type_code
22992 , p_component_appl_id => l_component_appl_id
22993 , p_amb_context_code => l_amb_context_code
22994 , p_side => 'NA'
22995 );
22996
22997
22998 --
22999 --
23000 END IF;
23001 --
23002 -- Bug 4922099
23003 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23004 (NVL(l_enc_upg_option, 'N') = 'O')
23005 ) AND
23006 (l_bflow_method_code = 'PRIOR_ENTRY')
23007 )
23008 THEN
23009 IF
23010 --
23011 1 = 2
23012 --
23013 THEN
23014 xla_accounting_err_pkg.build_message
23015 (p_appli_s_name => 'XLA'
23016 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23017 ,p_token_1 => 'LINE_NUMBER'
23018 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23019 ,p_token_2 => 'LINE_TYPE_NAME'
23020 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23021 l_component_type
23022 ,l_component_code
23023 ,l_component_type_code
23024 ,l_component_appl_id
23025 ,l_amb_context_code
23026 ,l_entity_code
23027 ,l_event_class_code
23028 )
23029 ,p_token_3 => 'OWNER'
23030 ,p_value_3 => xla_lookups_pkg.get_meaning(
23031 p_lookup_type => 'XLA_OWNER_TYPE'
23032 ,p_lookup_code => l_component_type_code
23033 )
23034 ,p_token_4 => 'PRODUCT_NAME'
23035 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23036 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23037 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23041
23038 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23039 ,p_ae_header_id => NULL
23040 );
23042 IF (C_LEVEL_ERROR>= g_log_level) THEN
23043 trace
23044 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23045 ,p_level => C_LEVEL_ERROR
23046 ,p_module => l_log_module);
23047 END IF;
23048 END IF;
23049 END IF;
23050 --
23051 --
23052 ------------------------------------------------------------------------------------------------
23053 -- 4219869 Business Flow
23054 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23055 -- Prior Entry. Currently, the following code is always generated.
23056 ------------------------------------------------------------------------------------------------
23057 XLA_AE_LINES_PKG.ValidateCurrentLine;
23058
23059 ------------------------------------------------------------------------------------
23060 -- 4219869 Business Flow
23061 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23062 ------------------------------------------------------------------------------------
23063 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23064
23065 ----------------------------------------------------------------------------------
23066 -- 4219869 Business Flow
23067 -- Update journal entry status -- Need to generate this within IF <condition>
23068 ----------------------------------------------------------------------------------
23069 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23070 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23071 ,p_balance_type_code => l_balance_type_code
23072 );
23073
23074 -------------------------------------------------------------------------------------------
23075 -- 4262811 - Generate the Accrual Reversal lines
23076 -------------------------------------------------------------------------------------------
23077 BEGIN
23078 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23079 (g_array_event(p_event_id).array_value_num('header_index'));
23080 IF l_acc_rev_flag IS NULL THEN
23081 l_acc_rev_flag := 'N';
23082 END IF;
23083 EXCEPTION
23084 WHEN OTHERS THEN
23085 l_acc_rev_flag := 'N';
23086 END;
23087 --
23088 IF (l_acc_rev_flag = 'Y') THEN
23089
23090 -- 4645092 ------------------------------------------------------------------------------
23091 -- To allow MPA report to determine if it should generate report process
23092 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23093 ------------------------------------------------------------------------------------------
23094
23095 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23096 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23097
23098 --
23099 -- Update the line information that should be overwritten
23100 --
23101 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23102 p_header_num => 1);
23103 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23104
23105 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23106
23107 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23108 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23109 END IF;
23110
23111 --
23112 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23113 --
23114 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23115 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23116 ELSE
23117 ---------------------------------------------------------------------------------------------------
23118 -- 4262811a Switch Sign
23119 ---------------------------------------------------------------------------------------------------
23120 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23121 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23122 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23123 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23124 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23125 -- 5132302
23126 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23127 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23128
23129 END IF;
23130
23131 -- 4955764
23132 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23133 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23134
23135
23136 XLA_AE_LINES_PKG.ValidateCurrentLine;
23140 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23137 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23138
23139 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23141 ,p_balance_type_code => l_balance_type_code);
23142
23143 END IF;
23144
23145 -----------------------------------------------------------------------------------------
23146 -- 4262811 Multiperiod Accounting
23147 -----------------------------------------------------------------------------------------
23148 -- No MPA option is assigned.
23149
23150
23151 END IF;
23152 --
23153
23154 --
23155 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23156 trace
23157 (p_msg => 'END of AcctLineType_55'
23158 ,p_level => C_LEVEL_PROCEDURE
23159 ,p_module => l_log_module);
23160 END IF;
23161 --
23162 EXCEPTION
23163 WHEN xla_exceptions_pkg.application_exception THEN
23164 RAISE;
23165 WHEN OTHERS THEN
23166 xla_exceptions_pkg.raise_message
23167 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_55');
23168 END AcctLineType_55;
23169 --
23170
23171 ---------------------------------------
23172 --
23173 -- PRIVATE FUNCTION
23174 -- AcctLineType_56
23175 --
23176 ---------------------------------------
23177 PROCEDURE AcctLineType_56 (
23178 p_application_id IN NUMBER
23179 ,p_event_id IN NUMBER
23180 ,p_calculate_acctd_flag IN VARCHAR2
23181 ,p_calculate_g_l_flag IN VARCHAR2
23182 ,p_actual_flag IN OUT VARCHAR2
23183 ,p_balance_type_code OUT VARCHAR2
23184 ,p_gain_or_loss_ref OUT VARCHAR2
23185
23186 --Cost CCID
23187 , p_source_3 IN NUMBER
23188 --Allow Account Override Flag
23189 , p_source_4 IN VARCHAR2
23190 --Cost Clearing CCID
23191 , p_source_6 IN NUMBER
23192 --Adjustment Cost Clearing CCID
23193 , p_source_7 IN NUMBER
23194 --Exchange Rate Variance Flag
23195 , p_source_21 IN VARCHAR2
23196 --Reversing Line Flag
23197 , p_source_22 IN VARCHAR2
23198 --Actual Upgrade Credit Accounting Class
23199 , p_source_23 IN VARCHAR2
23200 --Entered Raw Cost
23201 , p_source_24 IN NUMBER
23202 --Entered Currency Code
23203 , p_source_25 IN VARCHAR2
23204 --Accounted Raw Cost
23205 , p_source_26 IN NUMBER
23206 --Exchange Rate Date
23207 , p_source_27 IN DATE
23208 --Exchange Rate
23209 , p_source_28 IN NUMBER
23210 --Exchange Rate Type
23211 , p_source_29 IN VARCHAR2
23212 --Actual Upgrade Debit Accounting Class
23213 , p_source_30 IN VARCHAR2
23214 --Use Actuals Upgrade Attributes Flag
23215 , p_source_31 IN VARCHAR2
23216 --Expenditure Item ID
23217 , p_source_32 IN NUMBER
23218 --Cost Distribution Line Number
23219 , p_source_33 IN NUMBER
23220 --Line Type
23221 , p_source_34 IN VARCHAR2
23222 , p_source_34_meaning IN VARCHAR2
23223 --Reversed Line Number
23224 , p_source_35 IN NUMBER
23225 )
23226 IS
23227
23228 l_component_type VARCHAR2(80);
23229 l_component_code VARCHAR2(30);
23230 l_component_type_code VARCHAR2(1);
23231 l_component_appl_id INTEGER;
23232 l_amb_context_code VARCHAR2(30);
23233 l_entity_code VARCHAR2(30);
23234 l_event_class_code VARCHAR2(30);
23235 l_ae_header_id NUMBER;
23236 l_event_type_code VARCHAR2(30);
23237 l_line_definition_code VARCHAR2(30);
23238 l_line_definition_owner_code VARCHAR2(1);
23239 --
23240 -- adr variables
23241 l_segment VARCHAR2(30);
23242 l_ccid NUMBER;
23243 l_adr_transaction_coa_id NUMBER;
23244 l_adr_accounting_coa_id NUMBER;
23245 l_adr_flexfield_segment_code VARCHAR2(30);
23246 l_adr_flex_value_set_id NUMBER;
23247 l_adr_value_type_code VARCHAR2(30);
23248 l_adr_value_combination_id NUMBER;
23249 l_adr_value_segment_code VARCHAR2(30);
23250
23251 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23252 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23253 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23254 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23255
23256 -- 4262811 Variables ------------------------------------------------------------------------------------------
23257 l_entered_amt_idx NUMBER;
23258 l_accted_amt_idx NUMBER;
23259 l_acc_rev_flag VARCHAR2(1);
23260 l_accrual_line_num NUMBER;
23261 l_tmp_amt NUMBER;
23262 l_acc_rev_natural_side_code VARCHAR2(1);
23263
23264 l_num_entries NUMBER;
23265 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23266 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23267 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23268 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23269 l_recog_line_1 NUMBER;
23270 l_recog_line_2 NUMBER;
23271
23275
23272 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23273 l_bflow_applied_to_amt NUMBER; -- 5132302
23274 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23276 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23277
23278 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23279 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23280
23281 ---------------------------------------------------------------------------------------------------------------
23282
23283
23284 --
23285 -- bulk performance
23286 --
23287 l_balance_type_code VARCHAR2(1);
23288 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23289 l_log_module VARCHAR2(240);
23290
23291 --
23292 -- Upgrade strategy
23293 --
23294 l_actual_upg_option VARCHAR2(1);
23295 l_enc_upg_option VARCHAR2(1);
23296
23297 --
23298 BEGIN
23299 --
23300 IF g_log_enabled THEN
23301 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_56';
23302 END IF;
23303 --
23304 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23305
23306 trace
23307 (p_msg => 'BEGIN of AcctLineType_56'
23308 ,p_level => C_LEVEL_PROCEDURE
23309 ,p_module => l_log_module);
23310
23311 END IF;
23312 --
23313 l_component_type := 'AMB_JLT';
23314 l_component_code := 'PA_RAW_COST_CLEARING';
23315 l_component_type_code := 'S';
23316 l_component_appl_id := 275;
23317 l_amb_context_code := 'DEFAULT';
23318 l_entity_code := 'EXPENDITURES';
23319 l_event_class_code := 'SUPPLIER_COST';
23320 l_event_type_code := 'SUPPLIER_COST_ALL';
23321 l_line_definition_owner_code := 'S';
23322 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
23323 --
23324 l_balance_type_code := 'A';
23325 l_segment := NULL;
23326 l_ccid := NULL;
23327 l_adr_transaction_coa_id := NULL;
23328 l_adr_accounting_coa_id := NULL;
23329 l_adr_flexfield_segment_code := NULL;
23330 l_adr_flex_value_set_id := NULL;
23331 l_adr_value_type_code := NULL;
23332 l_adr_value_combination_id := NULL;
23333 l_adr_value_segment_code := NULL;
23334
23335 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23336 l_bflow_class_code := ''; -- 4219869 Business Flow
23337 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23338 l_budgetary_control_flag := 'N';
23339
23340 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23341 l_bflow_applied_to_amt := NULL; -- 5132302
23342 l_entered_amt_idx := NULL; -- 4262811
23343 l_accted_amt_idx := NULL; -- 4262811
23344 l_acc_rev_flag := NULL; -- 4262811
23345 l_accrual_line_num := NULL; -- 4262811
23346 l_tmp_amt := NULL; -- 4262811
23347 --
23348
23349 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23350 l_balance_type_code <> 'B' THEN
23351 IF NVL(p_source_21,'
23352 ') = 'N'
23353 THEN
23354
23355 --
23356 XLA_AE_LINES_PKG.SetNewLine;
23357
23358 p_balance_type_code := l_balance_type_code;
23359 -- set the flag so later we will know whether the gain loss line needs to be created
23360
23361 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23362 p_actual_flag :='A';
23363 END IF;
23364
23365 --
23366 -- bulk performance
23367 --
23368 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23369 p_header_num => 0); -- 4262811
23370 --
23371 -- set accounting line options
23372 --
23373 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23374 p_natural_side_code => 'C'
23375 , p_gain_or_loss_flag => 'N'
23376 , p_gl_transfer_mode_code => 'S'
23377 , p_acct_entry_type_code => 'A'
23378 , p_switch_side_flag => 'Y'
23379 , p_merge_duplicate_code => 'N'
23380 );
23381 --
23382 l_acc_rev_natural_side_code := 'D'; -- 4262811
23383 --
23384 --
23385 -- set accounting line type info
23386 --
23387 xla_ae_lines_pkg.SetAcctLineType
23388 (p_component_type => l_component_type
23389 ,p_event_type_code => l_event_type_code
23390 ,p_line_definition_owner_code => l_line_definition_owner_code
23391 ,p_line_definition_code => l_line_definition_code
23392 ,p_accounting_line_code => l_component_code
23393 ,p_accounting_line_type_code => l_component_type_code
23394 ,p_accounting_line_appl_id => l_component_appl_id
23395 ,p_amb_context_code => l_amb_context_code
23396 ,p_entity_code => l_entity_code
23397 ,p_event_class_code => l_event_class_code);
23398 --
23399 -- set accounting class
23400 --
23401 xla_ae_lines_pkg.SetAcctClass(
23402 p_accounting_class_code => 'COST_CLEARING'
23406 --
23403 , p_ae_header_id => l_ae_header_id
23404 );
23405
23407 -- set rounding class
23408 --
23409 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23410 'COST_CLEARING';
23411
23412 --
23413 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23414 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23415 --
23416 -- bulk performance
23417 --
23418 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23419
23420 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23421 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23422
23423 -- 4955764
23424 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23425 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23426
23427 -- 4458381 Public Sector Enh
23428
23429 --
23430 -- set accounting attributes for the line type
23431 --
23432 l_entered_amt_idx := 22;
23433 l_accted_amt_idx := 27;
23434 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23435 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
23436 l_rec_acct_attrs.array_char_value(1) := p_source_22;
23437 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
23438 l_rec_acct_attrs.array_char_value(2) := p_source_23;
23439 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
23440 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
23441 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
23442 l_rec_acct_attrs.array_num_value(4) := p_source_24;
23443 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
23444 l_rec_acct_attrs.array_char_value(5) := p_source_25;
23445 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
23446 l_rec_acct_attrs.array_num_value(6) := p_source_26;
23447 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
23448 l_rec_acct_attrs.array_date_value(7) := p_source_27;
23449 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
23450 l_rec_acct_attrs.array_num_value(8) := p_source_28;
23451 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
23452 l_rec_acct_attrs.array_char_value(9) := p_source_29;
23453 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
23454 l_rec_acct_attrs.array_char_value(10) := p_source_30;
23455 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
23456 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
23457 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
23458 l_rec_acct_attrs.array_num_value(12) := p_source_24;
23459 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
23460 l_rec_acct_attrs.array_char_value(13) := p_source_25;
23461 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
23462 l_rec_acct_attrs.array_num_value(14) := p_source_26;
23463 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
23464 l_rec_acct_attrs.array_date_value(15) := p_source_27;
23465 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
23466 l_rec_acct_attrs.array_num_value(16) := p_source_28;
23467 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
23468 l_rec_acct_attrs.array_char_value(17) := p_source_29;
23469 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
23470 l_rec_acct_attrs.array_char_value(18) := p_source_31;
23471 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
23472 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
23473 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
23474 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
23475 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
23476 l_rec_acct_attrs.array_char_value(21) := p_source_34;
23477 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
23478 l_rec_acct_attrs.array_num_value(22) := p_source_24;
23479 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
23480 l_rec_acct_attrs.array_char_value(23) := p_source_25;
23481 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
23482 l_rec_acct_attrs.array_date_value(24) := p_source_27;
23483 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
23484 l_rec_acct_attrs.array_num_value(25) := p_source_28;
23485 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
23486 l_rec_acct_attrs.array_char_value(26) := p_source_29;
23487 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
23488 l_rec_acct_attrs.array_num_value(27) := p_source_26;
23489 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
23490 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
23491 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
23492 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
23493 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
23494 l_rec_acct_attrs.array_char_value(30) := p_source_34;
23495
23499 ---------------------------------------------------------------------------------------------------------------
23496 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
23497 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
23498
23500 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
23501 ---------------------------------------------------------------------------------------------------------------
23502 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
23503
23504 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23505 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
23506
23507 IF xla_accounting_cache_pkg.GetValueChar
23508 (p_source_code => 'LEDGER_CATEGORY_CODE'
23509 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
23510 AND l_bflow_method_code = 'PRIOR_ENTRY'
23511 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
23512 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
23513 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
23514 )
23515 THEN
23516 xla_ae_lines_pkg.BflowUpgEntry
23517 (p_business_method_code => l_bflow_method_code
23518 ,p_business_class_code => l_bflow_class_code
23519 ,p_balance_type => l_balance_type_code);
23520 ELSE
23521 NULL;
23522 -- No business flow processing for business flow method of NONE.
23523 END IF;
23524
23525 --
23526 -- call analytical criteria
23527 --
23528
23529 --
23530 -- call description
23531 --
23532 -- No description or it is inherited.
23533 --
23534 -- call ADRs
23535 -- Bug 4922099
23536 --
23537 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
23538 (NVL(l_actual_upg_option, 'N') = 'O') OR
23539 (NVL(l_enc_upg_option, 'N') = 'O')
23540 )
23541 THEN
23542 NULL;
23543 --
23544 --
23545
23546 l_ccid := AcctDerRule_5(
23547 p_application_id => p_application_id
23548 , p_ae_header_id => l_ae_header_id
23549 , p_source_4 => p_source_4
23550 , p_source_6 => p_source_6
23551 , p_source_7 => p_source_7
23552 , x_transaction_coa_id => l_adr_transaction_coa_id
23553 , x_accounting_coa_id => l_adr_accounting_coa_id
23554 , x_value_type_code => l_adr_value_type_code
23555 , p_side => 'NA'
23556 );
23557
23558 xla_ae_lines_pkg.set_ccid(
23559 p_code_combination_id => l_ccid
23560 , p_value_type_code => l_adr_value_type_code
23561 , p_transaction_coa_id => l_adr_transaction_coa_id
23562 , p_accounting_coa_id => l_adr_accounting_coa_id
23563 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
23564 , p_adr_type_code => 'S'
23565 , p_component_type => l_component_type
23566 , p_component_code => l_component_code
23567 , p_component_type_code => l_component_type_code
23568 , p_component_appl_id => l_component_appl_id
23569 , p_amb_context_code => l_amb_context_code
23570 , p_side => 'NA'
23571 );
23572
23573
23574 --
23575 --
23576 END IF;
23577 --
23578 -- Bug 4922099
23579 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
23580 (NVL(l_enc_upg_option, 'N') = 'O')
23581 ) AND
23582 (l_bflow_method_code = 'PRIOR_ENTRY')
23583 )
23584 THEN
23585 IF
23586 --
23587 1 = 2
23588 --
23589 THEN
23590 xla_accounting_err_pkg.build_message
23591 (p_appli_s_name => 'XLA'
23592 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23593 ,p_token_1 => 'LINE_NUMBER'
23594 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
23595 ,p_token_2 => 'LINE_TYPE_NAME'
23596 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
23597 l_component_type
23598 ,l_component_code
23599 ,l_component_type_code
23600 ,l_component_appl_id
23601 ,l_amb_context_code
23602 ,l_entity_code
23603 ,l_event_class_code
23604 )
23605 ,p_token_3 => 'OWNER'
23606 ,p_value_3 => xla_lookups_pkg.get_meaning(
23610 ,p_token_4 => 'PRODUCT_NAME'
23607 p_lookup_type => 'XLA_OWNER_TYPE'
23608 ,p_lookup_code => l_component_type_code
23609 )
23611 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
23612 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
23613 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
23614 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
23615 ,p_ae_header_id => NULL
23616 );
23617
23618 IF (C_LEVEL_ERROR>= g_log_level) THEN
23619 trace
23620 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
23621 ,p_level => C_LEVEL_ERROR
23622 ,p_module => l_log_module);
23623 END IF;
23624 END IF;
23625 END IF;
23626 --
23627 --
23628 ------------------------------------------------------------------------------------------------
23629 -- 4219869 Business Flow
23630 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
23631 -- Prior Entry. Currently, the following code is always generated.
23632 ------------------------------------------------------------------------------------------------
23633 XLA_AE_LINES_PKG.ValidateCurrentLine;
23634
23635 ------------------------------------------------------------------------------------
23636 -- 4219869 Business Flow
23637 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
23638 ------------------------------------------------------------------------------------
23639 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23640
23641 ----------------------------------------------------------------------------------
23642 -- 4219869 Business Flow
23643 -- Update journal entry status -- Need to generate this within IF <condition>
23644 ----------------------------------------------------------------------------------
23645 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23646 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
23647 ,p_balance_type_code => l_balance_type_code
23648 );
23649
23650 -------------------------------------------------------------------------------------------
23651 -- 4262811 - Generate the Accrual Reversal lines
23652 -------------------------------------------------------------------------------------------
23653 BEGIN
23654 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
23655 (g_array_event(p_event_id).array_value_num('header_index'));
23656 IF l_acc_rev_flag IS NULL THEN
23657 l_acc_rev_flag := 'N';
23658 END IF;
23659 EXCEPTION
23660 WHEN OTHERS THEN
23661 l_acc_rev_flag := 'N';
23662 END;
23663 --
23664 IF (l_acc_rev_flag = 'Y') THEN
23665
23666 -- 4645092 ------------------------------------------------------------------------------
23667 -- To allow MPA report to determine if it should generate report process
23668 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
23669 ------------------------------------------------------------------------------------------
23670
23671 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
23672 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
23673
23674 --
23675 -- Update the line information that should be overwritten
23676 --
23677 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
23678 p_header_num => 1);
23679 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
23680
23681 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
23682
23683 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
23684 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
23685 END IF;
23686
23687 --
23688 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
23689 --
23690 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
23691 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
23692 ELSE
23693 ---------------------------------------------------------------------------------------------------
23694 -- 4262811a Switch Sign
23695 ---------------------------------------------------------------------------------------------------
23696 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
23697 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23698 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23699 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
23700 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23701 -- 5132302
23705 END IF;
23702 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
23703 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
23704
23706
23707 -- 4955764
23708 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23709 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
23710
23711
23712 XLA_AE_LINES_PKG.ValidateCurrentLine;
23713 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
23714
23715 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
23716 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
23717 ,p_balance_type_code => l_balance_type_code);
23718
23719 END IF;
23720
23721 -----------------------------------------------------------------------------------------
23722 -- 4262811 Multiperiod Accounting
23723 -----------------------------------------------------------------------------------------
23724 -- No MPA option is assigned.
23725
23726
23727 END IF;
23728 END IF;
23729 --
23730
23731 --
23732 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23733 trace
23734 (p_msg => 'END of AcctLineType_56'
23735 ,p_level => C_LEVEL_PROCEDURE
23736 ,p_module => l_log_module);
23737 END IF;
23738 --
23739 EXCEPTION
23740 WHEN xla_exceptions_pkg.application_exception THEN
23741 RAISE;
23742 WHEN OTHERS THEN
23743 xla_exceptions_pkg.raise_message
23744 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_56');
23745 END AcctLineType_56;
23746 --
23747
23748 ---------------------------------------
23749 --
23750 -- PRIVATE FUNCTION
23751 -- AcctLineType_57
23752 --
23753 ---------------------------------------
23754 PROCEDURE AcctLineType_57 (
23755 p_application_id IN NUMBER
23756 ,p_event_id IN NUMBER
23757 ,p_calculate_acctd_flag IN VARCHAR2
23758 ,p_calculate_g_l_flag IN VARCHAR2
23759 ,p_actual_flag IN OUT VARCHAR2
23760 ,p_balance_type_code OUT VARCHAR2
23761 ,p_gain_or_loss_ref OUT VARCHAR2
23762
23763 --Cost CCID
23764 , p_source_3 IN NUMBER
23765 --Allow Account Override Flag
23766 , p_source_4 IN VARCHAR2
23767 --Cost Clearing CCID
23768 , p_source_6 IN NUMBER
23769 --Adjustment Cost Clearing CCID
23770 , p_source_7 IN NUMBER
23771 --Reversing Line Flag
23772 , p_source_22 IN VARCHAR2
23773 --Actual Upgrade Credit Accounting Class
23774 , p_source_23 IN VARCHAR2
23775 --Entered Raw Cost
23776 , p_source_24 IN NUMBER
23777 --Entered Currency Code
23778 , p_source_25 IN VARCHAR2
23779 --Accounted Raw Cost
23780 , p_source_26 IN NUMBER
23781 --Exchange Rate Date
23782 , p_source_27 IN DATE
23783 --Exchange Rate
23784 , p_source_28 IN NUMBER
23785 --Exchange Rate Type
23786 , p_source_29 IN VARCHAR2
23787 --Actual Upgrade Debit Accounting Class
23788 , p_source_30 IN VARCHAR2
23789 --Use Actuals Upgrade Attributes Flag
23790 , p_source_31 IN VARCHAR2
23791 --Expenditure Item ID
23792 , p_source_32 IN NUMBER
23793 --Cost Distribution Line Number
23794 , p_source_33 IN NUMBER
23795 --Line Type
23796 , p_source_34 IN VARCHAR2
23797 , p_source_34_meaning IN VARCHAR2
23798 --Reversed Line Number
23799 , p_source_35 IN NUMBER
23800 )
23801 IS
23802
23803 l_component_type VARCHAR2(80);
23804 l_component_code VARCHAR2(30);
23805 l_component_type_code VARCHAR2(1);
23806 l_component_appl_id INTEGER;
23807 l_amb_context_code VARCHAR2(30);
23808 l_entity_code VARCHAR2(30);
23809 l_event_class_code VARCHAR2(30);
23810 l_ae_header_id NUMBER;
23811 l_event_type_code VARCHAR2(30);
23812 l_line_definition_code VARCHAR2(30);
23813 l_line_definition_owner_code VARCHAR2(1);
23814 --
23815 -- adr variables
23816 l_segment VARCHAR2(30);
23817 l_ccid NUMBER;
23818 l_adr_transaction_coa_id NUMBER;
23819 l_adr_accounting_coa_id NUMBER;
23820 l_adr_flexfield_segment_code VARCHAR2(30);
23821 l_adr_flex_value_set_id NUMBER;
23822 l_adr_value_type_code VARCHAR2(30);
23823 l_adr_value_combination_id NUMBER;
23824 l_adr_value_segment_code VARCHAR2(30);
23825
23826 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
23827 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
23828 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
23829 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
23830
23831 -- 4262811 Variables ------------------------------------------------------------------------------------------
23832 l_entered_amt_idx NUMBER;
23833 l_accted_amt_idx NUMBER;
23834 l_acc_rev_flag VARCHAR2(1);
23835 l_accrual_line_num NUMBER;
23836 l_tmp_amt NUMBER;
23837 l_acc_rev_natural_side_code VARCHAR2(1);
23838
23842 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
23839 l_num_entries NUMBER;
23840 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
23841 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
23843 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
23844 l_recog_line_1 NUMBER;
23845 l_recog_line_2 NUMBER;
23846
23847 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
23848 l_bflow_applied_to_amt NUMBER; -- 5132302
23849 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
23850
23851 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
23852
23853 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
23854 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
23855
23856 ---------------------------------------------------------------------------------------------------------------
23857
23858
23859 --
23860 -- bulk performance
23861 --
23862 l_balance_type_code VARCHAR2(1);
23863 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
23864 l_log_module VARCHAR2(240);
23865
23866 --
23867 -- Upgrade strategy
23868 --
23869 l_actual_upg_option VARCHAR2(1);
23870 l_enc_upg_option VARCHAR2(1);
23871
23872 --
23873 BEGIN
23874 --
23875 IF g_log_enabled THEN
23876 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_57';
23877 END IF;
23878 --
23879 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
23880
23881 trace
23882 (p_msg => 'BEGIN of AcctLineType_57'
23883 ,p_level => C_LEVEL_PROCEDURE
23884 ,p_module => l_log_module);
23885
23886 END IF;
23887 --
23888 l_component_type := 'AMB_JLT';
23889 l_component_code := 'PA_RAW_COST_CLEARING';
23890 l_component_type_code := 'S';
23891 l_component_appl_id := 275;
23892 l_amb_context_code := 'DEFAULT';
23893 l_entity_code := 'EXPENDITURES';
23894 l_event_class_code := 'MISC_COST';
23895 l_event_type_code := 'MISC_COST_ALL';
23896 l_line_definition_owner_code := 'S';
23897 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
23898 --
23899 l_balance_type_code := 'A';
23900 l_segment := NULL;
23901 l_ccid := NULL;
23902 l_adr_transaction_coa_id := NULL;
23903 l_adr_accounting_coa_id := NULL;
23904 l_adr_flexfield_segment_code := NULL;
23905 l_adr_flex_value_set_id := NULL;
23906 l_adr_value_type_code := NULL;
23907 l_adr_value_combination_id := NULL;
23908 l_adr_value_segment_code := NULL;
23909
23910 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
23911 l_bflow_class_code := ''; -- 4219869 Business Flow
23912 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
23913 l_budgetary_control_flag := 'N';
23914
23915 l_bflow_applied_to_amt_idx := NULL; -- 5132302
23916 l_bflow_applied_to_amt := NULL; -- 5132302
23917 l_entered_amt_idx := NULL; -- 4262811
23918 l_accted_amt_idx := NULL; -- 4262811
23919 l_acc_rev_flag := NULL; -- 4262811
23920 l_accrual_line_num := NULL; -- 4262811
23921 l_tmp_amt := NULL; -- 4262811
23922 --
23923
23924 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
23925 l_balance_type_code <> 'B' THEN
23926
23927 --
23928 XLA_AE_LINES_PKG.SetNewLine;
23929
23930 p_balance_type_code := l_balance_type_code;
23931 -- set the flag so later we will know whether the gain loss line needs to be created
23932
23933 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
23934 p_actual_flag :='A';
23935 END IF;
23936
23937 --
23938 -- bulk performance
23939 --
23940 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
23941 p_header_num => 0); -- 4262811
23942 --
23943 -- set accounting line options
23944 --
23945 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
23946 p_natural_side_code => 'C'
23947 , p_gain_or_loss_flag => 'N'
23948 , p_gl_transfer_mode_code => 'S'
23949 , p_acct_entry_type_code => 'A'
23950 , p_switch_side_flag => 'Y'
23951 , p_merge_duplicate_code => 'N'
23952 );
23953 --
23954 l_acc_rev_natural_side_code := 'D'; -- 4262811
23955 --
23956 --
23957 -- set accounting line type info
23958 --
23959 xla_ae_lines_pkg.SetAcctLineType
23960 (p_component_type => l_component_type
23961 ,p_event_type_code => l_event_type_code
23962 ,p_line_definition_owner_code => l_line_definition_owner_code
23963 ,p_line_definition_code => l_line_definition_code
23964 ,p_accounting_line_code => l_component_code
23965 ,p_accounting_line_type_code => l_component_type_code
23966 ,p_accounting_line_appl_id => l_component_appl_id
23967 ,p_amb_context_code => l_amb_context_code
23968 ,p_entity_code => l_entity_code
23972 --
23969 ,p_event_class_code => l_event_class_code);
23970 --
23971 -- set accounting class
23973 xla_ae_lines_pkg.SetAcctClass(
23974 p_accounting_class_code => 'COST_CLEARING'
23975 , p_ae_header_id => l_ae_header_id
23976 );
23977
23978 --
23979 -- set rounding class
23980 --
23981 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
23982 'COST_CLEARING';
23983
23984 --
23985 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
23986 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
23987 --
23988 -- bulk performance
23989 --
23990 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
23991
23992 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
23993 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
23994
23995 -- 4955764
23996 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
23997 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
23998
23999 -- 4458381 Public Sector Enh
24000
24001 --
24002 -- set accounting attributes for the line type
24003 --
24004 l_entered_amt_idx := 22;
24005 l_accted_amt_idx := 27;
24006 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24007 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24008 l_rec_acct_attrs.array_char_value(1) := p_source_22;
24009 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
24010 l_rec_acct_attrs.array_char_value(2) := p_source_23;
24011 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
24012 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
24013 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
24014 l_rec_acct_attrs.array_num_value(4) := p_source_24;
24015 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
24016 l_rec_acct_attrs.array_char_value(5) := p_source_25;
24017 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
24018 l_rec_acct_attrs.array_num_value(6) := p_source_26;
24019 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
24020 l_rec_acct_attrs.array_date_value(7) := p_source_27;
24021 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
24022 l_rec_acct_attrs.array_num_value(8) := p_source_28;
24023 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
24024 l_rec_acct_attrs.array_char_value(9) := p_source_29;
24025 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
24026 l_rec_acct_attrs.array_char_value(10) := p_source_30;
24027 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
24028 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
24029 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
24030 l_rec_acct_attrs.array_num_value(12) := p_source_24;
24031 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
24032 l_rec_acct_attrs.array_char_value(13) := p_source_25;
24033 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
24034 l_rec_acct_attrs.array_num_value(14) := p_source_26;
24035 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
24036 l_rec_acct_attrs.array_date_value(15) := p_source_27;
24037 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
24038 l_rec_acct_attrs.array_num_value(16) := p_source_28;
24039 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
24040 l_rec_acct_attrs.array_char_value(17) := p_source_29;
24041 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
24042 l_rec_acct_attrs.array_char_value(18) := p_source_31;
24043 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
24044 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
24045 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
24046 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
24047 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
24048 l_rec_acct_attrs.array_char_value(21) := p_source_34;
24049 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
24050 l_rec_acct_attrs.array_num_value(22) := p_source_24;
24051 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
24052 l_rec_acct_attrs.array_char_value(23) := p_source_25;
24053 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
24054 l_rec_acct_attrs.array_date_value(24) := p_source_27;
24055 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
24056 l_rec_acct_attrs.array_num_value(25) := p_source_28;
24057 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
24058 l_rec_acct_attrs.array_char_value(26) := p_source_29;
24059 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
24060 l_rec_acct_attrs.array_num_value(27) := p_source_26;
24061 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
24062 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
24063 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
24064 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
24068 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24065 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
24066 l_rec_acct_attrs.array_char_value(30) := p_source_34;
24067
24069 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24070
24071 ---------------------------------------------------------------------------------------------------------------
24072 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24073 ---------------------------------------------------------------------------------------------------------------
24074 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24075
24076 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24077 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24078
24079 IF xla_accounting_cache_pkg.GetValueChar
24080 (p_source_code => 'LEDGER_CATEGORY_CODE'
24081 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24082 AND l_bflow_method_code = 'PRIOR_ENTRY'
24083 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24084 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24085 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24086 )
24087 THEN
24088 xla_ae_lines_pkg.BflowUpgEntry
24089 (p_business_method_code => l_bflow_method_code
24090 ,p_business_class_code => l_bflow_class_code
24091 ,p_balance_type => l_balance_type_code);
24092 ELSE
24093 NULL;
24094 -- No business flow processing for business flow method of NONE.
24095 END IF;
24096
24097 --
24098 -- call analytical criteria
24099 --
24100
24101 --
24102 -- call description
24103 --
24104 -- No description or it is inherited.
24105 --
24106 -- call ADRs
24107 -- Bug 4922099
24108 --
24109 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24110 (NVL(l_actual_upg_option, 'N') = 'O') OR
24111 (NVL(l_enc_upg_option, 'N') = 'O')
24112 )
24113 THEN
24114 NULL;
24115 --
24116 --
24117
24118 l_ccid := AcctDerRule_5(
24119 p_application_id => p_application_id
24120 , p_ae_header_id => l_ae_header_id
24121 , p_source_4 => p_source_4
24122 , p_source_6 => p_source_6
24123 , p_source_7 => p_source_7
24124 , x_transaction_coa_id => l_adr_transaction_coa_id
24125 , x_accounting_coa_id => l_adr_accounting_coa_id
24126 , x_value_type_code => l_adr_value_type_code
24127 , p_side => 'NA'
24128 );
24129
24130 xla_ae_lines_pkg.set_ccid(
24131 p_code_combination_id => l_ccid
24132 , p_value_type_code => l_adr_value_type_code
24133 , p_transaction_coa_id => l_adr_transaction_coa_id
24134 , p_accounting_coa_id => l_adr_accounting_coa_id
24135 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
24136 , p_adr_type_code => 'S'
24137 , p_component_type => l_component_type
24138 , p_component_code => l_component_code
24139 , p_component_type_code => l_component_type_code
24140 , p_component_appl_id => l_component_appl_id
24141 , p_amb_context_code => l_amb_context_code
24142 , p_side => 'NA'
24143 );
24144
24145
24146 --
24147 --
24148 END IF;
24149 --
24150 -- Bug 4922099
24151 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24152 (NVL(l_enc_upg_option, 'N') = 'O')
24153 ) AND
24154 (l_bflow_method_code = 'PRIOR_ENTRY')
24155 )
24156 THEN
24157 IF
24158 --
24159 1 = 2
24160 --
24161 THEN
24162 xla_accounting_err_pkg.build_message
24163 (p_appli_s_name => 'XLA'
24164 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24165 ,p_token_1 => 'LINE_NUMBER'
24166 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24167 ,p_token_2 => 'LINE_TYPE_NAME'
24168 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24169 l_component_type
24170 ,l_component_code
24171 ,l_component_type_code
24172 ,l_component_appl_id
24173 ,l_amb_context_code
24174 ,l_entity_code
24175 ,l_event_class_code
24176 )
24180 ,p_lookup_code => l_component_type_code
24177 ,p_token_3 => 'OWNER'
24178 ,p_value_3 => xla_lookups_pkg.get_meaning(
24179 p_lookup_type => 'XLA_OWNER_TYPE'
24181 )
24182 ,p_token_4 => 'PRODUCT_NAME'
24183 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24184 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24185 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24186 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24187 ,p_ae_header_id => NULL
24188 );
24189
24190 IF (C_LEVEL_ERROR>= g_log_level) THEN
24191 trace
24192 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24193 ,p_level => C_LEVEL_ERROR
24194 ,p_module => l_log_module);
24195 END IF;
24196 END IF;
24197 END IF;
24198 --
24199 --
24200 ------------------------------------------------------------------------------------------------
24201 -- 4219869 Business Flow
24202 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24203 -- Prior Entry. Currently, the following code is always generated.
24204 ------------------------------------------------------------------------------------------------
24205 XLA_AE_LINES_PKG.ValidateCurrentLine;
24206
24207 ------------------------------------------------------------------------------------
24208 -- 4219869 Business Flow
24209 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24210 ------------------------------------------------------------------------------------
24211 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24212
24213 ----------------------------------------------------------------------------------
24214 -- 4219869 Business Flow
24215 -- Update journal entry status -- Need to generate this within IF <condition>
24216 ----------------------------------------------------------------------------------
24217 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24218 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24219 ,p_balance_type_code => l_balance_type_code
24220 );
24221
24222 -------------------------------------------------------------------------------------------
24223 -- 4262811 - Generate the Accrual Reversal lines
24224 -------------------------------------------------------------------------------------------
24225 BEGIN
24226 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24227 (g_array_event(p_event_id).array_value_num('header_index'));
24228 IF l_acc_rev_flag IS NULL THEN
24229 l_acc_rev_flag := 'N';
24230 END IF;
24231 EXCEPTION
24232 WHEN OTHERS THEN
24233 l_acc_rev_flag := 'N';
24234 END;
24235 --
24236 IF (l_acc_rev_flag = 'Y') THEN
24237
24238 -- 4645092 ------------------------------------------------------------------------------
24239 -- To allow MPA report to determine if it should generate report process
24240 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24241 ------------------------------------------------------------------------------------------
24242
24243 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24244 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24245
24246 --
24247 -- Update the line information that should be overwritten
24248 --
24249 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24250 p_header_num => 1);
24251 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24252
24253 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24254
24255 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24256 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24257 END IF;
24258
24259 --
24260 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24261 --
24262 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24263 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24264 ELSE
24265 ---------------------------------------------------------------------------------------------------
24266 -- 4262811a Switch Sign
24267 ---------------------------------------------------------------------------------------------------
24268 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24272 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24269 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24270 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24271 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24273 -- 5132302
24274 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24275 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24276
24277 END IF;
24278
24279 -- 4955764
24280 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24281 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24282
24283
24284 XLA_AE_LINES_PKG.ValidateCurrentLine;
24285 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24286
24287 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24288 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24289 ,p_balance_type_code => l_balance_type_code);
24290
24291 END IF;
24292
24293 -----------------------------------------------------------------------------------------
24294 -- 4262811 Multiperiod Accounting
24295 -----------------------------------------------------------------------------------------
24296 -- No MPA option is assigned.
24297
24298
24299 END IF;
24300 --
24301
24302 --
24303 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24304 trace
24305 (p_msg => 'END of AcctLineType_57'
24306 ,p_level => C_LEVEL_PROCEDURE
24307 ,p_module => l_log_module);
24308 END IF;
24309 --
24310 EXCEPTION
24311 WHEN xla_exceptions_pkg.application_exception THEN
24312 RAISE;
24313 WHEN OTHERS THEN
24314 xla_exceptions_pkg.raise_message
24315 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_57');
24316 END AcctLineType_57;
24317 --
24318
24319 ---------------------------------------
24320 --
24321 -- PRIVATE FUNCTION
24322 -- AcctLineType_58
24323 --
24324 ---------------------------------------
24325 PROCEDURE AcctLineType_58 (
24326 p_application_id IN NUMBER
24327 ,p_event_id IN NUMBER
24328 ,p_calculate_acctd_flag IN VARCHAR2
24329 ,p_calculate_g_l_flag IN VARCHAR2
24330 ,p_actual_flag IN OUT VARCHAR2
24331 ,p_balance_type_code OUT VARCHAR2
24332 ,p_gain_or_loss_ref OUT VARCHAR2
24333
24334 --Cost CCID
24335 , p_source_3 IN NUMBER
24336 --Allow Account Override Flag
24337 , p_source_4 IN VARCHAR2
24338 --Cost Clearing CCID
24339 , p_source_6 IN NUMBER
24340 --Adjustment Cost Clearing CCID
24341 , p_source_7 IN NUMBER
24342 --Reversing Line Flag
24343 , p_source_22 IN VARCHAR2
24344 --Actual Upgrade Credit Accounting Class
24345 , p_source_23 IN VARCHAR2
24346 --Entered Raw Cost
24347 , p_source_24 IN NUMBER
24348 --Entered Currency Code
24349 , p_source_25 IN VARCHAR2
24350 --Accounted Raw Cost
24351 , p_source_26 IN NUMBER
24352 --Exchange Rate Date
24353 , p_source_27 IN DATE
24354 --Exchange Rate
24355 , p_source_28 IN NUMBER
24356 --Exchange Rate Type
24357 , p_source_29 IN VARCHAR2
24358 --Actual Upgrade Debit Accounting Class
24359 , p_source_30 IN VARCHAR2
24360 --Use Actuals Upgrade Attributes Flag
24361 , p_source_31 IN VARCHAR2
24362 --Expenditure Item ID
24363 , p_source_32 IN NUMBER
24364 --Cost Distribution Line Number
24365 , p_source_33 IN NUMBER
24366 --Line Type
24367 , p_source_34 IN VARCHAR2
24368 , p_source_34_meaning IN VARCHAR2
24369 --Reversed Line Number
24370 , p_source_35 IN NUMBER
24371 )
24372 IS
24373
24374 l_component_type VARCHAR2(80);
24375 l_component_code VARCHAR2(30);
24376 l_component_type_code VARCHAR2(1);
24377 l_component_appl_id INTEGER;
24378 l_amb_context_code VARCHAR2(30);
24379 l_entity_code VARCHAR2(30);
24380 l_event_class_code VARCHAR2(30);
24381 l_ae_header_id NUMBER;
24382 l_event_type_code VARCHAR2(30);
24383 l_line_definition_code VARCHAR2(30);
24384 l_line_definition_owner_code VARCHAR2(1);
24385 --
24386 -- adr variables
24387 l_segment VARCHAR2(30);
24388 l_ccid NUMBER;
24389 l_adr_transaction_coa_id NUMBER;
24390 l_adr_accounting_coa_id NUMBER;
24391 l_adr_flexfield_segment_code VARCHAR2(30);
24392 l_adr_flex_value_set_id NUMBER;
24393 l_adr_value_type_code VARCHAR2(30);
24394 l_adr_value_combination_id NUMBER;
24395 l_adr_value_segment_code VARCHAR2(30);
24396
24397 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24398 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24399 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24400 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24401
24402 -- 4262811 Variables ------------------------------------------------------------------------------------------
24406 l_accrual_line_num NUMBER;
24403 l_entered_amt_idx NUMBER;
24404 l_accted_amt_idx NUMBER;
24405 l_acc_rev_flag VARCHAR2(1);
24407 l_tmp_amt NUMBER;
24408 l_acc_rev_natural_side_code VARCHAR2(1);
24409
24410 l_num_entries NUMBER;
24411 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24412 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24413 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24414 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24415 l_recog_line_1 NUMBER;
24416 l_recog_line_2 NUMBER;
24417
24418 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24419 l_bflow_applied_to_amt NUMBER; -- 5132302
24420 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24421
24422 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24423
24424 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24425 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24426
24427 ---------------------------------------------------------------------------------------------------------------
24428
24429
24430 --
24431 -- bulk performance
24432 --
24433 l_balance_type_code VARCHAR2(1);
24434 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
24435 l_log_module VARCHAR2(240);
24436
24437 --
24438 -- Upgrade strategy
24439 --
24440 l_actual_upg_option VARCHAR2(1);
24441 l_enc_upg_option VARCHAR2(1);
24442
24443 --
24444 BEGIN
24445 --
24446 IF g_log_enabled THEN
24447 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_58';
24448 END IF;
24449 --
24450 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24451
24452 trace
24453 (p_msg => 'BEGIN of AcctLineType_58'
24454 ,p_level => C_LEVEL_PROCEDURE
24455 ,p_module => l_log_module);
24456
24457 END IF;
24458 --
24459 l_component_type := 'AMB_JLT';
24460 l_component_code := 'PA_RAW_COST_CLEARING';
24461 l_component_type_code := 'S';
24462 l_component_appl_id := 275;
24463 l_amb_context_code := 'DEFAULT';
24464 l_entity_code := 'EXPENDITURES';
24465 l_event_class_code := 'WIP_COST';
24466 l_event_type_code := 'WIP_COST_ALL';
24467 l_line_definition_owner_code := 'S';
24468 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
24469 --
24470 l_balance_type_code := 'A';
24471 l_segment := NULL;
24472 l_ccid := NULL;
24473 l_adr_transaction_coa_id := NULL;
24474 l_adr_accounting_coa_id := NULL;
24475 l_adr_flexfield_segment_code := NULL;
24476 l_adr_flex_value_set_id := NULL;
24477 l_adr_value_type_code := NULL;
24478 l_adr_value_combination_id := NULL;
24479 l_adr_value_segment_code := NULL;
24480
24481 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
24482 l_bflow_class_code := ''; -- 4219869 Business Flow
24483 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
24484 l_budgetary_control_flag := 'N';
24485
24486 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24487 l_bflow_applied_to_amt := NULL; -- 5132302
24488 l_entered_amt_idx := NULL; -- 4262811
24489 l_accted_amt_idx := NULL; -- 4262811
24490 l_acc_rev_flag := NULL; -- 4262811
24491 l_accrual_line_num := NULL; -- 4262811
24492 l_tmp_amt := NULL; -- 4262811
24493 --
24494
24495 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
24496 l_balance_type_code <> 'B' THEN
24497
24498 --
24499 XLA_AE_LINES_PKG.SetNewLine;
24500
24501 p_balance_type_code := l_balance_type_code;
24502 -- set the flag so later we will know whether the gain loss line needs to be created
24503
24504 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
24505 p_actual_flag :='A';
24506 END IF;
24507
24508 --
24509 -- bulk performance
24510 --
24511 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
24512 p_header_num => 0); -- 4262811
24513 --
24514 -- set accounting line options
24515 --
24516 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
24517 p_natural_side_code => 'C'
24518 , p_gain_or_loss_flag => 'N'
24519 , p_gl_transfer_mode_code => 'S'
24520 , p_acct_entry_type_code => 'A'
24521 , p_switch_side_flag => 'Y'
24522 , p_merge_duplicate_code => 'N'
24523 );
24524 --
24525 l_acc_rev_natural_side_code := 'D'; -- 4262811
24526 --
24527 --
24528 -- set accounting line type info
24529 --
24530 xla_ae_lines_pkg.SetAcctLineType
24531 (p_component_type => l_component_type
24535 ,p_accounting_line_code => l_component_code
24532 ,p_event_type_code => l_event_type_code
24533 ,p_line_definition_owner_code => l_line_definition_owner_code
24534 ,p_line_definition_code => l_line_definition_code
24536 ,p_accounting_line_type_code => l_component_type_code
24537 ,p_accounting_line_appl_id => l_component_appl_id
24538 ,p_amb_context_code => l_amb_context_code
24539 ,p_entity_code => l_entity_code
24540 ,p_event_class_code => l_event_class_code);
24541 --
24542 -- set accounting class
24543 --
24544 xla_ae_lines_pkg.SetAcctClass(
24545 p_accounting_class_code => 'COST_CLEARING'
24546 , p_ae_header_id => l_ae_header_id
24547 );
24548
24549 --
24550 -- set rounding class
24551 --
24552 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
24553 'COST_CLEARING';
24554
24555 --
24556 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
24557 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
24558 --
24559 -- bulk performance
24560 --
24561 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
24562
24563 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
24564 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
24565
24566 -- 4955764
24567 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24568 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
24569
24570 -- 4458381 Public Sector Enh
24571
24572 --
24573 -- set accounting attributes for the line type
24574 --
24575 l_entered_amt_idx := 22;
24576 l_accted_amt_idx := 27;
24577 l_bflow_applied_to_amt_idx := NULL; -- 5132302
24578 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
24579 l_rec_acct_attrs.array_char_value(1) := p_source_22;
24580 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
24581 l_rec_acct_attrs.array_char_value(2) := p_source_23;
24582 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
24583 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
24584 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
24585 l_rec_acct_attrs.array_num_value(4) := p_source_24;
24586 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
24587 l_rec_acct_attrs.array_char_value(5) := p_source_25;
24588 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
24589 l_rec_acct_attrs.array_num_value(6) := p_source_26;
24590 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
24591 l_rec_acct_attrs.array_date_value(7) := p_source_27;
24592 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
24593 l_rec_acct_attrs.array_num_value(8) := p_source_28;
24594 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
24595 l_rec_acct_attrs.array_char_value(9) := p_source_29;
24596 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
24597 l_rec_acct_attrs.array_char_value(10) := p_source_30;
24598 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
24599 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
24600 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
24601 l_rec_acct_attrs.array_num_value(12) := p_source_24;
24602 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
24603 l_rec_acct_attrs.array_char_value(13) := p_source_25;
24604 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
24605 l_rec_acct_attrs.array_num_value(14) := p_source_26;
24606 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
24607 l_rec_acct_attrs.array_date_value(15) := p_source_27;
24608 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
24609 l_rec_acct_attrs.array_num_value(16) := p_source_28;
24610 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
24611 l_rec_acct_attrs.array_char_value(17) := p_source_29;
24612 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
24613 l_rec_acct_attrs.array_char_value(18) := p_source_31;
24614 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
24615 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
24616 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
24617 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
24618 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
24619 l_rec_acct_attrs.array_char_value(21) := p_source_34;
24620 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
24621 l_rec_acct_attrs.array_num_value(22) := p_source_24;
24622 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
24623 l_rec_acct_attrs.array_char_value(23) := p_source_25;
24624 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
24625 l_rec_acct_attrs.array_date_value(24) := p_source_27;
24626 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
24627 l_rec_acct_attrs.array_num_value(25) := p_source_28;
24628 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
24632 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
24629 l_rec_acct_attrs.array_char_value(26) := p_source_29;
24630 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
24631 l_rec_acct_attrs.array_num_value(27) := p_source_26;
24633 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
24634 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
24635 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
24636 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
24637 l_rec_acct_attrs.array_char_value(30) := p_source_34;
24638
24639 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
24640 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
24641
24642 ---------------------------------------------------------------------------------------------------------------
24643 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
24644 ---------------------------------------------------------------------------------------------------------------
24645 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
24646
24647 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24648 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
24649
24650 IF xla_accounting_cache_pkg.GetValueChar
24651 (p_source_code => 'LEDGER_CATEGORY_CODE'
24652 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
24653 AND l_bflow_method_code = 'PRIOR_ENTRY'
24654 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
24655 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
24656 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
24657 )
24658 THEN
24659 xla_ae_lines_pkg.BflowUpgEntry
24660 (p_business_method_code => l_bflow_method_code
24661 ,p_business_class_code => l_bflow_class_code
24662 ,p_balance_type => l_balance_type_code);
24663 ELSE
24664 NULL;
24665 -- No business flow processing for business flow method of NONE.
24666 END IF;
24667
24668 --
24669 -- call analytical criteria
24670 --
24671
24672 --
24673 -- call description
24674 --
24675 -- No description or it is inherited.
24676 --
24677 -- call ADRs
24678 -- Bug 4922099
24679 --
24680 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
24681 (NVL(l_actual_upg_option, 'N') = 'O') OR
24682 (NVL(l_enc_upg_option, 'N') = 'O')
24683 )
24684 THEN
24685 NULL;
24686 --
24687 --
24688
24689 l_ccid := AcctDerRule_5(
24690 p_application_id => p_application_id
24691 , p_ae_header_id => l_ae_header_id
24692 , p_source_4 => p_source_4
24693 , p_source_6 => p_source_6
24694 , p_source_7 => p_source_7
24695 , x_transaction_coa_id => l_adr_transaction_coa_id
24696 , x_accounting_coa_id => l_adr_accounting_coa_id
24697 , x_value_type_code => l_adr_value_type_code
24698 , p_side => 'NA'
24699 );
24700
24701 xla_ae_lines_pkg.set_ccid(
24702 p_code_combination_id => l_ccid
24703 , p_value_type_code => l_adr_value_type_code
24704 , p_transaction_coa_id => l_adr_transaction_coa_id
24705 , p_accounting_coa_id => l_adr_accounting_coa_id
24706 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
24707 , p_adr_type_code => 'S'
24708 , p_component_type => l_component_type
24709 , p_component_code => l_component_code
24710 , p_component_type_code => l_component_type_code
24711 , p_component_appl_id => l_component_appl_id
24712 , p_amb_context_code => l_amb_context_code
24713 , p_side => 'NA'
24714 );
24715
24716
24717 --
24718 --
24719 END IF;
24720 --
24721 -- Bug 4922099
24722 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
24723 (NVL(l_enc_upg_option, 'N') = 'O')
24724 ) AND
24725 (l_bflow_method_code = 'PRIOR_ENTRY')
24726 )
24727 THEN
24728 IF
24729 --
24730 1 = 2
24731 --
24732 THEN
24733 xla_accounting_err_pkg.build_message
24734 (p_appli_s_name => 'XLA'
24735 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24736 ,p_token_1 => 'LINE_NUMBER'
24737 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
24738 ,p_token_2 => 'LINE_TYPE_NAME'
24739 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
24740 l_component_type
24741 ,l_component_code
24745 ,l_entity_code
24742 ,l_component_type_code
24743 ,l_component_appl_id
24744 ,l_amb_context_code
24746 ,l_event_class_code
24747 )
24748 ,p_token_3 => 'OWNER'
24749 ,p_value_3 => xla_lookups_pkg.get_meaning(
24750 p_lookup_type => 'XLA_OWNER_TYPE'
24751 ,p_lookup_code => l_component_type_code
24752 )
24753 ,p_token_4 => 'PRODUCT_NAME'
24754 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
24755 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
24756 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
24757 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
24758 ,p_ae_header_id => NULL
24759 );
24760
24761 IF (C_LEVEL_ERROR>= g_log_level) THEN
24762 trace
24763 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
24764 ,p_level => C_LEVEL_ERROR
24765 ,p_module => l_log_module);
24766 END IF;
24767 END IF;
24768 END IF;
24769 --
24770 --
24771 ------------------------------------------------------------------------------------------------
24772 -- 4219869 Business Flow
24773 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
24774 -- Prior Entry. Currently, the following code is always generated.
24775 ------------------------------------------------------------------------------------------------
24776 XLA_AE_LINES_PKG.ValidateCurrentLine;
24777
24778 ------------------------------------------------------------------------------------
24779 -- 4219869 Business Flow
24780 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
24781 ------------------------------------------------------------------------------------
24782 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24783
24784 ----------------------------------------------------------------------------------
24785 -- 4219869 Business Flow
24786 -- Update journal entry status -- Need to generate this within IF <condition>
24787 ----------------------------------------------------------------------------------
24788 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24789 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
24790 ,p_balance_type_code => l_balance_type_code
24791 );
24792
24793 -------------------------------------------------------------------------------------------
24794 -- 4262811 - Generate the Accrual Reversal lines
24795 -------------------------------------------------------------------------------------------
24796 BEGIN
24797 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
24798 (g_array_event(p_event_id).array_value_num('header_index'));
24799 IF l_acc_rev_flag IS NULL THEN
24800 l_acc_rev_flag := 'N';
24801 END IF;
24802 EXCEPTION
24803 WHEN OTHERS THEN
24804 l_acc_rev_flag := 'N';
24805 END;
24806 --
24807 IF (l_acc_rev_flag = 'Y') THEN
24808
24809 -- 4645092 ------------------------------------------------------------------------------
24810 -- To allow MPA report to determine if it should generate report process
24811 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
24812 ------------------------------------------------------------------------------------------
24813
24814 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
24815 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
24816
24817 --
24818 -- Update the line information that should be overwritten
24819 --
24820 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
24821 p_header_num => 1);
24822 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
24823
24824 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
24825
24826 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
24827 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
24828 END IF;
24829
24830 --
24831 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
24832 --
24833 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
24834 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
24838 ---------------------------------------------------------------------------------------------------
24835 ELSE
24836 ---------------------------------------------------------------------------------------------------
24837 -- 4262811a Switch Sign
24839 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
24840 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24841 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24842 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
24843 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24844 -- 5132302
24845 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
24846 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
24847
24848 END IF;
24849
24850 -- 4955764
24851 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
24852 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
24853
24854
24855 XLA_AE_LINES_PKG.ValidateCurrentLine;
24856 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
24857
24858 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
24859 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
24860 ,p_balance_type_code => l_balance_type_code);
24861
24862 END IF;
24863
24864 -----------------------------------------------------------------------------------------
24865 -- 4262811 Multiperiod Accounting
24866 -----------------------------------------------------------------------------------------
24867 -- No MPA option is assigned.
24868
24869
24870 END IF;
24871 --
24872
24873 --
24874 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
24875 trace
24876 (p_msg => 'END of AcctLineType_58'
24877 ,p_level => C_LEVEL_PROCEDURE
24878 ,p_module => l_log_module);
24879 END IF;
24880 --
24881 EXCEPTION
24882 WHEN xla_exceptions_pkg.application_exception THEN
24883 RAISE;
24884 WHEN OTHERS THEN
24885 xla_exceptions_pkg.raise_message
24886 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_58');
24887 END AcctLineType_58;
24888 --
24889
24890 ---------------------------------------
24891 --
24892 -- PRIVATE FUNCTION
24893 -- AcctLineType_59
24894 --
24895 ---------------------------------------
24896 PROCEDURE AcctLineType_59 (
24897 p_application_id IN NUMBER
24898 ,p_event_id IN NUMBER
24899 ,p_calculate_acctd_flag IN VARCHAR2
24900 ,p_calculate_g_l_flag IN VARCHAR2
24901 ,p_actual_flag IN OUT VARCHAR2
24902 ,p_balance_type_code OUT VARCHAR2
24903 ,p_gain_or_loss_ref OUT VARCHAR2
24904
24905 --Cost CCID
24906 , p_source_3 IN NUMBER
24907 --Allow Account Override Flag
24908 , p_source_4 IN VARCHAR2
24909 --Cost Clearing CCID
24910 , p_source_6 IN NUMBER
24911 --Adjustment Cost Clearing CCID
24912 , p_source_7 IN NUMBER
24913 --Exchange Rate Variance Flag
24914 , p_source_21 IN VARCHAR2
24915 --Reversing Line Flag
24916 , p_source_22 IN VARCHAR2
24917 --Actual Upgrade Credit Accounting Class
24918 , p_source_23 IN VARCHAR2
24919 --Entered Raw Cost
24920 , p_source_24 IN NUMBER
24921 --Entered Currency Code
24922 , p_source_25 IN VARCHAR2
24923 --Accounted Raw Cost
24924 , p_source_26 IN NUMBER
24925 --Exchange Rate Date
24926 , p_source_27 IN DATE
24927 --Exchange Rate
24928 , p_source_28 IN NUMBER
24929 --Exchange Rate Type
24930 , p_source_29 IN VARCHAR2
24931 --Actual Upgrade Debit Accounting Class
24932 , p_source_30 IN VARCHAR2
24933 --Use Actuals Upgrade Attributes Flag
24934 , p_source_31 IN VARCHAR2
24935 --Expenditure Item ID
24936 , p_source_32 IN NUMBER
24937 --Cost Distribution Line Number
24938 , p_source_33 IN NUMBER
24939 --Line Type
24940 , p_source_34 IN VARCHAR2
24941 , p_source_34_meaning IN VARCHAR2
24942 --Reversed Line Number
24943 , p_source_35 IN NUMBER
24944 )
24945 IS
24946
24947 l_component_type VARCHAR2(80);
24948 l_component_code VARCHAR2(30);
24949 l_component_type_code VARCHAR2(1);
24950 l_component_appl_id INTEGER;
24951 l_amb_context_code VARCHAR2(30);
24952 l_entity_code VARCHAR2(30);
24953 l_event_class_code VARCHAR2(30);
24954 l_ae_header_id NUMBER;
24955 l_event_type_code VARCHAR2(30);
24956 l_line_definition_code VARCHAR2(30);
24957 l_line_definition_owner_code VARCHAR2(1);
24958 --
24959 -- adr variables
24960 l_segment VARCHAR2(30);
24961 l_ccid NUMBER;
24962 l_adr_transaction_coa_id NUMBER;
24963 l_adr_accounting_coa_id NUMBER;
24964 l_adr_flexfield_segment_code VARCHAR2(30);
24965 l_adr_flex_value_set_id NUMBER;
24969
24966 l_adr_value_type_code VARCHAR2(30);
24967 l_adr_value_combination_id NUMBER;
24968 l_adr_value_segment_code VARCHAR2(30);
24970 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
24971 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
24972 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
24973 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
24974
24975 -- 4262811 Variables ------------------------------------------------------------------------------------------
24976 l_entered_amt_idx NUMBER;
24977 l_accted_amt_idx NUMBER;
24978 l_acc_rev_flag VARCHAR2(1);
24979 l_accrual_line_num NUMBER;
24980 l_tmp_amt NUMBER;
24981 l_acc_rev_natural_side_code VARCHAR2(1);
24982
24983 l_num_entries NUMBER;
24984 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
24985 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
24986 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
24987 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
24988 l_recog_line_1 NUMBER;
24989 l_recog_line_2 NUMBER;
24990
24991 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
24992 l_bflow_applied_to_amt NUMBER; -- 5132302
24993 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
24994
24995 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
24996
24997 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
24998 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
24999
25000 ---------------------------------------------------------------------------------------------------------------
25001
25002
25003 --
25004 -- bulk performance
25005 --
25006 l_balance_type_code VARCHAR2(1);
25007 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25008 l_log_module VARCHAR2(240);
25009
25010 --
25011 -- Upgrade strategy
25012 --
25013 l_actual_upg_option VARCHAR2(1);
25014 l_enc_upg_option VARCHAR2(1);
25015
25016 --
25017 BEGIN
25018 --
25019 IF g_log_enabled THEN
25020 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_59';
25021 END IF;
25022 --
25023 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25024
25025 trace
25026 (p_msg => 'BEGIN of AcctLineType_59'
25027 ,p_level => C_LEVEL_PROCEDURE
25028 ,p_module => l_log_module);
25029
25030 END IF;
25031 --
25032 l_component_type := 'AMB_JLT';
25033 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
25034 l_component_type_code := 'S';
25035 l_component_appl_id := 275;
25036 l_amb_context_code := 'DEFAULT';
25037 l_entity_code := 'EXPENDITURES';
25038 l_event_class_code := 'SUPPLIER_COST_ADJ';
25039 l_event_type_code := 'SUPPLIER_COST_ADJ_ALL';
25040 l_line_definition_owner_code := 'S';
25041 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
25042 --
25043 l_balance_type_code := 'A';
25044 l_segment := NULL;
25045 l_ccid := NULL;
25046 l_adr_transaction_coa_id := NULL;
25047 l_adr_accounting_coa_id := NULL;
25048 l_adr_flexfield_segment_code := NULL;
25049 l_adr_flex_value_set_id := NULL;
25050 l_adr_value_type_code := NULL;
25051 l_adr_value_combination_id := NULL;
25052 l_adr_value_segment_code := NULL;
25053
25054 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25055 l_bflow_class_code := ''; -- 4219869 Business Flow
25056 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25057 l_budgetary_control_flag := 'N';
25058
25059 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25060 l_bflow_applied_to_amt := NULL; -- 5132302
25061 l_entered_amt_idx := NULL; -- 4262811
25062 l_accted_amt_idx := NULL; -- 4262811
25063 l_acc_rev_flag := NULL; -- 4262811
25064 l_accrual_line_num := NULL; -- 4262811
25065 l_tmp_amt := NULL; -- 4262811
25066 --
25067
25068 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25069 l_balance_type_code <> 'B' THEN
25070 IF NVL(p_source_21,'
25071 ') = 'N'
25072 THEN
25073
25074 --
25075 XLA_AE_LINES_PKG.SetNewLine;
25076
25077 p_balance_type_code := l_balance_type_code;
25078 -- set the flag so later we will know whether the gain loss line needs to be created
25079
25080 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25081 p_actual_flag :='A';
25082 END IF;
25083
25084 --
25085 -- bulk performance
25086 --
25087 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25088 p_header_num => 0); -- 4262811
25089 --
25090 -- set accounting line options
25091 --
25092 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25096 , p_acct_entry_type_code => 'A'
25093 p_natural_side_code => 'C'
25094 , p_gain_or_loss_flag => 'N'
25095 , p_gl_transfer_mode_code => 'S'
25097 , p_switch_side_flag => 'Y'
25098 , p_merge_duplicate_code => 'N'
25099 );
25100 --
25101 l_acc_rev_natural_side_code := 'D'; -- 4262811
25102 --
25103 --
25104 -- set accounting line type info
25105 --
25106 xla_ae_lines_pkg.SetAcctLineType
25107 (p_component_type => l_component_type
25108 ,p_event_type_code => l_event_type_code
25109 ,p_line_definition_owner_code => l_line_definition_owner_code
25110 ,p_line_definition_code => l_line_definition_code
25111 ,p_accounting_line_code => l_component_code
25112 ,p_accounting_line_type_code => l_component_type_code
25113 ,p_accounting_line_appl_id => l_component_appl_id
25114 ,p_amb_context_code => l_amb_context_code
25115 ,p_entity_code => l_entity_code
25116 ,p_event_class_code => l_event_class_code);
25117 --
25118 -- set accounting class
25119 --
25120 xla_ae_lines_pkg.SetAcctClass(
25121 p_accounting_class_code => 'COST_CLEARING'
25122 , p_ae_header_id => l_ae_header_id
25123 );
25124
25125 --
25126 -- set rounding class
25127 --
25128 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25129 'COST_CLEARING';
25130
25131 --
25132 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25133 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25134 --
25135 -- bulk performance
25136 --
25137 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25138
25139 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25140 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25141
25142 -- 4955764
25143 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25144 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25145
25146 -- 4458381 Public Sector Enh
25147
25148 --
25149 -- set accounting attributes for the line type
25150 --
25151 l_entered_amt_idx := 22;
25152 l_accted_amt_idx := 27;
25153 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25154 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25155 l_rec_acct_attrs.array_char_value(1) := p_source_22;
25156 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
25157 l_rec_acct_attrs.array_char_value(2) := p_source_23;
25158 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
25159 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
25160 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
25161 l_rec_acct_attrs.array_num_value(4) := p_source_24;
25162 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
25163 l_rec_acct_attrs.array_char_value(5) := p_source_25;
25164 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
25165 l_rec_acct_attrs.array_num_value(6) := p_source_26;
25166 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
25167 l_rec_acct_attrs.array_date_value(7) := p_source_27;
25168 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
25169 l_rec_acct_attrs.array_num_value(8) := p_source_28;
25170 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
25171 l_rec_acct_attrs.array_char_value(9) := p_source_29;
25172 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
25173 l_rec_acct_attrs.array_char_value(10) := p_source_30;
25174 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
25175 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
25176 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
25177 l_rec_acct_attrs.array_num_value(12) := p_source_24;
25178 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
25179 l_rec_acct_attrs.array_char_value(13) := p_source_25;
25180 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
25181 l_rec_acct_attrs.array_num_value(14) := p_source_26;
25182 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
25183 l_rec_acct_attrs.array_date_value(15) := p_source_27;
25184 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
25185 l_rec_acct_attrs.array_num_value(16) := p_source_28;
25186 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
25187 l_rec_acct_attrs.array_char_value(17) := p_source_29;
25188 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
25189 l_rec_acct_attrs.array_char_value(18) := p_source_31;
25190 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
25191 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
25192 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
25196 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
25193 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
25194 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
25195 l_rec_acct_attrs.array_char_value(21) := p_source_34;
25197 l_rec_acct_attrs.array_num_value(22) := p_source_24;
25198 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
25199 l_rec_acct_attrs.array_char_value(23) := p_source_25;
25200 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
25201 l_rec_acct_attrs.array_date_value(24) := p_source_27;
25202 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
25203 l_rec_acct_attrs.array_num_value(25) := p_source_28;
25204 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
25205 l_rec_acct_attrs.array_char_value(26) := p_source_29;
25206 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
25207 l_rec_acct_attrs.array_num_value(27) := p_source_26;
25208 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
25209 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
25210 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
25211 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
25212 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
25213 l_rec_acct_attrs.array_char_value(30) := p_source_34;
25214
25215 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25216 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25217
25218 ---------------------------------------------------------------------------------------------------------------
25219 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25220 ---------------------------------------------------------------------------------------------------------------
25221 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25222
25223 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25224 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25225
25226 IF xla_accounting_cache_pkg.GetValueChar
25227 (p_source_code => 'LEDGER_CATEGORY_CODE'
25228 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25229 AND l_bflow_method_code = 'PRIOR_ENTRY'
25230 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25231 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25232 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25233 )
25234 THEN
25235 xla_ae_lines_pkg.BflowUpgEntry
25236 (p_business_method_code => l_bflow_method_code
25237 ,p_business_class_code => l_bflow_class_code
25238 ,p_balance_type => l_balance_type_code);
25239 ELSE
25240 NULL;
25241 -- No business flow processing for business flow method of NONE.
25242 END IF;
25243
25244 --
25245 -- call analytical criteria
25246 --
25247
25248 --
25249 -- call description
25250 --
25251 -- No description or it is inherited.
25252 --
25253 -- call ADRs
25254 -- Bug 4922099
25255 --
25256 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25257 (NVL(l_actual_upg_option, 'N') = 'O') OR
25258 (NVL(l_enc_upg_option, 'N') = 'O')
25259 )
25260 THEN
25261 NULL;
25262 --
25263 --
25264
25265 l_ccid := AcctDerRule_6(
25266 p_application_id => p_application_id
25267 , p_ae_header_id => l_ae_header_id
25268 , p_source_4 => p_source_4
25269 , p_source_7 => p_source_7
25270 , x_transaction_coa_id => l_adr_transaction_coa_id
25271 , x_accounting_coa_id => l_adr_accounting_coa_id
25272 , x_value_type_code => l_adr_value_type_code
25273 , p_side => 'NA'
25274 );
25275
25276 xla_ae_lines_pkg.set_ccid(
25277 p_code_combination_id => l_ccid
25278 , p_value_type_code => l_adr_value_type_code
25279 , p_transaction_coa_id => l_adr_transaction_coa_id
25280 , p_accounting_coa_id => l_adr_accounting_coa_id
25281 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
25282 , p_adr_type_code => 'S'
25283 , p_component_type => l_component_type
25284 , p_component_code => l_component_code
25285 , p_component_type_code => l_component_type_code
25286 , p_component_appl_id => l_component_appl_id
25287 , p_amb_context_code => l_amb_context_code
25288 , p_side => 'NA'
25289 );
25290
25291
25292 --
25293 --
25294 END IF;
25295 --
25296 -- Bug 4922099
25297 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25298 (NVL(l_enc_upg_option, 'N') = 'O')
25299 ) AND
25300 (l_bflow_method_code = 'PRIOR_ENTRY')
25301 )
25302 THEN
25303 IF
25304 --
25305 1 = 2
25306 --
25307 THEN
25308 xla_accounting_err_pkg.build_message
25309 (p_appli_s_name => 'XLA'
25313 ,p_token_2 => 'LINE_TYPE_NAME'
25310 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25311 ,p_token_1 => 'LINE_NUMBER'
25312 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25314 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25315 l_component_type
25316 ,l_component_code
25317 ,l_component_type_code
25318 ,l_component_appl_id
25319 ,l_amb_context_code
25320 ,l_entity_code
25321 ,l_event_class_code
25322 )
25323 ,p_token_3 => 'OWNER'
25324 ,p_value_3 => xla_lookups_pkg.get_meaning(
25325 p_lookup_type => 'XLA_OWNER_TYPE'
25326 ,p_lookup_code => l_component_type_code
25327 )
25328 ,p_token_4 => 'PRODUCT_NAME'
25329 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25330 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25331 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25332 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25333 ,p_ae_header_id => NULL
25334 );
25335
25336 IF (C_LEVEL_ERROR>= g_log_level) THEN
25337 trace
25338 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25339 ,p_level => C_LEVEL_ERROR
25340 ,p_module => l_log_module);
25341 END IF;
25342 END IF;
25343 END IF;
25344 --
25345 --
25346 ------------------------------------------------------------------------------------------------
25347 -- 4219869 Business Flow
25348 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25349 -- Prior Entry. Currently, the following code is always generated.
25350 ------------------------------------------------------------------------------------------------
25351 XLA_AE_LINES_PKG.ValidateCurrentLine;
25352
25353 ------------------------------------------------------------------------------------
25354 -- 4219869 Business Flow
25355 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25356 ------------------------------------------------------------------------------------
25357 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25358
25359 ----------------------------------------------------------------------------------
25360 -- 4219869 Business Flow
25361 -- Update journal entry status -- Need to generate this within IF <condition>
25362 ----------------------------------------------------------------------------------
25363 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25364 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25365 ,p_balance_type_code => l_balance_type_code
25366 );
25367
25368 -------------------------------------------------------------------------------------------
25369 -- 4262811 - Generate the Accrual Reversal lines
25370 -------------------------------------------------------------------------------------------
25371 BEGIN
25372 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25373 (g_array_event(p_event_id).array_value_num('header_index'));
25374 IF l_acc_rev_flag IS NULL THEN
25375 l_acc_rev_flag := 'N';
25376 END IF;
25377 EXCEPTION
25378 WHEN OTHERS THEN
25379 l_acc_rev_flag := 'N';
25380 END;
25381 --
25382 IF (l_acc_rev_flag = 'Y') THEN
25383
25384 -- 4645092 ------------------------------------------------------------------------------
25385 -- To allow MPA report to determine if it should generate report process
25386 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25387 ------------------------------------------------------------------------------------------
25388
25389 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25390 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25391
25392 --
25393 -- Update the line information that should be overwritten
25394 --
25395 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25396 p_header_num => 1);
25397 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25398
25399 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25400
25404
25401 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25402 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25403 END IF;
25405 --
25406 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25407 --
25408 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25409 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25410 ELSE
25411 ---------------------------------------------------------------------------------------------------
25412 -- 4262811a Switch Sign
25413 ---------------------------------------------------------------------------------------------------
25414 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25415 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25416 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25417 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25418 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25419 -- 5132302
25420 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25421 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25422
25423 END IF;
25424
25425 -- 4955764
25426 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25427 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25428
25429
25430 XLA_AE_LINES_PKG.ValidateCurrentLine;
25431 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25432
25433 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25434 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
25435 ,p_balance_type_code => l_balance_type_code);
25436
25437 END IF;
25438
25439 -----------------------------------------------------------------------------------------
25440 -- 4262811 Multiperiod Accounting
25441 -----------------------------------------------------------------------------------------
25442 -- No MPA option is assigned.
25443
25444
25445 END IF;
25446 END IF;
25447 --
25448
25449 --
25450 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25451 trace
25452 (p_msg => 'END of AcctLineType_59'
25453 ,p_level => C_LEVEL_PROCEDURE
25454 ,p_module => l_log_module);
25455 END IF;
25456 --
25457 EXCEPTION
25458 WHEN xla_exceptions_pkg.application_exception THEN
25459 RAISE;
25460 WHEN OTHERS THEN
25461 xla_exceptions_pkg.raise_message
25462 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_59');
25463 END AcctLineType_59;
25464 --
25465
25466 ---------------------------------------
25467 --
25468 -- PRIVATE FUNCTION
25469 -- AcctLineType_60
25470 --
25471 ---------------------------------------
25472 PROCEDURE AcctLineType_60 (
25473 p_application_id IN NUMBER
25474 ,p_event_id IN NUMBER
25475 ,p_calculate_acctd_flag IN VARCHAR2
25476 ,p_calculate_g_l_flag IN VARCHAR2
25477 ,p_actual_flag IN OUT VARCHAR2
25478 ,p_balance_type_code OUT VARCHAR2
25479 ,p_gain_or_loss_ref OUT VARCHAR2
25480
25481 --Cost CCID
25482 , p_source_3 IN NUMBER
25483 --Allow Account Override Flag
25484 , p_source_4 IN VARCHAR2
25485 --Cost Clearing CCID
25486 , p_source_6 IN NUMBER
25487 --Adjustment Cost Clearing CCID
25488 , p_source_7 IN NUMBER
25489 --Reversing Line Flag
25490 , p_source_22 IN VARCHAR2
25491 --Actual Upgrade Credit Accounting Class
25492 , p_source_23 IN VARCHAR2
25493 --Entered Raw Cost
25494 , p_source_24 IN NUMBER
25495 --Entered Currency Code
25496 , p_source_25 IN VARCHAR2
25497 --Accounted Raw Cost
25498 , p_source_26 IN NUMBER
25499 --Exchange Rate Date
25500 , p_source_27 IN DATE
25501 --Exchange Rate
25502 , p_source_28 IN NUMBER
25503 --Exchange Rate Type
25504 , p_source_29 IN VARCHAR2
25505 --Actual Upgrade Debit Accounting Class
25506 , p_source_30 IN VARCHAR2
25507 --Use Actuals Upgrade Attributes Flag
25508 , p_source_31 IN VARCHAR2
25509 --Expenditure Item ID
25510 , p_source_32 IN NUMBER
25511 --Cost Distribution Line Number
25512 , p_source_33 IN NUMBER
25513 --Line Type
25514 , p_source_34 IN VARCHAR2
25515 , p_source_34_meaning IN VARCHAR2
25516 --Reversed Line Number
25517 , p_source_35 IN NUMBER
25518 )
25519 IS
25520
25521 l_component_type VARCHAR2(80);
25522 l_component_code VARCHAR2(30);
25523 l_component_type_code VARCHAR2(1);
25524 l_component_appl_id INTEGER;
25525 l_amb_context_code VARCHAR2(30);
25526 l_entity_code VARCHAR2(30);
25527 l_event_class_code VARCHAR2(30);
25531 l_line_definition_owner_code VARCHAR2(1);
25528 l_ae_header_id NUMBER;
25529 l_event_type_code VARCHAR2(30);
25530 l_line_definition_code VARCHAR2(30);
25532 --
25533 -- adr variables
25534 l_segment VARCHAR2(30);
25535 l_ccid NUMBER;
25536 l_adr_transaction_coa_id NUMBER;
25537 l_adr_accounting_coa_id NUMBER;
25538 l_adr_flexfield_segment_code VARCHAR2(30);
25539 l_adr_flex_value_set_id NUMBER;
25540 l_adr_value_type_code VARCHAR2(30);
25541 l_adr_value_combination_id NUMBER;
25542 l_adr_value_segment_code VARCHAR2(30);
25543
25544 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
25545 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
25546 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
25547 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
25548
25549 -- 4262811 Variables ------------------------------------------------------------------------------------------
25550 l_entered_amt_idx NUMBER;
25551 l_accted_amt_idx NUMBER;
25552 l_acc_rev_flag VARCHAR2(1);
25553 l_accrual_line_num NUMBER;
25554 l_tmp_amt NUMBER;
25555 l_acc_rev_natural_side_code VARCHAR2(1);
25556
25557 l_num_entries NUMBER;
25558 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
25559 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
25560 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
25561 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
25562 l_recog_line_1 NUMBER;
25563 l_recog_line_2 NUMBER;
25564
25565 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
25566 l_bflow_applied_to_amt NUMBER; -- 5132302
25567 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
25568
25569 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
25570
25571 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
25572 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
25573
25574 ---------------------------------------------------------------------------------------------------------------
25575
25576
25577 --
25578 -- bulk performance
25579 --
25580 l_balance_type_code VARCHAR2(1);
25581 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
25582 l_log_module VARCHAR2(240);
25583
25584 --
25585 -- Upgrade strategy
25586 --
25587 l_actual_upg_option VARCHAR2(1);
25588 l_enc_upg_option VARCHAR2(1);
25589
25590 --
25591 BEGIN
25592 --
25593 IF g_log_enabled THEN
25594 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_60';
25595 END IF;
25596 --
25597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
25598
25599 trace
25600 (p_msg => 'BEGIN of AcctLineType_60'
25601 ,p_level => C_LEVEL_PROCEDURE
25602 ,p_module => l_log_module);
25603
25604 END IF;
25605 --
25606 l_component_type := 'AMB_JLT';
25607 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
25608 l_component_type_code := 'S';
25609 l_component_appl_id := 275;
25610 l_amb_context_code := 'DEFAULT';
25611 l_entity_code := 'EXPENDITURES';
25612 l_event_class_code := 'LABOR_COST_ADJ';
25613 l_event_type_code := 'LABOR_COST_ADJ_ALL';
25614 l_line_definition_owner_code := 'S';
25615 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
25616 --
25617 l_balance_type_code := 'A';
25618 l_segment := NULL;
25619 l_ccid := NULL;
25620 l_adr_transaction_coa_id := NULL;
25621 l_adr_accounting_coa_id := NULL;
25622 l_adr_flexfield_segment_code := NULL;
25623 l_adr_flex_value_set_id := NULL;
25624 l_adr_value_type_code := NULL;
25625 l_adr_value_combination_id := NULL;
25626 l_adr_value_segment_code := NULL;
25627
25628 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
25629 l_bflow_class_code := ''; -- 4219869 Business Flow
25630 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
25631 l_budgetary_control_flag := 'N';
25632
25633 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25634 l_bflow_applied_to_amt := NULL; -- 5132302
25635 l_entered_amt_idx := NULL; -- 4262811
25636 l_accted_amt_idx := NULL; -- 4262811
25637 l_acc_rev_flag := NULL; -- 4262811
25638 l_accrual_line_num := NULL; -- 4262811
25639 l_tmp_amt := NULL; -- 4262811
25640 --
25641
25642 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
25643 l_balance_type_code <> 'B' THEN
25644
25645 --
25646 XLA_AE_LINES_PKG.SetNewLine;
25647
25648 p_balance_type_code := l_balance_type_code;
25649 -- set the flag so later we will know whether the gain loss line needs to be created
25650
25651 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
25655 --
25652 p_actual_flag :='A';
25653 END IF;
25654
25656 -- bulk performance
25657 --
25658 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
25659 p_header_num => 0); -- 4262811
25660 --
25661 -- set accounting line options
25662 --
25663 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
25664 p_natural_side_code => 'C'
25665 , p_gain_or_loss_flag => 'N'
25666 , p_gl_transfer_mode_code => 'S'
25667 , p_acct_entry_type_code => 'A'
25668 , p_switch_side_flag => 'Y'
25669 , p_merge_duplicate_code => 'N'
25670 );
25671 --
25672 l_acc_rev_natural_side_code := 'D'; -- 4262811
25673 --
25674 --
25675 -- set accounting line type info
25676 --
25677 xla_ae_lines_pkg.SetAcctLineType
25678 (p_component_type => l_component_type
25679 ,p_event_type_code => l_event_type_code
25680 ,p_line_definition_owner_code => l_line_definition_owner_code
25681 ,p_line_definition_code => l_line_definition_code
25682 ,p_accounting_line_code => l_component_code
25683 ,p_accounting_line_type_code => l_component_type_code
25684 ,p_accounting_line_appl_id => l_component_appl_id
25685 ,p_amb_context_code => l_amb_context_code
25686 ,p_entity_code => l_entity_code
25687 ,p_event_class_code => l_event_class_code);
25688 --
25689 -- set accounting class
25690 --
25691 xla_ae_lines_pkg.SetAcctClass(
25692 p_accounting_class_code => 'COST_CLEARING'
25693 , p_ae_header_id => l_ae_header_id
25694 );
25695
25696 --
25697 -- set rounding class
25698 --
25699 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
25700 'COST_CLEARING';
25701
25702 --
25703 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
25704 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
25705 --
25706 -- bulk performance
25707 --
25708 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
25709
25710 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
25711 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
25712
25713 -- 4955764
25714 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25715 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
25716
25717 -- 4458381 Public Sector Enh
25718
25719 --
25720 -- set accounting attributes for the line type
25721 --
25722 l_entered_amt_idx := 22;
25723 l_accted_amt_idx := 27;
25724 l_bflow_applied_to_amt_idx := NULL; -- 5132302
25725 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
25726 l_rec_acct_attrs.array_char_value(1) := p_source_22;
25727 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
25728 l_rec_acct_attrs.array_char_value(2) := p_source_23;
25729 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
25730 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
25731 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
25732 l_rec_acct_attrs.array_num_value(4) := p_source_24;
25733 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
25734 l_rec_acct_attrs.array_char_value(5) := p_source_25;
25735 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
25736 l_rec_acct_attrs.array_num_value(6) := p_source_26;
25737 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
25738 l_rec_acct_attrs.array_date_value(7) := p_source_27;
25739 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
25740 l_rec_acct_attrs.array_num_value(8) := p_source_28;
25741 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
25742 l_rec_acct_attrs.array_char_value(9) := p_source_29;
25743 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
25744 l_rec_acct_attrs.array_char_value(10) := p_source_30;
25745 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
25746 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
25747 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
25748 l_rec_acct_attrs.array_num_value(12) := p_source_24;
25749 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
25750 l_rec_acct_attrs.array_char_value(13) := p_source_25;
25751 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
25752 l_rec_acct_attrs.array_num_value(14) := p_source_26;
25753 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
25754 l_rec_acct_attrs.array_date_value(15) := p_source_27;
25755 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
25756 l_rec_acct_attrs.array_num_value(16) := p_source_28;
25757 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
25758 l_rec_acct_attrs.array_char_value(17) := p_source_29;
25759 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
25763 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
25760 l_rec_acct_attrs.array_char_value(18) := p_source_31;
25761 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
25762 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
25764 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
25765 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
25766 l_rec_acct_attrs.array_char_value(21) := p_source_34;
25767 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
25768 l_rec_acct_attrs.array_num_value(22) := p_source_24;
25769 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
25770 l_rec_acct_attrs.array_char_value(23) := p_source_25;
25771 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
25772 l_rec_acct_attrs.array_date_value(24) := p_source_27;
25773 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
25774 l_rec_acct_attrs.array_num_value(25) := p_source_28;
25775 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
25776 l_rec_acct_attrs.array_char_value(26) := p_source_29;
25777 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
25778 l_rec_acct_attrs.array_num_value(27) := p_source_26;
25779 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
25780 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
25781 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
25782 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
25783 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
25784 l_rec_acct_attrs.array_char_value(30) := p_source_34;
25785
25786 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
25787 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
25788
25789 ---------------------------------------------------------------------------------------------------------------
25790 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
25791 ---------------------------------------------------------------------------------------------------------------
25792 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
25793
25794 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25795 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
25796
25797 IF xla_accounting_cache_pkg.GetValueChar
25798 (p_source_code => 'LEDGER_CATEGORY_CODE'
25799 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
25800 AND l_bflow_method_code = 'PRIOR_ENTRY'
25801 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
25802 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
25803 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
25804 )
25805 THEN
25806 xla_ae_lines_pkg.BflowUpgEntry
25807 (p_business_method_code => l_bflow_method_code
25808 ,p_business_class_code => l_bflow_class_code
25809 ,p_balance_type => l_balance_type_code);
25810 ELSE
25811 NULL;
25812 -- No business flow processing for business flow method of NONE.
25813 END IF;
25814
25815 --
25816 -- call analytical criteria
25817 --
25818
25819 --
25820 -- call description
25821 --
25822 -- No description or it is inherited.
25823 --
25824 -- call ADRs
25825 -- Bug 4922099
25826 --
25827 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
25828 (NVL(l_actual_upg_option, 'N') = 'O') OR
25829 (NVL(l_enc_upg_option, 'N') = 'O')
25830 )
25831 THEN
25832 NULL;
25833 --
25834 --
25835
25836 l_ccid := AcctDerRule_6(
25837 p_application_id => p_application_id
25838 , p_ae_header_id => l_ae_header_id
25839 , p_source_4 => p_source_4
25840 , p_source_7 => p_source_7
25841 , x_transaction_coa_id => l_adr_transaction_coa_id
25842 , x_accounting_coa_id => l_adr_accounting_coa_id
25843 , x_value_type_code => l_adr_value_type_code
25844 , p_side => 'NA'
25845 );
25846
25847 xla_ae_lines_pkg.set_ccid(
25848 p_code_combination_id => l_ccid
25849 , p_value_type_code => l_adr_value_type_code
25850 , p_transaction_coa_id => l_adr_transaction_coa_id
25851 , p_accounting_coa_id => l_adr_accounting_coa_id
25852 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
25853 , p_adr_type_code => 'S'
25854 , p_component_type => l_component_type
25855 , p_component_code => l_component_code
25856 , p_component_type_code => l_component_type_code
25857 , p_component_appl_id => l_component_appl_id
25858 , p_amb_context_code => l_amb_context_code
25859 , p_side => 'NA'
25860 );
25861
25862
25863 --
25864 --
25865 END IF;
25866 --
25867 -- Bug 4922099
25868 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
25872 )
25869 (NVL(l_enc_upg_option, 'N') = 'O')
25870 ) AND
25871 (l_bflow_method_code = 'PRIOR_ENTRY')
25873 THEN
25874 IF
25875 --
25876 1 = 2
25877 --
25878 THEN
25879 xla_accounting_err_pkg.build_message
25880 (p_appli_s_name => 'XLA'
25881 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25882 ,p_token_1 => 'LINE_NUMBER'
25883 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
25884 ,p_token_2 => 'LINE_TYPE_NAME'
25885 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
25886 l_component_type
25887 ,l_component_code
25888 ,l_component_type_code
25889 ,l_component_appl_id
25890 ,l_amb_context_code
25891 ,l_entity_code
25892 ,l_event_class_code
25893 )
25894 ,p_token_3 => 'OWNER'
25895 ,p_value_3 => xla_lookups_pkg.get_meaning(
25896 p_lookup_type => 'XLA_OWNER_TYPE'
25897 ,p_lookup_code => l_component_type_code
25898 )
25899 ,p_token_4 => 'PRODUCT_NAME'
25900 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
25901 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
25902 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
25903 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
25904 ,p_ae_header_id => NULL
25905 );
25906
25907 IF (C_LEVEL_ERROR>= g_log_level) THEN
25908 trace
25909 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
25910 ,p_level => C_LEVEL_ERROR
25911 ,p_module => l_log_module);
25912 END IF;
25913 END IF;
25914 END IF;
25915 --
25916 --
25917 ------------------------------------------------------------------------------------------------
25918 -- 4219869 Business Flow
25919 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
25920 -- Prior Entry. Currently, the following code is always generated.
25921 ------------------------------------------------------------------------------------------------
25922 XLA_AE_LINES_PKG.ValidateCurrentLine;
25923
25924 ------------------------------------------------------------------------------------
25925 -- 4219869 Business Flow
25926 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
25927 ------------------------------------------------------------------------------------
25928 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
25929
25930 ----------------------------------------------------------------------------------
25931 -- 4219869 Business Flow
25932 -- Update journal entry status -- Need to generate this within IF <condition>
25933 ----------------------------------------------------------------------------------
25934 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
25935 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
25936 ,p_balance_type_code => l_balance_type_code
25937 );
25938
25939 -------------------------------------------------------------------------------------------
25940 -- 4262811 - Generate the Accrual Reversal lines
25941 -------------------------------------------------------------------------------------------
25942 BEGIN
25943 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
25944 (g_array_event(p_event_id).array_value_num('header_index'));
25945 IF l_acc_rev_flag IS NULL THEN
25946 l_acc_rev_flag := 'N';
25947 END IF;
25948 EXCEPTION
25949 WHEN OTHERS THEN
25950 l_acc_rev_flag := 'N';
25951 END;
25952 --
25953 IF (l_acc_rev_flag = 'Y') THEN
25954
25955 -- 4645092 ------------------------------------------------------------------------------
25956 -- To allow MPA report to determine if it should generate report process
25957 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
25958 ------------------------------------------------------------------------------------------
25959
25960 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
25961 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
25962
25963 --
25964 -- Update the line information that should be overwritten
25968 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
25965 --
25966 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
25967 p_header_num => 1);
25969
25970 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
25971
25972 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
25973 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
25974 END IF;
25975
25976 --
25977 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
25978 --
25979 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
25980 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
25981 ELSE
25982 ---------------------------------------------------------------------------------------------------
25983 -- 4262811a Switch Sign
25984 ---------------------------------------------------------------------------------------------------
25985 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
25986 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25987 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25988 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
25989 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25990 -- 5132302
25991 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
25992 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
25993
25994 END IF;
25995
25996 -- 4955764
25997 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
25998 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
25999
26000
26001 XLA_AE_LINES_PKG.ValidateCurrentLine;
26002 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26003
26004 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26005 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26006 ,p_balance_type_code => l_balance_type_code);
26007
26008 END IF;
26009
26010 -----------------------------------------------------------------------------------------
26011 -- 4262811 Multiperiod Accounting
26012 -----------------------------------------------------------------------------------------
26013 -- No MPA option is assigned.
26014
26015
26016 END IF;
26017 --
26018
26019 --
26020 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26021 trace
26022 (p_msg => 'END of AcctLineType_60'
26023 ,p_level => C_LEVEL_PROCEDURE
26024 ,p_module => l_log_module);
26025 END IF;
26026 --
26027 EXCEPTION
26028 WHEN xla_exceptions_pkg.application_exception THEN
26029 RAISE;
26030 WHEN OTHERS THEN
26031 xla_exceptions_pkg.raise_message
26032 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_60');
26033 END AcctLineType_60;
26034 --
26035
26036 ---------------------------------------
26037 --
26038 -- PRIVATE FUNCTION
26039 -- AcctLineType_61
26040 --
26041 ---------------------------------------
26042 PROCEDURE AcctLineType_61 (
26043 p_application_id IN NUMBER
26044 ,p_event_id IN NUMBER
26045 ,p_calculate_acctd_flag IN VARCHAR2
26046 ,p_calculate_g_l_flag IN VARCHAR2
26047 ,p_actual_flag IN OUT VARCHAR2
26048 ,p_balance_type_code OUT VARCHAR2
26049 ,p_gain_or_loss_ref OUT VARCHAR2
26050
26051 --Cost CCID
26052 , p_source_3 IN NUMBER
26053 --Allow Account Override Flag
26054 , p_source_4 IN VARCHAR2
26055 --Cost Clearing CCID
26056 , p_source_6 IN NUMBER
26057 --Adjustment Cost Clearing CCID
26058 , p_source_7 IN NUMBER
26059 --Reversing Line Flag
26060 , p_source_22 IN VARCHAR2
26061 --Actual Upgrade Credit Accounting Class
26062 , p_source_23 IN VARCHAR2
26063 --Entered Raw Cost
26064 , p_source_24 IN NUMBER
26065 --Entered Currency Code
26066 , p_source_25 IN VARCHAR2
26067 --Accounted Raw Cost
26068 , p_source_26 IN NUMBER
26069 --Exchange Rate Date
26070 , p_source_27 IN DATE
26071 --Exchange Rate
26072 , p_source_28 IN NUMBER
26073 --Exchange Rate Type
26074 , p_source_29 IN VARCHAR2
26075 --Actual Upgrade Debit Accounting Class
26076 , p_source_30 IN VARCHAR2
26077 --Use Actuals Upgrade Attributes Flag
26078 , p_source_31 IN VARCHAR2
26079 --Expenditure Item ID
26080 , p_source_32 IN NUMBER
26081 --Cost Distribution Line Number
26082 , p_source_33 IN NUMBER
26083 --Line Type
26084 , p_source_34 IN VARCHAR2
26085 , p_source_34_meaning IN VARCHAR2
26086 --Reversed Line Number
26087 , p_source_35 IN NUMBER
26088 )
26089 IS
26090
26094 l_component_appl_id INTEGER;
26091 l_component_type VARCHAR2(80);
26092 l_component_code VARCHAR2(30);
26093 l_component_type_code VARCHAR2(1);
26095 l_amb_context_code VARCHAR2(30);
26096 l_entity_code VARCHAR2(30);
26097 l_event_class_code VARCHAR2(30);
26098 l_ae_header_id NUMBER;
26099 l_event_type_code VARCHAR2(30);
26100 l_line_definition_code VARCHAR2(30);
26101 l_line_definition_owner_code VARCHAR2(1);
26102 --
26103 -- adr variables
26104 l_segment VARCHAR2(30);
26105 l_ccid NUMBER;
26106 l_adr_transaction_coa_id NUMBER;
26107 l_adr_accounting_coa_id NUMBER;
26108 l_adr_flexfield_segment_code VARCHAR2(30);
26109 l_adr_flex_value_set_id NUMBER;
26110 l_adr_value_type_code VARCHAR2(30);
26111 l_adr_value_combination_id NUMBER;
26112 l_adr_value_segment_code VARCHAR2(30);
26113
26114 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26115 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26116 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26117 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26118
26119 -- 4262811 Variables ------------------------------------------------------------------------------------------
26120 l_entered_amt_idx NUMBER;
26121 l_accted_amt_idx NUMBER;
26122 l_acc_rev_flag VARCHAR2(1);
26123 l_accrual_line_num NUMBER;
26124 l_tmp_amt NUMBER;
26125 l_acc_rev_natural_side_code VARCHAR2(1);
26126
26127 l_num_entries NUMBER;
26128 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26129 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26130 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26131 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26132 l_recog_line_1 NUMBER;
26133 l_recog_line_2 NUMBER;
26134
26135 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26136 l_bflow_applied_to_amt NUMBER; -- 5132302
26137 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26138
26139 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26140
26141 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26142 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26143
26144 ---------------------------------------------------------------------------------------------------------------
26145
26146
26147 --
26148 -- bulk performance
26149 --
26150 l_balance_type_code VARCHAR2(1);
26151 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26152 l_log_module VARCHAR2(240);
26153
26154 --
26155 -- Upgrade strategy
26156 --
26157 l_actual_upg_option VARCHAR2(1);
26158 l_enc_upg_option VARCHAR2(1);
26159
26160 --
26161 BEGIN
26162 --
26163 IF g_log_enabled THEN
26164 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_61';
26165 END IF;
26166 --
26167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26168
26169 trace
26170 (p_msg => 'BEGIN of AcctLineType_61'
26171 ,p_level => C_LEVEL_PROCEDURE
26172 ,p_module => l_log_module);
26173
26174 END IF;
26175 --
26176 l_component_type := 'AMB_JLT';
26177 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
26178 l_component_type_code := 'S';
26179 l_component_appl_id := 275;
26180 l_amb_context_code := 'DEFAULT';
26181 l_entity_code := 'EXPENDITURES';
26182 l_event_class_code := 'MISC_COST_ADJ';
26183 l_event_type_code := 'MISC_COST_ADJ_ALL';
26184 l_line_definition_owner_code := 'S';
26185 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
26186 --
26187 l_balance_type_code := 'A';
26188 l_segment := NULL;
26189 l_ccid := NULL;
26190 l_adr_transaction_coa_id := NULL;
26191 l_adr_accounting_coa_id := NULL;
26192 l_adr_flexfield_segment_code := NULL;
26193 l_adr_flex_value_set_id := NULL;
26194 l_adr_value_type_code := NULL;
26195 l_adr_value_combination_id := NULL;
26196 l_adr_value_segment_code := NULL;
26197
26198 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26199 l_bflow_class_code := ''; -- 4219869 Business Flow
26200 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26201 l_budgetary_control_flag := 'N';
26202
26203 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26204 l_bflow_applied_to_amt := NULL; -- 5132302
26205 l_entered_amt_idx := NULL; -- 4262811
26206 l_accted_amt_idx := NULL; -- 4262811
26207 l_acc_rev_flag := NULL; -- 4262811
26208 l_accrual_line_num := NULL; -- 4262811
26209 l_tmp_amt := NULL; -- 4262811
26210 --
26211
26212 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26216 XLA_AE_LINES_PKG.SetNewLine;
26213 l_balance_type_code <> 'B' THEN
26214
26215 --
26217
26218 p_balance_type_code := l_balance_type_code;
26219 -- set the flag so later we will know whether the gain loss line needs to be created
26220
26221 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26222 p_actual_flag :='A';
26223 END IF;
26224
26225 --
26226 -- bulk performance
26227 --
26228 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26229 p_header_num => 0); -- 4262811
26230 --
26231 -- set accounting line options
26232 --
26233 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26234 p_natural_side_code => 'C'
26235 , p_gain_or_loss_flag => 'N'
26236 , p_gl_transfer_mode_code => 'S'
26237 , p_acct_entry_type_code => 'A'
26238 , p_switch_side_flag => 'Y'
26239 , p_merge_duplicate_code => 'N'
26240 );
26241 --
26242 l_acc_rev_natural_side_code := 'D'; -- 4262811
26243 --
26244 --
26245 -- set accounting line type info
26246 --
26247 xla_ae_lines_pkg.SetAcctLineType
26248 (p_component_type => l_component_type
26249 ,p_event_type_code => l_event_type_code
26250 ,p_line_definition_owner_code => l_line_definition_owner_code
26251 ,p_line_definition_code => l_line_definition_code
26252 ,p_accounting_line_code => l_component_code
26253 ,p_accounting_line_type_code => l_component_type_code
26254 ,p_accounting_line_appl_id => l_component_appl_id
26255 ,p_amb_context_code => l_amb_context_code
26256 ,p_entity_code => l_entity_code
26257 ,p_event_class_code => l_event_class_code);
26258 --
26259 -- set accounting class
26260 --
26261 xla_ae_lines_pkg.SetAcctClass(
26262 p_accounting_class_code => 'COST_CLEARING'
26263 , p_ae_header_id => l_ae_header_id
26264 );
26265
26266 --
26267 -- set rounding class
26268 --
26269 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26270 'COST_CLEARING';
26271
26272 --
26273 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26274 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26275 --
26276 -- bulk performance
26277 --
26278 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26279
26280 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26281 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26282
26283 -- 4955764
26284 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26285 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26286
26287 -- 4458381 Public Sector Enh
26288
26289 --
26290 -- set accounting attributes for the line type
26291 --
26292 l_entered_amt_idx := 22;
26293 l_accted_amt_idx := 27;
26294 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26295 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26296 l_rec_acct_attrs.array_char_value(1) := p_source_22;
26297 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
26298 l_rec_acct_attrs.array_char_value(2) := p_source_23;
26299 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
26300 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
26301 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
26302 l_rec_acct_attrs.array_num_value(4) := p_source_24;
26303 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
26304 l_rec_acct_attrs.array_char_value(5) := p_source_25;
26305 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
26306 l_rec_acct_attrs.array_num_value(6) := p_source_26;
26307 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
26308 l_rec_acct_attrs.array_date_value(7) := p_source_27;
26309 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
26310 l_rec_acct_attrs.array_num_value(8) := p_source_28;
26311 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
26312 l_rec_acct_attrs.array_char_value(9) := p_source_29;
26313 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
26314 l_rec_acct_attrs.array_char_value(10) := p_source_30;
26315 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
26316 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
26317 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
26318 l_rec_acct_attrs.array_num_value(12) := p_source_24;
26319 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
26320 l_rec_acct_attrs.array_char_value(13) := p_source_25;
26321 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
26322 l_rec_acct_attrs.array_num_value(14) := p_source_26;
26323 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
26327 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
26324 l_rec_acct_attrs.array_date_value(15) := p_source_27;
26325 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
26326 l_rec_acct_attrs.array_num_value(16) := p_source_28;
26328 l_rec_acct_attrs.array_char_value(17) := p_source_29;
26329 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
26330 l_rec_acct_attrs.array_char_value(18) := p_source_31;
26331 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
26332 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
26333 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
26334 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
26335 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
26336 l_rec_acct_attrs.array_char_value(21) := p_source_34;
26337 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
26338 l_rec_acct_attrs.array_num_value(22) := p_source_24;
26339 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
26340 l_rec_acct_attrs.array_char_value(23) := p_source_25;
26341 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
26342 l_rec_acct_attrs.array_date_value(24) := p_source_27;
26343 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
26344 l_rec_acct_attrs.array_num_value(25) := p_source_28;
26345 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
26346 l_rec_acct_attrs.array_char_value(26) := p_source_29;
26347 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
26348 l_rec_acct_attrs.array_num_value(27) := p_source_26;
26349 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
26350 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
26351 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
26352 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
26353 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
26354 l_rec_acct_attrs.array_char_value(30) := p_source_34;
26355
26356 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26357 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26358
26359 ---------------------------------------------------------------------------------------------------------------
26360 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26361 ---------------------------------------------------------------------------------------------------------------
26362 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26363
26364 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26365 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26366
26367 IF xla_accounting_cache_pkg.GetValueChar
26368 (p_source_code => 'LEDGER_CATEGORY_CODE'
26369 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26370 AND l_bflow_method_code = 'PRIOR_ENTRY'
26371 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26372 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26373 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26374 )
26375 THEN
26376 xla_ae_lines_pkg.BflowUpgEntry
26377 (p_business_method_code => l_bflow_method_code
26378 ,p_business_class_code => l_bflow_class_code
26379 ,p_balance_type => l_balance_type_code);
26380 ELSE
26381 NULL;
26382 -- No business flow processing for business flow method of NONE.
26383 END IF;
26384
26385 --
26386 -- call analytical criteria
26387 --
26388
26389 --
26390 -- call description
26391 --
26392 -- No description or it is inherited.
26393 --
26394 -- call ADRs
26395 -- Bug 4922099
26396 --
26397 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26398 (NVL(l_actual_upg_option, 'N') = 'O') OR
26399 (NVL(l_enc_upg_option, 'N') = 'O')
26400 )
26401 THEN
26402 NULL;
26403 --
26404 --
26405
26406 l_ccid := AcctDerRule_6(
26407 p_application_id => p_application_id
26408 , p_ae_header_id => l_ae_header_id
26409 , p_source_4 => p_source_4
26410 , p_source_7 => p_source_7
26411 , x_transaction_coa_id => l_adr_transaction_coa_id
26412 , x_accounting_coa_id => l_adr_accounting_coa_id
26413 , x_value_type_code => l_adr_value_type_code
26414 , p_side => 'NA'
26415 );
26416
26417 xla_ae_lines_pkg.set_ccid(
26418 p_code_combination_id => l_ccid
26419 , p_value_type_code => l_adr_value_type_code
26420 , p_transaction_coa_id => l_adr_transaction_coa_id
26421 , p_accounting_coa_id => l_adr_accounting_coa_id
26422 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
26423 , p_adr_type_code => 'S'
26424 , p_component_type => l_component_type
26425 , p_component_code => l_component_code
26426 , p_component_type_code => l_component_type_code
26430 );
26427 , p_component_appl_id => l_component_appl_id
26428 , p_amb_context_code => l_amb_context_code
26429 , p_side => 'NA'
26431
26432
26433 --
26434 --
26435 END IF;
26436 --
26437 -- Bug 4922099
26438 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
26439 (NVL(l_enc_upg_option, 'N') = 'O')
26440 ) AND
26441 (l_bflow_method_code = 'PRIOR_ENTRY')
26442 )
26443 THEN
26444 IF
26445 --
26446 1 = 2
26447 --
26448 THEN
26449 xla_accounting_err_pkg.build_message
26450 (p_appli_s_name => 'XLA'
26451 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26452 ,p_token_1 => 'LINE_NUMBER'
26453 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
26454 ,p_token_2 => 'LINE_TYPE_NAME'
26455 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
26456 l_component_type
26457 ,l_component_code
26458 ,l_component_type_code
26459 ,l_component_appl_id
26460 ,l_amb_context_code
26461 ,l_entity_code
26462 ,l_event_class_code
26463 )
26464 ,p_token_3 => 'OWNER'
26465 ,p_value_3 => xla_lookups_pkg.get_meaning(
26466 p_lookup_type => 'XLA_OWNER_TYPE'
26467 ,p_lookup_code => l_component_type_code
26468 )
26469 ,p_token_4 => 'PRODUCT_NAME'
26470 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
26471 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
26472 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
26473 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
26474 ,p_ae_header_id => NULL
26475 );
26476
26477 IF (C_LEVEL_ERROR>= g_log_level) THEN
26478 trace
26479 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
26480 ,p_level => C_LEVEL_ERROR
26481 ,p_module => l_log_module);
26482 END IF;
26483 END IF;
26484 END IF;
26485 --
26486 --
26487 ------------------------------------------------------------------------------------------------
26488 -- 4219869 Business Flow
26489 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
26490 -- Prior Entry. Currently, the following code is always generated.
26491 ------------------------------------------------------------------------------------------------
26492 XLA_AE_LINES_PKG.ValidateCurrentLine;
26493
26494 ------------------------------------------------------------------------------------
26495 -- 4219869 Business Flow
26496 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
26497 ------------------------------------------------------------------------------------
26498 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26499
26500 ----------------------------------------------------------------------------------
26501 -- 4219869 Business Flow
26502 -- Update journal entry status -- Need to generate this within IF <condition>
26503 ----------------------------------------------------------------------------------
26504 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26505 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
26506 ,p_balance_type_code => l_balance_type_code
26507 );
26508
26509 -------------------------------------------------------------------------------------------
26510 -- 4262811 - Generate the Accrual Reversal lines
26511 -------------------------------------------------------------------------------------------
26512 BEGIN
26513 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
26514 (g_array_event(p_event_id).array_value_num('header_index'));
26515 IF l_acc_rev_flag IS NULL THEN
26516 l_acc_rev_flag := 'N';
26517 END IF;
26518 EXCEPTION
26519 WHEN OTHERS THEN
26520 l_acc_rev_flag := 'N';
26521 END;
26522 --
26523 IF (l_acc_rev_flag = 'Y') THEN
26524
26525 -- 4645092 ------------------------------------------------------------------------------
26529
26526 -- To allow MPA report to determine if it should generate report process
26527 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
26528 ------------------------------------------------------------------------------------------
26530 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
26531 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
26532
26533 --
26534 -- Update the line information that should be overwritten
26535 --
26536 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
26537 p_header_num => 1);
26538 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
26539
26540 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
26541
26542 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
26543 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
26544 END IF;
26545
26546 --
26547 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
26548 --
26549 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
26550 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
26551 ELSE
26552 ---------------------------------------------------------------------------------------------------
26553 -- 4262811a Switch Sign
26554 ---------------------------------------------------------------------------------------------------
26555 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
26556 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26557 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26558 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
26559 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26560 -- 5132302
26561 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
26562 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
26563
26564 END IF;
26565
26566 -- 4955764
26567 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26568 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
26569
26570
26571 XLA_AE_LINES_PKG.ValidateCurrentLine;
26572 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
26573
26574 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
26575 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
26576 ,p_balance_type_code => l_balance_type_code);
26577
26578 END IF;
26579
26580 -----------------------------------------------------------------------------------------
26581 -- 4262811 Multiperiod Accounting
26582 -----------------------------------------------------------------------------------------
26583 -- No MPA option is assigned.
26584
26585
26586 END IF;
26587 --
26588
26589 --
26590 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26591 trace
26592 (p_msg => 'END of AcctLineType_61'
26593 ,p_level => C_LEVEL_PROCEDURE
26594 ,p_module => l_log_module);
26595 END IF;
26596 --
26597 EXCEPTION
26598 WHEN xla_exceptions_pkg.application_exception THEN
26599 RAISE;
26600 WHEN OTHERS THEN
26601 xla_exceptions_pkg.raise_message
26602 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_61');
26603 END AcctLineType_61;
26604 --
26605
26606 ---------------------------------------
26607 --
26608 -- PRIVATE FUNCTION
26609 -- AcctLineType_62
26610 --
26611 ---------------------------------------
26612 PROCEDURE AcctLineType_62 (
26613 p_application_id IN NUMBER
26614 ,p_event_id IN NUMBER
26615 ,p_calculate_acctd_flag IN VARCHAR2
26616 ,p_calculate_g_l_flag IN VARCHAR2
26617 ,p_actual_flag IN OUT VARCHAR2
26618 ,p_balance_type_code OUT VARCHAR2
26619 ,p_gain_or_loss_ref OUT VARCHAR2
26620
26621 --Cost CCID
26622 , p_source_3 IN NUMBER
26623 --Allow Account Override Flag
26624 , p_source_4 IN VARCHAR2
26625 --Cost Clearing CCID
26626 , p_source_6 IN NUMBER
26627 --Adjustment Cost Clearing CCID
26628 , p_source_7 IN NUMBER
26629 --Reversing Line Flag
26630 , p_source_22 IN VARCHAR2
26631 --Actual Upgrade Credit Accounting Class
26632 , p_source_23 IN VARCHAR2
26633 --Entered Raw Cost
26634 , p_source_24 IN NUMBER
26635 --Entered Currency Code
26636 , p_source_25 IN VARCHAR2
26637 --Accounted Raw Cost
26638 , p_source_26 IN NUMBER
26639 --Exchange Rate Date
26640 , p_source_27 IN DATE
26641 --Exchange Rate
26642 , p_source_28 IN NUMBER
26643 --Exchange Rate Type
26644 , p_source_29 IN VARCHAR2
26645 --Actual Upgrade Debit Accounting Class
26646 , p_source_30 IN VARCHAR2
26647 --Use Actuals Upgrade Attributes Flag
26648 , p_source_31 IN VARCHAR2
26649 --Expenditure Item ID
26653 --Line Type
26650 , p_source_32 IN NUMBER
26651 --Cost Distribution Line Number
26652 , p_source_33 IN NUMBER
26654 , p_source_34 IN VARCHAR2
26655 , p_source_34_meaning IN VARCHAR2
26656 --Reversed Line Number
26657 , p_source_35 IN NUMBER
26658 )
26659 IS
26660
26661 l_component_type VARCHAR2(80);
26662 l_component_code VARCHAR2(30);
26663 l_component_type_code VARCHAR2(1);
26664 l_component_appl_id INTEGER;
26665 l_amb_context_code VARCHAR2(30);
26666 l_entity_code VARCHAR2(30);
26667 l_event_class_code VARCHAR2(30);
26668 l_ae_header_id NUMBER;
26669 l_event_type_code VARCHAR2(30);
26670 l_line_definition_code VARCHAR2(30);
26671 l_line_definition_owner_code VARCHAR2(1);
26672 --
26673 -- adr variables
26674 l_segment VARCHAR2(30);
26675 l_ccid NUMBER;
26676 l_adr_transaction_coa_id NUMBER;
26677 l_adr_accounting_coa_id NUMBER;
26678 l_adr_flexfield_segment_code VARCHAR2(30);
26679 l_adr_flex_value_set_id NUMBER;
26680 l_adr_value_type_code VARCHAR2(30);
26681 l_adr_value_combination_id NUMBER;
26682 l_adr_value_segment_code VARCHAR2(30);
26683
26684 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
26685 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
26686 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
26687 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
26688
26689 -- 4262811 Variables ------------------------------------------------------------------------------------------
26690 l_entered_amt_idx NUMBER;
26691 l_accted_amt_idx NUMBER;
26692 l_acc_rev_flag VARCHAR2(1);
26693 l_accrual_line_num NUMBER;
26694 l_tmp_amt NUMBER;
26695 l_acc_rev_natural_side_code VARCHAR2(1);
26696
26697 l_num_entries NUMBER;
26698 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
26699 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
26700 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
26701 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
26702 l_recog_line_1 NUMBER;
26703 l_recog_line_2 NUMBER;
26704
26705 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
26706 l_bflow_applied_to_amt NUMBER; -- 5132302
26707 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
26708
26709 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
26710
26711 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
26712 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
26713
26714 ---------------------------------------------------------------------------------------------------------------
26715
26716
26717 --
26718 -- bulk performance
26719 --
26720 l_balance_type_code VARCHAR2(1);
26721 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
26722 l_log_module VARCHAR2(240);
26723
26724 --
26725 -- Upgrade strategy
26726 --
26727 l_actual_upg_option VARCHAR2(1);
26728 l_enc_upg_option VARCHAR2(1);
26729
26730 --
26731 BEGIN
26732 --
26733 IF g_log_enabled THEN
26734 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_62';
26735 END IF;
26736 --
26737 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
26738
26739 trace
26740 (p_msg => 'BEGIN of AcctLineType_62'
26741 ,p_level => C_LEVEL_PROCEDURE
26742 ,p_module => l_log_module);
26743
26744 END IF;
26745 --
26746 l_component_type := 'AMB_JLT';
26747 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
26748 l_component_type_code := 'S';
26749 l_component_appl_id := 275;
26750 l_amb_context_code := 'DEFAULT';
26751 l_entity_code := 'EXPENDITURES';
26752 l_event_class_code := 'WIP_COST_ADJ';
26753 l_event_type_code := 'WIP_COST_ADJ_ALL';
26754 l_line_definition_owner_code := 'S';
26755 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
26756 --
26757 l_balance_type_code := 'A';
26758 l_segment := NULL;
26759 l_ccid := NULL;
26760 l_adr_transaction_coa_id := NULL;
26761 l_adr_accounting_coa_id := NULL;
26762 l_adr_flexfield_segment_code := NULL;
26763 l_adr_flex_value_set_id := NULL;
26764 l_adr_value_type_code := NULL;
26765 l_adr_value_combination_id := NULL;
26766 l_adr_value_segment_code := NULL;
26767
26768 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
26769 l_bflow_class_code := ''; -- 4219869 Business Flow
26770 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
26771 l_budgetary_control_flag := 'N';
26772
26773 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26774 l_bflow_applied_to_amt := NULL; -- 5132302
26775 l_entered_amt_idx := NULL; -- 4262811
26779 l_tmp_amt := NULL; -- 4262811
26776 l_accted_amt_idx := NULL; -- 4262811
26777 l_acc_rev_flag := NULL; -- 4262811
26778 l_accrual_line_num := NULL; -- 4262811
26780 --
26781
26782 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
26783 l_balance_type_code <> 'B' THEN
26784
26785 --
26786 XLA_AE_LINES_PKG.SetNewLine;
26787
26788 p_balance_type_code := l_balance_type_code;
26789 -- set the flag so later we will know whether the gain loss line needs to be created
26790
26791 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
26792 p_actual_flag :='A';
26793 END IF;
26794
26795 --
26796 -- bulk performance
26797 --
26798 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
26799 p_header_num => 0); -- 4262811
26800 --
26801 -- set accounting line options
26802 --
26803 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
26804 p_natural_side_code => 'C'
26805 , p_gain_or_loss_flag => 'N'
26806 , p_gl_transfer_mode_code => 'S'
26807 , p_acct_entry_type_code => 'A'
26808 , p_switch_side_flag => 'Y'
26809 , p_merge_duplicate_code => 'N'
26810 );
26811 --
26812 l_acc_rev_natural_side_code := 'D'; -- 4262811
26813 --
26814 --
26815 -- set accounting line type info
26816 --
26817 xla_ae_lines_pkg.SetAcctLineType
26818 (p_component_type => l_component_type
26819 ,p_event_type_code => l_event_type_code
26820 ,p_line_definition_owner_code => l_line_definition_owner_code
26821 ,p_line_definition_code => l_line_definition_code
26822 ,p_accounting_line_code => l_component_code
26823 ,p_accounting_line_type_code => l_component_type_code
26824 ,p_accounting_line_appl_id => l_component_appl_id
26825 ,p_amb_context_code => l_amb_context_code
26826 ,p_entity_code => l_entity_code
26827 ,p_event_class_code => l_event_class_code);
26828 --
26829 -- set accounting class
26830 --
26831 xla_ae_lines_pkg.SetAcctClass(
26832 p_accounting_class_code => 'COST_CLEARING'
26833 , p_ae_header_id => l_ae_header_id
26834 );
26835
26836 --
26837 -- set rounding class
26838 --
26839 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
26840 'COST_CLEARING';
26841
26842 --
26843 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
26844 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
26845 --
26846 -- bulk performance
26847 --
26848 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
26849
26850 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
26851 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
26852
26853 -- 4955764
26854 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
26855 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
26856
26857 -- 4458381 Public Sector Enh
26858
26859 --
26860 -- set accounting attributes for the line type
26861 --
26862 l_entered_amt_idx := 22;
26863 l_accted_amt_idx := 27;
26864 l_bflow_applied_to_amt_idx := NULL; -- 5132302
26865 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
26866 l_rec_acct_attrs.array_char_value(1) := p_source_22;
26867 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
26868 l_rec_acct_attrs.array_char_value(2) := p_source_23;
26869 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
26870 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
26871 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
26872 l_rec_acct_attrs.array_num_value(4) := p_source_24;
26873 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
26874 l_rec_acct_attrs.array_char_value(5) := p_source_25;
26875 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
26876 l_rec_acct_attrs.array_num_value(6) := p_source_26;
26877 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
26878 l_rec_acct_attrs.array_date_value(7) := p_source_27;
26879 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
26880 l_rec_acct_attrs.array_num_value(8) := p_source_28;
26881 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
26882 l_rec_acct_attrs.array_char_value(9) := p_source_29;
26883 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
26884 l_rec_acct_attrs.array_char_value(10) := p_source_30;
26885 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
26886 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
26887 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
26888 l_rec_acct_attrs.array_num_value(12) := p_source_24;
26889 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
26893 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
26890 l_rec_acct_attrs.array_char_value(13) := p_source_25;
26891 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
26892 l_rec_acct_attrs.array_num_value(14) := p_source_26;
26894 l_rec_acct_attrs.array_date_value(15) := p_source_27;
26895 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
26896 l_rec_acct_attrs.array_num_value(16) := p_source_28;
26897 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
26898 l_rec_acct_attrs.array_char_value(17) := p_source_29;
26899 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
26900 l_rec_acct_attrs.array_char_value(18) := p_source_31;
26901 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
26902 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
26903 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
26904 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
26905 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
26906 l_rec_acct_attrs.array_char_value(21) := p_source_34;
26907 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
26908 l_rec_acct_attrs.array_num_value(22) := p_source_24;
26909 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
26910 l_rec_acct_attrs.array_char_value(23) := p_source_25;
26911 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
26912 l_rec_acct_attrs.array_date_value(24) := p_source_27;
26913 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
26914 l_rec_acct_attrs.array_num_value(25) := p_source_28;
26915 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
26916 l_rec_acct_attrs.array_char_value(26) := p_source_29;
26917 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
26918 l_rec_acct_attrs.array_num_value(27) := p_source_26;
26919 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
26920 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
26921 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
26922 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
26923 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
26924 l_rec_acct_attrs.array_char_value(30) := p_source_34;
26925
26926 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
26927 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
26928
26929 ---------------------------------------------------------------------------------------------------------------
26930 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
26931 ---------------------------------------------------------------------------------------------------------------
26932 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
26933
26934 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26935 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
26936
26937 IF xla_accounting_cache_pkg.GetValueChar
26938 (p_source_code => 'LEDGER_CATEGORY_CODE'
26939 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
26940 AND l_bflow_method_code = 'PRIOR_ENTRY'
26941 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
26942 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
26943 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
26944 )
26945 THEN
26946 xla_ae_lines_pkg.BflowUpgEntry
26947 (p_business_method_code => l_bflow_method_code
26948 ,p_business_class_code => l_bflow_class_code
26949 ,p_balance_type => l_balance_type_code);
26950 ELSE
26951 NULL;
26952 -- No business flow processing for business flow method of NONE.
26953 END IF;
26954
26955 --
26956 -- call analytical criteria
26957 --
26958
26959 --
26960 -- call description
26961 --
26962 -- No description or it is inherited.
26963 --
26964 -- call ADRs
26965 -- Bug 4922099
26966 --
26967 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
26968 (NVL(l_actual_upg_option, 'N') = 'O') OR
26969 (NVL(l_enc_upg_option, 'N') = 'O')
26970 )
26971 THEN
26972 NULL;
26973 --
26974 --
26975
26976 l_ccid := AcctDerRule_6(
26977 p_application_id => p_application_id
26978 , p_ae_header_id => l_ae_header_id
26979 , p_source_4 => p_source_4
26980 , p_source_7 => p_source_7
26981 , x_transaction_coa_id => l_adr_transaction_coa_id
26982 , x_accounting_coa_id => l_adr_accounting_coa_id
26983 , x_value_type_code => l_adr_value_type_code
26984 , p_side => 'NA'
26985 );
26986
26987 xla_ae_lines_pkg.set_ccid(
26988 p_code_combination_id => l_ccid
26989 , p_value_type_code => l_adr_value_type_code
26990 , p_transaction_coa_id => l_adr_transaction_coa_id
26991 , p_accounting_coa_id => l_adr_accounting_coa_id
26995 , p_component_code => l_component_code
26992 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
26993 , p_adr_type_code => 'S'
26994 , p_component_type => l_component_type
26996 , p_component_type_code => l_component_type_code
26997 , p_component_appl_id => l_component_appl_id
26998 , p_amb_context_code => l_amb_context_code
26999 , p_side => 'NA'
27000 );
27001
27002
27003 --
27004 --
27005 END IF;
27006 --
27007 -- Bug 4922099
27008 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27009 (NVL(l_enc_upg_option, 'N') = 'O')
27010 ) AND
27011 (l_bflow_method_code = 'PRIOR_ENTRY')
27012 )
27013 THEN
27014 IF
27015 --
27016 1 = 2
27017 --
27018 THEN
27019 xla_accounting_err_pkg.build_message
27020 (p_appli_s_name => 'XLA'
27021 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27022 ,p_token_1 => 'LINE_NUMBER'
27023 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27024 ,p_token_2 => 'LINE_TYPE_NAME'
27025 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27026 l_component_type
27027 ,l_component_code
27028 ,l_component_type_code
27029 ,l_component_appl_id
27030 ,l_amb_context_code
27031 ,l_entity_code
27032 ,l_event_class_code
27033 )
27034 ,p_token_3 => 'OWNER'
27035 ,p_value_3 => xla_lookups_pkg.get_meaning(
27036 p_lookup_type => 'XLA_OWNER_TYPE'
27037 ,p_lookup_code => l_component_type_code
27038 )
27039 ,p_token_4 => 'PRODUCT_NAME'
27040 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27041 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27042 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27043 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27044 ,p_ae_header_id => NULL
27045 );
27046
27047 IF (C_LEVEL_ERROR>= g_log_level) THEN
27048 trace
27049 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27050 ,p_level => C_LEVEL_ERROR
27051 ,p_module => l_log_module);
27052 END IF;
27053 END IF;
27054 END IF;
27055 --
27056 --
27057 ------------------------------------------------------------------------------------------------
27058 -- 4219869 Business Flow
27059 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27060 -- Prior Entry. Currently, the following code is always generated.
27061 ------------------------------------------------------------------------------------------------
27062 XLA_AE_LINES_PKG.ValidateCurrentLine;
27063
27064 ------------------------------------------------------------------------------------
27065 -- 4219869 Business Flow
27066 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27067 ------------------------------------------------------------------------------------
27068 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27069
27070 ----------------------------------------------------------------------------------
27071 -- 4219869 Business Flow
27072 -- Update journal entry status -- Need to generate this within IF <condition>
27073 ----------------------------------------------------------------------------------
27074 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27075 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27076 ,p_balance_type_code => l_balance_type_code
27077 );
27078
27079 -------------------------------------------------------------------------------------------
27080 -- 4262811 - Generate the Accrual Reversal lines
27081 -------------------------------------------------------------------------------------------
27082 BEGIN
27083 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27084 (g_array_event(p_event_id).array_value_num('header_index'));
27085 IF l_acc_rev_flag IS NULL THEN
27086 l_acc_rev_flag := 'N';
27087 END IF;
27091 END;
27088 EXCEPTION
27089 WHEN OTHERS THEN
27090 l_acc_rev_flag := 'N';
27092 --
27093 IF (l_acc_rev_flag = 'Y') THEN
27094
27095 -- 4645092 ------------------------------------------------------------------------------
27096 -- To allow MPA report to determine if it should generate report process
27097 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27098 ------------------------------------------------------------------------------------------
27099
27100 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27101 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27102
27103 --
27104 -- Update the line information that should be overwritten
27105 --
27106 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27107 p_header_num => 1);
27108 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27109
27110 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27111
27112 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27113 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27114 END IF;
27115
27116 --
27117 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27118 --
27119 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27120 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27121 ELSE
27122 ---------------------------------------------------------------------------------------------------
27123 -- 4262811a Switch Sign
27124 ---------------------------------------------------------------------------------------------------
27125 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27126 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27127 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27128 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27129 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27130 -- 5132302
27131 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27132 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27133
27134 END IF;
27135
27136 -- 4955764
27137 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27138 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27139
27140
27141 XLA_AE_LINES_PKG.ValidateCurrentLine;
27142 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27143
27144 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27145 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27146 ,p_balance_type_code => l_balance_type_code);
27147
27148 END IF;
27149
27150 -----------------------------------------------------------------------------------------
27151 -- 4262811 Multiperiod Accounting
27152 -----------------------------------------------------------------------------------------
27153 -- No MPA option is assigned.
27154
27155
27156 END IF;
27157 --
27158
27159 --
27160 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27161 trace
27162 (p_msg => 'END of AcctLineType_62'
27163 ,p_level => C_LEVEL_PROCEDURE
27164 ,p_module => l_log_module);
27165 END IF;
27166 --
27167 EXCEPTION
27168 WHEN xla_exceptions_pkg.application_exception THEN
27169 RAISE;
27170 WHEN OTHERS THEN
27171 xla_exceptions_pkg.raise_message
27172 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_62');
27173 END AcctLineType_62;
27174 --
27175
27176 ---------------------------------------
27177 --
27178 -- PRIVATE FUNCTION
27179 -- AcctLineType_63
27180 --
27181 ---------------------------------------
27182 PROCEDURE AcctLineType_63 (
27183 p_application_id IN NUMBER
27184 ,p_event_id IN NUMBER
27185 ,p_calculate_acctd_flag IN VARCHAR2
27186 ,p_calculate_g_l_flag IN VARCHAR2
27187 ,p_actual_flag IN OUT VARCHAR2
27188 ,p_balance_type_code OUT VARCHAR2
27189 ,p_gain_or_loss_ref OUT VARCHAR2
27190
27191 --Cost CCID
27192 , p_source_3 IN NUMBER
27193 --Allow Account Override Flag
27194 , p_source_4 IN VARCHAR2
27195 --Cost Clearing CCID
27196 , p_source_6 IN NUMBER
27197 --Adjustment Cost Clearing CCID
27198 , p_source_7 IN NUMBER
27199 --Reversing Line Flag
27200 , p_source_22 IN VARCHAR2
27201 --Actual Upgrade Credit Accounting Class
27202 , p_source_23 IN VARCHAR2
27203 --Entered Raw Cost
27204 , p_source_24 IN NUMBER
27205 --Entered Currency Code
27206 , p_source_25 IN VARCHAR2
27207 --Accounted Raw Cost
27208 , p_source_26 IN NUMBER
27209 --Exchange Rate Date
27213 --Exchange Rate Type
27210 , p_source_27 IN DATE
27211 --Exchange Rate
27212 , p_source_28 IN NUMBER
27214 , p_source_29 IN VARCHAR2
27215 --Actual Upgrade Debit Accounting Class
27216 , p_source_30 IN VARCHAR2
27217 --Use Actuals Upgrade Attributes Flag
27218 , p_source_31 IN VARCHAR2
27219 --Expenditure Item ID
27220 , p_source_32 IN NUMBER
27221 --Cost Distribution Line Number
27222 , p_source_33 IN NUMBER
27223 --Line Type
27224 , p_source_34 IN VARCHAR2
27225 , p_source_34_meaning IN VARCHAR2
27226 --Reversed Line Number
27227 , p_source_35 IN NUMBER
27228 )
27229 IS
27230
27231 l_component_type VARCHAR2(80);
27232 l_component_code VARCHAR2(30);
27233 l_component_type_code VARCHAR2(1);
27234 l_component_appl_id INTEGER;
27235 l_amb_context_code VARCHAR2(30);
27236 l_entity_code VARCHAR2(30);
27237 l_event_class_code VARCHAR2(30);
27238 l_ae_header_id NUMBER;
27239 l_event_type_code VARCHAR2(30);
27240 l_line_definition_code VARCHAR2(30);
27241 l_line_definition_owner_code VARCHAR2(1);
27242 --
27243 -- adr variables
27244 l_segment VARCHAR2(30);
27245 l_ccid NUMBER;
27246 l_adr_transaction_coa_id NUMBER;
27247 l_adr_accounting_coa_id NUMBER;
27248 l_adr_flexfield_segment_code VARCHAR2(30);
27249 l_adr_flex_value_set_id NUMBER;
27250 l_adr_value_type_code VARCHAR2(30);
27251 l_adr_value_combination_id NUMBER;
27252 l_adr_value_segment_code VARCHAR2(30);
27253
27254 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27255 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27256 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27257 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27258
27259 -- 4262811 Variables ------------------------------------------------------------------------------------------
27260 l_entered_amt_idx NUMBER;
27261 l_accted_amt_idx NUMBER;
27262 l_acc_rev_flag VARCHAR2(1);
27263 l_accrual_line_num NUMBER;
27264 l_tmp_amt NUMBER;
27265 l_acc_rev_natural_side_code VARCHAR2(1);
27266
27267 l_num_entries NUMBER;
27268 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27269 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27270 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27271 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27272 l_recog_line_1 NUMBER;
27273 l_recog_line_2 NUMBER;
27274
27275 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27276 l_bflow_applied_to_amt NUMBER; -- 5132302
27277 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27278
27279 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27280
27281 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27282 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27283
27284 ---------------------------------------------------------------------------------------------------------------
27285
27286
27287 --
27288 -- bulk performance
27289 --
27290 l_balance_type_code VARCHAR2(1);
27291 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27292 l_log_module VARCHAR2(240);
27293
27294 --
27295 -- Upgrade strategy
27296 --
27297 l_actual_upg_option VARCHAR2(1);
27298 l_enc_upg_option VARCHAR2(1);
27299
27300 --
27301 BEGIN
27302 --
27303 IF g_log_enabled THEN
27304 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_63';
27305 END IF;
27306 --
27307 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27308
27309 trace
27310 (p_msg => 'BEGIN of AcctLineType_63'
27311 ,p_level => C_LEVEL_PROCEDURE
27312 ,p_module => l_log_module);
27313
27314 END IF;
27315 --
27316 l_component_type := 'AMB_JLT';
27317 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
27318 l_component_type_code := 'S';
27319 l_component_appl_id := 275;
27320 l_amb_context_code := 'DEFAULT';
27321 l_entity_code := 'EXPENDITURES';
27322 l_event_class_code := 'USG_COST_ADJ';
27323 l_event_type_code := 'USG_COST_ADJ_ALL';
27324 l_line_definition_owner_code := 'S';
27325 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
27326 --
27327 l_balance_type_code := 'A';
27328 l_segment := NULL;
27329 l_ccid := NULL;
27330 l_adr_transaction_coa_id := NULL;
27331 l_adr_accounting_coa_id := NULL;
27332 l_adr_flexfield_segment_code := NULL;
27333 l_adr_flex_value_set_id := NULL;
27334 l_adr_value_type_code := NULL;
27335 l_adr_value_combination_id := NULL;
27336 l_adr_value_segment_code := NULL;
27337
27338 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27339 l_bflow_class_code := ''; -- 4219869 Business Flow
27343 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27340 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27341 l_budgetary_control_flag := 'N';
27342
27344 l_bflow_applied_to_amt := NULL; -- 5132302
27345 l_entered_amt_idx := NULL; -- 4262811
27346 l_accted_amt_idx := NULL; -- 4262811
27347 l_acc_rev_flag := NULL; -- 4262811
27348 l_accrual_line_num := NULL; -- 4262811
27349 l_tmp_amt := NULL; -- 4262811
27350 --
27351
27352 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27353 l_balance_type_code <> 'B' THEN
27354
27355 --
27356 XLA_AE_LINES_PKG.SetNewLine;
27357
27358 p_balance_type_code := l_balance_type_code;
27359 -- set the flag so later we will know whether the gain loss line needs to be created
27360
27361 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27362 p_actual_flag :='A';
27363 END IF;
27364
27365 --
27366 -- bulk performance
27367 --
27368 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27369 p_header_num => 0); -- 4262811
27370 --
27371 -- set accounting line options
27372 --
27373 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27374 p_natural_side_code => 'C'
27375 , p_gain_or_loss_flag => 'N'
27376 , p_gl_transfer_mode_code => 'S'
27377 , p_acct_entry_type_code => 'A'
27378 , p_switch_side_flag => 'Y'
27379 , p_merge_duplicate_code => 'N'
27380 );
27381 --
27382 l_acc_rev_natural_side_code := 'D'; -- 4262811
27383 --
27384 --
27385 -- set accounting line type info
27386 --
27387 xla_ae_lines_pkg.SetAcctLineType
27388 (p_component_type => l_component_type
27389 ,p_event_type_code => l_event_type_code
27390 ,p_line_definition_owner_code => l_line_definition_owner_code
27391 ,p_line_definition_code => l_line_definition_code
27392 ,p_accounting_line_code => l_component_code
27393 ,p_accounting_line_type_code => l_component_type_code
27394 ,p_accounting_line_appl_id => l_component_appl_id
27395 ,p_amb_context_code => l_amb_context_code
27396 ,p_entity_code => l_entity_code
27397 ,p_event_class_code => l_event_class_code);
27398 --
27399 -- set accounting class
27400 --
27401 xla_ae_lines_pkg.SetAcctClass(
27402 p_accounting_class_code => 'COST_CLEARING'
27403 , p_ae_header_id => l_ae_header_id
27404 );
27405
27406 --
27407 -- set rounding class
27408 --
27409 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27410 'COST_CLEARING';
27411
27412 --
27413 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27414 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27415 --
27416 -- bulk performance
27417 --
27418 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27419
27420 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27421 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27422
27423 -- 4955764
27424 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27425 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27426
27427 -- 4458381 Public Sector Enh
27428
27429 --
27430 -- set accounting attributes for the line type
27431 --
27432 l_entered_amt_idx := 22;
27433 l_accted_amt_idx := 27;
27434 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27435 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
27436 l_rec_acct_attrs.array_char_value(1) := p_source_22;
27437 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
27438 l_rec_acct_attrs.array_char_value(2) := p_source_23;
27439 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
27440 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
27441 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
27442 l_rec_acct_attrs.array_num_value(4) := p_source_24;
27443 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
27444 l_rec_acct_attrs.array_char_value(5) := p_source_25;
27445 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
27446 l_rec_acct_attrs.array_num_value(6) := p_source_26;
27447 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
27448 l_rec_acct_attrs.array_date_value(7) := p_source_27;
27449 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
27450 l_rec_acct_attrs.array_num_value(8) := p_source_28;
27451 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
27452 l_rec_acct_attrs.array_char_value(9) := p_source_29;
27453 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
27457 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
27454 l_rec_acct_attrs.array_char_value(10) := p_source_30;
27455 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
27456 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
27458 l_rec_acct_attrs.array_num_value(12) := p_source_24;
27459 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
27460 l_rec_acct_attrs.array_char_value(13) := p_source_25;
27461 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
27462 l_rec_acct_attrs.array_num_value(14) := p_source_26;
27463 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
27464 l_rec_acct_attrs.array_date_value(15) := p_source_27;
27465 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
27466 l_rec_acct_attrs.array_num_value(16) := p_source_28;
27467 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
27468 l_rec_acct_attrs.array_char_value(17) := p_source_29;
27469 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
27470 l_rec_acct_attrs.array_char_value(18) := p_source_31;
27471 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
27472 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
27473 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
27474 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
27475 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
27476 l_rec_acct_attrs.array_char_value(21) := p_source_34;
27477 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
27478 l_rec_acct_attrs.array_num_value(22) := p_source_24;
27479 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
27480 l_rec_acct_attrs.array_char_value(23) := p_source_25;
27481 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
27482 l_rec_acct_attrs.array_date_value(24) := p_source_27;
27483 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
27484 l_rec_acct_attrs.array_num_value(25) := p_source_28;
27485 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
27486 l_rec_acct_attrs.array_char_value(26) := p_source_29;
27487 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
27488 l_rec_acct_attrs.array_num_value(27) := p_source_26;
27489 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
27490 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
27491 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
27492 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
27493 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
27494 l_rec_acct_attrs.array_char_value(30) := p_source_34;
27495
27496 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
27497 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
27498
27499 ---------------------------------------------------------------------------------------------------------------
27500 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
27501 ---------------------------------------------------------------------------------------------------------------
27502 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
27503
27504 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27505 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
27506
27507 IF xla_accounting_cache_pkg.GetValueChar
27508 (p_source_code => 'LEDGER_CATEGORY_CODE'
27509 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
27510 AND l_bflow_method_code = 'PRIOR_ENTRY'
27511 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
27512 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
27513 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
27514 )
27515 THEN
27516 xla_ae_lines_pkg.BflowUpgEntry
27517 (p_business_method_code => l_bflow_method_code
27518 ,p_business_class_code => l_bflow_class_code
27519 ,p_balance_type => l_balance_type_code);
27520 ELSE
27521 NULL;
27522 -- No business flow processing for business flow method of NONE.
27523 END IF;
27524
27525 --
27526 -- call analytical criteria
27527 --
27528
27529 --
27530 -- call description
27531 --
27532 -- No description or it is inherited.
27533 --
27534 -- call ADRs
27535 -- Bug 4922099
27536 --
27537 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
27538 (NVL(l_actual_upg_option, 'N') = 'O') OR
27539 (NVL(l_enc_upg_option, 'N') = 'O')
27540 )
27541 THEN
27542 NULL;
27543 --
27544 --
27545
27546 l_ccid := AcctDerRule_6(
27547 p_application_id => p_application_id
27548 , p_ae_header_id => l_ae_header_id
27549 , p_source_4 => p_source_4
27550 , p_source_7 => p_source_7
27551 , x_transaction_coa_id => l_adr_transaction_coa_id
27552 , x_accounting_coa_id => l_adr_accounting_coa_id
27553 , x_value_type_code => l_adr_value_type_code
27557 xla_ae_lines_pkg.set_ccid(
27554 , p_side => 'NA'
27555 );
27556
27558 p_code_combination_id => l_ccid
27559 , p_value_type_code => l_adr_value_type_code
27560 , p_transaction_coa_id => l_adr_transaction_coa_id
27561 , p_accounting_coa_id => l_adr_accounting_coa_id
27562 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
27563 , p_adr_type_code => 'S'
27564 , p_component_type => l_component_type
27565 , p_component_code => l_component_code
27566 , p_component_type_code => l_component_type_code
27567 , p_component_appl_id => l_component_appl_id
27568 , p_amb_context_code => l_amb_context_code
27569 , p_side => 'NA'
27570 );
27571
27572
27573 --
27574 --
27575 END IF;
27576 --
27577 -- Bug 4922099
27578 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
27579 (NVL(l_enc_upg_option, 'N') = 'O')
27580 ) AND
27581 (l_bflow_method_code = 'PRIOR_ENTRY')
27582 )
27583 THEN
27584 IF
27585 --
27586 1 = 2
27587 --
27588 THEN
27589 xla_accounting_err_pkg.build_message
27590 (p_appli_s_name => 'XLA'
27591 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27592 ,p_token_1 => 'LINE_NUMBER'
27593 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
27594 ,p_token_2 => 'LINE_TYPE_NAME'
27595 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
27596 l_component_type
27597 ,l_component_code
27598 ,l_component_type_code
27599 ,l_component_appl_id
27600 ,l_amb_context_code
27601 ,l_entity_code
27602 ,l_event_class_code
27603 )
27604 ,p_token_3 => 'OWNER'
27605 ,p_value_3 => xla_lookups_pkg.get_meaning(
27606 p_lookup_type => 'XLA_OWNER_TYPE'
27607 ,p_lookup_code => l_component_type_code
27608 )
27609 ,p_token_4 => 'PRODUCT_NAME'
27610 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
27611 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
27612 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
27613 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
27614 ,p_ae_header_id => NULL
27615 );
27616
27617 IF (C_LEVEL_ERROR>= g_log_level) THEN
27618 trace
27619 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
27620 ,p_level => C_LEVEL_ERROR
27621 ,p_module => l_log_module);
27622 END IF;
27623 END IF;
27624 END IF;
27625 --
27626 --
27627 ------------------------------------------------------------------------------------------------
27628 -- 4219869 Business Flow
27629 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
27630 -- Prior Entry. Currently, the following code is always generated.
27631 ------------------------------------------------------------------------------------------------
27632 XLA_AE_LINES_PKG.ValidateCurrentLine;
27633
27634 ------------------------------------------------------------------------------------
27635 -- 4219869 Business Flow
27636 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
27637 ------------------------------------------------------------------------------------
27638 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27639
27640 ----------------------------------------------------------------------------------
27641 -- 4219869 Business Flow
27642 -- Update journal entry status -- Need to generate this within IF <condition>
27643 ----------------------------------------------------------------------------------
27644 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27645 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
27646 ,p_balance_type_code => l_balance_type_code
27647 );
27648
27649 -------------------------------------------------------------------------------------------
27650 -- 4262811 - Generate the Accrual Reversal lines
27651 -------------------------------------------------------------------------------------------
27652 BEGIN
27656 l_acc_rev_flag := 'N';
27653 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
27654 (g_array_event(p_event_id).array_value_num('header_index'));
27655 IF l_acc_rev_flag IS NULL THEN
27657 END IF;
27658 EXCEPTION
27659 WHEN OTHERS THEN
27660 l_acc_rev_flag := 'N';
27661 END;
27662 --
27663 IF (l_acc_rev_flag = 'Y') THEN
27664
27665 -- 4645092 ------------------------------------------------------------------------------
27666 -- To allow MPA report to determine if it should generate report process
27667 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
27668 ------------------------------------------------------------------------------------------
27669
27670 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
27671 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
27672
27673 --
27674 -- Update the line information that should be overwritten
27675 --
27676 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
27677 p_header_num => 1);
27678 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
27679
27680 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
27681
27682 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
27683 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
27684 END IF;
27685
27686 --
27687 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
27688 --
27689 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
27690 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
27691 ELSE
27692 ---------------------------------------------------------------------------------------------------
27693 -- 4262811a Switch Sign
27694 ---------------------------------------------------------------------------------------------------
27695 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
27696 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27697 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27698 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
27699 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27700 -- 5132302
27701 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
27702 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
27703
27704 END IF;
27705
27706 -- 4955764
27707 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27708 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
27709
27710
27711 XLA_AE_LINES_PKG.ValidateCurrentLine;
27712 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
27713
27714 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
27715 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
27716 ,p_balance_type_code => l_balance_type_code);
27717
27718 END IF;
27719
27720 -----------------------------------------------------------------------------------------
27721 -- 4262811 Multiperiod Accounting
27722 -----------------------------------------------------------------------------------------
27723 -- No MPA option is assigned.
27724
27725
27726 END IF;
27727 --
27728
27729 --
27730 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27731 trace
27732 (p_msg => 'END of AcctLineType_63'
27733 ,p_level => C_LEVEL_PROCEDURE
27734 ,p_module => l_log_module);
27735 END IF;
27736 --
27737 EXCEPTION
27738 WHEN xla_exceptions_pkg.application_exception THEN
27739 RAISE;
27740 WHEN OTHERS THEN
27741 xla_exceptions_pkg.raise_message
27742 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_63');
27743 END AcctLineType_63;
27744 --
27745
27746 ---------------------------------------
27747 --
27748 -- PRIVATE FUNCTION
27749 -- AcctLineType_64
27750 --
27751 ---------------------------------------
27752 PROCEDURE AcctLineType_64 (
27753 p_application_id IN NUMBER
27754 ,p_event_id IN NUMBER
27755 ,p_calculate_acctd_flag IN VARCHAR2
27756 ,p_calculate_g_l_flag IN VARCHAR2
27757 ,p_actual_flag IN OUT VARCHAR2
27758 ,p_balance_type_code OUT VARCHAR2
27759 ,p_gain_or_loss_ref OUT VARCHAR2
27760
27761 --Cost CCID
27762 , p_source_3 IN NUMBER
27763 --Allow Account Override Flag
27764 , p_source_4 IN VARCHAR2
27765 --Cost Clearing CCID
27766 , p_source_6 IN NUMBER
27767 --Adjustment Cost Clearing CCID
27768 , p_source_7 IN NUMBER
27769 --Reversing Line Flag
27770 , p_source_22 IN VARCHAR2
27771 --Actual Upgrade Credit Accounting Class
27772 , p_source_23 IN VARCHAR2
27773 --Entered Raw Cost
27777 --Accounted Raw Cost
27774 , p_source_24 IN NUMBER
27775 --Entered Currency Code
27776 , p_source_25 IN VARCHAR2
27778 , p_source_26 IN NUMBER
27779 --Exchange Rate Date
27780 , p_source_27 IN DATE
27781 --Exchange Rate
27782 , p_source_28 IN NUMBER
27783 --Exchange Rate Type
27784 , p_source_29 IN VARCHAR2
27785 --Actual Upgrade Debit Accounting Class
27786 , p_source_30 IN VARCHAR2
27787 --Use Actuals Upgrade Attributes Flag
27788 , p_source_31 IN VARCHAR2
27789 --Expenditure Item ID
27790 , p_source_32 IN NUMBER
27791 --Cost Distribution Line Number
27792 , p_source_33 IN NUMBER
27793 --Line Type
27794 , p_source_34 IN VARCHAR2
27795 , p_source_34_meaning IN VARCHAR2
27796 --Reversed Line Number
27797 , p_source_35 IN NUMBER
27798 )
27799 IS
27800
27801 l_component_type VARCHAR2(80);
27802 l_component_code VARCHAR2(30);
27803 l_component_type_code VARCHAR2(1);
27804 l_component_appl_id INTEGER;
27805 l_amb_context_code VARCHAR2(30);
27806 l_entity_code VARCHAR2(30);
27807 l_event_class_code VARCHAR2(30);
27808 l_ae_header_id NUMBER;
27809 l_event_type_code VARCHAR2(30);
27810 l_line_definition_code VARCHAR2(30);
27811 l_line_definition_owner_code VARCHAR2(1);
27812 --
27813 -- adr variables
27814 l_segment VARCHAR2(30);
27815 l_ccid NUMBER;
27816 l_adr_transaction_coa_id NUMBER;
27817 l_adr_accounting_coa_id NUMBER;
27818 l_adr_flexfield_segment_code VARCHAR2(30);
27819 l_adr_flex_value_set_id NUMBER;
27820 l_adr_value_type_code VARCHAR2(30);
27821 l_adr_value_combination_id NUMBER;
27822 l_adr_value_segment_code VARCHAR2(30);
27823
27824 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
27825 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
27826 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
27827 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
27828
27829 -- 4262811 Variables ------------------------------------------------------------------------------------------
27830 l_entered_amt_idx NUMBER;
27831 l_accted_amt_idx NUMBER;
27832 l_acc_rev_flag VARCHAR2(1);
27833 l_accrual_line_num NUMBER;
27834 l_tmp_amt NUMBER;
27835 l_acc_rev_natural_side_code VARCHAR2(1);
27836
27837 l_num_entries NUMBER;
27838 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
27839 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
27840 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
27841 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
27842 l_recog_line_1 NUMBER;
27843 l_recog_line_2 NUMBER;
27844
27845 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
27846 l_bflow_applied_to_amt NUMBER; -- 5132302
27847 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
27848
27849 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
27850
27851 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
27852 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
27853
27854 ---------------------------------------------------------------------------------------------------------------
27855
27856
27857 --
27858 -- bulk performance
27859 --
27860 l_balance_type_code VARCHAR2(1);
27861 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
27862 l_log_module VARCHAR2(240);
27863
27864 --
27865 -- Upgrade strategy
27866 --
27867 l_actual_upg_option VARCHAR2(1);
27868 l_enc_upg_option VARCHAR2(1);
27869
27870 --
27871 BEGIN
27872 --
27873 IF g_log_enabled THEN
27874 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_64';
27875 END IF;
27876 --
27877 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
27878
27879 trace
27880 (p_msg => 'BEGIN of AcctLineType_64'
27881 ,p_level => C_LEVEL_PROCEDURE
27882 ,p_module => l_log_module);
27883
27884 END IF;
27885 --
27886 l_component_type := 'AMB_JLT';
27887 l_component_code := 'PA_RAW_COST_CLEARING_ADJ';
27888 l_component_type_code := 'S';
27889 l_component_appl_id := 275;
27890 l_amb_context_code := 'DEFAULT';
27891 l_entity_code := 'EXPENDITURES';
27892 l_event_class_code := 'INVENTORY_COST_ADJ';
27893 l_event_type_code := 'INVENTORY_COST_ADJ_ALL';
27894 l_line_definition_owner_code := 'S';
27895 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
27896 --
27897 l_balance_type_code := 'A';
27898 l_segment := NULL;
27899 l_ccid := NULL;
27900 l_adr_transaction_coa_id := NULL;
27901 l_adr_accounting_coa_id := NULL;
27902 l_adr_flexfield_segment_code := NULL;
27903 l_adr_flex_value_set_id := NULL;
27904 l_adr_value_type_code := NULL;
27905 l_adr_value_combination_id := NULL;
27906 l_adr_value_segment_code := NULL;
27910 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
27907
27908 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
27909 l_bflow_class_code := ''; -- 4219869 Business Flow
27911 l_budgetary_control_flag := 'N';
27912
27913 l_bflow_applied_to_amt_idx := NULL; -- 5132302
27914 l_bflow_applied_to_amt := NULL; -- 5132302
27915 l_entered_amt_idx := NULL; -- 4262811
27916 l_accted_amt_idx := NULL; -- 4262811
27917 l_acc_rev_flag := NULL; -- 4262811
27918 l_accrual_line_num := NULL; -- 4262811
27919 l_tmp_amt := NULL; -- 4262811
27920 --
27921
27922 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
27923 l_balance_type_code <> 'B' THEN
27924
27925 --
27926 XLA_AE_LINES_PKG.SetNewLine;
27927
27928 p_balance_type_code := l_balance_type_code;
27929 -- set the flag so later we will know whether the gain loss line needs to be created
27930
27931 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
27932 p_actual_flag :='A';
27933 END IF;
27934
27935 --
27936 -- bulk performance
27937 --
27938 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
27939 p_header_num => 0); -- 4262811
27940 --
27941 -- set accounting line options
27942 --
27943 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
27944 p_natural_side_code => 'C'
27945 , p_gain_or_loss_flag => 'N'
27946 , p_gl_transfer_mode_code => 'S'
27947 , p_acct_entry_type_code => 'A'
27948 , p_switch_side_flag => 'Y'
27949 , p_merge_duplicate_code => 'N'
27950 );
27951 --
27952 l_acc_rev_natural_side_code := 'D'; -- 4262811
27953 --
27954 --
27955 -- set accounting line type info
27956 --
27957 xla_ae_lines_pkg.SetAcctLineType
27958 (p_component_type => l_component_type
27959 ,p_event_type_code => l_event_type_code
27960 ,p_line_definition_owner_code => l_line_definition_owner_code
27961 ,p_line_definition_code => l_line_definition_code
27962 ,p_accounting_line_code => l_component_code
27963 ,p_accounting_line_type_code => l_component_type_code
27964 ,p_accounting_line_appl_id => l_component_appl_id
27965 ,p_amb_context_code => l_amb_context_code
27966 ,p_entity_code => l_entity_code
27967 ,p_event_class_code => l_event_class_code);
27968 --
27969 -- set accounting class
27970 --
27971 xla_ae_lines_pkg.SetAcctClass(
27972 p_accounting_class_code => 'COST_CLEARING'
27973 , p_ae_header_id => l_ae_header_id
27974 );
27975
27976 --
27977 -- set rounding class
27978 --
27979 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
27980 'COST_CLEARING';
27981
27982 --
27983 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
27984 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
27985 --
27986 -- bulk performance
27987 --
27988 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
27989
27990 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
27991 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
27992
27993 -- 4955764
27994 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
27995 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
27996
27997 -- 4458381 Public Sector Enh
27998
27999 --
28000 -- set accounting attributes for the line type
28001 --
28002 l_entered_amt_idx := 22;
28003 l_accted_amt_idx := 27;
28004 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28005 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
28006 l_rec_acct_attrs.array_char_value(1) := p_source_22;
28007 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
28008 l_rec_acct_attrs.array_char_value(2) := p_source_23;
28009 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
28010 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
28011 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
28012 l_rec_acct_attrs.array_num_value(4) := p_source_24;
28013 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
28014 l_rec_acct_attrs.array_char_value(5) := p_source_25;
28015 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
28016 l_rec_acct_attrs.array_num_value(6) := p_source_26;
28017 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
28018 l_rec_acct_attrs.array_date_value(7) := p_source_27;
28019 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
28020 l_rec_acct_attrs.array_num_value(8) := p_source_28;
28021 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
28022 l_rec_acct_attrs.array_char_value(9) := p_source_29;
28026 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
28023 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
28024 l_rec_acct_attrs.array_char_value(10) := p_source_30;
28025 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
28027 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
28028 l_rec_acct_attrs.array_num_value(12) := p_source_24;
28029 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
28030 l_rec_acct_attrs.array_char_value(13) := p_source_25;
28031 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
28032 l_rec_acct_attrs.array_num_value(14) := p_source_26;
28033 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
28034 l_rec_acct_attrs.array_date_value(15) := p_source_27;
28035 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
28036 l_rec_acct_attrs.array_num_value(16) := p_source_28;
28037 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
28038 l_rec_acct_attrs.array_char_value(17) := p_source_29;
28039 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
28040 l_rec_acct_attrs.array_char_value(18) := p_source_31;
28041 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
28042 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
28043 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
28044 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
28045 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
28046 l_rec_acct_attrs.array_char_value(21) := p_source_34;
28047 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
28048 l_rec_acct_attrs.array_num_value(22) := p_source_24;
28049 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
28050 l_rec_acct_attrs.array_char_value(23) := p_source_25;
28051 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
28052 l_rec_acct_attrs.array_date_value(24) := p_source_27;
28053 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
28054 l_rec_acct_attrs.array_num_value(25) := p_source_28;
28055 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
28056 l_rec_acct_attrs.array_char_value(26) := p_source_29;
28057 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
28058 l_rec_acct_attrs.array_num_value(27) := p_source_26;
28059 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
28060 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
28061 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
28062 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
28063 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
28064 l_rec_acct_attrs.array_char_value(30) := p_source_34;
28065
28066 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28067 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28068
28069 ---------------------------------------------------------------------------------------------------------------
28070 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28071 ---------------------------------------------------------------------------------------------------------------
28072 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28073
28074 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28075 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28076
28077 IF xla_accounting_cache_pkg.GetValueChar
28078 (p_source_code => 'LEDGER_CATEGORY_CODE'
28079 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28080 AND l_bflow_method_code = 'PRIOR_ENTRY'
28081 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28082 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28083 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28084 )
28085 THEN
28086 xla_ae_lines_pkg.BflowUpgEntry
28087 (p_business_method_code => l_bflow_method_code
28088 ,p_business_class_code => l_bflow_class_code
28089 ,p_balance_type => l_balance_type_code);
28090 ELSE
28091 NULL;
28092 -- No business flow processing for business flow method of NONE.
28093 END IF;
28094
28095 --
28096 -- call analytical criteria
28097 --
28098
28099 --
28100 -- call description
28101 --
28102 -- No description or it is inherited.
28103 --
28104 -- call ADRs
28105 -- Bug 4922099
28106 --
28107 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28108 (NVL(l_actual_upg_option, 'N') = 'O') OR
28109 (NVL(l_enc_upg_option, 'N') = 'O')
28110 )
28111 THEN
28112 NULL;
28113 --
28114 --
28115
28116 l_ccid := AcctDerRule_6(
28117 p_application_id => p_application_id
28118 , p_ae_header_id => l_ae_header_id
28119 , p_source_4 => p_source_4
28120 , p_source_7 => p_source_7
28121 , x_transaction_coa_id => l_adr_transaction_coa_id
28122 , x_accounting_coa_id => l_adr_accounting_coa_id
28126
28123 , x_value_type_code => l_adr_value_type_code
28124 , p_side => 'NA'
28125 );
28127 xla_ae_lines_pkg.set_ccid(
28128 p_code_combination_id => l_ccid
28129 , p_value_type_code => l_adr_value_type_code
28130 , p_transaction_coa_id => l_adr_transaction_coa_id
28131 , p_accounting_coa_id => l_adr_accounting_coa_id
28132 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
28133 , p_adr_type_code => 'S'
28134 , p_component_type => l_component_type
28135 , p_component_code => l_component_code
28136 , p_component_type_code => l_component_type_code
28137 , p_component_appl_id => l_component_appl_id
28138 , p_amb_context_code => l_amb_context_code
28139 , p_side => 'NA'
28140 );
28141
28142
28143 --
28144 --
28145 END IF;
28146 --
28147 -- Bug 4922099
28148 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28149 (NVL(l_enc_upg_option, 'N') = 'O')
28150 ) AND
28151 (l_bflow_method_code = 'PRIOR_ENTRY')
28152 )
28153 THEN
28154 IF
28155 --
28156 1 = 2
28157 --
28158 THEN
28159 xla_accounting_err_pkg.build_message
28160 (p_appli_s_name => 'XLA'
28161 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28162 ,p_token_1 => 'LINE_NUMBER'
28163 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28164 ,p_token_2 => 'LINE_TYPE_NAME'
28165 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28166 l_component_type
28167 ,l_component_code
28168 ,l_component_type_code
28169 ,l_component_appl_id
28170 ,l_amb_context_code
28171 ,l_entity_code
28172 ,l_event_class_code
28173 )
28174 ,p_token_3 => 'OWNER'
28175 ,p_value_3 => xla_lookups_pkg.get_meaning(
28176 p_lookup_type => 'XLA_OWNER_TYPE'
28177 ,p_lookup_code => l_component_type_code
28178 )
28179 ,p_token_4 => 'PRODUCT_NAME'
28180 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28181 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28182 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28183 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28184 ,p_ae_header_id => NULL
28185 );
28186
28187 IF (C_LEVEL_ERROR>= g_log_level) THEN
28188 trace
28189 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28190 ,p_level => C_LEVEL_ERROR
28191 ,p_module => l_log_module);
28192 END IF;
28193 END IF;
28194 END IF;
28195 --
28196 --
28197 ------------------------------------------------------------------------------------------------
28198 -- 4219869 Business Flow
28199 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28200 -- Prior Entry. Currently, the following code is always generated.
28201 ------------------------------------------------------------------------------------------------
28202 XLA_AE_LINES_PKG.ValidateCurrentLine;
28203
28204 ------------------------------------------------------------------------------------
28205 -- 4219869 Business Flow
28206 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28207 ------------------------------------------------------------------------------------
28208 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28209
28210 ----------------------------------------------------------------------------------
28211 -- 4219869 Business Flow
28212 -- Update journal entry status -- Need to generate this within IF <condition>
28213 ----------------------------------------------------------------------------------
28214 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28215 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28216 ,p_balance_type_code => l_balance_type_code
28217 );
28218
28219 -------------------------------------------------------------------------------------------
28220 -- 4262811 - Generate the Accrual Reversal lines
28224 (g_array_event(p_event_id).array_value_num('header_index'));
28221 -------------------------------------------------------------------------------------------
28222 BEGIN
28223 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28225 IF l_acc_rev_flag IS NULL THEN
28226 l_acc_rev_flag := 'N';
28227 END IF;
28228 EXCEPTION
28229 WHEN OTHERS THEN
28230 l_acc_rev_flag := 'N';
28231 END;
28232 --
28233 IF (l_acc_rev_flag = 'Y') THEN
28234
28235 -- 4645092 ------------------------------------------------------------------------------
28236 -- To allow MPA report to determine if it should generate report process
28237 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28238 ------------------------------------------------------------------------------------------
28239
28240 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28241 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28242
28243 --
28244 -- Update the line information that should be overwritten
28245 --
28246 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28247 p_header_num => 1);
28248 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28249
28250 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28251
28252 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28253 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28254 END IF;
28255
28256 --
28257 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28258 --
28259 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28260 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28261 ELSE
28262 ---------------------------------------------------------------------------------------------------
28263 -- 4262811a Switch Sign
28264 ---------------------------------------------------------------------------------------------------
28265 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28266 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28267 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28268 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28269 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28270 -- 5132302
28271 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28272 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28273
28274 END IF;
28275
28276 -- 4955764
28277 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28278 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28279
28280
28281 XLA_AE_LINES_PKG.ValidateCurrentLine;
28282 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28283
28284 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28285 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28286 ,p_balance_type_code => l_balance_type_code);
28287
28288 END IF;
28289
28290 -----------------------------------------------------------------------------------------
28291 -- 4262811 Multiperiod Accounting
28292 -----------------------------------------------------------------------------------------
28293 -- No MPA option is assigned.
28294
28295
28296 END IF;
28297 --
28298
28299 --
28300 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28301 trace
28302 (p_msg => 'END of AcctLineType_64'
28303 ,p_level => C_LEVEL_PROCEDURE
28304 ,p_module => l_log_module);
28305 END IF;
28306 --
28307 EXCEPTION
28308 WHEN xla_exceptions_pkg.application_exception THEN
28309 RAISE;
28310 WHEN OTHERS THEN
28311 xla_exceptions_pkg.raise_message
28312 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_64');
28313 END AcctLineType_64;
28314 --
28315
28316 ---------------------------------------
28317 --
28318 -- PRIVATE FUNCTION
28319 -- AcctLineType_65
28320 --
28321 ---------------------------------------
28322 PROCEDURE AcctLineType_65 (
28323 p_application_id IN NUMBER
28324 ,p_event_id IN NUMBER
28325 ,p_calculate_acctd_flag IN VARCHAR2
28326 ,p_calculate_g_l_flag IN VARCHAR2
28327 ,p_actual_flag IN OUT VARCHAR2
28328 ,p_balance_type_code OUT VARCHAR2
28329 ,p_gain_or_loss_ref OUT VARCHAR2
28330
28331 --Realized Gains CCID
28332 , p_source_16 IN NUMBER
28333 --Entered Currency Code
28334 , p_source_25 IN VARCHAR2
28335 --Exchange Rate Date
28336 , p_source_27 IN DATE
28337 --Exchange Rate
28338 , p_source_28 IN NUMBER
28339 --Exchange Rate Type
28340 , p_source_29 IN VARCHAR2
28344 , p_source_38 IN VARCHAR2
28341 --Revenue Distribution Type
28342 , p_source_36 IN VARCHAR2
28343 --Crediting Revenue Flag
28345 --Revenue First Distribution ID
28346 , p_source_39 IN NUMBER
28347 --Revenue Second Distribution ID
28348 , p_source_40 IN NUMBER
28349 --Entered Amount
28350 , p_source_41 IN NUMBER
28351 --Event ID
28352 , p_source_42 IN NUMBER
28353 --Accounted Amount
28354 , p_source_43 IN NUMBER
28355 )
28356 IS
28357
28358 l_component_type VARCHAR2(80);
28359 l_component_code VARCHAR2(30);
28360 l_component_type_code VARCHAR2(1);
28361 l_component_appl_id INTEGER;
28362 l_amb_context_code VARCHAR2(30);
28363 l_entity_code VARCHAR2(30);
28364 l_event_class_code VARCHAR2(30);
28365 l_ae_header_id NUMBER;
28366 l_event_type_code VARCHAR2(30);
28367 l_line_definition_code VARCHAR2(30);
28368 l_line_definition_owner_code VARCHAR2(1);
28369 --
28370 -- adr variables
28371 l_segment VARCHAR2(30);
28372 l_ccid NUMBER;
28373 l_adr_transaction_coa_id NUMBER;
28374 l_adr_accounting_coa_id NUMBER;
28375 l_adr_flexfield_segment_code VARCHAR2(30);
28376 l_adr_flex_value_set_id NUMBER;
28377 l_adr_value_type_code VARCHAR2(30);
28378 l_adr_value_combination_id NUMBER;
28379 l_adr_value_segment_code VARCHAR2(30);
28380
28381 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28382 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28383 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28384 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28385
28386 -- 4262811 Variables ------------------------------------------------------------------------------------------
28387 l_entered_amt_idx NUMBER;
28388 l_accted_amt_idx NUMBER;
28389 l_acc_rev_flag VARCHAR2(1);
28390 l_accrual_line_num NUMBER;
28391 l_tmp_amt NUMBER;
28392 l_acc_rev_natural_side_code VARCHAR2(1);
28393
28394 l_num_entries NUMBER;
28395 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28396 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28397 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28398 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28399 l_recog_line_1 NUMBER;
28400 l_recog_line_2 NUMBER;
28401
28402 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28403 l_bflow_applied_to_amt NUMBER; -- 5132302
28404 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28405
28406 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28407
28408 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28409 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28410
28411 ---------------------------------------------------------------------------------------------------------------
28412
28413
28414 --
28415 -- bulk performance
28416 --
28417 l_balance_type_code VARCHAR2(1);
28418 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28419 l_log_module VARCHAR2(240);
28420
28421 --
28422 -- Upgrade strategy
28423 --
28424 l_actual_upg_option VARCHAR2(1);
28425 l_enc_upg_option VARCHAR2(1);
28426
28427 --
28428 BEGIN
28429 --
28430 IF g_log_enabled THEN
28431 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_65';
28432 END IF;
28433 --
28434 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28435
28436 trace
28437 (p_msg => 'BEGIN of AcctLineType_65'
28438 ,p_level => C_LEVEL_PROCEDURE
28439 ,p_module => l_log_module);
28440
28441 END IF;
28442 --
28443 l_component_type := 'AMB_JLT';
28444 l_component_code := 'PA_REALIZED_GAINS';
28445 l_component_type_code := 'S';
28446 l_component_appl_id := 275;
28447 l_amb_context_code := 'DEFAULT';
28448 l_entity_code := 'REVENUE';
28449 l_event_class_code := 'REVENUE';
28450 l_event_type_code := 'REVENUE_ALL';
28451 l_line_definition_owner_code := 'S';
28452 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
28453 --
28454 l_balance_type_code := 'A';
28455 l_segment := NULL;
28456 l_ccid := NULL;
28457 l_adr_transaction_coa_id := NULL;
28458 l_adr_accounting_coa_id := NULL;
28459 l_adr_flexfield_segment_code := NULL;
28460 l_adr_flex_value_set_id := NULL;
28461 l_adr_value_type_code := NULL;
28462 l_adr_value_combination_id := NULL;
28463 l_adr_value_segment_code := NULL;
28464
28465 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
28466 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
28467 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
28468 l_budgetary_control_flag := 'N';
28469
28470 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28471 l_bflow_applied_to_amt := NULL; -- 5132302
28472 l_entered_amt_idx := NULL; -- 4262811
28476 l_tmp_amt := NULL; -- 4262811
28473 l_accted_amt_idx := NULL; -- 4262811
28474 l_acc_rev_flag := NULL; -- 4262811
28475 l_accrual_line_num := NULL; -- 4262811
28477 --
28478
28479 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
28480 l_balance_type_code <> 'B' THEN
28481 IF NVL(p_source_36,'
28482 ') = 'Revenue - Realized Gains' AND
28483 NVL(p_source_38,'
28484 ') = 'N'
28485 THEN
28486
28487 --
28488 XLA_AE_LINES_PKG.SetNewLine;
28489
28490 p_balance_type_code := l_balance_type_code;
28491 -- set the flag so later we will know whether the gain loss line needs to be created
28492
28493 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
28494 p_actual_flag :='A';
28495 END IF;
28496
28497 --
28498 -- bulk performance
28499 --
28500 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
28501 p_header_num => 0); -- 4262811
28502 --
28503 -- set accounting line options
28504 --
28505 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
28506 p_natural_side_code => 'D'
28507 , p_gain_or_loss_flag => 'N'
28508 , p_gl_transfer_mode_code => 'S'
28509 , p_acct_entry_type_code => 'A'
28510 , p_switch_side_flag => 'Y'
28511 , p_merge_duplicate_code => 'N'
28512 );
28513 --
28514 l_acc_rev_natural_side_code := 'C'; -- 4262811
28515 --
28516 --
28517 -- set accounting line type info
28518 --
28519 xla_ae_lines_pkg.SetAcctLineType
28520 (p_component_type => l_component_type
28521 ,p_event_type_code => l_event_type_code
28522 ,p_line_definition_owner_code => l_line_definition_owner_code
28523 ,p_line_definition_code => l_line_definition_code
28524 ,p_accounting_line_code => l_component_code
28525 ,p_accounting_line_type_code => l_component_type_code
28526 ,p_accounting_line_appl_id => l_component_appl_id
28527 ,p_amb_context_code => l_amb_context_code
28528 ,p_entity_code => l_entity_code
28529 ,p_event_class_code => l_event_class_code);
28530 --
28531 -- set accounting class
28532 --
28533 xla_ae_lines_pkg.SetAcctClass(
28534 p_accounting_class_code => 'REALIZED_GAINS'
28535 , p_ae_header_id => l_ae_header_id
28536 );
28537
28538 --
28539 -- set rounding class
28540 --
28541 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
28542 'REALIZED_GAINS';
28543
28544 --
28545 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
28546 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
28547 --
28548 -- bulk performance
28549 --
28550 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
28551
28552 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
28553 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
28554
28555 -- 4955764
28556 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28557 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
28558
28559 -- 4458381 Public Sector Enh
28560
28561 --
28562 -- set accounting attributes for the line type
28563 --
28564 l_entered_amt_idx := 4;
28565 l_accted_amt_idx := 10;
28566 l_bflow_applied_to_amt_idx := NULL; -- 5132302
28567 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
28568 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
28569 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
28570 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
28571 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
28572 l_rec_acct_attrs.array_char_value(3) := p_source_36;
28573 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
28574 l_rec_acct_attrs.array_num_value(4) := p_source_41;
28575 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
28576 l_rec_acct_attrs.array_char_value(5) := p_source_25;
28577 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
28578 l_rec_acct_attrs.array_date_value(6) := p_source_27;
28579 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
28580 l_rec_acct_attrs.array_num_value(7) := p_source_28;
28581 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
28582 l_rec_acct_attrs.array_char_value(8) := p_source_29;
28583 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
28584 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
28585 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
28586 l_rec_acct_attrs.array_num_value(10) := p_source_43;
28587
28588 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
28589 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
28593 ---------------------------------------------------------------------------------------------------------------
28590
28591 ---------------------------------------------------------------------------------------------------------------
28592 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
28594 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
28595
28596 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28597 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
28598
28599 IF xla_accounting_cache_pkg.GetValueChar
28600 (p_source_code => 'LEDGER_CATEGORY_CODE'
28601 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
28602 AND l_bflow_method_code = 'PRIOR_ENTRY'
28603 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
28604 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
28605 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
28606 )
28607 THEN
28608 xla_ae_lines_pkg.BflowUpgEntry
28609 (p_business_method_code => l_bflow_method_code
28610 ,p_business_class_code => l_bflow_class_code
28611 ,p_balance_type => l_balance_type_code);
28612 ELSE
28613 NULL;
28614 -- No business flow processing for business flow method of NONE.
28615 END IF;
28616
28617 --
28618 -- call analytical criteria
28619 --
28620
28621 --
28622 -- call description
28623 --
28624 -- No description or it is inherited.
28625 --
28626 -- call ADRs
28627 -- Bug 4922099
28628 --
28629 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
28630 (NVL(l_actual_upg_option, 'N') = 'O') OR
28631 (NVL(l_enc_upg_option, 'N') = 'O')
28632 )
28633 THEN
28634 NULL;
28635 --
28636 --
28637
28638 l_ccid := AcctDerRule_15(
28639 p_application_id => p_application_id
28640 , p_ae_header_id => l_ae_header_id
28641 , p_source_16 => p_source_16
28642 , x_transaction_coa_id => l_adr_transaction_coa_id
28643 , x_accounting_coa_id => l_adr_accounting_coa_id
28644 , x_value_type_code => l_adr_value_type_code
28645 , p_side => 'NA'
28646 );
28647
28648 xla_ae_lines_pkg.set_ccid(
28649 p_code_combination_id => l_ccid
28650 , p_value_type_code => l_adr_value_type_code
28651 , p_transaction_coa_id => l_adr_transaction_coa_id
28652 , p_accounting_coa_id => l_adr_accounting_coa_id
28653 , p_adr_code => 'REALIZED_GAINS_RULE'
28654 , p_adr_type_code => 'S'
28655 , p_component_type => l_component_type
28656 , p_component_code => l_component_code
28657 , p_component_type_code => l_component_type_code
28658 , p_component_appl_id => l_component_appl_id
28659 , p_amb_context_code => l_amb_context_code
28660 , p_side => 'NA'
28661 );
28662
28663
28664 --
28665 --
28666 END IF;
28667 --
28668 -- Bug 4922099
28669 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
28670 (NVL(l_enc_upg_option, 'N') = 'O')
28671 ) AND
28672 (l_bflow_method_code = 'PRIOR_ENTRY')
28673 )
28674 THEN
28675 IF
28676 --
28677 1 = 2
28678 --
28679 THEN
28680 xla_accounting_err_pkg.build_message
28681 (p_appli_s_name => 'XLA'
28682 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28683 ,p_token_1 => 'LINE_NUMBER'
28684 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
28685 ,p_token_2 => 'LINE_TYPE_NAME'
28686 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
28687 l_component_type
28688 ,l_component_code
28689 ,l_component_type_code
28690 ,l_component_appl_id
28691 ,l_amb_context_code
28692 ,l_entity_code
28693 ,l_event_class_code
28694 )
28695 ,p_token_3 => 'OWNER'
28696 ,p_value_3 => xla_lookups_pkg.get_meaning(
28697 p_lookup_type => 'XLA_OWNER_TYPE'
28698 ,p_lookup_code => l_component_type_code
28702 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
28699 )
28700 ,p_token_4 => 'PRODUCT_NAME'
28701 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
28703 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
28704 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
28705 ,p_ae_header_id => NULL
28706 );
28707
28708 IF (C_LEVEL_ERROR>= g_log_level) THEN
28709 trace
28710 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
28711 ,p_level => C_LEVEL_ERROR
28712 ,p_module => l_log_module);
28713 END IF;
28714 END IF;
28715 END IF;
28716 --
28717 --
28718 ------------------------------------------------------------------------------------------------
28719 -- 4219869 Business Flow
28720 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
28721 -- Prior Entry. Currently, the following code is always generated.
28722 ------------------------------------------------------------------------------------------------
28723 XLA_AE_LINES_PKG.ValidateCurrentLine;
28724
28725 ------------------------------------------------------------------------------------
28726 -- 4219869 Business Flow
28727 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
28728 ------------------------------------------------------------------------------------
28729 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28730
28731 ----------------------------------------------------------------------------------
28732 -- 4219869 Business Flow
28733 -- Update journal entry status -- Need to generate this within IF <condition>
28734 ----------------------------------------------------------------------------------
28735 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28736 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
28737 ,p_balance_type_code => l_balance_type_code
28738 );
28739
28740 -------------------------------------------------------------------------------------------
28741 -- 4262811 - Generate the Accrual Reversal lines
28742 -------------------------------------------------------------------------------------------
28743 BEGIN
28744 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
28745 (g_array_event(p_event_id).array_value_num('header_index'));
28746 IF l_acc_rev_flag IS NULL THEN
28747 l_acc_rev_flag := 'N';
28748 END IF;
28749 EXCEPTION
28750 WHEN OTHERS THEN
28751 l_acc_rev_flag := 'N';
28752 END;
28753 --
28754 IF (l_acc_rev_flag = 'Y') THEN
28755
28756 -- 4645092 ------------------------------------------------------------------------------
28757 -- To allow MPA report to determine if it should generate report process
28758 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
28759 ------------------------------------------------------------------------------------------
28760
28761 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
28762 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
28763
28764 --
28765 -- Update the line information that should be overwritten
28766 --
28767 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
28768 p_header_num => 1);
28769 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
28770
28771 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
28772
28773 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
28774 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
28775 END IF;
28776
28777 --
28778 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
28779 --
28780 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
28781 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
28782 ELSE
28783 ---------------------------------------------------------------------------------------------------
28784 -- 4262811a Switch Sign
28785 ---------------------------------------------------------------------------------------------------
28786 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
28787 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28788 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28789 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
28790 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28791 -- 5132302
28792 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
28793 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
28797 -- 4955764
28794
28795 END IF;
28796
28798 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
28799 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
28800
28801
28802 XLA_AE_LINES_PKG.ValidateCurrentLine;
28803 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
28804
28805 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
28806 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
28807 ,p_balance_type_code => l_balance_type_code);
28808
28809 END IF;
28810
28811 -----------------------------------------------------------------------------------------
28812 -- 4262811 Multiperiod Accounting
28813 -----------------------------------------------------------------------------------------
28814 -- No MPA option is assigned.
28815
28816
28817 END IF;
28818 END IF;
28819 --
28820
28821 --
28822 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28823 trace
28824 (p_msg => 'END of AcctLineType_65'
28825 ,p_level => C_LEVEL_PROCEDURE
28826 ,p_module => l_log_module);
28827 END IF;
28828 --
28829 EXCEPTION
28830 WHEN xla_exceptions_pkg.application_exception THEN
28831 RAISE;
28832 WHEN OTHERS THEN
28833 xla_exceptions_pkg.raise_message
28834 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_65');
28835 END AcctLineType_65;
28836 --
28837
28838 ---------------------------------------
28839 --
28840 -- PRIVATE FUNCTION
28841 -- AcctLineType_66
28842 --
28843 ---------------------------------------
28844 PROCEDURE AcctLineType_66 (
28845 p_application_id IN NUMBER
28846 ,p_event_id IN NUMBER
28847 ,p_calculate_acctd_flag IN VARCHAR2
28848 ,p_calculate_g_l_flag IN VARCHAR2
28849 ,p_actual_flag IN OUT VARCHAR2
28850 ,p_balance_type_code OUT VARCHAR2
28851 ,p_gain_or_loss_ref OUT VARCHAR2
28852
28853 --Actual Upgrade Credit Accounting Class
28854 , p_source_23 IN VARCHAR2
28855 --Entered Currency Code
28856 , p_source_25 IN VARCHAR2
28857 --Exchange Rate Date
28858 , p_source_27 IN DATE
28859 --Exchange Rate
28860 , p_source_28 IN NUMBER
28861 --Exchange Rate Type
28862 , p_source_29 IN VARCHAR2
28863 --Actual Upgrade Debit Accounting Class
28864 , p_source_30 IN VARCHAR2
28865 --Use Actuals Upgrade Attributes Flag
28866 , p_source_31 IN VARCHAR2
28867 --Revenue Distribution Type
28868 , p_source_36 IN VARCHAR2
28869 --Crediting Revenue Flag
28870 , p_source_38 IN VARCHAR2
28871 --Revenue First Distribution ID
28872 , p_source_39 IN NUMBER
28873 --Revenue Second Distribution ID
28874 , p_source_40 IN NUMBER
28875 --Entered Amount
28876 , p_source_41 IN NUMBER
28877 --Event ID
28878 , p_source_42 IN NUMBER
28879 --Accounted Amount
28880 , p_source_43 IN NUMBER
28881 --Actual Upgrade Credit CCID
28882 , p_source_59 IN NUMBER
28883 --Actual Upgrade Debit CCID
28884 , p_source_60 IN NUMBER
28885 --Application ID
28886 , p_source_61 IN NUMBER
28887 --Revenue Entity Code
28888 , p_source_62 IN VARCHAR2
28889 --Crediting Revenue First Distribution ID
28890 , p_source_63 IN NUMBER
28891 --Project ID
28892 , p_source_64 IN NUMBER
28893 --Crediting Revenue Second Distribution ID
28894 , p_source_65 IN NUMBER
28895 --Draft Revenue Number Credited
28896 , p_source_66 IN NUMBER
28897 )
28898 IS
28899
28900 l_component_type VARCHAR2(80);
28901 l_component_code VARCHAR2(30);
28902 l_component_type_code VARCHAR2(1);
28903 l_component_appl_id INTEGER;
28904 l_amb_context_code VARCHAR2(30);
28905 l_entity_code VARCHAR2(30);
28906 l_event_class_code VARCHAR2(30);
28907 l_ae_header_id NUMBER;
28908 l_event_type_code VARCHAR2(30);
28909 l_line_definition_code VARCHAR2(30);
28910 l_line_definition_owner_code VARCHAR2(1);
28911 --
28912 -- adr variables
28913 l_segment VARCHAR2(30);
28914 l_ccid NUMBER;
28915 l_adr_transaction_coa_id NUMBER;
28916 l_adr_accounting_coa_id NUMBER;
28917 l_adr_flexfield_segment_code VARCHAR2(30);
28918 l_adr_flex_value_set_id NUMBER;
28919 l_adr_value_type_code VARCHAR2(30);
28920 l_adr_value_combination_id NUMBER;
28921 l_adr_value_segment_code VARCHAR2(30);
28922
28923 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
28924 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
28925 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
28926 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
28927
28928 -- 4262811 Variables ------------------------------------------------------------------------------------------
28929 l_entered_amt_idx NUMBER;
28930 l_accted_amt_idx NUMBER;
28931 l_acc_rev_flag VARCHAR2(1);
28932 l_accrual_line_num NUMBER;
28933 l_tmp_amt NUMBER;
28934 l_acc_rev_natural_side_code VARCHAR2(1);
28935
28939 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
28936 l_num_entries NUMBER;
28937 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
28938 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
28940 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
28941 l_recog_line_1 NUMBER;
28942 l_recog_line_2 NUMBER;
28943
28944 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
28945 l_bflow_applied_to_amt NUMBER; -- 5132302
28946 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
28947
28948 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
28949
28950 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
28951 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
28952
28953 ---------------------------------------------------------------------------------------------------------------
28954
28955
28956 --
28957 -- bulk performance
28958 --
28959 l_balance_type_code VARCHAR2(1);
28960 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
28961 l_log_module VARCHAR2(240);
28962
28963 --
28964 -- Upgrade strategy
28965 --
28966 l_actual_upg_option VARCHAR2(1);
28967 l_enc_upg_option VARCHAR2(1);
28968
28969 --
28970 BEGIN
28971 --
28972 IF g_log_enabled THEN
28973 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_66';
28974 END IF;
28975 --
28976 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
28977
28978 trace
28979 (p_msg => 'BEGIN of AcctLineType_66'
28980 ,p_level => C_LEVEL_PROCEDURE
28981 ,p_module => l_log_module);
28982
28983 END IF;
28984 --
28985 l_component_type := 'AMB_JLT';
28986 l_component_code := 'PA_REALIZED_GAINS_ADJ';
28987 l_component_type_code := 'S';
28988 l_component_appl_id := 275;
28989 l_amb_context_code := 'DEFAULT';
28990 l_entity_code := 'REVENUE';
28991 l_event_class_code := 'REVENUE_ADJ';
28992 l_event_type_code := 'REVENUE_ADJ_ALL';
28993 l_line_definition_owner_code := 'S';
28994 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
28995 --
28996 l_balance_type_code := 'A';
28997 l_segment := NULL;
28998 l_ccid := NULL;
28999 l_adr_transaction_coa_id := NULL;
29000 l_adr_accounting_coa_id := NULL;
29001 l_adr_flexfield_segment_code := NULL;
29002 l_adr_flex_value_set_id := NULL;
29003 l_adr_value_type_code := NULL;
29004 l_adr_value_combination_id := NULL;
29005 l_adr_value_segment_code := NULL;
29006
29007 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
29008 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
29009 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
29010 l_budgetary_control_flag := 'N';
29011
29012 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29013 l_bflow_applied_to_amt := NULL; -- 5132302
29014 l_entered_amt_idx := NULL; -- 4262811
29015 l_accted_amt_idx := NULL; -- 4262811
29016 l_acc_rev_flag := NULL; -- 4262811
29017 l_accrual_line_num := NULL; -- 4262811
29018 l_tmp_amt := NULL; -- 4262811
29019 --
29020
29021 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29022 l_balance_type_code <> 'B' THEN
29023 IF NVL(p_source_36,'
29024 ') = 'Revenue - Realized Gains' AND
29025 NVL(p_source_38,'
29026 ') = 'Y'
29027 THEN
29028
29029 --
29030 XLA_AE_LINES_PKG.SetNewLine;
29031
29032 p_balance_type_code := l_balance_type_code;
29033 -- set the flag so later we will know whether the gain loss line needs to be created
29034
29035 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29036 p_actual_flag :='A';
29037 END IF;
29038
29039 --
29040 -- bulk performance
29041 --
29042 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29043 p_header_num => 0); -- 4262811
29044 --
29045 -- set accounting line options
29046 --
29047 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29048 p_natural_side_code => 'D'
29049 , p_gain_or_loss_flag => 'N'
29050 , p_gl_transfer_mode_code => 'S'
29051 , p_acct_entry_type_code => 'A'
29052 , p_switch_side_flag => 'Y'
29053 , p_merge_duplicate_code => 'N'
29054 );
29055 --
29056 l_acc_rev_natural_side_code := 'C'; -- 4262811
29057 --
29058 --
29059 -- set accounting line type info
29060 --
29061 xla_ae_lines_pkg.SetAcctLineType
29062 (p_component_type => l_component_type
29063 ,p_event_type_code => l_event_type_code
29064 ,p_line_definition_owner_code => l_line_definition_owner_code
29065 ,p_line_definition_code => l_line_definition_code
29066 ,p_accounting_line_code => l_component_code
29067 ,p_accounting_line_type_code => l_component_type_code
29071 ,p_event_class_code => l_event_class_code);
29068 ,p_accounting_line_appl_id => l_component_appl_id
29069 ,p_amb_context_code => l_amb_context_code
29070 ,p_entity_code => l_entity_code
29072 --
29073 -- set accounting class
29074 --
29075 xla_ae_lines_pkg.SetAcctClass(
29076 p_accounting_class_code => 'REALIZED_GAINS'
29077 , p_ae_header_id => l_ae_header_id
29078 );
29079
29080 --
29081 -- set rounding class
29082 --
29083 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29084 'REALIZED_GAINS';
29085
29086 --
29087 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29088 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29089 --
29090 -- bulk performance
29091 --
29092 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29093
29094 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29095 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29096
29097 -- 4955764
29098 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29099 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29100
29101 -- 4458381 Public Sector Enh
29102
29103 --
29104 -- set accounting attributes for the line type
29105 --
29106 l_entered_amt_idx := 28;
29107 l_accted_amt_idx := 31;
29108 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29109 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
29110 l_rec_acct_attrs.array_char_value(1) := p_source_23;
29111 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
29112 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
29113 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
29114 l_rec_acct_attrs.array_num_value(3) := p_source_41;
29115 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
29116 l_rec_acct_attrs.array_char_value(4) := p_source_25;
29117 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
29118 l_rec_acct_attrs.array_num_value(5) := p_source_43;
29119 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
29120 l_rec_acct_attrs.array_date_value(6) := p_source_27;
29121 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
29122 l_rec_acct_attrs.array_num_value(7) := p_source_28;
29123 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
29124 l_rec_acct_attrs.array_char_value(8) := p_source_29;
29125 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
29126 l_rec_acct_attrs.array_char_value(9) := p_source_30;
29127 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
29128 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
29129 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
29130 l_rec_acct_attrs.array_num_value(11) := p_source_41;
29131 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
29132 l_rec_acct_attrs.array_char_value(12) := p_source_25;
29133 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
29134 l_rec_acct_attrs.array_num_value(13) := p_source_43;
29135 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
29136 l_rec_acct_attrs.array_date_value(14) := p_source_27;
29137 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
29138 l_rec_acct_attrs.array_num_value(15) := p_source_28;
29139 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
29140 l_rec_acct_attrs.array_char_value(16) := p_source_29;
29141 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
29142 l_rec_acct_attrs.array_char_value(17) := p_source_31;
29143 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
29144 l_rec_acct_attrs.array_num_value(18) := p_source_61;
29145 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
29146 l_rec_acct_attrs.array_char_value(19) := p_source_36;
29147 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
29148 l_rec_acct_attrs.array_char_value(20) := p_source_62;
29149 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
29150 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
29151 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
29152 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
29153 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
29154 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
29155 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
29156 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
29157 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
29158 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
29159 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
29160 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
29161 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
29162 l_rec_acct_attrs.array_char_value(27) := p_source_36;
29166 l_rec_acct_attrs.array_char_value(29) := p_source_25;
29163 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
29164 l_rec_acct_attrs.array_num_value(28) := p_source_41;
29165 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
29167 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
29168 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_42);
29169 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
29170 l_rec_acct_attrs.array_num_value(31) := p_source_43;
29171
29172 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29173 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29174
29175 ---------------------------------------------------------------------------------------------------------------
29176 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29177 ---------------------------------------------------------------------------------------------------------------
29178 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29179
29180 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29181 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29182
29183 IF xla_accounting_cache_pkg.GetValueChar
29184 (p_source_code => 'LEDGER_CATEGORY_CODE'
29185 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29186 AND l_bflow_method_code = 'PRIOR_ENTRY'
29187 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29188 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29189 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29190 )
29191 THEN
29192 xla_ae_lines_pkg.BflowUpgEntry
29193 (p_business_method_code => l_bflow_method_code
29194 ,p_business_class_code => l_bflow_class_code
29195 ,p_balance_type => l_balance_type_code);
29196 ELSE
29197 NULL;
29198 XLA_AE_LINES_PKG.business_flow_validation(
29199 p_business_method_code => l_bflow_method_code
29200 ,p_business_class_code => l_bflow_class_code
29201 ,p_inherit_description_flag => l_inherit_desc_flag);
29202 END IF;
29203
29204 --
29205 -- call analytical criteria
29206 --
29207 -- Inherited Analytical Criteria for business flow method of Prior Entry.
29208 --
29209 -- call description
29210 --
29211 -- No description or it is inherited.
29212 --
29213 -- call ADRs
29214 -- Bug 4922099
29215 --
29216 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29217 (NVL(l_actual_upg_option, 'N') = 'O') OR
29218 (NVL(l_enc_upg_option, 'N') = 'O')
29219 )
29220 THEN
29221 NULL;
29222 --
29223 --
29224
29225 --
29226 --
29227 END IF;
29228 --
29229 -- Bug 4922099
29230 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29231 (NVL(l_enc_upg_option, 'N') = 'O')
29232 ) AND
29233 (l_bflow_method_code = 'PRIOR_ENTRY')
29234 )
29235 THEN
29236 IF
29237 --
29238 1 = 1
29239 --
29240 THEN
29241 xla_accounting_err_pkg.build_message
29242 (p_appli_s_name => 'XLA'
29243 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29244 ,p_token_1 => 'LINE_NUMBER'
29245 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29246 ,p_token_2 => 'LINE_TYPE_NAME'
29247 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29248 l_component_type
29249 ,l_component_code
29250 ,l_component_type_code
29251 ,l_component_appl_id
29252 ,l_amb_context_code
29253 ,l_entity_code
29254 ,l_event_class_code
29255 )
29256 ,p_token_3 => 'OWNER'
29257 ,p_value_3 => xla_lookups_pkg.get_meaning(
29258 p_lookup_type => 'XLA_OWNER_TYPE'
29259 ,p_lookup_code => l_component_type_code
29260 )
29261 ,p_token_4 => 'PRODUCT_NAME'
29262 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29266 ,p_ae_header_id => NULL
29263 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29264 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29265 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29267 );
29268
29269 IF (C_LEVEL_ERROR>= g_log_level) THEN
29270 trace
29271 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29272 ,p_level => C_LEVEL_ERROR
29273 ,p_module => l_log_module);
29274 END IF;
29275 END IF;
29276 END IF;
29277 --
29278 --
29279 ------------------------------------------------------------------------------------------------
29280 -- 4219869 Business Flow
29281 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29282 -- Prior Entry. Currently, the following code is always generated.
29283 ------------------------------------------------------------------------------------------------
29284 -- No ValidateCurrentLine for business flow method of Prior Entry
29285
29286 ------------------------------------------------------------------------------------
29287 -- 4219869 Business Flow
29288 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29289 ------------------------------------------------------------------------------------
29290 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29291
29292 ----------------------------------------------------------------------------------
29293 -- 4219869 Business Flow
29294 -- Update journal entry status -- Need to generate this within IF <condition>
29295 ----------------------------------------------------------------------------------
29296 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29297 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29298 ,p_balance_type_code => l_balance_type_code
29299 );
29300
29301 -------------------------------------------------------------------------------------------
29302 -- 4262811 - Generate the Accrual Reversal lines
29303 -------------------------------------------------------------------------------------------
29304 BEGIN
29305 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29306 (g_array_event(p_event_id).array_value_num('header_index'));
29307 IF l_acc_rev_flag IS NULL THEN
29308 l_acc_rev_flag := 'N';
29309 END IF;
29310 EXCEPTION
29311 WHEN OTHERS THEN
29312 l_acc_rev_flag := 'N';
29313 END;
29314 --
29315 IF (l_acc_rev_flag = 'Y') THEN
29316
29317 -- 4645092 ------------------------------------------------------------------------------
29318 -- To allow MPA report to determine if it should generate report process
29319 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29320 ------------------------------------------------------------------------------------------
29321
29322 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29323 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29324
29325 --
29326 -- Update the line information that should be overwritten
29327 --
29328 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29329 p_header_num => 1);
29330 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29331
29332 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29333
29334 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29335 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29336 END IF;
29337
29338 --
29339 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29340 --
29341 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29342 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29343 ELSE
29344 ---------------------------------------------------------------------------------------------------
29345 -- 4262811a Switch Sign
29346 ---------------------------------------------------------------------------------------------------
29347 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29348 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29349 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29350 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29351 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29352 -- 5132302
29353 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29354 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29355
29356 END IF;
29357
29358 -- 4955764
29359 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29363 XLA_AE_LINES_PKG.ValidateCurrentLine;
29360 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29361
29362
29364 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29365
29366 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29367 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29368 ,p_balance_type_code => l_balance_type_code);
29369
29370 END IF;
29371
29372 -----------------------------------------------------------------------------------------
29373 -- 4262811 Multiperiod Accounting
29374 -----------------------------------------------------------------------------------------
29375 -- No MPA option is assigned.
29376
29377
29378 END IF;
29379 END IF;
29380 --
29381
29382 --
29383 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29384 trace
29385 (p_msg => 'END of AcctLineType_66'
29386 ,p_level => C_LEVEL_PROCEDURE
29387 ,p_module => l_log_module);
29388 END IF;
29389 --
29390 EXCEPTION
29391 WHEN xla_exceptions_pkg.application_exception THEN
29392 RAISE;
29393 WHEN OTHERS THEN
29394 xla_exceptions_pkg.raise_message
29395 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_66');
29396 END AcctLineType_66;
29397 --
29398
29399 ---------------------------------------
29400 --
29401 -- PRIVATE FUNCTION
29402 -- AcctLineType_67
29403 --
29404 ---------------------------------------
29405 PROCEDURE AcctLineType_67 (
29406 p_application_id IN NUMBER
29407 ,p_event_id IN NUMBER
29408 ,p_calculate_acctd_flag IN VARCHAR2
29409 ,p_calculate_g_l_flag IN VARCHAR2
29410 ,p_actual_flag IN OUT VARCHAR2
29411 ,p_balance_type_code OUT VARCHAR2
29412 ,p_gain_or_loss_ref OUT VARCHAR2
29413
29414 --Realized Losses CCID
29415 , p_source_17 IN NUMBER
29416 --Entered Currency Code
29417 , p_source_25 IN VARCHAR2
29418 --Exchange Rate Date
29419 , p_source_27 IN DATE
29420 --Exchange Rate
29421 , p_source_28 IN NUMBER
29422 --Exchange Rate Type
29423 , p_source_29 IN VARCHAR2
29424 --Revenue Distribution Type
29425 , p_source_36 IN VARCHAR2
29426 --Crediting Revenue Flag
29427 , p_source_38 IN VARCHAR2
29428 --Revenue First Distribution ID
29429 , p_source_39 IN NUMBER
29430 --Revenue Second Distribution ID
29431 , p_source_40 IN NUMBER
29432 --Entered Amount
29433 , p_source_41 IN NUMBER
29434 --Event ID
29435 , p_source_42 IN NUMBER
29436 --Accounted Amount
29437 , p_source_43 IN NUMBER
29438 )
29439 IS
29440
29441 l_component_type VARCHAR2(80);
29442 l_component_code VARCHAR2(30);
29443 l_component_type_code VARCHAR2(1);
29444 l_component_appl_id INTEGER;
29445 l_amb_context_code VARCHAR2(30);
29446 l_entity_code VARCHAR2(30);
29447 l_event_class_code VARCHAR2(30);
29448 l_ae_header_id NUMBER;
29449 l_event_type_code VARCHAR2(30);
29450 l_line_definition_code VARCHAR2(30);
29451 l_line_definition_owner_code VARCHAR2(1);
29452 --
29453 -- adr variables
29454 l_segment VARCHAR2(30);
29455 l_ccid NUMBER;
29456 l_adr_transaction_coa_id NUMBER;
29457 l_adr_accounting_coa_id NUMBER;
29458 l_adr_flexfield_segment_code VARCHAR2(30);
29459 l_adr_flex_value_set_id NUMBER;
29460 l_adr_value_type_code VARCHAR2(30);
29461 l_adr_value_combination_id NUMBER;
29462 l_adr_value_segment_code VARCHAR2(30);
29463
29464 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
29465 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
29466 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
29467 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
29468
29469 -- 4262811 Variables ------------------------------------------------------------------------------------------
29470 l_entered_amt_idx NUMBER;
29471 l_accted_amt_idx NUMBER;
29472 l_acc_rev_flag VARCHAR2(1);
29473 l_accrual_line_num NUMBER;
29474 l_tmp_amt NUMBER;
29475 l_acc_rev_natural_side_code VARCHAR2(1);
29476
29477 l_num_entries NUMBER;
29478 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
29479 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
29480 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
29481 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
29482 l_recog_line_1 NUMBER;
29483 l_recog_line_2 NUMBER;
29484
29485 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
29486 l_bflow_applied_to_amt NUMBER; -- 5132302
29487 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
29488
29489 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
29490
29491 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
29492 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
29493
29497 --
29494 ---------------------------------------------------------------------------------------------------------------
29495
29496
29498 -- bulk performance
29499 --
29500 l_balance_type_code VARCHAR2(1);
29501 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
29502 l_log_module VARCHAR2(240);
29503
29504 --
29505 -- Upgrade strategy
29506 --
29507 l_actual_upg_option VARCHAR2(1);
29508 l_enc_upg_option VARCHAR2(1);
29509
29510 --
29511 BEGIN
29512 --
29513 IF g_log_enabled THEN
29514 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_67';
29515 END IF;
29516 --
29517 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29518
29519 trace
29520 (p_msg => 'BEGIN of AcctLineType_67'
29521 ,p_level => C_LEVEL_PROCEDURE
29522 ,p_module => l_log_module);
29523
29524 END IF;
29525 --
29526 l_component_type := 'AMB_JLT';
29527 l_component_code := 'PA_REALIZED_LOSSES';
29528 l_component_type_code := 'S';
29529 l_component_appl_id := 275;
29530 l_amb_context_code := 'DEFAULT';
29531 l_entity_code := 'REVENUE';
29532 l_event_class_code := 'REVENUE';
29533 l_event_type_code := 'REVENUE_ALL';
29534 l_line_definition_owner_code := 'S';
29535 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
29536 --
29537 l_balance_type_code := 'A';
29538 l_segment := NULL;
29539 l_ccid := NULL;
29540 l_adr_transaction_coa_id := NULL;
29541 l_adr_accounting_coa_id := NULL;
29542 l_adr_flexfield_segment_code := NULL;
29543 l_adr_flex_value_set_id := NULL;
29544 l_adr_value_type_code := NULL;
29545 l_adr_value_combination_id := NULL;
29546 l_adr_value_segment_code := NULL;
29547
29548 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
29549 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
29550 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
29551 l_budgetary_control_flag := 'N';
29552
29553 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29554 l_bflow_applied_to_amt := NULL; -- 5132302
29555 l_entered_amt_idx := NULL; -- 4262811
29556 l_accted_amt_idx := NULL; -- 4262811
29557 l_acc_rev_flag := NULL; -- 4262811
29558 l_accrual_line_num := NULL; -- 4262811
29559 l_tmp_amt := NULL; -- 4262811
29560 --
29561
29562 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
29563 l_balance_type_code <> 'B' THEN
29564 IF NVL(p_source_36,'
29565 ') = 'Revenue - Realized Losses' AND
29566 NVL(p_source_38,'
29567 ') = 'N'
29568 THEN
29569
29570 --
29571 XLA_AE_LINES_PKG.SetNewLine;
29572
29573 p_balance_type_code := l_balance_type_code;
29574 -- set the flag so later we will know whether the gain loss line needs to be created
29575
29576 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
29577 p_actual_flag :='A';
29578 END IF;
29579
29580 --
29581 -- bulk performance
29582 --
29583 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
29584 p_header_num => 0); -- 4262811
29585 --
29586 -- set accounting line options
29587 --
29588 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
29589 p_natural_side_code => 'C'
29590 , p_gain_or_loss_flag => 'N'
29591 , p_gl_transfer_mode_code => 'S'
29592 , p_acct_entry_type_code => 'A'
29593 , p_switch_side_flag => 'Y'
29594 , p_merge_duplicate_code => 'N'
29595 );
29596 --
29597 l_acc_rev_natural_side_code := 'D'; -- 4262811
29598 --
29599 --
29600 -- set accounting line type info
29601 --
29602 xla_ae_lines_pkg.SetAcctLineType
29603 (p_component_type => l_component_type
29604 ,p_event_type_code => l_event_type_code
29605 ,p_line_definition_owner_code => l_line_definition_owner_code
29606 ,p_line_definition_code => l_line_definition_code
29607 ,p_accounting_line_code => l_component_code
29608 ,p_accounting_line_type_code => l_component_type_code
29609 ,p_accounting_line_appl_id => l_component_appl_id
29610 ,p_amb_context_code => l_amb_context_code
29611 ,p_entity_code => l_entity_code
29612 ,p_event_class_code => l_event_class_code);
29613 --
29614 -- set accounting class
29615 --
29616 xla_ae_lines_pkg.SetAcctClass(
29617 p_accounting_class_code => 'REALIZED_LOSS'
29618 , p_ae_header_id => l_ae_header_id
29619 );
29620
29621 --
29622 -- set rounding class
29623 --
29624 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
29625 'REALIZED_LOSS';
29626
29627 --
29628 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
29629 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
29630 --
29631 -- bulk performance
29632 --
29636 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
29633 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
29634
29635 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
29637
29638 -- 4955764
29639 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29640 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
29641
29642 -- 4458381 Public Sector Enh
29643
29644 --
29645 -- set accounting attributes for the line type
29646 --
29647 l_entered_amt_idx := 4;
29648 l_accted_amt_idx := 10;
29649 l_bflow_applied_to_amt_idx := NULL; -- 5132302
29650 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
29651 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
29652 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
29653 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
29654 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
29655 l_rec_acct_attrs.array_char_value(3) := p_source_36;
29656 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
29657 l_rec_acct_attrs.array_num_value(4) := p_source_41;
29658 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
29659 l_rec_acct_attrs.array_char_value(5) := p_source_25;
29660 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
29661 l_rec_acct_attrs.array_date_value(6) := p_source_27;
29662 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
29663 l_rec_acct_attrs.array_num_value(7) := p_source_28;
29664 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
29665 l_rec_acct_attrs.array_char_value(8) := p_source_29;
29666 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
29667 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
29668 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
29669 l_rec_acct_attrs.array_num_value(10) := p_source_43;
29670
29671 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
29672 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
29673
29674 ---------------------------------------------------------------------------------------------------------------
29675 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
29676 ---------------------------------------------------------------------------------------------------------------
29677 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
29678
29679 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29680 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
29681
29682 IF xla_accounting_cache_pkg.GetValueChar
29683 (p_source_code => 'LEDGER_CATEGORY_CODE'
29684 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
29685 AND l_bflow_method_code = 'PRIOR_ENTRY'
29686 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
29687 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
29688 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
29689 )
29690 THEN
29691 xla_ae_lines_pkg.BflowUpgEntry
29692 (p_business_method_code => l_bflow_method_code
29693 ,p_business_class_code => l_bflow_class_code
29694 ,p_balance_type => l_balance_type_code);
29695 ELSE
29696 NULL;
29697 -- No business flow processing for business flow method of NONE.
29698 END IF;
29699
29700 --
29701 -- call analytical criteria
29702 --
29703
29704 --
29705 -- call description
29706 --
29707 -- No description or it is inherited.
29708 --
29709 -- call ADRs
29710 -- Bug 4922099
29711 --
29712 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
29713 (NVL(l_actual_upg_option, 'N') = 'O') OR
29714 (NVL(l_enc_upg_option, 'N') = 'O')
29715 )
29716 THEN
29717 NULL;
29718 --
29719 --
29720
29721 l_ccid := AcctDerRule_16(
29722 p_application_id => p_application_id
29723 , p_ae_header_id => l_ae_header_id
29724 , p_source_17 => p_source_17
29725 , x_transaction_coa_id => l_adr_transaction_coa_id
29726 , x_accounting_coa_id => l_adr_accounting_coa_id
29727 , x_value_type_code => l_adr_value_type_code
29728 , p_side => 'NA'
29729 );
29730
29731 xla_ae_lines_pkg.set_ccid(
29732 p_code_combination_id => l_ccid
29733 , p_value_type_code => l_adr_value_type_code
29734 , p_transaction_coa_id => l_adr_transaction_coa_id
29735 , p_accounting_coa_id => l_adr_accounting_coa_id
29736 , p_adr_code => 'REALIZED_LOSSES_RULE'
29737 , p_adr_type_code => 'S'
29738 , p_component_type => l_component_type
29739 , p_component_code => l_component_code
29740 , p_component_type_code => l_component_type_code
29741 , p_component_appl_id => l_component_appl_id
29745
29742 , p_amb_context_code => l_amb_context_code
29743 , p_side => 'NA'
29744 );
29746
29747 --
29748 --
29749 END IF;
29750 --
29751 -- Bug 4922099
29752 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
29753 (NVL(l_enc_upg_option, 'N') = 'O')
29754 ) AND
29755 (l_bflow_method_code = 'PRIOR_ENTRY')
29756 )
29757 THEN
29758 IF
29759 --
29760 1 = 2
29761 --
29762 THEN
29763 xla_accounting_err_pkg.build_message
29764 (p_appli_s_name => 'XLA'
29765 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29766 ,p_token_1 => 'LINE_NUMBER'
29767 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
29768 ,p_token_2 => 'LINE_TYPE_NAME'
29769 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
29770 l_component_type
29771 ,l_component_code
29772 ,l_component_type_code
29773 ,l_component_appl_id
29774 ,l_amb_context_code
29775 ,l_entity_code
29776 ,l_event_class_code
29777 )
29778 ,p_token_3 => 'OWNER'
29779 ,p_value_3 => xla_lookups_pkg.get_meaning(
29780 p_lookup_type => 'XLA_OWNER_TYPE'
29781 ,p_lookup_code => l_component_type_code
29782 )
29783 ,p_token_4 => 'PRODUCT_NAME'
29784 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
29785 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
29786 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
29787 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
29788 ,p_ae_header_id => NULL
29789 );
29790
29791 IF (C_LEVEL_ERROR>= g_log_level) THEN
29792 trace
29793 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
29794 ,p_level => C_LEVEL_ERROR
29795 ,p_module => l_log_module);
29796 END IF;
29797 END IF;
29798 END IF;
29799 --
29800 --
29801 ------------------------------------------------------------------------------------------------
29802 -- 4219869 Business Flow
29803 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
29804 -- Prior Entry. Currently, the following code is always generated.
29805 ------------------------------------------------------------------------------------------------
29806 XLA_AE_LINES_PKG.ValidateCurrentLine;
29807
29808 ------------------------------------------------------------------------------------
29809 -- 4219869 Business Flow
29810 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
29811 ------------------------------------------------------------------------------------
29812 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29813
29814 ----------------------------------------------------------------------------------
29815 -- 4219869 Business Flow
29816 -- Update journal entry status -- Need to generate this within IF <condition>
29817 ----------------------------------------------------------------------------------
29818 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29819 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
29820 ,p_balance_type_code => l_balance_type_code
29821 );
29822
29823 -------------------------------------------------------------------------------------------
29824 -- 4262811 - Generate the Accrual Reversal lines
29825 -------------------------------------------------------------------------------------------
29826 BEGIN
29827 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
29828 (g_array_event(p_event_id).array_value_num('header_index'));
29829 IF l_acc_rev_flag IS NULL THEN
29830 l_acc_rev_flag := 'N';
29831 END IF;
29832 EXCEPTION
29833 WHEN OTHERS THEN
29834 l_acc_rev_flag := 'N';
29835 END;
29836 --
29837 IF (l_acc_rev_flag = 'Y') THEN
29838
29839 -- 4645092 ------------------------------------------------------------------------------
29843
29840 -- To allow MPA report to determine if it should generate report process
29841 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
29842 ------------------------------------------------------------------------------------------
29844 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
29845 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
29846
29847 --
29848 -- Update the line information that should be overwritten
29849 --
29850 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
29851 p_header_num => 1);
29852 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
29853
29854 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
29855
29856 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
29857 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
29858 END IF;
29859
29860 --
29861 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
29862 --
29863 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
29864 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
29865 ELSE
29866 ---------------------------------------------------------------------------------------------------
29867 -- 4262811a Switch Sign
29868 ---------------------------------------------------------------------------------------------------
29869 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
29870 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29871 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29872 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
29873 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29874 -- 5132302
29875 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
29876 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
29877
29878 END IF;
29879
29880 -- 4955764
29881 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
29882 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
29883
29884
29885 XLA_AE_LINES_PKG.ValidateCurrentLine;
29886 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
29887
29888 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
29889 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
29890 ,p_balance_type_code => l_balance_type_code);
29891
29892 END IF;
29893
29894 -----------------------------------------------------------------------------------------
29895 -- 4262811 Multiperiod Accounting
29896 -----------------------------------------------------------------------------------------
29897 -- No MPA option is assigned.
29898
29899
29900 END IF;
29901 END IF;
29902 --
29903
29904 --
29905 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
29906 trace
29907 (p_msg => 'END of AcctLineType_67'
29908 ,p_level => C_LEVEL_PROCEDURE
29909 ,p_module => l_log_module);
29910 END IF;
29911 --
29912 EXCEPTION
29913 WHEN xla_exceptions_pkg.application_exception THEN
29914 RAISE;
29915 WHEN OTHERS THEN
29916 xla_exceptions_pkg.raise_message
29917 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_67');
29918 END AcctLineType_67;
29919 --
29920
29921 ---------------------------------------
29922 --
29923 -- PRIVATE FUNCTION
29924 -- AcctLineType_68
29925 --
29926 ---------------------------------------
29927 PROCEDURE AcctLineType_68 (
29928 p_application_id IN NUMBER
29929 ,p_event_id IN NUMBER
29930 ,p_calculate_acctd_flag IN VARCHAR2
29931 ,p_calculate_g_l_flag IN VARCHAR2
29932 ,p_actual_flag IN OUT VARCHAR2
29933 ,p_balance_type_code OUT VARCHAR2
29934 ,p_gain_or_loss_ref OUT VARCHAR2
29935
29936 --Actual Upgrade Credit Accounting Class
29937 , p_source_23 IN VARCHAR2
29938 --Entered Currency Code
29939 , p_source_25 IN VARCHAR2
29940 --Exchange Rate Date
29941 , p_source_27 IN DATE
29942 --Exchange Rate
29943 , p_source_28 IN NUMBER
29944 --Exchange Rate Type
29945 , p_source_29 IN VARCHAR2
29946 --Actual Upgrade Debit Accounting Class
29947 , p_source_30 IN VARCHAR2
29948 --Use Actuals Upgrade Attributes Flag
29949 , p_source_31 IN VARCHAR2
29950 --Revenue Distribution Type
29951 , p_source_36 IN VARCHAR2
29952 --Crediting Revenue Flag
29953 , p_source_38 IN VARCHAR2
29954 --Revenue First Distribution ID
29955 , p_source_39 IN NUMBER
29956 --Revenue Second Distribution ID
29957 , p_source_40 IN NUMBER
29958 --Entered Amount
29959 , p_source_41 IN NUMBER
29960 --Event ID
29964 --Actual Upgrade Credit CCID
29961 , p_source_42 IN NUMBER
29962 --Accounted Amount
29963 , p_source_43 IN NUMBER
29965 , p_source_59 IN NUMBER
29966 --Actual Upgrade Debit CCID
29967 , p_source_60 IN NUMBER
29968 --Application ID
29969 , p_source_61 IN NUMBER
29970 --Revenue Entity Code
29971 , p_source_62 IN VARCHAR2
29972 --Crediting Revenue First Distribution ID
29973 , p_source_63 IN NUMBER
29974 --Project ID
29975 , p_source_64 IN NUMBER
29976 --Crediting Revenue Second Distribution ID
29977 , p_source_65 IN NUMBER
29978 --Draft Revenue Number Credited
29979 , p_source_66 IN NUMBER
29980 )
29981 IS
29982
29983 l_component_type VARCHAR2(80);
29984 l_component_code VARCHAR2(30);
29985 l_component_type_code VARCHAR2(1);
29986 l_component_appl_id INTEGER;
29987 l_amb_context_code VARCHAR2(30);
29988 l_entity_code VARCHAR2(30);
29989 l_event_class_code VARCHAR2(30);
29990 l_ae_header_id NUMBER;
29991 l_event_type_code VARCHAR2(30);
29992 l_line_definition_code VARCHAR2(30);
29993 l_line_definition_owner_code VARCHAR2(1);
29994 --
29995 -- adr variables
29996 l_segment VARCHAR2(30);
29997 l_ccid NUMBER;
29998 l_adr_transaction_coa_id NUMBER;
29999 l_adr_accounting_coa_id NUMBER;
30000 l_adr_flexfield_segment_code VARCHAR2(30);
30001 l_adr_flex_value_set_id NUMBER;
30002 l_adr_value_type_code VARCHAR2(30);
30003 l_adr_value_combination_id NUMBER;
30004 l_adr_value_segment_code VARCHAR2(30);
30005
30006 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30007 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30008 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30009 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30010
30011 -- 4262811 Variables ------------------------------------------------------------------------------------------
30012 l_entered_amt_idx NUMBER;
30013 l_accted_amt_idx NUMBER;
30014 l_acc_rev_flag VARCHAR2(1);
30015 l_accrual_line_num NUMBER;
30016 l_tmp_amt NUMBER;
30017 l_acc_rev_natural_side_code VARCHAR2(1);
30018
30019 l_num_entries NUMBER;
30020 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30021 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30022 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30023 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30024 l_recog_line_1 NUMBER;
30025 l_recog_line_2 NUMBER;
30026
30027 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30028 l_bflow_applied_to_amt NUMBER; -- 5132302
30029 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30030
30031 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30032
30033 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30034 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30035
30036 ---------------------------------------------------------------------------------------------------------------
30037
30038
30039 --
30040 -- bulk performance
30041 --
30042 l_balance_type_code VARCHAR2(1);
30043 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30044 l_log_module VARCHAR2(240);
30045
30046 --
30047 -- Upgrade strategy
30048 --
30049 l_actual_upg_option VARCHAR2(1);
30050 l_enc_upg_option VARCHAR2(1);
30051
30052 --
30053 BEGIN
30054 --
30055 IF g_log_enabled THEN
30056 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_68';
30057 END IF;
30058 --
30059 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30060
30061 trace
30062 (p_msg => 'BEGIN of AcctLineType_68'
30063 ,p_level => C_LEVEL_PROCEDURE
30064 ,p_module => l_log_module);
30065
30066 END IF;
30067 --
30068 l_component_type := 'AMB_JLT';
30069 l_component_code := 'PA_REALIZED_LOSSES_ADJ';
30070 l_component_type_code := 'S';
30071 l_component_appl_id := 275;
30072 l_amb_context_code := 'DEFAULT';
30073 l_entity_code := 'REVENUE';
30074 l_event_class_code := 'REVENUE_ADJ';
30075 l_event_type_code := 'REVENUE_ADJ_ALL';
30076 l_line_definition_owner_code := 'S';
30077 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
30078 --
30079 l_balance_type_code := 'A';
30080 l_segment := NULL;
30081 l_ccid := NULL;
30082 l_adr_transaction_coa_id := NULL;
30083 l_adr_accounting_coa_id := NULL;
30084 l_adr_flexfield_segment_code := NULL;
30085 l_adr_flex_value_set_id := NULL;
30086 l_adr_value_type_code := NULL;
30087 l_adr_value_combination_id := NULL;
30088 l_adr_value_segment_code := NULL;
30089
30090 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
30091 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
30095 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30092 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
30093 l_budgetary_control_flag := 'N';
30094
30096 l_bflow_applied_to_amt := NULL; -- 5132302
30097 l_entered_amt_idx := NULL; -- 4262811
30098 l_accted_amt_idx := NULL; -- 4262811
30099 l_acc_rev_flag := NULL; -- 4262811
30100 l_accrual_line_num := NULL; -- 4262811
30101 l_tmp_amt := NULL; -- 4262811
30102 --
30103
30104 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30105 l_balance_type_code <> 'B' THEN
30106 IF NVL(p_source_36,'
30107 ') = 'Revenue - Realized Losses' AND
30108 NVL(p_source_38,'
30109 ') = 'Y'
30110 THEN
30111
30112 --
30113 XLA_AE_LINES_PKG.SetNewLine;
30114
30115 p_balance_type_code := l_balance_type_code;
30116 -- set the flag so later we will know whether the gain loss line needs to be created
30117
30118 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30119 p_actual_flag :='A';
30120 END IF;
30121
30122 --
30123 -- bulk performance
30124 --
30125 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30126 p_header_num => 0); -- 4262811
30127 --
30128 -- set accounting line options
30129 --
30130 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30131 p_natural_side_code => 'C'
30132 , p_gain_or_loss_flag => 'N'
30133 , p_gl_transfer_mode_code => 'S'
30134 , p_acct_entry_type_code => 'A'
30135 , p_switch_side_flag => 'Y'
30136 , p_merge_duplicate_code => 'N'
30137 );
30138 --
30139 l_acc_rev_natural_side_code := 'D'; -- 4262811
30140 --
30141 --
30142 -- set accounting line type info
30143 --
30144 xla_ae_lines_pkg.SetAcctLineType
30145 (p_component_type => l_component_type
30146 ,p_event_type_code => l_event_type_code
30147 ,p_line_definition_owner_code => l_line_definition_owner_code
30148 ,p_line_definition_code => l_line_definition_code
30149 ,p_accounting_line_code => l_component_code
30150 ,p_accounting_line_type_code => l_component_type_code
30151 ,p_accounting_line_appl_id => l_component_appl_id
30152 ,p_amb_context_code => l_amb_context_code
30153 ,p_entity_code => l_entity_code
30154 ,p_event_class_code => l_event_class_code);
30155 --
30156 -- set accounting class
30157 --
30158 xla_ae_lines_pkg.SetAcctClass(
30159 p_accounting_class_code => 'REALIZED_LOSS'
30160 , p_ae_header_id => l_ae_header_id
30161 );
30162
30163 --
30164 -- set rounding class
30165 --
30166 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30167 'REALIZED_LOSS';
30168
30169 --
30170 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30171 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30172 --
30173 -- bulk performance
30174 --
30175 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30176
30177 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30178 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30179
30180 -- 4955764
30181 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30182 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30183
30184 -- 4458381 Public Sector Enh
30185
30186 --
30187 -- set accounting attributes for the line type
30188 --
30189 l_entered_amt_idx := 28;
30190 l_accted_amt_idx := 31;
30191 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30192 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
30193 l_rec_acct_attrs.array_char_value(1) := p_source_23;
30194 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
30195 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
30196 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
30197 l_rec_acct_attrs.array_num_value(3) := p_source_41;
30198 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
30199 l_rec_acct_attrs.array_char_value(4) := p_source_25;
30200 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
30201 l_rec_acct_attrs.array_num_value(5) := p_source_43;
30202 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
30203 l_rec_acct_attrs.array_date_value(6) := p_source_27;
30204 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
30205 l_rec_acct_attrs.array_num_value(7) := p_source_28;
30206 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
30207 l_rec_acct_attrs.array_char_value(8) := p_source_29;
30208 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
30209 l_rec_acct_attrs.array_char_value(9) := p_source_30;
30210 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
30211 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
30215 l_rec_acct_attrs.array_char_value(12) := p_source_25;
30212 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
30213 l_rec_acct_attrs.array_num_value(11) := p_source_41;
30214 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
30216 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
30217 l_rec_acct_attrs.array_num_value(13) := p_source_43;
30218 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
30219 l_rec_acct_attrs.array_date_value(14) := p_source_27;
30220 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
30221 l_rec_acct_attrs.array_num_value(15) := p_source_28;
30222 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
30223 l_rec_acct_attrs.array_char_value(16) := p_source_29;
30224 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
30225 l_rec_acct_attrs.array_char_value(17) := p_source_31;
30226 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
30227 l_rec_acct_attrs.array_num_value(18) := p_source_61;
30228 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
30229 l_rec_acct_attrs.array_char_value(19) := p_source_36;
30230 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
30231 l_rec_acct_attrs.array_char_value(20) := p_source_62;
30232 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
30233 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
30234 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
30235 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
30236 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
30237 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
30238 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
30239 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
30240 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
30241 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
30242 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
30243 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
30244 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
30245 l_rec_acct_attrs.array_char_value(27) := p_source_36;
30246 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
30247 l_rec_acct_attrs.array_num_value(28) := p_source_41;
30248 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
30249 l_rec_acct_attrs.array_char_value(29) := p_source_25;
30250 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
30251 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_42);
30252 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
30253 l_rec_acct_attrs.array_num_value(31) := p_source_43;
30254
30255 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30256 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30257
30258 ---------------------------------------------------------------------------------------------------------------
30259 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30260 ---------------------------------------------------------------------------------------------------------------
30261 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30262
30263 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30264 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30265
30266 IF xla_accounting_cache_pkg.GetValueChar
30267 (p_source_code => 'LEDGER_CATEGORY_CODE'
30268 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30269 AND l_bflow_method_code = 'PRIOR_ENTRY'
30270 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30271 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30272 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30273 )
30274 THEN
30275 xla_ae_lines_pkg.BflowUpgEntry
30276 (p_business_method_code => l_bflow_method_code
30277 ,p_business_class_code => l_bflow_class_code
30278 ,p_balance_type => l_balance_type_code);
30279 ELSE
30280 NULL;
30281 XLA_AE_LINES_PKG.business_flow_validation(
30282 p_business_method_code => l_bflow_method_code
30283 ,p_business_class_code => l_bflow_class_code
30284 ,p_inherit_description_flag => l_inherit_desc_flag);
30285 END IF;
30286
30287 --
30288 -- call analytical criteria
30289 --
30290 -- Inherited Analytical Criteria for business flow method of Prior Entry.
30291 --
30292 -- call description
30293 --
30294 -- No description or it is inherited.
30295 --
30296 -- call ADRs
30297 -- Bug 4922099
30298 --
30299 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30300 (NVL(l_actual_upg_option, 'N') = 'O') OR
30301 (NVL(l_enc_upg_option, 'N') = 'O')
30302 )
30303 THEN
30304 NULL;
30305 --
30306 --
30307
30308 --
30309 --
30310 END IF;
30311 --
30312 -- Bug 4922099
30316 (l_bflow_method_code = 'PRIOR_ENTRY')
30313 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30314 (NVL(l_enc_upg_option, 'N') = 'O')
30315 ) AND
30317 )
30318 THEN
30319 IF
30320 --
30321 1 = 1
30322 --
30323 THEN
30324 xla_accounting_err_pkg.build_message
30325 (p_appli_s_name => 'XLA'
30326 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30327 ,p_token_1 => 'LINE_NUMBER'
30328 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30329 ,p_token_2 => 'LINE_TYPE_NAME'
30330 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30331 l_component_type
30332 ,l_component_code
30333 ,l_component_type_code
30334 ,l_component_appl_id
30335 ,l_amb_context_code
30336 ,l_entity_code
30337 ,l_event_class_code
30338 )
30339 ,p_token_3 => 'OWNER'
30340 ,p_value_3 => xla_lookups_pkg.get_meaning(
30341 p_lookup_type => 'XLA_OWNER_TYPE'
30342 ,p_lookup_code => l_component_type_code
30343 )
30344 ,p_token_4 => 'PRODUCT_NAME'
30345 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30346 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30347 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30348 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30349 ,p_ae_header_id => NULL
30350 );
30351
30352 IF (C_LEVEL_ERROR>= g_log_level) THEN
30353 trace
30354 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30355 ,p_level => C_LEVEL_ERROR
30356 ,p_module => l_log_module);
30357 END IF;
30358 END IF;
30359 END IF;
30360 --
30361 --
30362 ------------------------------------------------------------------------------------------------
30363 -- 4219869 Business Flow
30364 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30365 -- Prior Entry. Currently, the following code is always generated.
30366 ------------------------------------------------------------------------------------------------
30367 -- No ValidateCurrentLine for business flow method of Prior Entry
30368
30369 ------------------------------------------------------------------------------------
30370 -- 4219869 Business Flow
30371 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30372 ------------------------------------------------------------------------------------
30373 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30374
30375 ----------------------------------------------------------------------------------
30376 -- 4219869 Business Flow
30377 -- Update journal entry status -- Need to generate this within IF <condition>
30378 ----------------------------------------------------------------------------------
30379 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30380 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30381 ,p_balance_type_code => l_balance_type_code
30382 );
30383
30384 -------------------------------------------------------------------------------------------
30385 -- 4262811 - Generate the Accrual Reversal lines
30386 -------------------------------------------------------------------------------------------
30387 BEGIN
30388 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30389 (g_array_event(p_event_id).array_value_num('header_index'));
30390 IF l_acc_rev_flag IS NULL THEN
30391 l_acc_rev_flag := 'N';
30392 END IF;
30393 EXCEPTION
30394 WHEN OTHERS THEN
30395 l_acc_rev_flag := 'N';
30396 END;
30397 --
30398 IF (l_acc_rev_flag = 'Y') THEN
30399
30400 -- 4645092 ------------------------------------------------------------------------------
30401 -- To allow MPA report to determine if it should generate report process
30402 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30403 ------------------------------------------------------------------------------------------
30404
30408 --
30405 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30406 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30407
30409 -- Update the line information that should be overwritten
30410 --
30411 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30412 p_header_num => 1);
30413 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30414
30415 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30416
30417 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30418 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
30419 END IF;
30420
30421 --
30422 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
30423 --
30424 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
30425 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
30426 ELSE
30427 ---------------------------------------------------------------------------------------------------
30428 -- 4262811a Switch Sign
30429 ---------------------------------------------------------------------------------------------------
30430 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
30431 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30432 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30433 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
30434 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30435 -- 5132302
30436 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
30437 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
30438
30439 END IF;
30440
30441 -- 4955764
30442 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30443 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
30444
30445
30446 XLA_AE_LINES_PKG.ValidateCurrentLine;
30447 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30448
30449 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30450 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
30451 ,p_balance_type_code => l_balance_type_code);
30452
30453 END IF;
30454
30455 -----------------------------------------------------------------------------------------
30456 -- 4262811 Multiperiod Accounting
30457 -----------------------------------------------------------------------------------------
30458 -- No MPA option is assigned.
30459
30460
30461 END IF;
30462 END IF;
30463 --
30464
30465 --
30466 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30467 trace
30468 (p_msg => 'END of AcctLineType_68'
30469 ,p_level => C_LEVEL_PROCEDURE
30470 ,p_module => l_log_module);
30471 END IF;
30472 --
30473 EXCEPTION
30474 WHEN xla_exceptions_pkg.application_exception THEN
30475 RAISE;
30476 WHEN OTHERS THEN
30477 xla_exceptions_pkg.raise_message
30478 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_68');
30479 END AcctLineType_68;
30480 --
30481
30482 ---------------------------------------
30483 --
30484 -- PRIVATE FUNCTION
30485 -- AcctLineType_69
30486 --
30487 ---------------------------------------
30488 PROCEDURE AcctLineType_69 (
30489 p_application_id IN NUMBER
30490 ,p_event_id IN NUMBER
30491 ,p_calculate_acctd_flag IN VARCHAR2
30492 ,p_calculate_g_l_flag IN VARCHAR2
30493 ,p_actual_flag IN OUT VARCHAR2
30494 ,p_balance_type_code OUT VARCHAR2
30495 ,p_gain_or_loss_ref OUT VARCHAR2
30496
30497 --Allow Account Override Flag
30498 , p_source_4 IN VARCHAR2
30499 --Provider Cost/ Revenue CCID
30500 , p_source_8 IN NUMBER
30501 --Adjustment Receiver Cost/ Revenue CCID
30502 , p_source_10 IN NUMBER
30503 --Receiver Cost/ Revenue CCID
30504 , p_source_15 IN NUMBER
30505 --Reversing Line Flag
30506 , p_source_22 IN VARCHAR2
30507 --Actual Upgrade Credit Accounting Class
30508 , p_source_23 IN VARCHAR2
30509 --Entered Currency Code
30510 , p_source_25 IN VARCHAR2
30511 --Exchange Rate Date
30512 , p_source_27 IN DATE
30513 --Exchange Rate
30514 , p_source_28 IN NUMBER
30515 --Exchange Rate Type
30516 , p_source_29 IN VARCHAR2
30517 --Actual Upgrade Debit Accounting Class
30518 , p_source_30 IN VARCHAR2
30519 --Use Actuals Upgrade Attributes Flag
30520 , p_source_31 IN VARCHAR2
30521 --Expenditure Item ID
30522 , p_source_32 IN NUMBER
30523 --Cost Distribution Line Number
30524 , p_source_33 IN NUMBER
30525 --Line Type
30526 , p_source_34 IN VARCHAR2
30530 --Entered Amount
30527 , p_source_34_meaning IN VARCHAR2
30528 --Reversed Line Number
30529 , p_source_35 IN NUMBER
30531 , p_source_41 IN NUMBER
30532 --Accounted Amount
30533 , p_source_43 IN NUMBER
30534 --Transfer Amount Type
30535 , p_source_67 IN VARCHAR2
30536 , p_source_67_meaning IN VARCHAR2
30537 )
30538 IS
30539
30540 l_component_type VARCHAR2(80);
30541 l_component_code VARCHAR2(30);
30542 l_component_type_code VARCHAR2(1);
30543 l_component_appl_id INTEGER;
30544 l_amb_context_code VARCHAR2(30);
30545 l_entity_code VARCHAR2(30);
30546 l_event_class_code VARCHAR2(30);
30547 l_ae_header_id NUMBER;
30548 l_event_type_code VARCHAR2(30);
30549 l_line_definition_code VARCHAR2(30);
30550 l_line_definition_owner_code VARCHAR2(1);
30551 --
30552 -- adr variables
30553 l_segment VARCHAR2(30);
30554 l_ccid NUMBER;
30555 l_adr_transaction_coa_id NUMBER;
30556 l_adr_accounting_coa_id NUMBER;
30557 l_adr_flexfield_segment_code VARCHAR2(30);
30558 l_adr_flex_value_set_id NUMBER;
30559 l_adr_value_type_code VARCHAR2(30);
30560 l_adr_value_combination_id NUMBER;
30561 l_adr_value_segment_code VARCHAR2(30);
30562
30563 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
30564 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
30565 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
30566 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
30567
30568 -- 4262811 Variables ------------------------------------------------------------------------------------------
30569 l_entered_amt_idx NUMBER;
30570 l_accted_amt_idx NUMBER;
30571 l_acc_rev_flag VARCHAR2(1);
30572 l_accrual_line_num NUMBER;
30573 l_tmp_amt NUMBER;
30574 l_acc_rev_natural_side_code VARCHAR2(1);
30575
30576 l_num_entries NUMBER;
30577 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
30578 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
30579 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
30580 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
30581 l_recog_line_1 NUMBER;
30582 l_recog_line_2 NUMBER;
30583
30584 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
30585 l_bflow_applied_to_amt NUMBER; -- 5132302
30586 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
30587
30588 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
30589
30590 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
30591 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
30592
30593 ---------------------------------------------------------------------------------------------------------------
30594
30595
30596 --
30597 -- bulk performance
30598 --
30599 l_balance_type_code VARCHAR2(1);
30600 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
30601 l_log_module VARCHAR2(240);
30602
30603 --
30604 -- Upgrade strategy
30605 --
30606 l_actual_upg_option VARCHAR2(1);
30607 l_enc_upg_option VARCHAR2(1);
30608
30609 --
30610 BEGIN
30611 --
30612 IF g_log_enabled THEN
30613 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_69';
30614 END IF;
30615 --
30616 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
30617
30618 trace
30619 (p_msg => 'BEGIN of AcctLineType_69'
30620 ,p_level => C_LEVEL_PROCEDURE
30621 ,p_module => l_log_module);
30622
30623 END IF;
30624 --
30625 l_component_type := 'AMB_JLT';
30626 l_component_code := 'PA_RECEIVER_COST';
30627 l_component_type_code := 'S';
30628 l_component_appl_id := 275;
30629 l_amb_context_code := 'DEFAULT';
30630 l_entity_code := 'EXPENDITURES';
30631 l_event_class_code := 'BORROWED_AND_LENT';
30632 l_event_type_code := 'BORROWED_AND_LENT_ALL';
30633 l_line_definition_owner_code := 'S';
30634 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
30635 --
30636 l_balance_type_code := 'A';
30637 l_segment := NULL;
30638 l_ccid := NULL;
30639 l_adr_transaction_coa_id := NULL;
30640 l_adr_accounting_coa_id := NULL;
30641 l_adr_flexfield_segment_code := NULL;
30642 l_adr_flex_value_set_id := NULL;
30643 l_adr_value_type_code := NULL;
30644 l_adr_value_combination_id := NULL;
30645 l_adr_value_segment_code := NULL;
30646
30647 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
30648 l_bflow_class_code := ''; -- 4219869 Business Flow
30649 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
30650 l_budgetary_control_flag := 'N';
30651
30652 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30653 l_bflow_applied_to_amt := NULL; -- 5132302
30654 l_entered_amt_idx := NULL; -- 4262811
30655 l_accted_amt_idx := NULL; -- 4262811
30656 l_acc_rev_flag := NULL; -- 4262811
30660
30657 l_accrual_line_num := NULL; -- 4262811
30658 l_tmp_amt := NULL; -- 4262811
30659 --
30661 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
30662 l_balance_type_code <> 'B' THEN
30663 IF NVL(p_source_67,'
30664 ') = 'COST_TRANSFER' OR
30665 NVL(p_source_67,'
30666 ') = 'COST_REVENUE' OR
30667 p_source_67 IS NULL
30668 THEN
30669
30670 --
30671 XLA_AE_LINES_PKG.SetNewLine;
30672
30673 p_balance_type_code := l_balance_type_code;
30674 -- set the flag so later we will know whether the gain loss line needs to be created
30675
30676 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
30677 p_actual_flag :='A';
30678 END IF;
30679
30680 --
30681 -- bulk performance
30682 --
30683 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
30684 p_header_num => 0); -- 4262811
30685 --
30686 -- set accounting line options
30687 --
30688 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
30689 p_natural_side_code => 'D'
30690 , p_gain_or_loss_flag => 'N'
30691 , p_gl_transfer_mode_code => 'S'
30692 , p_acct_entry_type_code => 'A'
30693 , p_switch_side_flag => 'Y'
30694 , p_merge_duplicate_code => 'N'
30695 );
30696 --
30697 l_acc_rev_natural_side_code := 'C'; -- 4262811
30698 --
30699 --
30700 -- set accounting line type info
30701 --
30702 xla_ae_lines_pkg.SetAcctLineType
30703 (p_component_type => l_component_type
30704 ,p_event_type_code => l_event_type_code
30705 ,p_line_definition_owner_code => l_line_definition_owner_code
30706 ,p_line_definition_code => l_line_definition_code
30707 ,p_accounting_line_code => l_component_code
30708 ,p_accounting_line_type_code => l_component_type_code
30709 ,p_accounting_line_appl_id => l_component_appl_id
30710 ,p_amb_context_code => l_amb_context_code
30711 ,p_entity_code => l_entity_code
30712 ,p_event_class_code => l_event_class_code);
30713 --
30714 -- set accounting class
30715 --
30716 xla_ae_lines_pkg.SetAcctClass(
30717 p_accounting_class_code => 'RECEIVER_COST'
30718 , p_ae_header_id => l_ae_header_id
30719 );
30720
30721 --
30722 -- set rounding class
30723 --
30724 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
30725 'RECEIVER_COST';
30726
30727 --
30728 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
30729 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
30730 --
30731 -- bulk performance
30732 --
30733 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
30734
30735 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
30736 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
30737
30738 -- 4955764
30739 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
30740 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
30741
30742 -- 4458381 Public Sector Enh
30743
30744 --
30745 -- set accounting attributes for the line type
30746 --
30747 l_entered_amt_idx := 22;
30748 l_accted_amt_idx := 27;
30749 l_bflow_applied_to_amt_idx := NULL; -- 5132302
30750 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
30751 l_rec_acct_attrs.array_char_value(1) := p_source_22;
30752 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
30753 l_rec_acct_attrs.array_char_value(2) := p_source_23;
30754 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
30755 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
30756 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
30757 l_rec_acct_attrs.array_num_value(4) := p_source_41;
30758 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
30759 l_rec_acct_attrs.array_char_value(5) := p_source_25;
30760 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
30761 l_rec_acct_attrs.array_num_value(6) := p_source_43;
30762 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
30763 l_rec_acct_attrs.array_date_value(7) := p_source_27;
30764 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
30765 l_rec_acct_attrs.array_num_value(8) := p_source_28;
30766 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
30767 l_rec_acct_attrs.array_char_value(9) := p_source_29;
30768 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
30769 l_rec_acct_attrs.array_char_value(10) := p_source_30;
30770 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
30771 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
30772 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
30773 l_rec_acct_attrs.array_num_value(12) := p_source_41;
30774 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
30778 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
30775 l_rec_acct_attrs.array_char_value(13) := p_source_25;
30776 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
30777 l_rec_acct_attrs.array_num_value(14) := p_source_43;
30779 l_rec_acct_attrs.array_date_value(15) := p_source_27;
30780 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
30781 l_rec_acct_attrs.array_num_value(16) := p_source_28;
30782 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
30783 l_rec_acct_attrs.array_char_value(17) := p_source_29;
30784 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
30785 l_rec_acct_attrs.array_char_value(18) := p_source_31;
30786 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
30787 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
30788 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
30789 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
30790 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
30791 l_rec_acct_attrs.array_char_value(21) := p_source_34;
30792 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
30793 l_rec_acct_attrs.array_num_value(22) := p_source_41;
30794 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
30795 l_rec_acct_attrs.array_char_value(23) := p_source_25;
30796 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
30797 l_rec_acct_attrs.array_date_value(24) := p_source_27;
30798 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
30799 l_rec_acct_attrs.array_num_value(25) := p_source_28;
30800 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
30801 l_rec_acct_attrs.array_char_value(26) := p_source_29;
30802 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
30803 l_rec_acct_attrs.array_num_value(27) := p_source_43;
30804 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
30805 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
30806 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
30807 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
30808 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
30809 l_rec_acct_attrs.array_char_value(30) := p_source_34;
30810
30811 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
30812 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
30813
30814 ---------------------------------------------------------------------------------------------------------------
30815 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
30816 ---------------------------------------------------------------------------------------------------------------
30817 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
30818
30819 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30820 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
30821
30822 IF xla_accounting_cache_pkg.GetValueChar
30823 (p_source_code => 'LEDGER_CATEGORY_CODE'
30824 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
30825 AND l_bflow_method_code = 'PRIOR_ENTRY'
30826 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
30827 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
30828 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
30829 )
30830 THEN
30831 xla_ae_lines_pkg.BflowUpgEntry
30832 (p_business_method_code => l_bflow_method_code
30833 ,p_business_class_code => l_bflow_class_code
30834 ,p_balance_type => l_balance_type_code);
30835 ELSE
30836 NULL;
30837 -- No business flow processing for business flow method of NONE.
30838 END IF;
30839
30840 --
30841 -- call analytical criteria
30842 --
30843
30844 --
30845 -- call description
30846 --
30847 -- No description or it is inherited.
30848 --
30849 -- call ADRs
30850 -- Bug 4922099
30851 --
30852 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
30853 (NVL(l_actual_upg_option, 'N') = 'O') OR
30854 (NVL(l_enc_upg_option, 'N') = 'O')
30855 )
30856 THEN
30857 NULL;
30858 --
30859 --
30860
30861 l_ccid := AcctDerRule_14(
30862 p_application_id => p_application_id
30863 , p_ae_header_id => l_ae_header_id
30864 , p_source_4 => p_source_4
30865 , p_source_10 => p_source_10
30866 , p_source_15 => p_source_15
30867 , x_transaction_coa_id => l_adr_transaction_coa_id
30868 , x_accounting_coa_id => l_adr_accounting_coa_id
30869 , x_value_type_code => l_adr_value_type_code
30870 , p_side => 'NA'
30871 );
30872
30873 xla_ae_lines_pkg.set_ccid(
30874 p_code_combination_id => l_ccid
30875 , p_value_type_code => l_adr_value_type_code
30876 , p_transaction_coa_id => l_adr_transaction_coa_id
30877 , p_accounting_coa_id => l_adr_accounting_coa_id
30878 , p_adr_code => 'PA_RECVR_COST_REV_ACCT_RULE'
30879 , p_adr_type_code => 'S'
30883 , p_component_appl_id => l_component_appl_id
30880 , p_component_type => l_component_type
30881 , p_component_code => l_component_code
30882 , p_component_type_code => l_component_type_code
30884 , p_amb_context_code => l_amb_context_code
30885 , p_side => 'NA'
30886 );
30887
30888
30889 --
30890 --
30891 END IF;
30892 --
30893 -- Bug 4922099
30894 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
30895 (NVL(l_enc_upg_option, 'N') = 'O')
30896 ) AND
30897 (l_bflow_method_code = 'PRIOR_ENTRY')
30898 )
30899 THEN
30900 IF
30901 --
30902 1 = 2
30903 --
30904 THEN
30905 xla_accounting_err_pkg.build_message
30906 (p_appli_s_name => 'XLA'
30907 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30908 ,p_token_1 => 'LINE_NUMBER'
30909 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
30910 ,p_token_2 => 'LINE_TYPE_NAME'
30911 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
30912 l_component_type
30913 ,l_component_code
30914 ,l_component_type_code
30915 ,l_component_appl_id
30916 ,l_amb_context_code
30917 ,l_entity_code
30918 ,l_event_class_code
30919 )
30920 ,p_token_3 => 'OWNER'
30921 ,p_value_3 => xla_lookups_pkg.get_meaning(
30922 p_lookup_type => 'XLA_OWNER_TYPE'
30923 ,p_lookup_code => l_component_type_code
30924 )
30925 ,p_token_4 => 'PRODUCT_NAME'
30926 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
30927 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
30928 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
30929 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
30930 ,p_ae_header_id => NULL
30931 );
30932
30933 IF (C_LEVEL_ERROR>= g_log_level) THEN
30934 trace
30935 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
30936 ,p_level => C_LEVEL_ERROR
30937 ,p_module => l_log_module);
30938 END IF;
30939 END IF;
30940 END IF;
30941 --
30942 --
30943 ------------------------------------------------------------------------------------------------
30944 -- 4219869 Business Flow
30945 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
30946 -- Prior Entry. Currently, the following code is always generated.
30947 ------------------------------------------------------------------------------------------------
30948 XLA_AE_LINES_PKG.ValidateCurrentLine;
30949
30950 ------------------------------------------------------------------------------------
30951 -- 4219869 Business Flow
30952 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
30953 ------------------------------------------------------------------------------------
30954 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
30955
30956 ----------------------------------------------------------------------------------
30957 -- 4219869 Business Flow
30958 -- Update journal entry status -- Need to generate this within IF <condition>
30959 ----------------------------------------------------------------------------------
30960 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
30961 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
30962 ,p_balance_type_code => l_balance_type_code
30963 );
30964
30965 -------------------------------------------------------------------------------------------
30966 -- 4262811 - Generate the Accrual Reversal lines
30967 -------------------------------------------------------------------------------------------
30968 BEGIN
30969 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
30970 (g_array_event(p_event_id).array_value_num('header_index'));
30971 IF l_acc_rev_flag IS NULL THEN
30972 l_acc_rev_flag := 'N';
30973 END IF;
30974 EXCEPTION
30975 WHEN OTHERS THEN
30979 IF (l_acc_rev_flag = 'Y') THEN
30976 l_acc_rev_flag := 'N';
30977 END;
30978 --
30980
30981 -- 4645092 ------------------------------------------------------------------------------
30982 -- To allow MPA report to determine if it should generate report process
30983 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
30984 ------------------------------------------------------------------------------------------
30985
30986 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
30987 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
30988
30989 --
30990 -- Update the line information that should be overwritten
30991 --
30992 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
30993 p_header_num => 1);
30994 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
30995
30996 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
30997
30998 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
30999 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31000 END IF;
31001
31002 --
31003 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31004 --
31005 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31006 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31007 ELSE
31008 ---------------------------------------------------------------------------------------------------
31009 -- 4262811a Switch Sign
31010 ---------------------------------------------------------------------------------------------------
31011 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31012 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31013 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31014 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31015 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31016 -- 5132302
31017 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31018 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31019
31020 END IF;
31021
31022 -- 4955764
31023 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31024 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31025
31026
31027 XLA_AE_LINES_PKG.ValidateCurrentLine;
31028 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31029
31030 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31031 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31032 ,p_balance_type_code => l_balance_type_code);
31033
31034 END IF;
31035
31036 -----------------------------------------------------------------------------------------
31037 -- 4262811 Multiperiod Accounting
31038 -----------------------------------------------------------------------------------------
31039 -- No MPA option is assigned.
31040
31041
31042 END IF;
31043 END IF;
31044 --
31045
31046 --
31047 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31048 trace
31049 (p_msg => 'END of AcctLineType_69'
31050 ,p_level => C_LEVEL_PROCEDURE
31051 ,p_module => l_log_module);
31052 END IF;
31053 --
31054 EXCEPTION
31055 WHEN xla_exceptions_pkg.application_exception THEN
31056 RAISE;
31057 WHEN OTHERS THEN
31058 xla_exceptions_pkg.raise_message
31059 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_69');
31060 END AcctLineType_69;
31061 --
31062
31063 ---------------------------------------
31064 --
31065 -- PRIVATE FUNCTION
31066 -- AcctLineType_70
31067 --
31068 ---------------------------------------
31069 PROCEDURE AcctLineType_70 (
31070 p_application_id IN NUMBER
31071 ,p_event_id IN NUMBER
31072 ,p_calculate_acctd_flag IN VARCHAR2
31073 ,p_calculate_g_l_flag IN VARCHAR2
31074 ,p_actual_flag IN OUT VARCHAR2
31075 ,p_balance_type_code OUT VARCHAR2
31076 ,p_gain_or_loss_ref OUT VARCHAR2
31077
31078 --Allow Account Override Flag
31079 , p_source_4 IN VARCHAR2
31080 --Provider Cost/ Revenue CCID
31081 , p_source_8 IN NUMBER
31082 --Adjustment Receiver Cost/ Revenue CCID
31083 , p_source_10 IN NUMBER
31084 --Receiver Cost/ Revenue CCID
31085 , p_source_15 IN NUMBER
31086 --Reversing Line Flag
31087 , p_source_22 IN VARCHAR2
31088 --Actual Upgrade Credit Accounting Class
31089 , p_source_23 IN VARCHAR2
31090 --Entered Currency Code
31091 , p_source_25 IN VARCHAR2
31092 --Exchange Rate Date
31093 , p_source_27 IN DATE
31094 --Exchange Rate
31095 , p_source_28 IN NUMBER
31099 , p_source_30 IN VARCHAR2
31096 --Exchange Rate Type
31097 , p_source_29 IN VARCHAR2
31098 --Actual Upgrade Debit Accounting Class
31100 --Use Actuals Upgrade Attributes Flag
31101 , p_source_31 IN VARCHAR2
31102 --Expenditure Item ID
31103 , p_source_32 IN NUMBER
31104 --Cost Distribution Line Number
31105 , p_source_33 IN NUMBER
31106 --Line Type
31107 , p_source_34 IN VARCHAR2
31108 , p_source_34_meaning IN VARCHAR2
31109 --Reversed Line Number
31110 , p_source_35 IN NUMBER
31111 --Entered Amount
31112 , p_source_41 IN NUMBER
31113 --Accounted Amount
31114 , p_source_43 IN NUMBER
31115 --Transfer Amount Type
31116 , p_source_67 IN VARCHAR2
31117 , p_source_67_meaning IN VARCHAR2
31118 )
31119 IS
31120
31121 l_component_type VARCHAR2(80);
31122 l_component_code VARCHAR2(30);
31123 l_component_type_code VARCHAR2(1);
31124 l_component_appl_id INTEGER;
31125 l_amb_context_code VARCHAR2(30);
31126 l_entity_code VARCHAR2(30);
31127 l_event_class_code VARCHAR2(30);
31128 l_ae_header_id NUMBER;
31129 l_event_type_code VARCHAR2(30);
31130 l_line_definition_code VARCHAR2(30);
31131 l_line_definition_owner_code VARCHAR2(1);
31132 --
31133 -- adr variables
31134 l_segment VARCHAR2(30);
31135 l_ccid NUMBER;
31136 l_adr_transaction_coa_id NUMBER;
31137 l_adr_accounting_coa_id NUMBER;
31138 l_adr_flexfield_segment_code VARCHAR2(30);
31139 l_adr_flex_value_set_id NUMBER;
31140 l_adr_value_type_code VARCHAR2(30);
31141 l_adr_value_combination_id NUMBER;
31142 l_adr_value_segment_code VARCHAR2(30);
31143
31144 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31145 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31146 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31147 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31148
31149 -- 4262811 Variables ------------------------------------------------------------------------------------------
31150 l_entered_amt_idx NUMBER;
31151 l_accted_amt_idx NUMBER;
31152 l_acc_rev_flag VARCHAR2(1);
31153 l_accrual_line_num NUMBER;
31154 l_tmp_amt NUMBER;
31155 l_acc_rev_natural_side_code VARCHAR2(1);
31156
31157 l_num_entries NUMBER;
31158 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31159 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31160 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31161 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31162 l_recog_line_1 NUMBER;
31163 l_recog_line_2 NUMBER;
31164
31165 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31166 l_bflow_applied_to_amt NUMBER; -- 5132302
31167 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31168
31169 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31170
31171 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31172 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31173
31174 ---------------------------------------------------------------------------------------------------------------
31175
31176
31177 --
31178 -- bulk performance
31179 --
31180 l_balance_type_code VARCHAR2(1);
31181 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31182 l_log_module VARCHAR2(240);
31183
31184 --
31185 -- Upgrade strategy
31186 --
31187 l_actual_upg_option VARCHAR2(1);
31188 l_enc_upg_option VARCHAR2(1);
31189
31190 --
31191 BEGIN
31192 --
31193 IF g_log_enabled THEN
31194 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_70';
31195 END IF;
31196 --
31197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31198
31199 trace
31200 (p_msg => 'BEGIN of AcctLineType_70'
31201 ,p_level => C_LEVEL_PROCEDURE
31202 ,p_module => l_log_module);
31203
31204 END IF;
31205 --
31206 l_component_type := 'AMB_JLT';
31207 l_component_code := 'PA_RECEIVER_COST_ADJ';
31208 l_component_type_code := 'S';
31209 l_component_appl_id := 275;
31210 l_amb_context_code := 'DEFAULT';
31211 l_entity_code := 'EXPENDITURES';
31212 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
31213 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
31214 l_line_definition_owner_code := 'S';
31215 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
31216 --
31217 l_balance_type_code := 'A';
31218 l_segment := NULL;
31219 l_ccid := NULL;
31220 l_adr_transaction_coa_id := NULL;
31221 l_adr_accounting_coa_id := NULL;
31222 l_adr_flexfield_segment_code := NULL;
31223 l_adr_flex_value_set_id := NULL;
31224 l_adr_value_type_code := NULL;
31225 l_adr_value_combination_id := NULL;
31226 l_adr_value_segment_code := NULL;
31227
31228 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31232
31229 l_bflow_class_code := ''; -- 4219869 Business Flow
31230 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31231 l_budgetary_control_flag := 'N';
31233 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31234 l_bflow_applied_to_amt := NULL; -- 5132302
31235 l_entered_amt_idx := NULL; -- 4262811
31236 l_accted_amt_idx := NULL; -- 4262811
31237 l_acc_rev_flag := NULL; -- 4262811
31238 l_accrual_line_num := NULL; -- 4262811
31239 l_tmp_amt := NULL; -- 4262811
31240 --
31241
31242 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31243 l_balance_type_code <> 'B' THEN
31244 IF NVL(p_source_67,'
31245 ') = 'COST_TRANSFER' OR
31246 NVL(p_source_67,'
31247 ') = 'COST_REVENUE' OR
31248 p_source_67 IS NULL
31249 THEN
31250
31251 --
31252 XLA_AE_LINES_PKG.SetNewLine;
31253
31254 p_balance_type_code := l_balance_type_code;
31255 -- set the flag so later we will know whether the gain loss line needs to be created
31256
31257 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31258 p_actual_flag :='A';
31259 END IF;
31260
31261 --
31262 -- bulk performance
31263 --
31264 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31265 p_header_num => 0); -- 4262811
31266 --
31267 -- set accounting line options
31268 --
31269 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31270 p_natural_side_code => 'D'
31271 , p_gain_or_loss_flag => 'N'
31272 , p_gl_transfer_mode_code => 'S'
31273 , p_acct_entry_type_code => 'A'
31274 , p_switch_side_flag => 'Y'
31275 , p_merge_duplicate_code => 'N'
31276 );
31277 --
31278 l_acc_rev_natural_side_code := 'C'; -- 4262811
31279 --
31280 --
31281 -- set accounting line type info
31282 --
31283 xla_ae_lines_pkg.SetAcctLineType
31284 (p_component_type => l_component_type
31285 ,p_event_type_code => l_event_type_code
31286 ,p_line_definition_owner_code => l_line_definition_owner_code
31287 ,p_line_definition_code => l_line_definition_code
31288 ,p_accounting_line_code => l_component_code
31289 ,p_accounting_line_type_code => l_component_type_code
31290 ,p_accounting_line_appl_id => l_component_appl_id
31291 ,p_amb_context_code => l_amb_context_code
31292 ,p_entity_code => l_entity_code
31293 ,p_event_class_code => l_event_class_code);
31294 --
31295 -- set accounting class
31296 --
31297 xla_ae_lines_pkg.SetAcctClass(
31298 p_accounting_class_code => 'RECEIVER_COST'
31299 , p_ae_header_id => l_ae_header_id
31300 );
31301
31302 --
31303 -- set rounding class
31304 --
31305 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31306 'RECEIVER_COST';
31307
31308 --
31309 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31310 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31311 --
31312 -- bulk performance
31313 --
31314 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31315
31316 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31317 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31318
31319 -- 4955764
31320 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31321 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31322
31323 -- 4458381 Public Sector Enh
31324
31325 --
31326 -- set accounting attributes for the line type
31327 --
31328 l_entered_amt_idx := 22;
31329 l_accted_amt_idx := 27;
31330 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31331 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31332 l_rec_acct_attrs.array_char_value(1) := p_source_22;
31333 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
31334 l_rec_acct_attrs.array_char_value(2) := p_source_23;
31335 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
31336 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
31337 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
31338 l_rec_acct_attrs.array_num_value(4) := p_source_41;
31339 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
31340 l_rec_acct_attrs.array_char_value(5) := p_source_25;
31341 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
31342 l_rec_acct_attrs.array_num_value(6) := p_source_43;
31343 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
31344 l_rec_acct_attrs.array_date_value(7) := p_source_27;
31345 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
31346 l_rec_acct_attrs.array_num_value(8) := p_source_28;
31347 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
31348 l_rec_acct_attrs.array_char_value(9) := p_source_29;
31352 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
31349 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
31350 l_rec_acct_attrs.array_char_value(10) := p_source_30;
31351 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
31353 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
31354 l_rec_acct_attrs.array_num_value(12) := p_source_41;
31355 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
31356 l_rec_acct_attrs.array_char_value(13) := p_source_25;
31357 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
31358 l_rec_acct_attrs.array_num_value(14) := p_source_43;
31359 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
31360 l_rec_acct_attrs.array_date_value(15) := p_source_27;
31361 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
31362 l_rec_acct_attrs.array_num_value(16) := p_source_28;
31363 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
31364 l_rec_acct_attrs.array_char_value(17) := p_source_29;
31365 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
31366 l_rec_acct_attrs.array_char_value(18) := p_source_31;
31367 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
31368 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
31369 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
31370 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
31371 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
31372 l_rec_acct_attrs.array_char_value(21) := p_source_34;
31373 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
31374 l_rec_acct_attrs.array_num_value(22) := p_source_41;
31375 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
31376 l_rec_acct_attrs.array_char_value(23) := p_source_25;
31377 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
31378 l_rec_acct_attrs.array_date_value(24) := p_source_27;
31379 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
31380 l_rec_acct_attrs.array_num_value(25) := p_source_28;
31381 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
31382 l_rec_acct_attrs.array_char_value(26) := p_source_29;
31383 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
31384 l_rec_acct_attrs.array_num_value(27) := p_source_43;
31385 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
31386 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
31387 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
31388 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
31389 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
31390 l_rec_acct_attrs.array_char_value(30) := p_source_34;
31391
31392 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31393 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31394
31395 ---------------------------------------------------------------------------------------------------------------
31396 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31397 ---------------------------------------------------------------------------------------------------------------
31398 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31399
31400 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31401 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31402
31403 IF xla_accounting_cache_pkg.GetValueChar
31404 (p_source_code => 'LEDGER_CATEGORY_CODE'
31405 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31406 AND l_bflow_method_code = 'PRIOR_ENTRY'
31407 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31408 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31409 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31410 )
31411 THEN
31412 xla_ae_lines_pkg.BflowUpgEntry
31413 (p_business_method_code => l_bflow_method_code
31414 ,p_business_class_code => l_bflow_class_code
31415 ,p_balance_type => l_balance_type_code);
31416 ELSE
31417 NULL;
31418 -- No business flow processing for business flow method of NONE.
31419 END IF;
31420
31421 --
31422 -- call analytical criteria
31423 --
31424
31425 --
31426 -- call description
31427 --
31428 -- No description or it is inherited.
31429 --
31430 -- call ADRs
31431 -- Bug 4922099
31432 --
31433 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
31434 (NVL(l_actual_upg_option, 'N') = 'O') OR
31435 (NVL(l_enc_upg_option, 'N') = 'O')
31436 )
31437 THEN
31438 NULL;
31439 --
31440 --
31441
31442 l_ccid := AcctDerRule_9(
31443 p_application_id => p_application_id
31444 , p_ae_header_id => l_ae_header_id
31445 , p_source_4 => p_source_4
31446 , p_source_10 => p_source_10
31447 , x_transaction_coa_id => l_adr_transaction_coa_id
31448 , x_accounting_coa_id => l_adr_accounting_coa_id
31449 , x_value_type_code => l_adr_value_type_code
31450 , p_side => 'NA'
31451 );
31455 , p_value_type_code => l_adr_value_type_code
31452
31453 xla_ae_lines_pkg.set_ccid(
31454 p_code_combination_id => l_ccid
31456 , p_transaction_coa_id => l_adr_transaction_coa_id
31457 , p_accounting_coa_id => l_adr_accounting_coa_id
31458 , p_adr_code => 'PA_RCVR_COST_REV_ADJ_ACCT_RULE'
31459 , p_adr_type_code => 'S'
31460 , p_component_type => l_component_type
31461 , p_component_code => l_component_code
31462 , p_component_type_code => l_component_type_code
31463 , p_component_appl_id => l_component_appl_id
31464 , p_amb_context_code => l_amb_context_code
31465 , p_side => 'NA'
31466 );
31467
31468
31469 --
31470 --
31471 END IF;
31472 --
31473 -- Bug 4922099
31474 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
31475 (NVL(l_enc_upg_option, 'N') = 'O')
31476 ) AND
31477 (l_bflow_method_code = 'PRIOR_ENTRY')
31478 )
31479 THEN
31480 IF
31481 --
31482 1 = 2
31483 --
31484 THEN
31485 xla_accounting_err_pkg.build_message
31486 (p_appli_s_name => 'XLA'
31487 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31488 ,p_token_1 => 'LINE_NUMBER'
31489 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
31490 ,p_token_2 => 'LINE_TYPE_NAME'
31491 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
31492 l_component_type
31493 ,l_component_code
31494 ,l_component_type_code
31495 ,l_component_appl_id
31496 ,l_amb_context_code
31497 ,l_entity_code
31498 ,l_event_class_code
31499 )
31500 ,p_token_3 => 'OWNER'
31501 ,p_value_3 => xla_lookups_pkg.get_meaning(
31502 p_lookup_type => 'XLA_OWNER_TYPE'
31503 ,p_lookup_code => l_component_type_code
31504 )
31505 ,p_token_4 => 'PRODUCT_NAME'
31506 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
31507 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
31508 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
31509 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
31510 ,p_ae_header_id => NULL
31511 );
31512
31513 IF (C_LEVEL_ERROR>= g_log_level) THEN
31514 trace
31515 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
31516 ,p_level => C_LEVEL_ERROR
31517 ,p_module => l_log_module);
31518 END IF;
31519 END IF;
31520 END IF;
31521 --
31522 --
31523 ------------------------------------------------------------------------------------------------
31524 -- 4219869 Business Flow
31525 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
31526 -- Prior Entry. Currently, the following code is always generated.
31527 ------------------------------------------------------------------------------------------------
31528 XLA_AE_LINES_PKG.ValidateCurrentLine;
31529
31530 ------------------------------------------------------------------------------------
31531 -- 4219869 Business Flow
31532 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
31533 ------------------------------------------------------------------------------------
31534 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31535
31536 ----------------------------------------------------------------------------------
31537 -- 4219869 Business Flow
31538 -- Update journal entry status -- Need to generate this within IF <condition>
31539 ----------------------------------------------------------------------------------
31540 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31541 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
31542 ,p_balance_type_code => l_balance_type_code
31543 );
31544
31545 -------------------------------------------------------------------------------------------
31546 -- 4262811 - Generate the Accrual Reversal lines
31550 (g_array_event(p_event_id).array_value_num('header_index'));
31547 -------------------------------------------------------------------------------------------
31548 BEGIN
31549 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
31551 IF l_acc_rev_flag IS NULL THEN
31552 l_acc_rev_flag := 'N';
31553 END IF;
31554 EXCEPTION
31555 WHEN OTHERS THEN
31556 l_acc_rev_flag := 'N';
31557 END;
31558 --
31559 IF (l_acc_rev_flag = 'Y') THEN
31560
31561 -- 4645092 ------------------------------------------------------------------------------
31562 -- To allow MPA report to determine if it should generate report process
31563 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
31564 ------------------------------------------------------------------------------------------
31565
31566 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
31567 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
31568
31569 --
31570 -- Update the line information that should be overwritten
31571 --
31572 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
31573 p_header_num => 1);
31574 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
31575
31576 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
31577
31578 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
31579 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
31580 END IF;
31581
31582 --
31583 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
31584 --
31585 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
31586 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
31587 ELSE
31588 ---------------------------------------------------------------------------------------------------
31589 -- 4262811a Switch Sign
31590 ---------------------------------------------------------------------------------------------------
31591 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
31592 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31593 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31594 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
31595 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31596 -- 5132302
31597 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
31598 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
31599
31600 END IF;
31601
31602 -- 4955764
31603 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31604 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
31605
31606
31607 XLA_AE_LINES_PKG.ValidateCurrentLine;
31608 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
31609
31610 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
31611 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
31612 ,p_balance_type_code => l_balance_type_code);
31613
31614 END IF;
31615
31616 -----------------------------------------------------------------------------------------
31617 -- 4262811 Multiperiod Accounting
31618 -----------------------------------------------------------------------------------------
31619 -- No MPA option is assigned.
31620
31621
31622 END IF;
31623 END IF;
31624 --
31625
31626 --
31627 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31628 trace
31629 (p_msg => 'END of AcctLineType_70'
31630 ,p_level => C_LEVEL_PROCEDURE
31631 ,p_module => l_log_module);
31632 END IF;
31633 --
31634 EXCEPTION
31635 WHEN xla_exceptions_pkg.application_exception THEN
31636 RAISE;
31637 WHEN OTHERS THEN
31638 xla_exceptions_pkg.raise_message
31639 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_70');
31640 END AcctLineType_70;
31641 --
31642
31643 ---------------------------------------
31644 --
31645 -- PRIVATE FUNCTION
31646 -- AcctLineType_71
31647 --
31648 ---------------------------------------
31649 PROCEDURE AcctLineType_71 (
31650 p_application_id IN NUMBER
31651 ,p_event_id IN NUMBER
31652 ,p_calculate_acctd_flag IN VARCHAR2
31653 ,p_calculate_g_l_flag IN VARCHAR2
31654 ,p_actual_flag IN OUT VARCHAR2
31655 ,p_balance_type_code OUT VARCHAR2
31656 ,p_gain_or_loss_ref OUT VARCHAR2
31657
31658 --Allow Account Override Flag
31659 , p_source_4 IN VARCHAR2
31660 --Provider Cost/ Revenue CCID
31661 , p_source_8 IN NUMBER
31662 --Adjustment Receiver Cost/ Revenue CCID
31663 , p_source_10 IN NUMBER
31667 , p_source_22 IN VARCHAR2
31664 --Receiver Cost/ Revenue CCID
31665 , p_source_15 IN NUMBER
31666 --Reversing Line Flag
31668 --Actual Upgrade Credit Accounting Class
31669 , p_source_23 IN VARCHAR2
31670 --Entered Currency Code
31671 , p_source_25 IN VARCHAR2
31672 --Exchange Rate Date
31673 , p_source_27 IN DATE
31674 --Exchange Rate
31675 , p_source_28 IN NUMBER
31676 --Exchange Rate Type
31677 , p_source_29 IN VARCHAR2
31678 --Actual Upgrade Debit Accounting Class
31679 , p_source_30 IN VARCHAR2
31680 --Use Actuals Upgrade Attributes Flag
31681 , p_source_31 IN VARCHAR2
31682 --Expenditure Item ID
31683 , p_source_32 IN NUMBER
31684 --Cost Distribution Line Number
31685 , p_source_33 IN NUMBER
31686 --Line Type
31687 , p_source_34 IN VARCHAR2
31688 , p_source_34_meaning IN VARCHAR2
31689 --Reversed Line Number
31690 , p_source_35 IN NUMBER
31691 --Entered Amount
31692 , p_source_41 IN NUMBER
31693 --Accounted Amount
31694 , p_source_43 IN NUMBER
31695 --Transfer Amount Type
31696 , p_source_67 IN VARCHAR2
31697 , p_source_67_meaning IN VARCHAR2
31698 )
31699 IS
31700
31701 l_component_type VARCHAR2(80);
31702 l_component_code VARCHAR2(30);
31703 l_component_type_code VARCHAR2(1);
31704 l_component_appl_id INTEGER;
31705 l_amb_context_code VARCHAR2(30);
31706 l_entity_code VARCHAR2(30);
31707 l_event_class_code VARCHAR2(30);
31708 l_ae_header_id NUMBER;
31709 l_event_type_code VARCHAR2(30);
31710 l_line_definition_code VARCHAR2(30);
31711 l_line_definition_owner_code VARCHAR2(1);
31712 --
31713 -- adr variables
31714 l_segment VARCHAR2(30);
31715 l_ccid NUMBER;
31716 l_adr_transaction_coa_id NUMBER;
31717 l_adr_accounting_coa_id NUMBER;
31718 l_adr_flexfield_segment_code VARCHAR2(30);
31719 l_adr_flex_value_set_id NUMBER;
31720 l_adr_value_type_code VARCHAR2(30);
31721 l_adr_value_combination_id NUMBER;
31722 l_adr_value_segment_code VARCHAR2(30);
31723
31724 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
31725 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
31726 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
31727 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
31728
31729 -- 4262811 Variables ------------------------------------------------------------------------------------------
31730 l_entered_amt_idx NUMBER;
31731 l_accted_amt_idx NUMBER;
31732 l_acc_rev_flag VARCHAR2(1);
31733 l_accrual_line_num NUMBER;
31734 l_tmp_amt NUMBER;
31735 l_acc_rev_natural_side_code VARCHAR2(1);
31736
31737 l_num_entries NUMBER;
31738 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
31739 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
31740 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
31741 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
31742 l_recog_line_1 NUMBER;
31743 l_recog_line_2 NUMBER;
31744
31745 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
31746 l_bflow_applied_to_amt NUMBER; -- 5132302
31747 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
31748
31749 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
31750
31751 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
31752 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
31753
31754 ---------------------------------------------------------------------------------------------------------------
31755
31756
31757 --
31758 -- bulk performance
31759 --
31760 l_balance_type_code VARCHAR2(1);
31761 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
31762 l_log_module VARCHAR2(240);
31763
31764 --
31765 -- Upgrade strategy
31766 --
31767 l_actual_upg_option VARCHAR2(1);
31768 l_enc_upg_option VARCHAR2(1);
31769
31770 --
31771 BEGIN
31772 --
31773 IF g_log_enabled THEN
31774 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_71';
31775 END IF;
31776 --
31777 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
31778
31779 trace
31780 (p_msg => 'BEGIN of AcctLineType_71'
31781 ,p_level => C_LEVEL_PROCEDURE
31782 ,p_module => l_log_module);
31783
31784 END IF;
31785 --
31786 l_component_type := 'AMB_JLT';
31787 l_component_code := 'PA_RECEIVER_REVENUE';
31788 l_component_type_code := 'S';
31789 l_component_appl_id := 275;
31790 l_amb_context_code := 'DEFAULT';
31791 l_entity_code := 'EXPENDITURES';
31792 l_event_class_code := 'BORROWED_AND_LENT';
31793 l_event_type_code := 'BORROWED_AND_LENT_ALL';
31794 l_line_definition_owner_code := 'S';
31795 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
31796 --
31797 l_balance_type_code := 'A';
31798 l_segment := NULL;
31802 l_adr_flexfield_segment_code := NULL;
31799 l_ccid := NULL;
31800 l_adr_transaction_coa_id := NULL;
31801 l_adr_accounting_coa_id := NULL;
31803 l_adr_flex_value_set_id := NULL;
31804 l_adr_value_type_code := NULL;
31805 l_adr_value_combination_id := NULL;
31806 l_adr_value_segment_code := NULL;
31807
31808 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
31809 l_bflow_class_code := ''; -- 4219869 Business Flow
31810 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
31811 l_budgetary_control_flag := 'N';
31812
31813 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31814 l_bflow_applied_to_amt := NULL; -- 5132302
31815 l_entered_amt_idx := NULL; -- 4262811
31816 l_accted_amt_idx := NULL; -- 4262811
31817 l_acc_rev_flag := NULL; -- 4262811
31818 l_accrual_line_num := NULL; -- 4262811
31819 l_tmp_amt := NULL; -- 4262811
31820 --
31821
31822 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
31823 l_balance_type_code <> 'B' THEN
31824 IF NVL(p_source_67,'
31825 ') = 'REVENUE_TRANSFER'
31826 THEN
31827
31828 --
31829 XLA_AE_LINES_PKG.SetNewLine;
31830
31831 p_balance_type_code := l_balance_type_code;
31832 -- set the flag so later we will know whether the gain loss line needs to be created
31833
31834 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
31835 p_actual_flag :='A';
31836 END IF;
31837
31838 --
31839 -- bulk performance
31840 --
31841 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
31842 p_header_num => 0); -- 4262811
31843 --
31844 -- set accounting line options
31845 --
31846 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
31847 p_natural_side_code => 'D'
31848 , p_gain_or_loss_flag => 'N'
31849 , p_gl_transfer_mode_code => 'S'
31850 , p_acct_entry_type_code => 'A'
31851 , p_switch_side_flag => 'Y'
31852 , p_merge_duplicate_code => 'N'
31853 );
31854 --
31855 l_acc_rev_natural_side_code := 'C'; -- 4262811
31856 --
31857 --
31858 -- set accounting line type info
31859 --
31860 xla_ae_lines_pkg.SetAcctLineType
31861 (p_component_type => l_component_type
31862 ,p_event_type_code => l_event_type_code
31863 ,p_line_definition_owner_code => l_line_definition_owner_code
31864 ,p_line_definition_code => l_line_definition_code
31865 ,p_accounting_line_code => l_component_code
31866 ,p_accounting_line_type_code => l_component_type_code
31867 ,p_accounting_line_appl_id => l_component_appl_id
31868 ,p_amb_context_code => l_amb_context_code
31869 ,p_entity_code => l_entity_code
31870 ,p_event_class_code => l_event_class_code);
31871 --
31872 -- set accounting class
31873 --
31874 xla_ae_lines_pkg.SetAcctClass(
31875 p_accounting_class_code => 'RECEIVER_REVENUE'
31876 , p_ae_header_id => l_ae_header_id
31877 );
31878
31879 --
31880 -- set rounding class
31881 --
31882 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
31883 'RECEIVER_REVENUE';
31884
31885 --
31886 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
31887 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
31888 --
31889 -- bulk performance
31890 --
31891 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
31892
31893 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
31894 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
31895
31896 -- 4955764
31897 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
31898 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
31899
31900 -- 4458381 Public Sector Enh
31901
31902 --
31903 -- set accounting attributes for the line type
31904 --
31905 l_entered_amt_idx := 22;
31906 l_accted_amt_idx := 27;
31907 l_bflow_applied_to_amt_idx := NULL; -- 5132302
31908 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
31909 l_rec_acct_attrs.array_char_value(1) := p_source_22;
31910 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
31911 l_rec_acct_attrs.array_char_value(2) := p_source_23;
31912 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
31913 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
31914 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
31915 l_rec_acct_attrs.array_num_value(4) := p_source_41;
31916 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
31917 l_rec_acct_attrs.array_char_value(5) := p_source_25;
31918 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
31919 l_rec_acct_attrs.array_num_value(6) := p_source_43;
31923 l_rec_acct_attrs.array_num_value(8) := p_source_28;
31920 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
31921 l_rec_acct_attrs.array_date_value(7) := p_source_27;
31922 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
31924 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
31925 l_rec_acct_attrs.array_char_value(9) := p_source_29;
31926 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
31927 l_rec_acct_attrs.array_char_value(10) := p_source_30;
31928 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
31929 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
31930 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
31931 l_rec_acct_attrs.array_num_value(12) := p_source_41;
31932 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
31933 l_rec_acct_attrs.array_char_value(13) := p_source_25;
31934 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
31935 l_rec_acct_attrs.array_num_value(14) := p_source_43;
31936 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
31937 l_rec_acct_attrs.array_date_value(15) := p_source_27;
31938 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
31939 l_rec_acct_attrs.array_num_value(16) := p_source_28;
31940 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
31941 l_rec_acct_attrs.array_char_value(17) := p_source_29;
31942 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
31943 l_rec_acct_attrs.array_char_value(18) := p_source_31;
31944 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
31945 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
31946 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
31947 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
31948 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
31949 l_rec_acct_attrs.array_char_value(21) := p_source_34;
31950 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
31951 l_rec_acct_attrs.array_num_value(22) := p_source_41;
31952 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
31953 l_rec_acct_attrs.array_char_value(23) := p_source_25;
31954 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
31955 l_rec_acct_attrs.array_date_value(24) := p_source_27;
31956 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
31957 l_rec_acct_attrs.array_num_value(25) := p_source_28;
31958 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
31959 l_rec_acct_attrs.array_char_value(26) := p_source_29;
31960 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
31961 l_rec_acct_attrs.array_num_value(27) := p_source_43;
31962 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
31963 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
31964 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
31965 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
31966 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
31967 l_rec_acct_attrs.array_char_value(30) := p_source_34;
31968
31969 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
31970 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
31971
31972 ---------------------------------------------------------------------------------------------------------------
31973 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
31974 ---------------------------------------------------------------------------------------------------------------
31975 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
31976
31977 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31978 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
31979
31980 IF xla_accounting_cache_pkg.GetValueChar
31981 (p_source_code => 'LEDGER_CATEGORY_CODE'
31982 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
31983 AND l_bflow_method_code = 'PRIOR_ENTRY'
31984 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
31985 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
31986 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
31987 )
31988 THEN
31989 xla_ae_lines_pkg.BflowUpgEntry
31990 (p_business_method_code => l_bflow_method_code
31991 ,p_business_class_code => l_bflow_class_code
31992 ,p_balance_type => l_balance_type_code);
31993 ELSE
31994 NULL;
31995 -- No business flow processing for business flow method of NONE.
31996 END IF;
31997
31998 --
31999 -- call analytical criteria
32000 --
32001
32002 --
32003 -- call description
32004 --
32005 -- No description or it is inherited.
32006 --
32007 -- call ADRs
32008 -- Bug 4922099
32009 --
32010 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32011 (NVL(l_actual_upg_option, 'N') = 'O') OR
32012 (NVL(l_enc_upg_option, 'N') = 'O')
32013 )
32014 THEN
32015 NULL;
32016 --
32017 --
32018
32019 l_ccid := AcctDerRule_14(
32020 p_application_id => p_application_id
32024 , p_source_15 => p_source_15
32021 , p_ae_header_id => l_ae_header_id
32022 , p_source_4 => p_source_4
32023 , p_source_10 => p_source_10
32025 , x_transaction_coa_id => l_adr_transaction_coa_id
32026 , x_accounting_coa_id => l_adr_accounting_coa_id
32027 , x_value_type_code => l_adr_value_type_code
32028 , p_side => 'NA'
32029 );
32030
32031 xla_ae_lines_pkg.set_ccid(
32032 p_code_combination_id => l_ccid
32033 , p_value_type_code => l_adr_value_type_code
32034 , p_transaction_coa_id => l_adr_transaction_coa_id
32035 , p_accounting_coa_id => l_adr_accounting_coa_id
32036 , p_adr_code => 'PA_RECVR_COST_REV_ACCT_RULE'
32037 , p_adr_type_code => 'S'
32038 , p_component_type => l_component_type
32039 , p_component_code => l_component_code
32040 , p_component_type_code => l_component_type_code
32041 , p_component_appl_id => l_component_appl_id
32042 , p_amb_context_code => l_amb_context_code
32043 , p_side => 'NA'
32044 );
32045
32046
32047 --
32048 --
32049 END IF;
32050 --
32051 -- Bug 4922099
32052 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32053 (NVL(l_enc_upg_option, 'N') = 'O')
32054 ) AND
32055 (l_bflow_method_code = 'PRIOR_ENTRY')
32056 )
32057 THEN
32058 IF
32059 --
32060 1 = 2
32061 --
32062 THEN
32063 xla_accounting_err_pkg.build_message
32064 (p_appli_s_name => 'XLA'
32065 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32066 ,p_token_1 => 'LINE_NUMBER'
32067 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32068 ,p_token_2 => 'LINE_TYPE_NAME'
32069 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32070 l_component_type
32071 ,l_component_code
32072 ,l_component_type_code
32073 ,l_component_appl_id
32074 ,l_amb_context_code
32075 ,l_entity_code
32076 ,l_event_class_code
32077 )
32078 ,p_token_3 => 'OWNER'
32079 ,p_value_3 => xla_lookups_pkg.get_meaning(
32080 p_lookup_type => 'XLA_OWNER_TYPE'
32081 ,p_lookup_code => l_component_type_code
32082 )
32083 ,p_token_4 => 'PRODUCT_NAME'
32084 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32085 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32086 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32087 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32088 ,p_ae_header_id => NULL
32089 );
32090
32091 IF (C_LEVEL_ERROR>= g_log_level) THEN
32092 trace
32093 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32094 ,p_level => C_LEVEL_ERROR
32095 ,p_module => l_log_module);
32096 END IF;
32097 END IF;
32098 END IF;
32099 --
32100 --
32101 ------------------------------------------------------------------------------------------------
32102 -- 4219869 Business Flow
32103 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32104 -- Prior Entry. Currently, the following code is always generated.
32105 ------------------------------------------------------------------------------------------------
32106 XLA_AE_LINES_PKG.ValidateCurrentLine;
32107
32108 ------------------------------------------------------------------------------------
32109 -- 4219869 Business Flow
32110 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32111 ------------------------------------------------------------------------------------
32112 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32113
32114 ----------------------------------------------------------------------------------
32115 -- 4219869 Business Flow
32116 -- Update journal entry status -- Need to generate this within IF <condition>
32120 ,p_balance_type_code => l_balance_type_code
32117 ----------------------------------------------------------------------------------
32118 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32119 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32121 );
32122
32123 -------------------------------------------------------------------------------------------
32124 -- 4262811 - Generate the Accrual Reversal lines
32125 -------------------------------------------------------------------------------------------
32126 BEGIN
32127 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32128 (g_array_event(p_event_id).array_value_num('header_index'));
32129 IF l_acc_rev_flag IS NULL THEN
32130 l_acc_rev_flag := 'N';
32131 END IF;
32132 EXCEPTION
32133 WHEN OTHERS THEN
32134 l_acc_rev_flag := 'N';
32135 END;
32136 --
32137 IF (l_acc_rev_flag = 'Y') THEN
32138
32139 -- 4645092 ------------------------------------------------------------------------------
32140 -- To allow MPA report to determine if it should generate report process
32141 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32142 ------------------------------------------------------------------------------------------
32143
32144 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32145 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32146
32147 --
32148 -- Update the line information that should be overwritten
32149 --
32150 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32151 p_header_num => 1);
32152 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32153
32154 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32155
32156 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32157 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32158 END IF;
32159
32160 --
32161 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32162 --
32163 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32164 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32165 ELSE
32166 ---------------------------------------------------------------------------------------------------
32167 -- 4262811a Switch Sign
32168 ---------------------------------------------------------------------------------------------------
32169 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32170 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32171 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32172 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32173 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32174 -- 5132302
32175 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32176 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32177
32178 END IF;
32179
32180 -- 4955764
32181 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32182 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32183
32184
32185 XLA_AE_LINES_PKG.ValidateCurrentLine;
32186 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32187
32188 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32189 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32190 ,p_balance_type_code => l_balance_type_code);
32191
32192 END IF;
32193
32194 -----------------------------------------------------------------------------------------
32195 -- 4262811 Multiperiod Accounting
32196 -----------------------------------------------------------------------------------------
32197 -- No MPA option is assigned.
32198
32199
32200 END IF;
32201 END IF;
32202 --
32203
32204 --
32205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32206 trace
32207 (p_msg => 'END of AcctLineType_71'
32208 ,p_level => C_LEVEL_PROCEDURE
32209 ,p_module => l_log_module);
32210 END IF;
32211 --
32212 EXCEPTION
32213 WHEN xla_exceptions_pkg.application_exception THEN
32214 RAISE;
32215 WHEN OTHERS THEN
32216 xla_exceptions_pkg.raise_message
32217 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_71');
32218 END AcctLineType_71;
32219 --
32220
32221 ---------------------------------------
32222 --
32223 -- PRIVATE FUNCTION
32224 -- AcctLineType_72
32225 --
32226 ---------------------------------------
32227 PROCEDURE AcctLineType_72 (
32228 p_application_id IN NUMBER
32229 ,p_event_id IN NUMBER
32230 ,p_calculate_acctd_flag IN VARCHAR2
32234 ,p_gain_or_loss_ref OUT VARCHAR2
32231 ,p_calculate_g_l_flag IN VARCHAR2
32232 ,p_actual_flag IN OUT VARCHAR2
32233 ,p_balance_type_code OUT VARCHAR2
32235
32236 --Allow Account Override Flag
32237 , p_source_4 IN VARCHAR2
32238 --Provider Cost/ Revenue CCID
32239 , p_source_8 IN NUMBER
32240 --Adjustment Receiver Cost/ Revenue CCID
32241 , p_source_10 IN NUMBER
32242 --Receiver Cost/ Revenue CCID
32243 , p_source_15 IN NUMBER
32244 --Reversing Line Flag
32245 , p_source_22 IN VARCHAR2
32246 --Actual Upgrade Credit Accounting Class
32247 , p_source_23 IN VARCHAR2
32248 --Entered Currency Code
32249 , p_source_25 IN VARCHAR2
32250 --Exchange Rate Date
32251 , p_source_27 IN DATE
32252 --Exchange Rate
32253 , p_source_28 IN NUMBER
32254 --Exchange Rate Type
32255 , p_source_29 IN VARCHAR2
32256 --Actual Upgrade Debit Accounting Class
32257 , p_source_30 IN VARCHAR2
32258 --Use Actuals Upgrade Attributes Flag
32259 , p_source_31 IN VARCHAR2
32260 --Expenditure Item ID
32261 , p_source_32 IN NUMBER
32262 --Cost Distribution Line Number
32263 , p_source_33 IN NUMBER
32264 --Line Type
32265 , p_source_34 IN VARCHAR2
32266 , p_source_34_meaning IN VARCHAR2
32267 --Reversed Line Number
32268 , p_source_35 IN NUMBER
32269 --Entered Amount
32270 , p_source_41 IN NUMBER
32271 --Accounted Amount
32272 , p_source_43 IN NUMBER
32273 --Transfer Amount Type
32274 , p_source_67 IN VARCHAR2
32275 , p_source_67_meaning IN VARCHAR2
32276 )
32277 IS
32278
32279 l_component_type VARCHAR2(80);
32280 l_component_code VARCHAR2(30);
32281 l_component_type_code VARCHAR2(1);
32282 l_component_appl_id INTEGER;
32283 l_amb_context_code VARCHAR2(30);
32284 l_entity_code VARCHAR2(30);
32285 l_event_class_code VARCHAR2(30);
32286 l_ae_header_id NUMBER;
32287 l_event_type_code VARCHAR2(30);
32288 l_line_definition_code VARCHAR2(30);
32289 l_line_definition_owner_code VARCHAR2(1);
32290 --
32291 -- adr variables
32292 l_segment VARCHAR2(30);
32293 l_ccid NUMBER;
32294 l_adr_transaction_coa_id NUMBER;
32295 l_adr_accounting_coa_id NUMBER;
32296 l_adr_flexfield_segment_code VARCHAR2(30);
32297 l_adr_flex_value_set_id NUMBER;
32298 l_adr_value_type_code VARCHAR2(30);
32299 l_adr_value_combination_id NUMBER;
32300 l_adr_value_segment_code VARCHAR2(30);
32301
32302 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32303 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32304 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32305 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32306
32307 -- 4262811 Variables ------------------------------------------------------------------------------------------
32308 l_entered_amt_idx NUMBER;
32309 l_accted_amt_idx NUMBER;
32310 l_acc_rev_flag VARCHAR2(1);
32311 l_accrual_line_num NUMBER;
32312 l_tmp_amt NUMBER;
32313 l_acc_rev_natural_side_code VARCHAR2(1);
32314
32315 l_num_entries NUMBER;
32316 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32317 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32318 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32319 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32320 l_recog_line_1 NUMBER;
32321 l_recog_line_2 NUMBER;
32322
32323 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32324 l_bflow_applied_to_amt NUMBER; -- 5132302
32325 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32326
32327 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32328
32329 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32330 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32331
32332 ---------------------------------------------------------------------------------------------------------------
32333
32334
32335 --
32336 -- bulk performance
32337 --
32338 l_balance_type_code VARCHAR2(1);
32339 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32340 l_log_module VARCHAR2(240);
32341
32342 --
32343 -- Upgrade strategy
32344 --
32345 l_actual_upg_option VARCHAR2(1);
32346 l_enc_upg_option VARCHAR2(1);
32347
32348 --
32349 BEGIN
32350 --
32351 IF g_log_enabled THEN
32352 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_72';
32353 END IF;
32354 --
32355 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32356
32357 trace
32358 (p_msg => 'BEGIN of AcctLineType_72'
32359 ,p_level => C_LEVEL_PROCEDURE
32360 ,p_module => l_log_module);
32361
32362 END IF;
32363 --
32364 l_component_type := 'AMB_JLT';
32365 l_component_code := 'PA_RECEIVER_REVENUE_ADJ';
32369 l_entity_code := 'EXPENDITURES';
32366 l_component_type_code := 'S';
32367 l_component_appl_id := 275;
32368 l_amb_context_code := 'DEFAULT';
32370 l_event_class_code := 'BORROWED_AND_LENT_ADJ';
32371 l_event_type_code := 'BORROWED_AND_LENT_ADJ_ALL';
32372 l_line_definition_owner_code := 'S';
32373 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
32374 --
32375 l_balance_type_code := 'A';
32376 l_segment := NULL;
32377 l_ccid := NULL;
32378 l_adr_transaction_coa_id := NULL;
32379 l_adr_accounting_coa_id := NULL;
32380 l_adr_flexfield_segment_code := NULL;
32381 l_adr_flex_value_set_id := NULL;
32382 l_adr_value_type_code := NULL;
32383 l_adr_value_combination_id := NULL;
32384 l_adr_value_segment_code := NULL;
32385
32386 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
32387 l_bflow_class_code := ''; -- 4219869 Business Flow
32388 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32389 l_budgetary_control_flag := 'N';
32390
32391 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32392 l_bflow_applied_to_amt := NULL; -- 5132302
32393 l_entered_amt_idx := NULL; -- 4262811
32394 l_accted_amt_idx := NULL; -- 4262811
32395 l_acc_rev_flag := NULL; -- 4262811
32396 l_accrual_line_num := NULL; -- 4262811
32397 l_tmp_amt := NULL; -- 4262811
32398 --
32399
32400 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32401 l_balance_type_code <> 'B' THEN
32402 IF NVL(p_source_67,'
32403 ') = 'REVENUE_TRANSFER'
32404 THEN
32405
32406 --
32407 XLA_AE_LINES_PKG.SetNewLine;
32408
32409 p_balance_type_code := l_balance_type_code;
32410 -- set the flag so later we will know whether the gain loss line needs to be created
32411
32412 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32413 p_actual_flag :='A';
32414 END IF;
32415
32416 --
32417 -- bulk performance
32418 --
32419 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32420 p_header_num => 0); -- 4262811
32421 --
32422 -- set accounting line options
32423 --
32424 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32425 p_natural_side_code => 'D'
32426 , p_gain_or_loss_flag => 'N'
32427 , p_gl_transfer_mode_code => 'S'
32428 , p_acct_entry_type_code => 'A'
32429 , p_switch_side_flag => 'Y'
32430 , p_merge_duplicate_code => 'N'
32431 );
32432 --
32433 l_acc_rev_natural_side_code := 'C'; -- 4262811
32434 --
32435 --
32436 -- set accounting line type info
32437 --
32438 xla_ae_lines_pkg.SetAcctLineType
32439 (p_component_type => l_component_type
32440 ,p_event_type_code => l_event_type_code
32441 ,p_line_definition_owner_code => l_line_definition_owner_code
32442 ,p_line_definition_code => l_line_definition_code
32443 ,p_accounting_line_code => l_component_code
32444 ,p_accounting_line_type_code => l_component_type_code
32445 ,p_accounting_line_appl_id => l_component_appl_id
32446 ,p_amb_context_code => l_amb_context_code
32447 ,p_entity_code => l_entity_code
32448 ,p_event_class_code => l_event_class_code);
32449 --
32450 -- set accounting class
32451 --
32452 xla_ae_lines_pkg.SetAcctClass(
32453 p_accounting_class_code => 'RECEIVER_REVENUE'
32454 , p_ae_header_id => l_ae_header_id
32455 );
32456
32457 --
32458 -- set rounding class
32459 --
32460 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
32461 'RECEIVER_REVENUE';
32462
32463 --
32464 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
32465 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
32466 --
32467 -- bulk performance
32468 --
32469 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
32470
32471 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
32472 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
32473
32474 -- 4955764
32475 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32476 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
32477
32478 -- 4458381 Public Sector Enh
32479
32480 --
32481 -- set accounting attributes for the line type
32482 --
32483 l_entered_amt_idx := 22;
32484 l_accted_amt_idx := 27;
32485 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32486 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
32487 l_rec_acct_attrs.array_char_value(1) := p_source_22;
32488 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
32489 l_rec_acct_attrs.array_char_value(2) := p_source_23;
32490 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
32494 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
32491 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_8);
32492 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
32493 l_rec_acct_attrs.array_num_value(4) := p_source_41;
32495 l_rec_acct_attrs.array_char_value(5) := p_source_25;
32496 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
32497 l_rec_acct_attrs.array_num_value(6) := p_source_43;
32498 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
32499 l_rec_acct_attrs.array_date_value(7) := p_source_27;
32500 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
32501 l_rec_acct_attrs.array_num_value(8) := p_source_28;
32502 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
32503 l_rec_acct_attrs.array_char_value(9) := p_source_29;
32504 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
32505 l_rec_acct_attrs.array_char_value(10) := p_source_30;
32506 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
32507 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_15);
32508 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
32509 l_rec_acct_attrs.array_num_value(12) := p_source_41;
32510 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
32511 l_rec_acct_attrs.array_char_value(13) := p_source_25;
32512 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
32513 l_rec_acct_attrs.array_num_value(14) := p_source_43;
32514 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
32515 l_rec_acct_attrs.array_date_value(15) := p_source_27;
32516 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
32517 l_rec_acct_attrs.array_num_value(16) := p_source_28;
32518 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
32519 l_rec_acct_attrs.array_char_value(17) := p_source_29;
32520 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
32521 l_rec_acct_attrs.array_char_value(18) := p_source_31;
32522 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
32523 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
32524 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
32525 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
32526 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
32527 l_rec_acct_attrs.array_char_value(21) := p_source_34;
32528 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
32529 l_rec_acct_attrs.array_num_value(22) := p_source_41;
32530 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
32531 l_rec_acct_attrs.array_char_value(23) := p_source_25;
32532 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
32533 l_rec_acct_attrs.array_date_value(24) := p_source_27;
32534 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
32535 l_rec_acct_attrs.array_num_value(25) := p_source_28;
32536 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
32537 l_rec_acct_attrs.array_char_value(26) := p_source_29;
32538 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
32539 l_rec_acct_attrs.array_num_value(27) := p_source_43;
32540 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
32541 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
32542 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
32543 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
32544 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
32545 l_rec_acct_attrs.array_char_value(30) := p_source_34;
32546
32547 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
32548 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
32549
32550 ---------------------------------------------------------------------------------------------------------------
32551 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
32552 ---------------------------------------------------------------------------------------------------------------
32553 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
32554
32555 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32556 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
32557
32558 IF xla_accounting_cache_pkg.GetValueChar
32559 (p_source_code => 'LEDGER_CATEGORY_CODE'
32560 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
32561 AND l_bflow_method_code = 'PRIOR_ENTRY'
32562 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
32563 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
32564 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
32565 )
32566 THEN
32567 xla_ae_lines_pkg.BflowUpgEntry
32568 (p_business_method_code => l_bflow_method_code
32569 ,p_business_class_code => l_bflow_class_code
32570 ,p_balance_type => l_balance_type_code);
32571 ELSE
32572 NULL;
32573 -- No business flow processing for business flow method of NONE.
32574 END IF;
32575
32576 --
32577 -- call analytical criteria
32578 --
32579
32580 --
32581 -- call description
32582 --
32583 -- No description or it is inherited.
32584 --
32588 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
32585 -- call ADRs
32586 -- Bug 4922099
32587 --
32589 (NVL(l_actual_upg_option, 'N') = 'O') OR
32590 (NVL(l_enc_upg_option, 'N') = 'O')
32591 )
32592 THEN
32593 NULL;
32594 --
32595 --
32596
32597 l_ccid := AcctDerRule_9(
32598 p_application_id => p_application_id
32599 , p_ae_header_id => l_ae_header_id
32600 , p_source_4 => p_source_4
32601 , p_source_10 => p_source_10
32602 , x_transaction_coa_id => l_adr_transaction_coa_id
32603 , x_accounting_coa_id => l_adr_accounting_coa_id
32604 , x_value_type_code => l_adr_value_type_code
32605 , p_side => 'NA'
32606 );
32607
32608 xla_ae_lines_pkg.set_ccid(
32609 p_code_combination_id => l_ccid
32610 , p_value_type_code => l_adr_value_type_code
32611 , p_transaction_coa_id => l_adr_transaction_coa_id
32612 , p_accounting_coa_id => l_adr_accounting_coa_id
32613 , p_adr_code => 'PA_RCVR_COST_REV_ADJ_ACCT_RULE'
32614 , p_adr_type_code => 'S'
32615 , p_component_type => l_component_type
32616 , p_component_code => l_component_code
32617 , p_component_type_code => l_component_type_code
32618 , p_component_appl_id => l_component_appl_id
32619 , p_amb_context_code => l_amb_context_code
32620 , p_side => 'NA'
32621 );
32622
32623
32624 --
32625 --
32626 END IF;
32627 --
32628 -- Bug 4922099
32629 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
32630 (NVL(l_enc_upg_option, 'N') = 'O')
32631 ) AND
32632 (l_bflow_method_code = 'PRIOR_ENTRY')
32633 )
32634 THEN
32635 IF
32636 --
32637 1 = 2
32638 --
32639 THEN
32640 xla_accounting_err_pkg.build_message
32641 (p_appli_s_name => 'XLA'
32642 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32643 ,p_token_1 => 'LINE_NUMBER'
32644 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
32645 ,p_token_2 => 'LINE_TYPE_NAME'
32646 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
32647 l_component_type
32648 ,l_component_code
32649 ,l_component_type_code
32650 ,l_component_appl_id
32651 ,l_amb_context_code
32652 ,l_entity_code
32653 ,l_event_class_code
32654 )
32655 ,p_token_3 => 'OWNER'
32656 ,p_value_3 => xla_lookups_pkg.get_meaning(
32657 p_lookup_type => 'XLA_OWNER_TYPE'
32658 ,p_lookup_code => l_component_type_code
32659 )
32660 ,p_token_4 => 'PRODUCT_NAME'
32661 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
32662 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
32663 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
32664 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
32665 ,p_ae_header_id => NULL
32666 );
32667
32668 IF (C_LEVEL_ERROR>= g_log_level) THEN
32669 trace
32670 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
32671 ,p_level => C_LEVEL_ERROR
32672 ,p_module => l_log_module);
32673 END IF;
32674 END IF;
32675 END IF;
32676 --
32677 --
32678 ------------------------------------------------------------------------------------------------
32679 -- 4219869 Business Flow
32680 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
32681 -- Prior Entry. Currently, the following code is always generated.
32682 ------------------------------------------------------------------------------------------------
32683 XLA_AE_LINES_PKG.ValidateCurrentLine;
32684
32685 ------------------------------------------------------------------------------------
32686 -- 4219869 Business Flow
32687 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
32691 ----------------------------------------------------------------------------------
32688 ------------------------------------------------------------------------------------
32689 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32690
32692 -- 4219869 Business Flow
32693 -- Update journal entry status -- Need to generate this within IF <condition>
32694 ----------------------------------------------------------------------------------
32695 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32696 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
32697 ,p_balance_type_code => l_balance_type_code
32698 );
32699
32700 -------------------------------------------------------------------------------------------
32701 -- 4262811 - Generate the Accrual Reversal lines
32702 -------------------------------------------------------------------------------------------
32703 BEGIN
32704 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
32705 (g_array_event(p_event_id).array_value_num('header_index'));
32706 IF l_acc_rev_flag IS NULL THEN
32707 l_acc_rev_flag := 'N';
32708 END IF;
32709 EXCEPTION
32710 WHEN OTHERS THEN
32711 l_acc_rev_flag := 'N';
32712 END;
32713 --
32714 IF (l_acc_rev_flag = 'Y') THEN
32715
32716 -- 4645092 ------------------------------------------------------------------------------
32717 -- To allow MPA report to determine if it should generate report process
32718 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
32719 ------------------------------------------------------------------------------------------
32720
32721 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
32722 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
32723
32724 --
32725 -- Update the line information that should be overwritten
32726 --
32727 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
32728 p_header_num => 1);
32729 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
32730
32731 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
32732
32733 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
32734 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
32735 END IF;
32736
32737 --
32738 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
32739 --
32740 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
32741 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
32742 ELSE
32743 ---------------------------------------------------------------------------------------------------
32744 -- 4262811a Switch Sign
32745 ---------------------------------------------------------------------------------------------------
32746 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
32747 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32748 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32749 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
32750 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32751 -- 5132302
32752 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
32753 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
32754
32755 END IF;
32756
32757 -- 4955764
32758 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
32759 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
32760
32761
32762 XLA_AE_LINES_PKG.ValidateCurrentLine;
32763 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
32764
32765 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
32766 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
32767 ,p_balance_type_code => l_balance_type_code);
32768
32769 END IF;
32770
32771 -----------------------------------------------------------------------------------------
32772 -- 4262811 Multiperiod Accounting
32773 -----------------------------------------------------------------------------------------
32774 -- No MPA option is assigned.
32775
32776
32777 END IF;
32778 END IF;
32779 --
32780
32781 --
32782 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32783 trace
32784 (p_msg => 'END of AcctLineType_72'
32785 ,p_level => C_LEVEL_PROCEDURE
32786 ,p_module => l_log_module);
32787 END IF;
32788 --
32789 EXCEPTION
32790 WHEN xla_exceptions_pkg.application_exception THEN
32791 RAISE;
32792 WHEN OTHERS THEN
32793 xla_exceptions_pkg.raise_message
32794 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_72');
32795 END AcctLineType_72;
32796 --
32797
32801 -- AcctLineType_73
32798 ---------------------------------------
32799 --
32800 -- PRIVATE FUNCTION
32802 --
32803 ---------------------------------------
32804 PROCEDURE AcctLineType_73 (
32805 p_application_id IN NUMBER
32806 ,p_event_id IN NUMBER
32807 ,p_calculate_acctd_flag IN VARCHAR2
32808 ,p_calculate_g_l_flag IN VARCHAR2
32809 ,p_actual_flag IN OUT VARCHAR2
32810 ,p_balance_type_code OUT VARCHAR2
32811 ,p_gain_or_loss_ref OUT VARCHAR2
32812
32813 --Allow Account Override Flag
32814 , p_source_4 IN VARCHAR2
32815 --Provider Cost Destination CCID
32816 , p_source_11 IN NUMBER
32817 --Adjustment Provider Cost Destination CCID
32818 , p_source_12 IN NUMBER
32819 --Provider Cost Source CCID
32820 , p_source_13 IN NUMBER
32821 --Reversing Line Flag
32822 , p_source_22 IN VARCHAR2
32823 --Actual Upgrade Credit Accounting Class
32824 , p_source_23 IN VARCHAR2
32825 --Entered Currency Code
32826 , p_source_25 IN VARCHAR2
32827 --Exchange Rate Date
32828 , p_source_27 IN DATE
32829 --Exchange Rate
32830 , p_source_28 IN NUMBER
32831 --Exchange Rate Type
32832 , p_source_29 IN VARCHAR2
32833 --Actual Upgrade Debit Accounting Class
32834 , p_source_30 IN VARCHAR2
32835 --Use Actuals Upgrade Attributes Flag
32836 , p_source_31 IN VARCHAR2
32837 --Expenditure Item ID
32838 , p_source_32 IN NUMBER
32839 --Cost Distribution Line Number
32840 , p_source_33 IN NUMBER
32841 --Line Type
32842 , p_source_34 IN VARCHAR2
32843 , p_source_34_meaning IN VARCHAR2
32844 --Reversed Line Number
32845 , p_source_35 IN NUMBER
32846 --Entered Amount
32847 , p_source_41 IN NUMBER
32848 --Accounted Amount
32849 , p_source_43 IN NUMBER
32850 )
32851 IS
32852
32853 l_component_type VARCHAR2(80);
32854 l_component_code VARCHAR2(30);
32855 l_component_type_code VARCHAR2(1);
32856 l_component_appl_id INTEGER;
32857 l_amb_context_code VARCHAR2(30);
32858 l_entity_code VARCHAR2(30);
32859 l_event_class_code VARCHAR2(30);
32860 l_ae_header_id NUMBER;
32861 l_event_type_code VARCHAR2(30);
32862 l_line_definition_code VARCHAR2(30);
32863 l_line_definition_owner_code VARCHAR2(1);
32864 --
32865 -- adr variables
32866 l_segment VARCHAR2(30);
32867 l_ccid NUMBER;
32868 l_adr_transaction_coa_id NUMBER;
32869 l_adr_accounting_coa_id NUMBER;
32870 l_adr_flexfield_segment_code VARCHAR2(30);
32871 l_adr_flex_value_set_id NUMBER;
32872 l_adr_value_type_code VARCHAR2(30);
32873 l_adr_value_combination_id NUMBER;
32874 l_adr_value_segment_code VARCHAR2(30);
32875
32876 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
32877 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
32878 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
32879 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
32880
32881 -- 4262811 Variables ------------------------------------------------------------------------------------------
32882 l_entered_amt_idx NUMBER;
32883 l_accted_amt_idx NUMBER;
32884 l_acc_rev_flag VARCHAR2(1);
32885 l_accrual_line_num NUMBER;
32886 l_tmp_amt NUMBER;
32887 l_acc_rev_natural_side_code VARCHAR2(1);
32888
32889 l_num_entries NUMBER;
32890 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
32891 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
32892 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
32893 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
32894 l_recog_line_1 NUMBER;
32895 l_recog_line_2 NUMBER;
32896
32897 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
32898 l_bflow_applied_to_amt NUMBER; -- 5132302
32899 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
32900
32901 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
32902
32903 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
32904 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
32905
32906 ---------------------------------------------------------------------------------------------------------------
32907
32908
32909 --
32910 -- bulk performance
32911 --
32912 l_balance_type_code VARCHAR2(1);
32913 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
32914 l_log_module VARCHAR2(240);
32915
32916 --
32917 -- Upgrade strategy
32918 --
32919 l_actual_upg_option VARCHAR2(1);
32920 l_enc_upg_option VARCHAR2(1);
32921
32922 --
32923 BEGIN
32924 --
32925 IF g_log_enabled THEN
32926 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_73';
32927 END IF;
32928 --
32929 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
32930
32931 trace
32932 (p_msg => 'BEGIN of AcctLineType_73'
32936 END IF;
32933 ,p_level => C_LEVEL_PROCEDURE
32934 ,p_module => l_log_module);
32935
32937 --
32938 l_component_type := 'AMB_JLT';
32939 l_component_code := 'PA_RECLASS_DEST';
32940 l_component_type_code := 'S';
32941 l_component_appl_id := 275;
32942 l_amb_context_code := 'DEFAULT';
32943 l_entity_code := 'EXPENDITURES';
32944 l_event_class_code := 'PRVDR_RECVR_RECLASS';
32945 l_event_type_code := 'PRVDR_RECVR_RECLASS_ALL';
32946 l_line_definition_owner_code := 'S';
32947 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
32948 --
32949 l_balance_type_code := 'A';
32950 l_segment := NULL;
32951 l_ccid := NULL;
32952 l_adr_transaction_coa_id := NULL;
32953 l_adr_accounting_coa_id := NULL;
32954 l_adr_flexfield_segment_code := NULL;
32955 l_adr_flex_value_set_id := NULL;
32956 l_adr_value_type_code := NULL;
32957 l_adr_value_combination_id := NULL;
32958 l_adr_value_segment_code := NULL;
32959
32960 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
32961 l_bflow_class_code := ''; -- 4219869 Business Flow
32962 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
32963 l_budgetary_control_flag := 'N';
32964
32965 l_bflow_applied_to_amt_idx := NULL; -- 5132302
32966 l_bflow_applied_to_amt := NULL; -- 5132302
32967 l_entered_amt_idx := NULL; -- 4262811
32968 l_accted_amt_idx := NULL; -- 4262811
32969 l_acc_rev_flag := NULL; -- 4262811
32970 l_accrual_line_num := NULL; -- 4262811
32971 l_tmp_amt := NULL; -- 4262811
32972 --
32973
32974 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
32975 l_balance_type_code <> 'B' THEN
32976
32977 --
32978 XLA_AE_LINES_PKG.SetNewLine;
32979
32980 p_balance_type_code := l_balance_type_code;
32981 -- set the flag so later we will know whether the gain loss line needs to be created
32982
32983 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
32984 p_actual_flag :='A';
32985 END IF;
32986
32987 --
32988 -- bulk performance
32989 --
32990 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
32991 p_header_num => 0); -- 4262811
32992 --
32993 -- set accounting line options
32994 --
32995 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
32996 p_natural_side_code => 'D'
32997 , p_gain_or_loss_flag => 'N'
32998 , p_gl_transfer_mode_code => 'S'
32999 , p_acct_entry_type_code => 'A'
33000 , p_switch_side_flag => 'Y'
33001 , p_merge_duplicate_code => 'N'
33002 );
33003 --
33004 l_acc_rev_natural_side_code := 'C'; -- 4262811
33005 --
33006 --
33007 -- set accounting line type info
33008 --
33009 xla_ae_lines_pkg.SetAcctLineType
33010 (p_component_type => l_component_type
33011 ,p_event_type_code => l_event_type_code
33012 ,p_line_definition_owner_code => l_line_definition_owner_code
33013 ,p_line_definition_code => l_line_definition_code
33014 ,p_accounting_line_code => l_component_code
33015 ,p_accounting_line_type_code => l_component_type_code
33016 ,p_accounting_line_appl_id => l_component_appl_id
33017 ,p_amb_context_code => l_amb_context_code
33018 ,p_entity_code => l_entity_code
33019 ,p_event_class_code => l_event_class_code);
33020 --
33021 -- set accounting class
33022 --
33023 xla_ae_lines_pkg.SetAcctClass(
33024 p_accounting_class_code => 'RECLASS_DESTINATION'
33025 , p_ae_header_id => l_ae_header_id
33026 );
33027
33028 --
33029 -- set rounding class
33030 --
33031 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33032 'RECLASS_DESTINATION';
33033
33034 --
33035 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33036 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33037 --
33038 -- bulk performance
33039 --
33040 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33041
33042 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33043 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33044
33045 -- 4955764
33046 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33047 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33048
33049 -- 4458381 Public Sector Enh
33050
33051 --
33052 -- set accounting attributes for the line type
33053 --
33054 l_entered_amt_idx := 22;
33055 l_accted_amt_idx := 27;
33056 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33057 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33058 l_rec_acct_attrs.array_char_value(1) := p_source_22;
33062 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_13);
33059 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
33060 l_rec_acct_attrs.array_char_value(2) := p_source_23;
33061 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
33063 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
33064 l_rec_acct_attrs.array_num_value(4) := p_source_41;
33065 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
33066 l_rec_acct_attrs.array_char_value(5) := p_source_25;
33067 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
33068 l_rec_acct_attrs.array_num_value(6) := p_source_43;
33069 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
33070 l_rec_acct_attrs.array_date_value(7) := p_source_27;
33071 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
33072 l_rec_acct_attrs.array_num_value(8) := p_source_28;
33073 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
33074 l_rec_acct_attrs.array_char_value(9) := p_source_29;
33075 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
33076 l_rec_acct_attrs.array_char_value(10) := p_source_30;
33077 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
33078 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_11);
33079 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
33080 l_rec_acct_attrs.array_num_value(12) := p_source_41;
33081 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
33082 l_rec_acct_attrs.array_char_value(13) := p_source_25;
33083 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
33084 l_rec_acct_attrs.array_num_value(14) := p_source_43;
33085 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
33086 l_rec_acct_attrs.array_date_value(15) := p_source_27;
33087 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
33088 l_rec_acct_attrs.array_num_value(16) := p_source_28;
33089 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
33090 l_rec_acct_attrs.array_char_value(17) := p_source_29;
33091 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
33092 l_rec_acct_attrs.array_char_value(18) := p_source_31;
33093 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
33094 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
33095 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
33096 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
33097 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
33098 l_rec_acct_attrs.array_char_value(21) := p_source_34;
33099 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
33100 l_rec_acct_attrs.array_num_value(22) := p_source_41;
33101 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
33102 l_rec_acct_attrs.array_char_value(23) := p_source_25;
33103 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
33104 l_rec_acct_attrs.array_date_value(24) := p_source_27;
33105 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
33106 l_rec_acct_attrs.array_num_value(25) := p_source_28;
33107 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
33108 l_rec_acct_attrs.array_char_value(26) := p_source_29;
33109 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
33110 l_rec_acct_attrs.array_num_value(27) := p_source_43;
33111 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
33112 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
33113 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
33114 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
33115 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
33116 l_rec_acct_attrs.array_char_value(30) := p_source_34;
33117
33118 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33119 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33120
33121 ---------------------------------------------------------------------------------------------------------------
33122 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33123 ---------------------------------------------------------------------------------------------------------------
33124 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33125
33126 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33127 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33128
33129 IF xla_accounting_cache_pkg.GetValueChar
33130 (p_source_code => 'LEDGER_CATEGORY_CODE'
33131 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33132 AND l_bflow_method_code = 'PRIOR_ENTRY'
33133 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33134 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33135 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33136 )
33137 THEN
33138 xla_ae_lines_pkg.BflowUpgEntry
33139 (p_business_method_code => l_bflow_method_code
33140 ,p_business_class_code => l_bflow_class_code
33141 ,p_balance_type => l_balance_type_code);
33142 ELSE
33143 NULL;
33144 -- No business flow processing for business flow method of NONE.
33145 END IF;
33146
33147 --
33148 -- call analytical criteria
33152 -- call description
33149 --
33150
33151 --
33153 --
33154 -- No description or it is inherited.
33155 --
33156 -- call ADRs
33157 -- Bug 4922099
33158 --
33159 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33160 (NVL(l_actual_upg_option, 'N') = 'O') OR
33161 (NVL(l_enc_upg_option, 'N') = 'O')
33162 )
33163 THEN
33164 NULL;
33165 --
33166 --
33167
33168 l_ccid := AcctDerRule_10(
33169 p_application_id => p_application_id
33170 , p_ae_header_id => l_ae_header_id
33171 , p_source_4 => p_source_4
33172 , p_source_11 => p_source_11
33173 , p_source_12 => p_source_12
33174 , x_transaction_coa_id => l_adr_transaction_coa_id
33175 , x_accounting_coa_id => l_adr_accounting_coa_id
33176 , x_value_type_code => l_adr_value_type_code
33177 , p_side => 'NA'
33178 );
33179
33180 xla_ae_lines_pkg.set_ccid(
33181 p_code_combination_id => l_ccid
33182 , p_value_type_code => l_adr_value_type_code
33183 , p_transaction_coa_id => l_adr_transaction_coa_id
33184 , p_accounting_coa_id => l_adr_accounting_coa_id
33185 , p_adr_code => 'PA_RECLASS_DEST_ACCT_RULE'
33186 , p_adr_type_code => 'S'
33187 , p_component_type => l_component_type
33188 , p_component_code => l_component_code
33189 , p_component_type_code => l_component_type_code
33190 , p_component_appl_id => l_component_appl_id
33191 , p_amb_context_code => l_amb_context_code
33192 , p_side => 'NA'
33193 );
33194
33195
33196 --
33197 --
33198 END IF;
33199 --
33200 -- Bug 4922099
33201 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33202 (NVL(l_enc_upg_option, 'N') = 'O')
33203 ) AND
33204 (l_bflow_method_code = 'PRIOR_ENTRY')
33205 )
33206 THEN
33207 IF
33208 --
33209 1 = 2
33210 --
33211 THEN
33212 xla_accounting_err_pkg.build_message
33213 (p_appli_s_name => 'XLA'
33214 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33215 ,p_token_1 => 'LINE_NUMBER'
33216 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33217 ,p_token_2 => 'LINE_TYPE_NAME'
33218 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33219 l_component_type
33220 ,l_component_code
33221 ,l_component_type_code
33222 ,l_component_appl_id
33223 ,l_amb_context_code
33224 ,l_entity_code
33225 ,l_event_class_code
33226 )
33227 ,p_token_3 => 'OWNER'
33228 ,p_value_3 => xla_lookups_pkg.get_meaning(
33229 p_lookup_type => 'XLA_OWNER_TYPE'
33230 ,p_lookup_code => l_component_type_code
33231 )
33232 ,p_token_4 => 'PRODUCT_NAME'
33233 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33234 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33235 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33236 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33237 ,p_ae_header_id => NULL
33238 );
33239
33240 IF (C_LEVEL_ERROR>= g_log_level) THEN
33241 trace
33242 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33243 ,p_level => C_LEVEL_ERROR
33244 ,p_module => l_log_module);
33245 END IF;
33246 END IF;
33247 END IF;
33248 --
33249 --
33250 ------------------------------------------------------------------------------------------------
33251 -- 4219869 Business Flow
33252 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33253 -- Prior Entry. Currently, the following code is always generated.
33254 ------------------------------------------------------------------------------------------------
33255 XLA_AE_LINES_PKG.ValidateCurrentLine;
33256
33260 ------------------------------------------------------------------------------------
33257 ------------------------------------------------------------------------------------
33258 -- 4219869 Business Flow
33259 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33261 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33262
33263 ----------------------------------------------------------------------------------
33264 -- 4219869 Business Flow
33265 -- Update journal entry status -- Need to generate this within IF <condition>
33266 ----------------------------------------------------------------------------------
33267 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33268 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33269 ,p_balance_type_code => l_balance_type_code
33270 );
33271
33272 -------------------------------------------------------------------------------------------
33273 -- 4262811 - Generate the Accrual Reversal lines
33274 -------------------------------------------------------------------------------------------
33275 BEGIN
33276 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33277 (g_array_event(p_event_id).array_value_num('header_index'));
33278 IF l_acc_rev_flag IS NULL THEN
33279 l_acc_rev_flag := 'N';
33280 END IF;
33281 EXCEPTION
33282 WHEN OTHERS THEN
33283 l_acc_rev_flag := 'N';
33284 END;
33285 --
33286 IF (l_acc_rev_flag = 'Y') THEN
33287
33288 -- 4645092 ------------------------------------------------------------------------------
33289 -- To allow MPA report to determine if it should generate report process
33290 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33291 ------------------------------------------------------------------------------------------
33292
33293 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33294 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33295
33296 --
33297 -- Update the line information that should be overwritten
33298 --
33299 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33300 p_header_num => 1);
33301 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33302
33303 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33304
33305 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33306 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33307 END IF;
33308
33309 --
33310 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33311 --
33312 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33313 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33314 ELSE
33315 ---------------------------------------------------------------------------------------------------
33316 -- 4262811a Switch Sign
33317 ---------------------------------------------------------------------------------------------------
33318 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33319 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33320 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33321 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33322 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33323 -- 5132302
33324 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33325 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33326
33327 END IF;
33328
33329 -- 4955764
33330 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33331 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33332
33333
33334 XLA_AE_LINES_PKG.ValidateCurrentLine;
33335 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33336
33337 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33338 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33339 ,p_balance_type_code => l_balance_type_code);
33340
33341 END IF;
33342
33343 -----------------------------------------------------------------------------------------
33344 -- 4262811 Multiperiod Accounting
33345 -----------------------------------------------------------------------------------------
33346 -- No MPA option is assigned.
33347
33348
33349 END IF;
33350 --
33351
33352 --
33353 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33354 trace
33355 (p_msg => 'END of AcctLineType_73'
33356 ,p_level => C_LEVEL_PROCEDURE
33357 ,p_module => l_log_module);
33358 END IF;
33359 --
33360 EXCEPTION
33361 WHEN xla_exceptions_pkg.application_exception THEN
33362 RAISE;
33363 WHEN OTHERS THEN
33367 --
33364 xla_exceptions_pkg.raise_message
33365 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_73');
33366 END AcctLineType_73;
33368
33369 ---------------------------------------
33370 --
33371 -- PRIVATE FUNCTION
33372 -- AcctLineType_74
33373 --
33374 ---------------------------------------
33375 PROCEDURE AcctLineType_74 (
33376 p_application_id IN NUMBER
33377 ,p_event_id IN NUMBER
33378 ,p_calculate_acctd_flag IN VARCHAR2
33379 ,p_calculate_g_l_flag IN VARCHAR2
33380 ,p_actual_flag IN OUT VARCHAR2
33381 ,p_balance_type_code OUT VARCHAR2
33382 ,p_gain_or_loss_ref OUT VARCHAR2
33383
33384 --Allow Account Override Flag
33385 , p_source_4 IN VARCHAR2
33386 --Provider Cost Destination CCID
33387 , p_source_11 IN NUMBER
33388 --Adjustment Provider Cost Destination CCID
33389 , p_source_12 IN NUMBER
33390 --Provider Cost Source CCID
33391 , p_source_13 IN NUMBER
33392 --Reversing Line Flag
33393 , p_source_22 IN VARCHAR2
33394 --Actual Upgrade Credit Accounting Class
33395 , p_source_23 IN VARCHAR2
33396 --Entered Currency Code
33397 , p_source_25 IN VARCHAR2
33398 --Exchange Rate Date
33399 , p_source_27 IN DATE
33400 --Exchange Rate
33401 , p_source_28 IN NUMBER
33402 --Exchange Rate Type
33403 , p_source_29 IN VARCHAR2
33404 --Actual Upgrade Debit Accounting Class
33405 , p_source_30 IN VARCHAR2
33406 --Use Actuals Upgrade Attributes Flag
33407 , p_source_31 IN VARCHAR2
33408 --Expenditure Item ID
33409 , p_source_32 IN NUMBER
33410 --Cost Distribution Line Number
33411 , p_source_33 IN NUMBER
33412 --Line Type
33413 , p_source_34 IN VARCHAR2
33414 , p_source_34_meaning IN VARCHAR2
33415 --Reversed Line Number
33416 , p_source_35 IN NUMBER
33417 --Entered Amount
33418 , p_source_41 IN NUMBER
33419 --Accounted Amount
33420 , p_source_43 IN NUMBER
33421 )
33422 IS
33423
33424 l_component_type VARCHAR2(80);
33425 l_component_code VARCHAR2(30);
33426 l_component_type_code VARCHAR2(1);
33427 l_component_appl_id INTEGER;
33428 l_amb_context_code VARCHAR2(30);
33429 l_entity_code VARCHAR2(30);
33430 l_event_class_code VARCHAR2(30);
33431 l_ae_header_id NUMBER;
33432 l_event_type_code VARCHAR2(30);
33433 l_line_definition_code VARCHAR2(30);
33434 l_line_definition_owner_code VARCHAR2(1);
33435 --
33436 -- adr variables
33437 l_segment VARCHAR2(30);
33438 l_ccid NUMBER;
33439 l_adr_transaction_coa_id NUMBER;
33440 l_adr_accounting_coa_id NUMBER;
33441 l_adr_flexfield_segment_code VARCHAR2(30);
33442 l_adr_flex_value_set_id NUMBER;
33443 l_adr_value_type_code VARCHAR2(30);
33444 l_adr_value_combination_id NUMBER;
33445 l_adr_value_segment_code VARCHAR2(30);
33446
33447 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
33448 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
33449 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
33450 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
33451
33452 -- 4262811 Variables ------------------------------------------------------------------------------------------
33453 l_entered_amt_idx NUMBER;
33454 l_accted_amt_idx NUMBER;
33455 l_acc_rev_flag VARCHAR2(1);
33456 l_accrual_line_num NUMBER;
33457 l_tmp_amt NUMBER;
33458 l_acc_rev_natural_side_code VARCHAR2(1);
33459
33460 l_num_entries NUMBER;
33461 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
33462 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
33463 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
33464 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
33465 l_recog_line_1 NUMBER;
33466 l_recog_line_2 NUMBER;
33467
33468 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
33469 l_bflow_applied_to_amt NUMBER; -- 5132302
33470 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
33471
33472 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
33473
33474 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
33475 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
33476
33477 ---------------------------------------------------------------------------------------------------------------
33478
33479
33480 --
33481 -- bulk performance
33482 --
33483 l_balance_type_code VARCHAR2(1);
33484 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
33485 l_log_module VARCHAR2(240);
33486
33487 --
33488 -- Upgrade strategy
33489 --
33490 l_actual_upg_option VARCHAR2(1);
33491 l_enc_upg_option VARCHAR2(1);
33492
33493 --
33494 BEGIN
33495 --
33496 IF g_log_enabled THEN
33500 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33497 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_74';
33498 END IF;
33499 --
33501
33502 trace
33503 (p_msg => 'BEGIN of AcctLineType_74'
33504 ,p_level => C_LEVEL_PROCEDURE
33505 ,p_module => l_log_module);
33506
33507 END IF;
33508 --
33509 l_component_type := 'AMB_JLT';
33510 l_component_code := 'PA_RECLASS_DEST_ADJ';
33511 l_component_type_code := 'S';
33512 l_component_appl_id := 275;
33513 l_amb_context_code := 'DEFAULT';
33514 l_entity_code := 'EXPENDITURES';
33515 l_event_class_code := 'PRVDR_RECVR_RECLASS_ADJ';
33516 l_event_type_code := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
33517 l_line_definition_owner_code := 'S';
33518 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
33519 --
33520 l_balance_type_code := 'A';
33521 l_segment := NULL;
33522 l_ccid := NULL;
33523 l_adr_transaction_coa_id := NULL;
33524 l_adr_accounting_coa_id := NULL;
33525 l_adr_flexfield_segment_code := NULL;
33526 l_adr_flex_value_set_id := NULL;
33527 l_adr_value_type_code := NULL;
33528 l_adr_value_combination_id := NULL;
33529 l_adr_value_segment_code := NULL;
33530
33531 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
33532 l_bflow_class_code := ''; -- 4219869 Business Flow
33533 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
33534 l_budgetary_control_flag := 'N';
33535
33536 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33537 l_bflow_applied_to_amt := NULL; -- 5132302
33538 l_entered_amt_idx := NULL; -- 4262811
33539 l_accted_amt_idx := NULL; -- 4262811
33540 l_acc_rev_flag := NULL; -- 4262811
33541 l_accrual_line_num := NULL; -- 4262811
33542 l_tmp_amt := NULL; -- 4262811
33543 --
33544
33545 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
33546 l_balance_type_code <> 'B' THEN
33547
33548 --
33549 XLA_AE_LINES_PKG.SetNewLine;
33550
33551 p_balance_type_code := l_balance_type_code;
33552 -- set the flag so later we will know whether the gain loss line needs to be created
33553
33554 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
33555 p_actual_flag :='A';
33556 END IF;
33557
33558 --
33559 -- bulk performance
33560 --
33561 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
33562 p_header_num => 0); -- 4262811
33563 --
33564 -- set accounting line options
33565 --
33566 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
33567 p_natural_side_code => 'D'
33568 , p_gain_or_loss_flag => 'N'
33569 , p_gl_transfer_mode_code => 'S'
33570 , p_acct_entry_type_code => 'A'
33571 , p_switch_side_flag => 'Y'
33572 , p_merge_duplicate_code => 'N'
33573 );
33574 --
33575 l_acc_rev_natural_side_code := 'C'; -- 4262811
33576 --
33577 --
33578 -- set accounting line type info
33579 --
33580 xla_ae_lines_pkg.SetAcctLineType
33581 (p_component_type => l_component_type
33582 ,p_event_type_code => l_event_type_code
33583 ,p_line_definition_owner_code => l_line_definition_owner_code
33584 ,p_line_definition_code => l_line_definition_code
33585 ,p_accounting_line_code => l_component_code
33586 ,p_accounting_line_type_code => l_component_type_code
33587 ,p_accounting_line_appl_id => l_component_appl_id
33588 ,p_amb_context_code => l_amb_context_code
33589 ,p_entity_code => l_entity_code
33590 ,p_event_class_code => l_event_class_code);
33591 --
33592 -- set accounting class
33593 --
33594 xla_ae_lines_pkg.SetAcctClass(
33595 p_accounting_class_code => 'RECLASS_DESTINATION'
33596 , p_ae_header_id => l_ae_header_id
33597 );
33598
33599 --
33600 -- set rounding class
33601 --
33602 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
33603 'RECLASS_DESTINATION';
33604
33605 --
33606 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
33607 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
33608 --
33609 -- bulk performance
33610 --
33611 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
33612
33613 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
33614 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
33615
33616 -- 4955764
33617 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33618 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
33619
33620 -- 4458381 Public Sector Enh
33621
33622 --
33623 -- set accounting attributes for the line type
33624 --
33625 l_entered_amt_idx := 22;
33629 l_rec_acct_attrs.array_char_value(1) := p_source_22;
33626 l_accted_amt_idx := 27;
33627 l_bflow_applied_to_amt_idx := NULL; -- 5132302
33628 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
33630 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
33631 l_rec_acct_attrs.array_char_value(2) := p_source_23;
33632 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
33633 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_13);
33634 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
33635 l_rec_acct_attrs.array_num_value(4) := p_source_41;
33636 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
33637 l_rec_acct_attrs.array_char_value(5) := p_source_25;
33638 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
33639 l_rec_acct_attrs.array_num_value(6) := p_source_43;
33640 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
33641 l_rec_acct_attrs.array_date_value(7) := p_source_27;
33642 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
33643 l_rec_acct_attrs.array_num_value(8) := p_source_28;
33644 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
33645 l_rec_acct_attrs.array_char_value(9) := p_source_29;
33646 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
33647 l_rec_acct_attrs.array_char_value(10) := p_source_30;
33648 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
33649 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_11);
33650 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
33651 l_rec_acct_attrs.array_num_value(12) := p_source_41;
33652 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
33653 l_rec_acct_attrs.array_char_value(13) := p_source_25;
33654 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
33655 l_rec_acct_attrs.array_num_value(14) := p_source_43;
33656 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
33657 l_rec_acct_attrs.array_date_value(15) := p_source_27;
33658 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
33659 l_rec_acct_attrs.array_num_value(16) := p_source_28;
33660 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
33661 l_rec_acct_attrs.array_char_value(17) := p_source_29;
33662 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
33663 l_rec_acct_attrs.array_char_value(18) := p_source_31;
33664 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
33665 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
33666 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
33667 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
33668 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
33669 l_rec_acct_attrs.array_char_value(21) := p_source_34;
33670 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
33671 l_rec_acct_attrs.array_num_value(22) := p_source_41;
33672 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
33673 l_rec_acct_attrs.array_char_value(23) := p_source_25;
33674 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
33675 l_rec_acct_attrs.array_date_value(24) := p_source_27;
33676 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
33677 l_rec_acct_attrs.array_num_value(25) := p_source_28;
33678 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
33679 l_rec_acct_attrs.array_char_value(26) := p_source_29;
33680 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
33681 l_rec_acct_attrs.array_num_value(27) := p_source_43;
33682 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
33683 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
33684 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
33685 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
33686 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
33687 l_rec_acct_attrs.array_char_value(30) := p_source_34;
33688
33689 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
33690 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
33691
33692 ---------------------------------------------------------------------------------------------------------------
33693 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
33694 ---------------------------------------------------------------------------------------------------------------
33695 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
33696
33697 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33698 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
33699
33700 IF xla_accounting_cache_pkg.GetValueChar
33701 (p_source_code => 'LEDGER_CATEGORY_CODE'
33702 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
33703 AND l_bflow_method_code = 'PRIOR_ENTRY'
33704 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
33705 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
33706 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
33707 )
33708 THEN
33709 xla_ae_lines_pkg.BflowUpgEntry
33710 (p_business_method_code => l_bflow_method_code
33711 ,p_business_class_code => l_bflow_class_code
33715 -- No business flow processing for business flow method of NONE.
33712 ,p_balance_type => l_balance_type_code);
33713 ELSE
33714 NULL;
33716 END IF;
33717
33718 --
33719 -- call analytical criteria
33720 --
33721
33722 --
33723 -- call description
33724 --
33725 -- No description or it is inherited.
33726 --
33727 -- call ADRs
33728 -- Bug 4922099
33729 --
33730 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
33731 (NVL(l_actual_upg_option, 'N') = 'O') OR
33732 (NVL(l_enc_upg_option, 'N') = 'O')
33733 )
33734 THEN
33735 NULL;
33736 --
33737 --
33738
33739 l_ccid := AcctDerRule_11(
33740 p_application_id => p_application_id
33741 , p_ae_header_id => l_ae_header_id
33742 , p_source_4 => p_source_4
33743 , p_source_12 => p_source_12
33744 , x_transaction_coa_id => l_adr_transaction_coa_id
33745 , x_accounting_coa_id => l_adr_accounting_coa_id
33746 , x_value_type_code => l_adr_value_type_code
33747 , p_side => 'NA'
33748 );
33749
33750 xla_ae_lines_pkg.set_ccid(
33751 p_code_combination_id => l_ccid
33752 , p_value_type_code => l_adr_value_type_code
33753 , p_transaction_coa_id => l_adr_transaction_coa_id
33754 , p_accounting_coa_id => l_adr_accounting_coa_id
33755 , p_adr_code => 'PA_RECLASS_DEST_ADJ_ACCT_RULE'
33756 , p_adr_type_code => 'S'
33757 , p_component_type => l_component_type
33758 , p_component_code => l_component_code
33759 , p_component_type_code => l_component_type_code
33760 , p_component_appl_id => l_component_appl_id
33761 , p_amb_context_code => l_amb_context_code
33762 , p_side => 'NA'
33763 );
33764
33765
33766 --
33767 --
33768 END IF;
33769 --
33770 -- Bug 4922099
33771 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
33772 (NVL(l_enc_upg_option, 'N') = 'O')
33773 ) AND
33774 (l_bflow_method_code = 'PRIOR_ENTRY')
33775 )
33776 THEN
33777 IF
33778 --
33779 1 = 2
33780 --
33781 THEN
33782 xla_accounting_err_pkg.build_message
33783 (p_appli_s_name => 'XLA'
33784 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33785 ,p_token_1 => 'LINE_NUMBER'
33786 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
33787 ,p_token_2 => 'LINE_TYPE_NAME'
33788 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
33789 l_component_type
33790 ,l_component_code
33791 ,l_component_type_code
33792 ,l_component_appl_id
33793 ,l_amb_context_code
33794 ,l_entity_code
33795 ,l_event_class_code
33796 )
33797 ,p_token_3 => 'OWNER'
33798 ,p_value_3 => xla_lookups_pkg.get_meaning(
33799 p_lookup_type => 'XLA_OWNER_TYPE'
33800 ,p_lookup_code => l_component_type_code
33801 )
33802 ,p_token_4 => 'PRODUCT_NAME'
33803 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
33804 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
33805 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
33806 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
33807 ,p_ae_header_id => NULL
33808 );
33809
33810 IF (C_LEVEL_ERROR>= g_log_level) THEN
33811 trace
33812 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
33813 ,p_level => C_LEVEL_ERROR
33814 ,p_module => l_log_module);
33815 END IF;
33816 END IF;
33817 END IF;
33818 --
33819 --
33820 ------------------------------------------------------------------------------------------------
33821 -- 4219869 Business Flow
33822 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
33826
33823 -- Prior Entry. Currently, the following code is always generated.
33824 ------------------------------------------------------------------------------------------------
33825 XLA_AE_LINES_PKG.ValidateCurrentLine;
33827 ------------------------------------------------------------------------------------
33828 -- 4219869 Business Flow
33829 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
33830 ------------------------------------------------------------------------------------
33831 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33832
33833 ----------------------------------------------------------------------------------
33834 -- 4219869 Business Flow
33835 -- Update journal entry status -- Need to generate this within IF <condition>
33836 ----------------------------------------------------------------------------------
33837 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33838 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
33839 ,p_balance_type_code => l_balance_type_code
33840 );
33841
33842 -------------------------------------------------------------------------------------------
33843 -- 4262811 - Generate the Accrual Reversal lines
33844 -------------------------------------------------------------------------------------------
33845 BEGIN
33846 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
33847 (g_array_event(p_event_id).array_value_num('header_index'));
33848 IF l_acc_rev_flag IS NULL THEN
33849 l_acc_rev_flag := 'N';
33850 END IF;
33851 EXCEPTION
33852 WHEN OTHERS THEN
33853 l_acc_rev_flag := 'N';
33854 END;
33855 --
33856 IF (l_acc_rev_flag = 'Y') THEN
33857
33858 -- 4645092 ------------------------------------------------------------------------------
33859 -- To allow MPA report to determine if it should generate report process
33860 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
33861 ------------------------------------------------------------------------------------------
33862
33863 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
33864 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
33865
33866 --
33867 -- Update the line information that should be overwritten
33868 --
33869 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
33870 p_header_num => 1);
33871 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
33872
33873 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
33874
33875 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
33876 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
33877 END IF;
33878
33879 --
33880 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
33881 --
33882 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
33883 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
33884 ELSE
33885 ---------------------------------------------------------------------------------------------------
33886 -- 4262811a Switch Sign
33887 ---------------------------------------------------------------------------------------------------
33888 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
33889 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33890 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33891 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
33892 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33893 -- 5132302
33894 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
33895 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
33896
33897 END IF;
33898
33899 -- 4955764
33900 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
33901 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
33902
33903
33904 XLA_AE_LINES_PKG.ValidateCurrentLine;
33905 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
33906
33907 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
33908 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
33909 ,p_balance_type_code => l_balance_type_code);
33910
33911 END IF;
33912
33913 -----------------------------------------------------------------------------------------
33914 -- 4262811 Multiperiod Accounting
33915 -----------------------------------------------------------------------------------------
33916 -- No MPA option is assigned.
33917
33918
33919 END IF;
33920 --
33921
33922 --
33923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
33924 trace
33925 (p_msg => 'END of AcctLineType_74'
33929 --
33926 ,p_level => C_LEVEL_PROCEDURE
33927 ,p_module => l_log_module);
33928 END IF;
33930 EXCEPTION
33931 WHEN xla_exceptions_pkg.application_exception THEN
33932 RAISE;
33933 WHEN OTHERS THEN
33934 xla_exceptions_pkg.raise_message
33935 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_74');
33936 END AcctLineType_74;
33937 --
33938
33939 ---------------------------------------
33940 --
33941 -- PRIVATE FUNCTION
33942 -- AcctLineType_75
33943 --
33944 ---------------------------------------
33945 PROCEDURE AcctLineType_75 (
33946 p_application_id IN NUMBER
33947 ,p_event_id IN NUMBER
33948 ,p_calculate_acctd_flag IN VARCHAR2
33949 ,p_calculate_g_l_flag IN VARCHAR2
33950 ,p_actual_flag IN OUT VARCHAR2
33951 ,p_balance_type_code OUT VARCHAR2
33952 ,p_gain_or_loss_ref OUT VARCHAR2
33953
33954 --Allow Account Override Flag
33955 , p_source_4 IN VARCHAR2
33956 --Provider Cost Destination CCID
33957 , p_source_11 IN NUMBER
33958 --Provider Cost Source CCID
33959 , p_source_13 IN NUMBER
33960 --Adjustment Provider Cost Source CCID
33961 , p_source_14 IN NUMBER
33962 --Reversing Line Flag
33963 , p_source_22 IN VARCHAR2
33964 --Actual Upgrade Credit Accounting Class
33965 , p_source_23 IN VARCHAR2
33966 --Entered Currency Code
33967 , p_source_25 IN VARCHAR2
33968 --Exchange Rate Date
33969 , p_source_27 IN DATE
33970 --Exchange Rate
33971 , p_source_28 IN NUMBER
33972 --Exchange Rate Type
33973 , p_source_29 IN VARCHAR2
33974 --Actual Upgrade Debit Accounting Class
33975 , p_source_30 IN VARCHAR2
33976 --Use Actuals Upgrade Attributes Flag
33977 , p_source_31 IN VARCHAR2
33978 --Expenditure Item ID
33979 , p_source_32 IN NUMBER
33980 --Cost Distribution Line Number
33981 , p_source_33 IN NUMBER
33982 --Line Type
33983 , p_source_34 IN VARCHAR2
33984 , p_source_34_meaning IN VARCHAR2
33985 --Reversed Line Number
33986 , p_source_35 IN NUMBER
33987 --Entered Amount
33988 , p_source_41 IN NUMBER
33989 --Accounted Amount
33990 , p_source_43 IN NUMBER
33991 )
33992 IS
33993
33994 l_component_type VARCHAR2(80);
33995 l_component_code VARCHAR2(30);
33996 l_component_type_code VARCHAR2(1);
33997 l_component_appl_id INTEGER;
33998 l_amb_context_code VARCHAR2(30);
33999 l_entity_code VARCHAR2(30);
34000 l_event_class_code VARCHAR2(30);
34001 l_ae_header_id NUMBER;
34002 l_event_type_code VARCHAR2(30);
34003 l_line_definition_code VARCHAR2(30);
34004 l_line_definition_owner_code VARCHAR2(1);
34005 --
34006 -- adr variables
34007 l_segment VARCHAR2(30);
34008 l_ccid NUMBER;
34009 l_adr_transaction_coa_id NUMBER;
34010 l_adr_accounting_coa_id NUMBER;
34011 l_adr_flexfield_segment_code VARCHAR2(30);
34012 l_adr_flex_value_set_id NUMBER;
34013 l_adr_value_type_code VARCHAR2(30);
34014 l_adr_value_combination_id NUMBER;
34015 l_adr_value_segment_code VARCHAR2(30);
34016
34017 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34018 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34019 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34020 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34021
34022 -- 4262811 Variables ------------------------------------------------------------------------------------------
34023 l_entered_amt_idx NUMBER;
34024 l_accted_amt_idx NUMBER;
34025 l_acc_rev_flag VARCHAR2(1);
34026 l_accrual_line_num NUMBER;
34027 l_tmp_amt NUMBER;
34028 l_acc_rev_natural_side_code VARCHAR2(1);
34029
34030 l_num_entries NUMBER;
34031 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34032 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34033 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34034 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34035 l_recog_line_1 NUMBER;
34036 l_recog_line_2 NUMBER;
34037
34038 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34039 l_bflow_applied_to_amt NUMBER; -- 5132302
34040 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34041
34042 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34043
34044 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34045 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34046
34047 ---------------------------------------------------------------------------------------------------------------
34048
34049
34050 --
34051 -- bulk performance
34052 --
34053 l_balance_type_code VARCHAR2(1);
34054 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34055 l_log_module VARCHAR2(240);
34056
34057 --
34061 l_enc_upg_option VARCHAR2(1);
34058 -- Upgrade strategy
34059 --
34060 l_actual_upg_option VARCHAR2(1);
34062
34063 --
34064 BEGIN
34065 --
34066 IF g_log_enabled THEN
34067 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_75';
34068 END IF;
34069 --
34070 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34071
34072 trace
34073 (p_msg => 'BEGIN of AcctLineType_75'
34074 ,p_level => C_LEVEL_PROCEDURE
34075 ,p_module => l_log_module);
34076
34077 END IF;
34078 --
34079 l_component_type := 'AMB_JLT';
34080 l_component_code := 'PA_RECLASS_SOURCE';
34081 l_component_type_code := 'S';
34082 l_component_appl_id := 275;
34083 l_amb_context_code := 'DEFAULT';
34084 l_entity_code := 'EXPENDITURES';
34085 l_event_class_code := 'PRVDR_RECVR_RECLASS';
34086 l_event_type_code := 'PRVDR_RECVR_RECLASS_ALL';
34087 l_line_definition_owner_code := 'S';
34088 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
34089 --
34090 l_balance_type_code := 'A';
34091 l_segment := NULL;
34092 l_ccid := NULL;
34093 l_adr_transaction_coa_id := NULL;
34094 l_adr_accounting_coa_id := NULL;
34095 l_adr_flexfield_segment_code := NULL;
34096 l_adr_flex_value_set_id := NULL;
34097 l_adr_value_type_code := NULL;
34098 l_adr_value_combination_id := NULL;
34099 l_adr_value_segment_code := NULL;
34100
34101 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34102 l_bflow_class_code := ''; -- 4219869 Business Flow
34103 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34104 l_budgetary_control_flag := 'N';
34105
34106 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34107 l_bflow_applied_to_amt := NULL; -- 5132302
34108 l_entered_amt_idx := NULL; -- 4262811
34109 l_accted_amt_idx := NULL; -- 4262811
34110 l_acc_rev_flag := NULL; -- 4262811
34111 l_accrual_line_num := NULL; -- 4262811
34112 l_tmp_amt := NULL; -- 4262811
34113 --
34114
34115 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34116 l_balance_type_code <> 'B' THEN
34117
34118 --
34119 XLA_AE_LINES_PKG.SetNewLine;
34120
34121 p_balance_type_code := l_balance_type_code;
34122 -- set the flag so later we will know whether the gain loss line needs to be created
34123
34124 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34125 p_actual_flag :='A';
34126 END IF;
34127
34128 --
34129 -- bulk performance
34130 --
34131 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34132 p_header_num => 0); -- 4262811
34133 --
34134 -- set accounting line options
34135 --
34136 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34137 p_natural_side_code => 'C'
34138 , p_gain_or_loss_flag => 'N'
34139 , p_gl_transfer_mode_code => 'S'
34140 , p_acct_entry_type_code => 'A'
34141 , p_switch_side_flag => 'Y'
34142 , p_merge_duplicate_code => 'N'
34143 );
34144 --
34145 l_acc_rev_natural_side_code := 'D'; -- 4262811
34146 --
34147 --
34148 -- set accounting line type info
34149 --
34150 xla_ae_lines_pkg.SetAcctLineType
34151 (p_component_type => l_component_type
34152 ,p_event_type_code => l_event_type_code
34153 ,p_line_definition_owner_code => l_line_definition_owner_code
34154 ,p_line_definition_code => l_line_definition_code
34155 ,p_accounting_line_code => l_component_code
34156 ,p_accounting_line_type_code => l_component_type_code
34157 ,p_accounting_line_appl_id => l_component_appl_id
34158 ,p_amb_context_code => l_amb_context_code
34159 ,p_entity_code => l_entity_code
34160 ,p_event_class_code => l_event_class_code);
34161 --
34162 -- set accounting class
34163 --
34164 xla_ae_lines_pkg.SetAcctClass(
34165 p_accounting_class_code => 'RECLASS_SOURCE'
34166 , p_ae_header_id => l_ae_header_id
34167 );
34168
34169 --
34170 -- set rounding class
34171 --
34172 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34173 'RECLASS_SOURCE';
34174
34175 --
34176 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34177 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34178 --
34179 -- bulk performance
34180 --
34181 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34182
34183 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34184 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34185
34186 -- 4955764
34187 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34188 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34192 --
34189
34190 -- 4458381 Public Sector Enh
34191
34193 -- set accounting attributes for the line type
34194 --
34195 l_entered_amt_idx := 22;
34196 l_accted_amt_idx := 27;
34197 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34198 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34199 l_rec_acct_attrs.array_char_value(1) := p_source_22;
34200 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
34201 l_rec_acct_attrs.array_char_value(2) := p_source_23;
34202 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
34203 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_13);
34204 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
34205 l_rec_acct_attrs.array_num_value(4) := p_source_41;
34206 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
34207 l_rec_acct_attrs.array_char_value(5) := p_source_25;
34208 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
34209 l_rec_acct_attrs.array_num_value(6) := p_source_43;
34210 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
34211 l_rec_acct_attrs.array_date_value(7) := p_source_27;
34212 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
34213 l_rec_acct_attrs.array_num_value(8) := p_source_28;
34214 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
34215 l_rec_acct_attrs.array_char_value(9) := p_source_29;
34216 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
34217 l_rec_acct_attrs.array_char_value(10) := p_source_30;
34218 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
34219 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_11);
34220 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
34221 l_rec_acct_attrs.array_num_value(12) := p_source_41;
34222 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
34223 l_rec_acct_attrs.array_char_value(13) := p_source_25;
34224 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
34225 l_rec_acct_attrs.array_num_value(14) := p_source_43;
34226 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
34227 l_rec_acct_attrs.array_date_value(15) := p_source_27;
34228 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
34229 l_rec_acct_attrs.array_num_value(16) := p_source_28;
34230 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
34231 l_rec_acct_attrs.array_char_value(17) := p_source_29;
34232 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
34233 l_rec_acct_attrs.array_char_value(18) := p_source_31;
34234 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
34235 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
34236 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
34237 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
34238 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
34239 l_rec_acct_attrs.array_char_value(21) := p_source_34;
34240 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
34241 l_rec_acct_attrs.array_num_value(22) := p_source_41;
34242 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
34243 l_rec_acct_attrs.array_char_value(23) := p_source_25;
34244 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
34245 l_rec_acct_attrs.array_date_value(24) := p_source_27;
34246 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
34247 l_rec_acct_attrs.array_num_value(25) := p_source_28;
34248 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
34249 l_rec_acct_attrs.array_char_value(26) := p_source_29;
34250 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
34251 l_rec_acct_attrs.array_num_value(27) := p_source_43;
34252 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
34253 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
34254 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
34255 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
34256 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
34257 l_rec_acct_attrs.array_char_value(30) := p_source_34;
34258
34259 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34260 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34261
34262 ---------------------------------------------------------------------------------------------------------------
34263 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34264 ---------------------------------------------------------------------------------------------------------------
34265 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34266
34267 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34268 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34269
34270 IF xla_accounting_cache_pkg.GetValueChar
34271 (p_source_code => 'LEDGER_CATEGORY_CODE'
34272 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34273 AND l_bflow_method_code = 'PRIOR_ENTRY'
34274 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34275 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34276 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34277 )
34278 THEN
34282 ,p_balance_type => l_balance_type_code);
34279 xla_ae_lines_pkg.BflowUpgEntry
34280 (p_business_method_code => l_bflow_method_code
34281 ,p_business_class_code => l_bflow_class_code
34283 ELSE
34284 NULL;
34285 -- No business flow processing for business flow method of NONE.
34286 END IF;
34287
34288 --
34289 -- call analytical criteria
34290 --
34291
34292 --
34293 -- call description
34294 --
34295 -- No description or it is inherited.
34296 --
34297 -- call ADRs
34298 -- Bug 4922099
34299 --
34300 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34301 (NVL(l_actual_upg_option, 'N') = 'O') OR
34302 (NVL(l_enc_upg_option, 'N') = 'O')
34303 )
34304 THEN
34305 NULL;
34306 --
34307 --
34308
34309 l_ccid := AcctDerRule_12(
34310 p_application_id => p_application_id
34311 , p_ae_header_id => l_ae_header_id
34312 , p_source_4 => p_source_4
34313 , p_source_13 => p_source_13
34314 , p_source_14 => p_source_14
34315 , x_transaction_coa_id => l_adr_transaction_coa_id
34316 , x_accounting_coa_id => l_adr_accounting_coa_id
34317 , x_value_type_code => l_adr_value_type_code
34318 , p_side => 'NA'
34319 );
34320
34321 xla_ae_lines_pkg.set_ccid(
34322 p_code_combination_id => l_ccid
34323 , p_value_type_code => l_adr_value_type_code
34324 , p_transaction_coa_id => l_adr_transaction_coa_id
34325 , p_accounting_coa_id => l_adr_accounting_coa_id
34326 , p_adr_code => 'PA_RECLASS_SOURCE_ACCT_RULE'
34327 , p_adr_type_code => 'S'
34328 , p_component_type => l_component_type
34329 , p_component_code => l_component_code
34330 , p_component_type_code => l_component_type_code
34331 , p_component_appl_id => l_component_appl_id
34332 , p_amb_context_code => l_amb_context_code
34333 , p_side => 'NA'
34334 );
34335
34336
34337 --
34338 --
34339 END IF;
34340 --
34341 -- Bug 4922099
34342 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34343 (NVL(l_enc_upg_option, 'N') = 'O')
34344 ) AND
34345 (l_bflow_method_code = 'PRIOR_ENTRY')
34346 )
34347 THEN
34348 IF
34349 --
34350 1 = 2
34351 --
34352 THEN
34353 xla_accounting_err_pkg.build_message
34354 (p_appli_s_name => 'XLA'
34355 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34356 ,p_token_1 => 'LINE_NUMBER'
34357 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34358 ,p_token_2 => 'LINE_TYPE_NAME'
34359 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34360 l_component_type
34361 ,l_component_code
34362 ,l_component_type_code
34363 ,l_component_appl_id
34364 ,l_amb_context_code
34365 ,l_entity_code
34366 ,l_event_class_code
34367 )
34368 ,p_token_3 => 'OWNER'
34369 ,p_value_3 => xla_lookups_pkg.get_meaning(
34370 p_lookup_type => 'XLA_OWNER_TYPE'
34371 ,p_lookup_code => l_component_type_code
34372 )
34373 ,p_token_4 => 'PRODUCT_NAME'
34374 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34375 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34376 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34377 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34378 ,p_ae_header_id => NULL
34379 );
34380
34381 IF (C_LEVEL_ERROR>= g_log_level) THEN
34382 trace
34383 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34384 ,p_level => C_LEVEL_ERROR
34385 ,p_module => l_log_module);
34386 END IF;
34387 END IF;
34388 END IF;
34389 --
34390 --
34391 ------------------------------------------------------------------------------------------------
34395 ------------------------------------------------------------------------------------------------
34392 -- 4219869 Business Flow
34393 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34394 -- Prior Entry. Currently, the following code is always generated.
34396 XLA_AE_LINES_PKG.ValidateCurrentLine;
34397
34398 ------------------------------------------------------------------------------------
34399 -- 4219869 Business Flow
34400 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34401 ------------------------------------------------------------------------------------
34402 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34403
34404 ----------------------------------------------------------------------------------
34405 -- 4219869 Business Flow
34406 -- Update journal entry status -- Need to generate this within IF <condition>
34407 ----------------------------------------------------------------------------------
34408 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34409 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34410 ,p_balance_type_code => l_balance_type_code
34411 );
34412
34413 -------------------------------------------------------------------------------------------
34414 -- 4262811 - Generate the Accrual Reversal lines
34415 -------------------------------------------------------------------------------------------
34416 BEGIN
34417 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34418 (g_array_event(p_event_id).array_value_num('header_index'));
34419 IF l_acc_rev_flag IS NULL THEN
34420 l_acc_rev_flag := 'N';
34421 END IF;
34422 EXCEPTION
34423 WHEN OTHERS THEN
34424 l_acc_rev_flag := 'N';
34425 END;
34426 --
34427 IF (l_acc_rev_flag = 'Y') THEN
34428
34429 -- 4645092 ------------------------------------------------------------------------------
34430 -- To allow MPA report to determine if it should generate report process
34431 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
34432 ------------------------------------------------------------------------------------------
34433
34434 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
34435 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
34436
34437 --
34438 -- Update the line information that should be overwritten
34439 --
34440 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
34441 p_header_num => 1);
34442 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
34443
34444 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
34445
34446 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
34447 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
34448 END IF;
34449
34450 --
34451 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
34452 --
34453 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
34454 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
34455 ELSE
34456 ---------------------------------------------------------------------------------------------------
34457 -- 4262811a Switch Sign
34458 ---------------------------------------------------------------------------------------------------
34459 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
34460 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34461 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34462 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
34463 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34464 -- 5132302
34465 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
34466 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
34467
34468 END IF;
34469
34470 -- 4955764
34471 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34472 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
34473
34474
34475 XLA_AE_LINES_PKG.ValidateCurrentLine;
34476 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34477
34478 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34479 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
34480 ,p_balance_type_code => l_balance_type_code);
34481
34482 END IF;
34483
34484 -----------------------------------------------------------------------------------------
34485 -- 4262811 Multiperiod Accounting
34486 -----------------------------------------------------------------------------------------
34487 -- No MPA option is assigned.
34488
34489
34490 END IF;
34491 --
34492
34493 --
34494 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34498 ,p_module => l_log_module);
34495 trace
34496 (p_msg => 'END of AcctLineType_75'
34497 ,p_level => C_LEVEL_PROCEDURE
34499 END IF;
34500 --
34501 EXCEPTION
34502 WHEN xla_exceptions_pkg.application_exception THEN
34503 RAISE;
34504 WHEN OTHERS THEN
34505 xla_exceptions_pkg.raise_message
34506 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_75');
34507 END AcctLineType_75;
34508 --
34509
34510 ---------------------------------------
34511 --
34512 -- PRIVATE FUNCTION
34513 -- AcctLineType_76
34514 --
34515 ---------------------------------------
34516 PROCEDURE AcctLineType_76 (
34517 p_application_id IN NUMBER
34518 ,p_event_id IN NUMBER
34519 ,p_calculate_acctd_flag IN VARCHAR2
34520 ,p_calculate_g_l_flag IN VARCHAR2
34521 ,p_actual_flag IN OUT VARCHAR2
34522 ,p_balance_type_code OUT VARCHAR2
34523 ,p_gain_or_loss_ref OUT VARCHAR2
34524
34525 --Allow Account Override Flag
34526 , p_source_4 IN VARCHAR2
34527 --Provider Cost Destination CCID
34528 , p_source_11 IN NUMBER
34529 --Provider Cost Source CCID
34530 , p_source_13 IN NUMBER
34531 --Adjustment Provider Cost Source CCID
34532 , p_source_14 IN NUMBER
34533 --Reversing Line Flag
34534 , p_source_22 IN VARCHAR2
34535 --Actual Upgrade Credit Accounting Class
34536 , p_source_23 IN VARCHAR2
34537 --Entered Currency Code
34538 , p_source_25 IN VARCHAR2
34539 --Exchange Rate Date
34540 , p_source_27 IN DATE
34541 --Exchange Rate
34542 , p_source_28 IN NUMBER
34543 --Exchange Rate Type
34544 , p_source_29 IN VARCHAR2
34545 --Actual Upgrade Debit Accounting Class
34546 , p_source_30 IN VARCHAR2
34547 --Use Actuals Upgrade Attributes Flag
34548 , p_source_31 IN VARCHAR2
34549 --Expenditure Item ID
34550 , p_source_32 IN NUMBER
34551 --Cost Distribution Line Number
34552 , p_source_33 IN NUMBER
34553 --Line Type
34554 , p_source_34 IN VARCHAR2
34555 , p_source_34_meaning IN VARCHAR2
34556 --Reversed Line Number
34557 , p_source_35 IN NUMBER
34558 --Entered Amount
34559 , p_source_41 IN NUMBER
34560 --Accounted Amount
34561 , p_source_43 IN NUMBER
34562 )
34563 IS
34564
34565 l_component_type VARCHAR2(80);
34566 l_component_code VARCHAR2(30);
34567 l_component_type_code VARCHAR2(1);
34568 l_component_appl_id INTEGER;
34569 l_amb_context_code VARCHAR2(30);
34570 l_entity_code VARCHAR2(30);
34571 l_event_class_code VARCHAR2(30);
34572 l_ae_header_id NUMBER;
34573 l_event_type_code VARCHAR2(30);
34574 l_line_definition_code VARCHAR2(30);
34575 l_line_definition_owner_code VARCHAR2(1);
34576 --
34577 -- adr variables
34578 l_segment VARCHAR2(30);
34579 l_ccid NUMBER;
34580 l_adr_transaction_coa_id NUMBER;
34581 l_adr_accounting_coa_id NUMBER;
34582 l_adr_flexfield_segment_code VARCHAR2(30);
34583 l_adr_flex_value_set_id NUMBER;
34584 l_adr_value_type_code VARCHAR2(30);
34585 l_adr_value_combination_id NUMBER;
34586 l_adr_value_segment_code VARCHAR2(30);
34587
34588 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
34589 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
34590 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
34591 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
34592
34593 -- 4262811 Variables ------------------------------------------------------------------------------------------
34594 l_entered_amt_idx NUMBER;
34595 l_accted_amt_idx NUMBER;
34596 l_acc_rev_flag VARCHAR2(1);
34597 l_accrual_line_num NUMBER;
34598 l_tmp_amt NUMBER;
34599 l_acc_rev_natural_side_code VARCHAR2(1);
34600
34601 l_num_entries NUMBER;
34602 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
34603 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
34604 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
34605 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
34606 l_recog_line_1 NUMBER;
34607 l_recog_line_2 NUMBER;
34608
34609 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
34610 l_bflow_applied_to_amt NUMBER; -- 5132302
34611 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
34612
34613 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
34614
34615 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
34616 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
34617
34618 ---------------------------------------------------------------------------------------------------------------
34619
34620
34621 --
34622 -- bulk performance
34623 --
34624 l_balance_type_code VARCHAR2(1);
34625 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
34629 -- Upgrade strategy
34626 l_log_module VARCHAR2(240);
34627
34628 --
34630 --
34631 l_actual_upg_option VARCHAR2(1);
34632 l_enc_upg_option VARCHAR2(1);
34633
34634 --
34635 BEGIN
34636 --
34637 IF g_log_enabled THEN
34638 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_76';
34639 END IF;
34640 --
34641 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
34642
34643 trace
34644 (p_msg => 'BEGIN of AcctLineType_76'
34645 ,p_level => C_LEVEL_PROCEDURE
34646 ,p_module => l_log_module);
34647
34648 END IF;
34649 --
34650 l_component_type := 'AMB_JLT';
34651 l_component_code := 'PA_RECLASS_SOURCE_ADJ';
34652 l_component_type_code := 'S';
34653 l_component_appl_id := 275;
34654 l_amb_context_code := 'DEFAULT';
34655 l_entity_code := 'EXPENDITURES';
34656 l_event_class_code := 'PRVDR_RECVR_RECLASS_ADJ';
34657 l_event_type_code := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
34658 l_line_definition_owner_code := 'S';
34659 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
34660 --
34661 l_balance_type_code := 'A';
34662 l_segment := NULL;
34663 l_ccid := NULL;
34664 l_adr_transaction_coa_id := NULL;
34665 l_adr_accounting_coa_id := NULL;
34666 l_adr_flexfield_segment_code := NULL;
34667 l_adr_flex_value_set_id := NULL;
34668 l_adr_value_type_code := NULL;
34669 l_adr_value_combination_id := NULL;
34670 l_adr_value_segment_code := NULL;
34671
34672 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
34673 l_bflow_class_code := ''; -- 4219869 Business Flow
34674 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
34675 l_budgetary_control_flag := 'N';
34676
34677 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34678 l_bflow_applied_to_amt := NULL; -- 5132302
34679 l_entered_amt_idx := NULL; -- 4262811
34680 l_accted_amt_idx := NULL; -- 4262811
34681 l_acc_rev_flag := NULL; -- 4262811
34682 l_accrual_line_num := NULL; -- 4262811
34683 l_tmp_amt := NULL; -- 4262811
34684 --
34685
34686 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
34687 l_balance_type_code <> 'B' THEN
34688
34689 --
34690 XLA_AE_LINES_PKG.SetNewLine;
34691
34692 p_balance_type_code := l_balance_type_code;
34693 -- set the flag so later we will know whether the gain loss line needs to be created
34694
34695 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
34696 p_actual_flag :='A';
34697 END IF;
34698
34699 --
34700 -- bulk performance
34701 --
34702 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
34703 p_header_num => 0); -- 4262811
34704 --
34705 -- set accounting line options
34706 --
34707 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
34708 p_natural_side_code => 'C'
34709 , p_gain_or_loss_flag => 'N'
34710 , p_gl_transfer_mode_code => 'S'
34711 , p_acct_entry_type_code => 'A'
34712 , p_switch_side_flag => 'Y'
34713 , p_merge_duplicate_code => 'N'
34714 );
34715 --
34716 l_acc_rev_natural_side_code := 'D'; -- 4262811
34717 --
34718 --
34719 -- set accounting line type info
34720 --
34721 xla_ae_lines_pkg.SetAcctLineType
34722 (p_component_type => l_component_type
34723 ,p_event_type_code => l_event_type_code
34724 ,p_line_definition_owner_code => l_line_definition_owner_code
34725 ,p_line_definition_code => l_line_definition_code
34726 ,p_accounting_line_code => l_component_code
34727 ,p_accounting_line_type_code => l_component_type_code
34728 ,p_accounting_line_appl_id => l_component_appl_id
34729 ,p_amb_context_code => l_amb_context_code
34730 ,p_entity_code => l_entity_code
34731 ,p_event_class_code => l_event_class_code);
34732 --
34733 -- set accounting class
34734 --
34735 xla_ae_lines_pkg.SetAcctClass(
34736 p_accounting_class_code => 'RECLASS_SOURCE'
34737 , p_ae_header_id => l_ae_header_id
34738 );
34739
34740 --
34741 -- set rounding class
34742 --
34743 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
34744 'RECLASS_SOURCE';
34745
34746 --
34747 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
34748 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
34749 --
34750 -- bulk performance
34751 --
34752 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
34753
34754 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
34755 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
34756
34757 -- 4955764
34758 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
34762
34759 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
34760
34761 -- 4458381 Public Sector Enh
34763 --
34764 -- set accounting attributes for the line type
34765 --
34766 l_entered_amt_idx := 22;
34767 l_accted_amt_idx := 27;
34768 l_bflow_applied_to_amt_idx := NULL; -- 5132302
34769 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
34770 l_rec_acct_attrs.array_char_value(1) := p_source_22;
34771 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
34772 l_rec_acct_attrs.array_char_value(2) := p_source_23;
34773 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
34774 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_13);
34775 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
34776 l_rec_acct_attrs.array_num_value(4) := p_source_41;
34777 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
34778 l_rec_acct_attrs.array_char_value(5) := p_source_25;
34779 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
34780 l_rec_acct_attrs.array_num_value(6) := p_source_43;
34781 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
34782 l_rec_acct_attrs.array_date_value(7) := p_source_27;
34783 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
34784 l_rec_acct_attrs.array_num_value(8) := p_source_28;
34785 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
34786 l_rec_acct_attrs.array_char_value(9) := p_source_29;
34787 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
34788 l_rec_acct_attrs.array_char_value(10) := p_source_30;
34789 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
34790 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_11);
34791 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
34792 l_rec_acct_attrs.array_num_value(12) := p_source_41;
34793 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
34794 l_rec_acct_attrs.array_char_value(13) := p_source_25;
34795 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
34796 l_rec_acct_attrs.array_num_value(14) := p_source_43;
34797 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
34798 l_rec_acct_attrs.array_date_value(15) := p_source_27;
34799 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
34800 l_rec_acct_attrs.array_num_value(16) := p_source_28;
34801 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
34802 l_rec_acct_attrs.array_char_value(17) := p_source_29;
34803 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
34804 l_rec_acct_attrs.array_char_value(18) := p_source_31;
34805 l_rec_acct_attrs.array_acct_attr_code(19) := 'DISTRIBUTION_IDENTIFIER_1';
34806 l_rec_acct_attrs.array_num_value(19) := to_char(p_source_32);
34807 l_rec_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_2';
34808 l_rec_acct_attrs.array_num_value(20) := to_char(p_source_33);
34809 l_rec_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_TYPE';
34810 l_rec_acct_attrs.array_char_value(21) := p_source_34;
34811 l_rec_acct_attrs.array_acct_attr_code(22) := 'ENTERED_CURRENCY_AMOUNT';
34812 l_rec_acct_attrs.array_num_value(22) := p_source_41;
34813 l_rec_acct_attrs.array_acct_attr_code(23) := 'ENTERED_CURRENCY_CODE';
34814 l_rec_acct_attrs.array_char_value(23) := p_source_25;
34815 l_rec_acct_attrs.array_acct_attr_code(24) := 'EXCHANGE_DATE';
34816 l_rec_acct_attrs.array_date_value(24) := p_source_27;
34817 l_rec_acct_attrs.array_acct_attr_code(25) := 'EXCHANGE_RATE';
34818 l_rec_acct_attrs.array_num_value(25) := p_source_28;
34819 l_rec_acct_attrs.array_acct_attr_code(26) := 'EXCHANGE_RATE_TYPE';
34820 l_rec_acct_attrs.array_char_value(26) := p_source_29;
34821 l_rec_acct_attrs.array_acct_attr_code(27) := 'LEDGER_AMOUNT';
34822 l_rec_acct_attrs.array_num_value(27) := p_source_43;
34823 l_rec_acct_attrs.array_acct_attr_code(28) := 'REVERSED_DISTRIBUTION_ID1';
34824 l_rec_acct_attrs.array_num_value(28) := to_char(p_source_32);
34825 l_rec_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID2';
34826 l_rec_acct_attrs.array_num_value(29) := to_char(p_source_35);
34827 l_rec_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_TYPE';
34828 l_rec_acct_attrs.array_char_value(30) := p_source_34;
34829
34830 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
34831 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
34832
34833 ---------------------------------------------------------------------------------------------------------------
34834 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
34835 ---------------------------------------------------------------------------------------------------------------
34836 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
34837
34838 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34839 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
34840
34841 IF xla_accounting_cache_pkg.GetValueChar
34842 (p_source_code => 'LEDGER_CATEGORY_CODE'
34843 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
34844 AND l_bflow_method_code = 'PRIOR_ENTRY'
34845 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
34849 THEN
34846 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
34847 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
34848 )
34850 xla_ae_lines_pkg.BflowUpgEntry
34851 (p_business_method_code => l_bflow_method_code
34852 ,p_business_class_code => l_bflow_class_code
34853 ,p_balance_type => l_balance_type_code);
34854 ELSE
34855 NULL;
34856 -- No business flow processing for business flow method of NONE.
34857 END IF;
34858
34859 --
34860 -- call analytical criteria
34861 --
34862
34863 --
34864 -- call description
34865 --
34866 -- No description or it is inherited.
34867 --
34868 -- call ADRs
34869 -- Bug 4922099
34870 --
34871 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
34872 (NVL(l_actual_upg_option, 'N') = 'O') OR
34873 (NVL(l_enc_upg_option, 'N') = 'O')
34874 )
34875 THEN
34876 NULL;
34877 --
34878 --
34879
34880 l_ccid := AcctDerRule_13(
34881 p_application_id => p_application_id
34882 , p_ae_header_id => l_ae_header_id
34883 , p_source_4 => p_source_4
34884 , p_source_14 => p_source_14
34885 , x_transaction_coa_id => l_adr_transaction_coa_id
34886 , x_accounting_coa_id => l_adr_accounting_coa_id
34887 , x_value_type_code => l_adr_value_type_code
34888 , p_side => 'NA'
34889 );
34890
34891 xla_ae_lines_pkg.set_ccid(
34892 p_code_combination_id => l_ccid
34893 , p_value_type_code => l_adr_value_type_code
34894 , p_transaction_coa_id => l_adr_transaction_coa_id
34895 , p_accounting_coa_id => l_adr_accounting_coa_id
34896 , p_adr_code => 'PA_RECLASS_SRC_ADJ_ACCT_RULE'
34897 , p_adr_type_code => 'S'
34898 , p_component_type => l_component_type
34899 , p_component_code => l_component_code
34900 , p_component_type_code => l_component_type_code
34901 , p_component_appl_id => l_component_appl_id
34902 , p_amb_context_code => l_amb_context_code
34903 , p_side => 'NA'
34904 );
34905
34906
34907 --
34908 --
34909 END IF;
34910 --
34911 -- Bug 4922099
34912 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
34913 (NVL(l_enc_upg_option, 'N') = 'O')
34914 ) AND
34915 (l_bflow_method_code = 'PRIOR_ENTRY')
34916 )
34917 THEN
34918 IF
34919 --
34920 1 = 2
34921 --
34922 THEN
34923 xla_accounting_err_pkg.build_message
34924 (p_appli_s_name => 'XLA'
34925 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34926 ,p_token_1 => 'LINE_NUMBER'
34927 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
34928 ,p_token_2 => 'LINE_TYPE_NAME'
34929 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
34930 l_component_type
34931 ,l_component_code
34932 ,l_component_type_code
34933 ,l_component_appl_id
34934 ,l_amb_context_code
34935 ,l_entity_code
34936 ,l_event_class_code
34937 )
34938 ,p_token_3 => 'OWNER'
34939 ,p_value_3 => xla_lookups_pkg.get_meaning(
34940 p_lookup_type => 'XLA_OWNER_TYPE'
34941 ,p_lookup_code => l_component_type_code
34942 )
34943 ,p_token_4 => 'PRODUCT_NAME'
34944 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
34945 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
34946 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
34947 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
34948 ,p_ae_header_id => NULL
34949 );
34950
34951 IF (C_LEVEL_ERROR>= g_log_level) THEN
34952 trace
34953 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
34954 ,p_level => C_LEVEL_ERROR
34955 ,p_module => l_log_module);
34956 END IF;
34957 END IF;
34958 END IF;
34959 --
34960 --
34964 -- Prior Entry. Currently, the following code is always generated.
34961 ------------------------------------------------------------------------------------------------
34962 -- 4219869 Business Flow
34963 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
34965 ------------------------------------------------------------------------------------------------
34966 XLA_AE_LINES_PKG.ValidateCurrentLine;
34967
34968 ------------------------------------------------------------------------------------
34969 -- 4219869 Business Flow
34970 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
34971 ------------------------------------------------------------------------------------
34972 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
34973
34974 ----------------------------------------------------------------------------------
34975 -- 4219869 Business Flow
34976 -- Update journal entry status -- Need to generate this within IF <condition>
34977 ----------------------------------------------------------------------------------
34978 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
34979 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
34980 ,p_balance_type_code => l_balance_type_code
34981 );
34982
34983 -------------------------------------------------------------------------------------------
34984 -- 4262811 - Generate the Accrual Reversal lines
34985 -------------------------------------------------------------------------------------------
34986 BEGIN
34987 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
34988 (g_array_event(p_event_id).array_value_num('header_index'));
34989 IF l_acc_rev_flag IS NULL THEN
34990 l_acc_rev_flag := 'N';
34991 END IF;
34992 EXCEPTION
34993 WHEN OTHERS THEN
34994 l_acc_rev_flag := 'N';
34995 END;
34996 --
34997 IF (l_acc_rev_flag = 'Y') THEN
34998
34999 -- 4645092 ------------------------------------------------------------------------------
35000 -- To allow MPA report to determine if it should generate report process
35001 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35002 ------------------------------------------------------------------------------------------
35003
35004 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35005 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35006
35007 --
35008 -- Update the line information that should be overwritten
35009 --
35010 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35011 p_header_num => 1);
35012 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35013
35014 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35015
35016 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35017 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35018 END IF;
35019
35020 --
35021 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35022 --
35023 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35024 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35025 ELSE
35026 ---------------------------------------------------------------------------------------------------
35027 -- 4262811a Switch Sign
35028 ---------------------------------------------------------------------------------------------------
35029 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35030 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35031 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35032 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35033 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35034 -- 5132302
35035 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35036 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35037
35038 END IF;
35039
35040 -- 4955764
35041 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35042 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35043
35044
35045 XLA_AE_LINES_PKG.ValidateCurrentLine;
35046 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35047
35048 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35049 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35050 ,p_balance_type_code => l_balance_type_code);
35051
35052 END IF;
35053
35054 -----------------------------------------------------------------------------------------
35055 -- 4262811 Multiperiod Accounting
35056 -----------------------------------------------------------------------------------------
35057 -- No MPA option is assigned.
35058
35062
35059
35060 END IF;
35061 --
35063 --
35064 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35065 trace
35066 (p_msg => 'END of AcctLineType_76'
35067 ,p_level => C_LEVEL_PROCEDURE
35068 ,p_module => l_log_module);
35069 END IF;
35070 --
35071 EXCEPTION
35072 WHEN xla_exceptions_pkg.application_exception THEN
35073 RAISE;
35074 WHEN OTHERS THEN
35075 xla_exceptions_pkg.raise_message
35076 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_76');
35077 END AcctLineType_76;
35078 --
35079
35080 ---------------------------------------
35081 --
35082 -- PRIVATE FUNCTION
35083 -- AcctLineType_77
35084 --
35085 ---------------------------------------
35086 PROCEDURE AcctLineType_77 (
35087 p_application_id IN NUMBER
35088 ,p_event_id IN NUMBER
35089 ,p_calculate_acctd_flag IN VARCHAR2
35090 ,p_calculate_g_l_flag IN VARCHAR2
35091 ,p_actual_flag IN OUT VARCHAR2
35092 ,p_balance_type_code OUT VARCHAR2
35093 ,p_gain_or_loss_ref OUT VARCHAR2
35094
35095 --Actual Upgrade Credit Accounting Class
35096 , p_source_23 IN VARCHAR2
35097 --Entered Currency Code
35098 , p_source_25 IN VARCHAR2
35099 --Exchange Rate Date
35100 , p_source_27 IN DATE
35101 --Exchange Rate
35102 , p_source_28 IN NUMBER
35103 --Exchange Rate Type
35104 , p_source_29 IN VARCHAR2
35105 --Actual Upgrade Debit Accounting Class
35106 , p_source_30 IN VARCHAR2
35107 --Use Actuals Upgrade Attributes Flag
35108 , p_source_31 IN VARCHAR2
35109 --Revenue Distribution Type
35110 , p_source_36 IN VARCHAR2
35111 --Crediting Revenue Flag
35112 , p_source_38 IN VARCHAR2
35113 --Revenue First Distribution ID
35114 , p_source_39 IN NUMBER
35115 --Revenue Second Distribution ID
35116 , p_source_40 IN NUMBER
35117 --Entered Amount
35118 , p_source_41 IN NUMBER
35119 --Event ID
35120 , p_source_42 IN NUMBER
35121 --Accounted Amount
35122 , p_source_43 IN NUMBER
35123 --Actual Upgrade Credit CCID
35124 , p_source_59 IN NUMBER
35125 --Actual Upgrade Debit CCID
35126 , p_source_60 IN NUMBER
35127 --Application ID
35128 , p_source_61 IN NUMBER
35129 --Revenue Entity Code
35130 , p_source_62 IN VARCHAR2
35131 --Crediting Revenue First Distribution ID
35132 , p_source_63 IN NUMBER
35133 --Project ID
35134 , p_source_64 IN NUMBER
35135 --Crediting Revenue Second Distribution ID
35136 , p_source_65 IN NUMBER
35137 --Draft Revenue Number Credited
35138 , p_source_66 IN NUMBER
35139 )
35140 IS
35141
35142 l_component_type VARCHAR2(80);
35143 l_component_code VARCHAR2(30);
35144 l_component_type_code VARCHAR2(1);
35145 l_component_appl_id INTEGER;
35146 l_amb_context_code VARCHAR2(30);
35147 l_entity_code VARCHAR2(30);
35148 l_event_class_code VARCHAR2(30);
35149 l_ae_header_id NUMBER;
35150 l_event_type_code VARCHAR2(30);
35151 l_line_definition_code VARCHAR2(30);
35152 l_line_definition_owner_code VARCHAR2(1);
35153 --
35154 -- adr variables
35155 l_segment VARCHAR2(30);
35156 l_ccid NUMBER;
35157 l_adr_transaction_coa_id NUMBER;
35158 l_adr_accounting_coa_id NUMBER;
35159 l_adr_flexfield_segment_code VARCHAR2(30);
35160 l_adr_flex_value_set_id NUMBER;
35161 l_adr_value_type_code VARCHAR2(30);
35162 l_adr_value_combination_id NUMBER;
35163 l_adr_value_segment_code VARCHAR2(30);
35164
35165 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35166 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35167 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35168 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35169
35170 -- 4262811 Variables ------------------------------------------------------------------------------------------
35171 l_entered_amt_idx NUMBER;
35172 l_accted_amt_idx NUMBER;
35173 l_acc_rev_flag VARCHAR2(1);
35174 l_accrual_line_num NUMBER;
35175 l_tmp_amt NUMBER;
35176 l_acc_rev_natural_side_code VARCHAR2(1);
35177
35178 l_num_entries NUMBER;
35179 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35180 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35181 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35182 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35183 l_recog_line_1 NUMBER;
35184 l_recog_line_2 NUMBER;
35185
35186 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35187 l_bflow_applied_to_amt NUMBER; -- 5132302
35188 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35189
35190 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35191
35195 ---------------------------------------------------------------------------------------------------------------
35192 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35193 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35194
35196
35197
35198 --
35199 -- bulk performance
35200 --
35201 l_balance_type_code VARCHAR2(1);
35202 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35203 l_log_module VARCHAR2(240);
35204
35205 --
35206 -- Upgrade strategy
35207 --
35208 l_actual_upg_option VARCHAR2(1);
35209 l_enc_upg_option VARCHAR2(1);
35210
35211 --
35212 BEGIN
35213 --
35214 IF g_log_enabled THEN
35215 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_77';
35216 END IF;
35217 --
35218 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35219
35220 trace
35221 (p_msg => 'BEGIN of AcctLineType_77'
35222 ,p_level => C_LEVEL_PROCEDURE
35223 ,p_module => l_log_module);
35224
35225 END IF;
35226 --
35227 l_component_type := 'AMB_JLT';
35228 l_component_code := 'PA_REV_ADJ';
35229 l_component_type_code := 'S';
35230 l_component_appl_id := 275;
35231 l_amb_context_code := 'DEFAULT';
35232 l_entity_code := 'REVENUE';
35233 l_event_class_code := 'REVENUE_ADJ';
35234 l_event_type_code := 'REVENUE_ADJ_ALL';
35235 l_line_definition_owner_code := 'S';
35236 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
35237 --
35238 l_balance_type_code := 'A';
35239 l_segment := NULL;
35240 l_ccid := NULL;
35241 l_adr_transaction_coa_id := NULL;
35242 l_adr_accounting_coa_id := NULL;
35243 l_adr_flexfield_segment_code := NULL;
35244 l_adr_flex_value_set_id := NULL;
35245 l_adr_value_type_code := NULL;
35246 l_adr_value_combination_id := NULL;
35247 l_adr_value_segment_code := NULL;
35248
35249 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
35250 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
35251 l_inherit_desc_flag := 'Y'; -- 4219869 Business Flow
35252 l_budgetary_control_flag := 'N';
35253
35254 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35255 l_bflow_applied_to_amt := NULL; -- 5132302
35256 l_entered_amt_idx := NULL; -- 4262811
35257 l_accted_amt_idx := NULL; -- 4262811
35258 l_acc_rev_flag := NULL; -- 4262811
35259 l_accrual_line_num := NULL; -- 4262811
35260 l_tmp_amt := NULL; -- 4262811
35261 --
35262
35263 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35264 l_balance_type_code <> 'B' THEN
35265 IF NVL(p_source_36,'
35266 ') = 'Revenue - Normal Revenue' AND
35267 NVL(p_source_38,'
35268 ') = 'Y'
35269 THEN
35270
35271 --
35272 XLA_AE_LINES_PKG.SetNewLine;
35273
35274 p_balance_type_code := l_balance_type_code;
35275 -- set the flag so later we will know whether the gain loss line needs to be created
35276
35277 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35278 p_actual_flag :='A';
35279 END IF;
35280
35281 --
35282 -- bulk performance
35283 --
35284 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35285 p_header_num => 0); -- 4262811
35286 --
35287 -- set accounting line options
35288 --
35289 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35290 p_natural_side_code => 'D'
35291 , p_gain_or_loss_flag => 'N'
35292 , p_gl_transfer_mode_code => 'S'
35293 , p_acct_entry_type_code => 'A'
35294 , p_switch_side_flag => 'Y'
35295 , p_merge_duplicate_code => 'N'
35296 );
35297 --
35298 l_acc_rev_natural_side_code := 'C'; -- 4262811
35299 --
35300 --
35301 -- set accounting line type info
35302 --
35303 xla_ae_lines_pkg.SetAcctLineType
35304 (p_component_type => l_component_type
35305 ,p_event_type_code => l_event_type_code
35306 ,p_line_definition_owner_code => l_line_definition_owner_code
35307 ,p_line_definition_code => l_line_definition_code
35308 ,p_accounting_line_code => l_component_code
35309 ,p_accounting_line_type_code => l_component_type_code
35310 ,p_accounting_line_appl_id => l_component_appl_id
35311 ,p_amb_context_code => l_amb_context_code
35312 ,p_entity_code => l_entity_code
35313 ,p_event_class_code => l_event_class_code);
35314 --
35315 -- set accounting class
35316 --
35317 xla_ae_lines_pkg.SetAcctClass(
35318 p_accounting_class_code => 'REVENUE_ADJ'
35319 , p_ae_header_id => l_ae_header_id
35320 );
35321
35322 --
35323 -- set rounding class
35324 --
35325 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35326 'REVENUE_ADJ';
35327
35328 --
35332 -- bulk performance
35329 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35330 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35331 --
35333 --
35334 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35335
35336 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35337 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35338
35339 -- 4955764
35340 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35341 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35342
35343 -- 4458381 Public Sector Enh
35344
35345 --
35346 -- set accounting attributes for the line type
35347 --
35348 l_entered_amt_idx := 28;
35349 l_accted_amt_idx := 31;
35350 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35351 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
35352 l_rec_acct_attrs.array_char_value(1) := p_source_23;
35353 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
35354 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
35355 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
35356 l_rec_acct_attrs.array_num_value(3) := p_source_41;
35357 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
35358 l_rec_acct_attrs.array_char_value(4) := p_source_25;
35359 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
35360 l_rec_acct_attrs.array_num_value(5) := p_source_43;
35361 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
35362 l_rec_acct_attrs.array_date_value(6) := p_source_27;
35363 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
35364 l_rec_acct_attrs.array_num_value(7) := p_source_28;
35365 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
35366 l_rec_acct_attrs.array_char_value(8) := p_source_29;
35367 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
35368 l_rec_acct_attrs.array_char_value(9) := p_source_30;
35369 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
35370 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
35371 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
35372 l_rec_acct_attrs.array_num_value(11) := p_source_41;
35373 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
35374 l_rec_acct_attrs.array_char_value(12) := p_source_25;
35375 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
35376 l_rec_acct_attrs.array_num_value(13) := p_source_43;
35377 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
35378 l_rec_acct_attrs.array_date_value(14) := p_source_27;
35379 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
35380 l_rec_acct_attrs.array_num_value(15) := p_source_28;
35381 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
35382 l_rec_acct_attrs.array_char_value(16) := p_source_29;
35383 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
35384 l_rec_acct_attrs.array_char_value(17) := p_source_31;
35385 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
35386 l_rec_acct_attrs.array_num_value(18) := p_source_61;
35387 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35388 l_rec_acct_attrs.array_char_value(19) := p_source_36;
35389 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
35390 l_rec_acct_attrs.array_char_value(20) := p_source_62;
35391 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
35392 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
35393 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35394 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
35395 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
35396 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
35397 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
35398 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
35399 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
35400 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
35401 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
35402 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
35403 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
35404 l_rec_acct_attrs.array_char_value(27) := p_source_36;
35405 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
35406 l_rec_acct_attrs.array_num_value(28) := p_source_41;
35407 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
35408 l_rec_acct_attrs.array_char_value(29) := p_source_25;
35409 l_rec_acct_attrs.array_acct_attr_code(30) := 'GAIN_LOSS_REFERENCE';
35410 l_rec_acct_attrs.array_num_value(30) := to_char(p_source_42);
35411 l_rec_acct_attrs.array_acct_attr_code(31) := 'LEDGER_AMOUNT';
35412 l_rec_acct_attrs.array_num_value(31) := p_source_43;
35413
35414 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
35415 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
35416
35417 ---------------------------------------------------------------------------------------------------------------
35421
35418 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
35419 ---------------------------------------------------------------------------------------------------------------
35420 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
35422 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35423 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
35424
35425 IF xla_accounting_cache_pkg.GetValueChar
35426 (p_source_code => 'LEDGER_CATEGORY_CODE'
35427 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
35428 AND l_bflow_method_code = 'PRIOR_ENTRY'
35429 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
35430 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
35431 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
35432 )
35433 THEN
35434 xla_ae_lines_pkg.BflowUpgEntry
35435 (p_business_method_code => l_bflow_method_code
35436 ,p_business_class_code => l_bflow_class_code
35437 ,p_balance_type => l_balance_type_code);
35438 ELSE
35439 NULL;
35440 XLA_AE_LINES_PKG.business_flow_validation(
35441 p_business_method_code => l_bflow_method_code
35442 ,p_business_class_code => l_bflow_class_code
35443 ,p_inherit_description_flag => l_inherit_desc_flag);
35444 END IF;
35445
35446 --
35447 -- call analytical criteria
35448 --
35449 -- Inherited Analytical Criteria for business flow method of Prior Entry.
35450 --
35451 -- call description
35452 --
35453 -- No description or it is inherited.
35454 --
35455 -- call ADRs
35456 -- Bug 4922099
35457 --
35458 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
35459 (NVL(l_actual_upg_option, 'N') = 'O') OR
35460 (NVL(l_enc_upg_option, 'N') = 'O')
35461 )
35462 THEN
35463 NULL;
35464 --
35465 --
35466
35467 --
35468 --
35469 END IF;
35470 --
35471 -- Bug 4922099
35472 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
35473 (NVL(l_enc_upg_option, 'N') = 'O')
35474 ) AND
35475 (l_bflow_method_code = 'PRIOR_ENTRY')
35476 )
35477 THEN
35478 IF
35479 --
35480 1 = 1
35481 --
35482 THEN
35483 xla_accounting_err_pkg.build_message
35484 (p_appli_s_name => 'XLA'
35485 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35486 ,p_token_1 => 'LINE_NUMBER'
35487 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
35488 ,p_token_2 => 'LINE_TYPE_NAME'
35489 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
35490 l_component_type
35491 ,l_component_code
35492 ,l_component_type_code
35493 ,l_component_appl_id
35494 ,l_amb_context_code
35495 ,l_entity_code
35496 ,l_event_class_code
35497 )
35498 ,p_token_3 => 'OWNER'
35499 ,p_value_3 => xla_lookups_pkg.get_meaning(
35500 p_lookup_type => 'XLA_OWNER_TYPE'
35501 ,p_lookup_code => l_component_type_code
35502 )
35503 ,p_token_4 => 'PRODUCT_NAME'
35504 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
35505 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
35506 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
35507 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
35508 ,p_ae_header_id => NULL
35509 );
35510
35511 IF (C_LEVEL_ERROR>= g_log_level) THEN
35512 trace
35513 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
35514 ,p_level => C_LEVEL_ERROR
35515 ,p_module => l_log_module);
35516 END IF;
35517 END IF;
35518 END IF;
35519 --
35520 --
35521 ------------------------------------------------------------------------------------------------
35522 -- 4219869 Business Flow
35526 -- No ValidateCurrentLine for business flow method of Prior Entry
35523 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
35524 -- Prior Entry. Currently, the following code is always generated.
35525 ------------------------------------------------------------------------------------------------
35527
35528 ------------------------------------------------------------------------------------
35529 -- 4219869 Business Flow
35530 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
35531 ------------------------------------------------------------------------------------
35532 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35533
35534 ----------------------------------------------------------------------------------
35535 -- 4219869 Business Flow
35536 -- Update journal entry status -- Need to generate this within IF <condition>
35537 ----------------------------------------------------------------------------------
35538 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35539 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
35540 ,p_balance_type_code => l_balance_type_code
35541 );
35542
35543 -------------------------------------------------------------------------------------------
35544 -- 4262811 - Generate the Accrual Reversal lines
35545 -------------------------------------------------------------------------------------------
35546 BEGIN
35547 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
35548 (g_array_event(p_event_id).array_value_num('header_index'));
35549 IF l_acc_rev_flag IS NULL THEN
35550 l_acc_rev_flag := 'N';
35551 END IF;
35552 EXCEPTION
35553 WHEN OTHERS THEN
35554 l_acc_rev_flag := 'N';
35555 END;
35556 --
35557 IF (l_acc_rev_flag = 'Y') THEN
35558
35559 -- 4645092 ------------------------------------------------------------------------------
35560 -- To allow MPA report to determine if it should generate report process
35561 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
35562 ------------------------------------------------------------------------------------------
35563
35564 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
35565 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
35566
35567 --
35568 -- Update the line information that should be overwritten
35569 --
35570 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
35571 p_header_num => 1);
35572 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
35573
35574 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
35575
35576 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
35577 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
35578 END IF;
35579
35580 --
35581 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
35582 --
35583 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
35584 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
35585 ELSE
35586 ---------------------------------------------------------------------------------------------------
35587 -- 4262811a Switch Sign
35588 ---------------------------------------------------------------------------------------------------
35589 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
35590 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35591 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35592 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
35593 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35594 -- 5132302
35595 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
35596 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
35597
35598 END IF;
35599
35600 -- 4955764
35601 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35602 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
35603
35604
35605 XLA_AE_LINES_PKG.ValidateCurrentLine;
35606 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
35607
35608 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
35609 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
35610 ,p_balance_type_code => l_balance_type_code);
35611
35612 END IF;
35613
35614 -----------------------------------------------------------------------------------------
35615 -- 4262811 Multiperiod Accounting
35616 -----------------------------------------------------------------------------------------
35617 -- No MPA option is assigned.
35618
35619
35620 END IF;
35621 END IF;
35622 --
35623
35624 --
35625 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35629 ,p_module => l_log_module);
35626 trace
35627 (p_msg => 'END of AcctLineType_77'
35628 ,p_level => C_LEVEL_PROCEDURE
35630 END IF;
35631 --
35632 EXCEPTION
35633 WHEN xla_exceptions_pkg.application_exception THEN
35634 RAISE;
35635 WHEN OTHERS THEN
35636 xla_exceptions_pkg.raise_message
35637 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_77');
35638 END AcctLineType_77;
35639 --
35640
35641 ---------------------------------------
35642 --
35643 -- PRIVATE FUNCTION
35644 -- AcctLineType_78
35645 --
35646 ---------------------------------------
35647 PROCEDURE AcctLineType_78 (
35648 p_application_id IN NUMBER
35649 ,p_event_id IN NUMBER
35650 ,p_calculate_acctd_flag IN VARCHAR2
35651 ,p_calculate_g_l_flag IN VARCHAR2
35652 ,p_actual_flag IN OUT VARCHAR2
35653 ,p_balance_type_code OUT VARCHAR2
35654 ,p_gain_or_loss_ref OUT VARCHAR2
35655
35656 --Budget Code Combination ID
35657 , p_source_2 IN NUMBER
35658 --Cost CCID
35659 , p_source_3 IN NUMBER
35660 --Allow Account Override Flag
35661 , p_source_4 IN VARCHAR2
35662 --Adjustment Cost CCID
35663 , p_source_5 IN NUMBER
35664 --Cost Clearing CCID
35665 , p_source_6 IN NUMBER
35666 --Reversing Line Flag
35667 , p_source_22 IN VARCHAR2
35668 --Actual Upgrade Credit Accounting Class
35669 , p_source_23 IN VARCHAR2
35670 --Entered Currency Code
35671 , p_source_25 IN VARCHAR2
35672 --Exchange Rate Date
35673 , p_source_27 IN DATE
35674 --Exchange Rate
35675 , p_source_28 IN NUMBER
35676 --Exchange Rate Type
35677 , p_source_29 IN VARCHAR2
35678 --Actual Upgrade Debit Accounting Class
35679 , p_source_30 IN VARCHAR2
35680 --Use Actuals Upgrade Attributes Flag
35681 , p_source_31 IN VARCHAR2
35682 --Expenditure Item ID
35683 , p_source_32 IN NUMBER
35684 --Cost Distribution Line Number
35685 , p_source_33 IN NUMBER
35686 --Line Type
35687 , p_source_34 IN VARCHAR2
35688 , p_source_34_meaning IN VARCHAR2
35689 --Reversed Line Number
35690 , p_source_35 IN NUMBER
35691 --Entered Burdened Cost
35692 , p_source_44 IN NUMBER
35693 --Accounted Burdened Cost
35694 , p_source_45 IN NUMBER
35695 --Encumbrance Amount
35696 , p_source_46 IN NUMBER
35697 --Project Encumbrance Applied to Application Identifier
35698 , p_source_47 IN NUMBER
35699 --Project Encumbrance Applied to Distribution Type
35700 , p_source_48 IN VARCHAR2
35701 --Project Encumbrance Applied to Entity Code
35702 , p_source_49 IN VARCHAR2
35703 --Project Encumbrance Applied to First Distribution ID
35704 , p_source_50 IN NUMBER
35705 --Project Encumbrance Applied to First System Transaction ID
35706 , p_source_51 IN NUMBER
35707 --Project Encumbrance Applied to Second Distribution ID
35708 , p_source_52 IN VARCHAR2
35709 --Encumbrance Upgrade Credit Accounting Class
35710 , p_source_53 IN VARCHAR2
35711 --Encumbrance Upgrade Debit Accounting Class
35712 , p_source_54 IN VARCHAR2
35713 --Use Encumbrance Upgrade Attributes Flag
35714 , p_source_55 IN VARCHAR2
35715 --Encumbrance Type ID
35716 , p_source_56 IN NUMBER
35717 --Project Encumbrance Type ID
35718 , p_source_57 IN NUMBER
35719 )
35720 IS
35721
35722 l_component_type VARCHAR2(80);
35723 l_component_code VARCHAR2(30);
35724 l_component_type_code VARCHAR2(1);
35725 l_component_appl_id INTEGER;
35726 l_amb_context_code VARCHAR2(30);
35727 l_entity_code VARCHAR2(30);
35728 l_event_class_code VARCHAR2(30);
35729 l_ae_header_id NUMBER;
35730 l_event_type_code VARCHAR2(30);
35731 l_line_definition_code VARCHAR2(30);
35732 l_line_definition_owner_code VARCHAR2(1);
35733 --
35734 -- adr variables
35735 l_segment VARCHAR2(30);
35736 l_ccid NUMBER;
35737 l_adr_transaction_coa_id NUMBER;
35738 l_adr_accounting_coa_id NUMBER;
35739 l_adr_flexfield_segment_code VARCHAR2(30);
35740 l_adr_flex_value_set_id NUMBER;
35741 l_adr_value_type_code VARCHAR2(30);
35742 l_adr_value_combination_id NUMBER;
35743 l_adr_value_segment_code VARCHAR2(30);
35744
35745 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
35746 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
35747 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
35748 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
35749
35750 -- 4262811 Variables ------------------------------------------------------------------------------------------
35751 l_entered_amt_idx NUMBER;
35752 l_accted_amt_idx NUMBER;
35753 l_acc_rev_flag VARCHAR2(1);
35754 l_accrual_line_num NUMBER;
35755 l_tmp_amt NUMBER;
35756 l_acc_rev_natural_side_code VARCHAR2(1);
35757
35758 l_num_entries NUMBER;
35759 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
35763 l_recog_line_1 NUMBER;
35760 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
35761 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
35762 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
35764 l_recog_line_2 NUMBER;
35765
35766 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
35767 l_bflow_applied_to_amt NUMBER; -- 5132302
35768 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
35769
35770 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
35771
35772 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
35773 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
35774
35775 ---------------------------------------------------------------------------------------------------------------
35776
35777
35778 --
35779 -- bulk performance
35780 --
35781 l_balance_type_code VARCHAR2(1);
35782 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
35783 l_log_module VARCHAR2(240);
35784
35785 --
35786 -- Upgrade strategy
35787 --
35788 l_actual_upg_option VARCHAR2(1);
35789 l_enc_upg_option VARCHAR2(1);
35790
35791 --
35792 BEGIN
35793 --
35794 IF g_log_enabled THEN
35795 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_78';
35796 END IF;
35797 --
35798 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
35799
35800 trace
35801 (p_msg => 'BEGIN of AcctLineType_78'
35802 ,p_level => C_LEVEL_PROCEDURE
35803 ,p_module => l_log_module);
35804
35805 END IF;
35806 --
35807 l_component_type := 'AMB_JLT';
35808 l_component_code := 'PA_TOT_BURDENED_COST';
35809 l_component_type_code := 'S';
35810 l_component_appl_id := 275;
35811 l_amb_context_code := 'DEFAULT';
35812 l_entity_code := 'EXPENDITURES';
35813 l_event_class_code := 'TOT_BURDENED_COST';
35814 l_event_type_code := 'TOT_BURDENED_COST_ALL';
35815 l_line_definition_owner_code := 'S';
35816 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
35817 --
35818 l_balance_type_code := 'A';
35819 l_segment := NULL;
35820 l_ccid := NULL;
35821 l_adr_transaction_coa_id := NULL;
35822 l_adr_accounting_coa_id := NULL;
35823 l_adr_flexfield_segment_code := NULL;
35824 l_adr_flex_value_set_id := NULL;
35825 l_adr_value_type_code := NULL;
35826 l_adr_value_combination_id := NULL;
35827 l_adr_value_segment_code := NULL;
35828
35829 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
35830 l_bflow_class_code := ''; -- 4219869 Business Flow
35831 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
35832 l_budgetary_control_flag := 'N';
35833
35834 l_bflow_applied_to_amt_idx := NULL; -- 5132302
35835 l_bflow_applied_to_amt := NULL; -- 5132302
35836 l_entered_amt_idx := NULL; -- 4262811
35837 l_accted_amt_idx := NULL; -- 4262811
35838 l_acc_rev_flag := NULL; -- 4262811
35839 l_accrual_line_num := NULL; -- 4262811
35840 l_tmp_amt := NULL; -- 4262811
35841 --
35842
35843 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
35844 l_balance_type_code <> 'B' THEN
35845 IF NVL(p_source_34,'
35846 ') = 'D'
35847 THEN
35848
35849 --
35850 XLA_AE_LINES_PKG.SetNewLine;
35851
35852 p_balance_type_code := l_balance_type_code;
35853 -- set the flag so later we will know whether the gain loss line needs to be created
35854
35855 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
35856 p_actual_flag :='A';
35857 END IF;
35858
35859 --
35860 -- bulk performance
35861 --
35862 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
35863 p_header_num => 0); -- 4262811
35864 --
35865 -- set accounting line options
35866 --
35867 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
35868 p_natural_side_code => 'D'
35869 , p_gain_or_loss_flag => 'N'
35870 , p_gl_transfer_mode_code => 'S'
35871 , p_acct_entry_type_code => 'A'
35872 , p_switch_side_flag => 'Y'
35873 , p_merge_duplicate_code => 'N'
35874 );
35875 --
35876 l_acc_rev_natural_side_code := 'C'; -- 4262811
35877 --
35878 --
35879 -- set accounting line type info
35880 --
35881 xla_ae_lines_pkg.SetAcctLineType
35882 (p_component_type => l_component_type
35883 ,p_event_type_code => l_event_type_code
35884 ,p_line_definition_owner_code => l_line_definition_owner_code
35885 ,p_line_definition_code => l_line_definition_code
35886 ,p_accounting_line_code => l_component_code
35887 ,p_accounting_line_type_code => l_component_type_code
35888 ,p_accounting_line_appl_id => l_component_appl_id
35889 ,p_amb_context_code => l_amb_context_code
35893 -- set accounting class
35890 ,p_entity_code => l_entity_code
35891 ,p_event_class_code => l_event_class_code);
35892 --
35894 --
35895 xla_ae_lines_pkg.SetAcctClass(
35896 p_accounting_class_code => 'COST'
35897 , p_ae_header_id => l_ae_header_id
35898 );
35899
35900 --
35901 -- set rounding class
35902 --
35903 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
35904 'COST';
35905
35906 --
35907 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
35908 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
35909 --
35910 -- bulk performance
35911 --
35912 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
35913
35914 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
35915 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
35916
35917 -- 4955764
35918 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
35919 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
35920
35921 -- 4458381 Public Sector Enh
35922
35923 --
35924 -- set accounting attributes for the line type
35925 --
35926 l_entered_amt_idx := 40;
35927 l_accted_amt_idx := 46;
35928 l_bflow_applied_to_amt_idx := 19; -- 5132302
35929 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
35930 l_rec_acct_attrs.array_char_value(1) := p_source_22;
35931 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
35932 l_rec_acct_attrs.array_char_value(2) := p_source_23;
35933 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
35934 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
35935 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
35936 l_rec_acct_attrs.array_num_value(4) := p_source_44;
35937 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
35938 l_rec_acct_attrs.array_char_value(5) := p_source_25;
35939 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
35940 l_rec_acct_attrs.array_num_value(6) := p_source_45;
35941 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
35942 l_rec_acct_attrs.array_date_value(7) := p_source_27;
35943 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
35944 l_rec_acct_attrs.array_num_value(8) := p_source_28;
35945 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
35946 l_rec_acct_attrs.array_char_value(9) := p_source_29;
35947 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
35948 l_rec_acct_attrs.array_char_value(10) := p_source_30;
35949 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
35950 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
35951 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
35952 l_rec_acct_attrs.array_num_value(12) := p_source_44;
35953 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
35954 l_rec_acct_attrs.array_char_value(13) := p_source_25;
35955 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
35956 l_rec_acct_attrs.array_num_value(14) := p_source_45;
35957 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
35958 l_rec_acct_attrs.array_date_value(15) := p_source_27;
35959 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
35960 l_rec_acct_attrs.array_num_value(16) := p_source_28;
35961 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
35962 l_rec_acct_attrs.array_char_value(17) := p_source_29;
35963 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
35964 l_rec_acct_attrs.array_char_value(18) := p_source_31;
35965 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
35966 l_rec_acct_attrs.array_num_value(19) := p_source_46;
35967 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
35968 l_rec_acct_attrs.array_num_value(20) := p_source_47;
35969 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
35970 l_rec_acct_attrs.array_char_value(21) := p_source_48;
35971 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
35972 l_rec_acct_attrs.array_char_value(22) := p_source_49;
35973 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
35974 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
35975 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
35976 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
35977 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
35978 l_rec_acct_attrs.array_char_value(25) := p_source_52;
35979 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
35980 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
35981 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
35982 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
35983 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
35984 l_rec_acct_attrs.array_char_value(28) := p_source_34;
35985 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
35986 l_rec_acct_attrs.array_char_value(29) := p_source_53;
35990 l_rec_acct_attrs.array_num_value(31) := p_source_46;
35987 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
35988 l_rec_acct_attrs.array_num_value(30) := p_source_2;
35989 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
35991 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
35992 l_rec_acct_attrs.array_char_value(32) :=
35993 xla_ae_sources_pkg.GetSystemSourceChar(
35994 p_source_code => 'XLA_CURRENCY_CODE'
35995 , p_source_type_code => 'Y'
35996 , p_source_application_id => 602
35997 );
35998 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
35999 l_rec_acct_attrs.array_num_value(33) := p_source_46;
36000 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
36001 l_rec_acct_attrs.array_char_value(34) := p_source_54;
36002 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
36003 l_rec_acct_attrs.array_num_value(35) := p_source_2;
36004 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
36005 l_rec_acct_attrs.array_num_value(36) := p_source_46;
36006 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
36007 l_rec_acct_attrs.array_char_value(37) :=
36008 xla_ae_sources_pkg.GetSystemSourceChar(
36009 p_source_code => 'XLA_CURRENCY_CODE'
36010 , p_source_type_code => 'Y'
36011 , p_source_application_id => 602
36012 );
36013 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
36014 l_rec_acct_attrs.array_num_value(38) := p_source_46;
36015 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
36016 l_rec_acct_attrs.array_char_value(39) := p_source_55;
36017 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
36018 l_rec_acct_attrs.array_num_value(40) := p_source_44;
36019 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
36020 l_rec_acct_attrs.array_char_value(41) := p_source_25;
36021 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
36022 l_rec_acct_attrs.array_date_value(42) := p_source_27;
36023 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
36024 l_rec_acct_attrs.array_num_value(43) := p_source_28;
36025 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
36026 l_rec_acct_attrs.array_char_value(44) := p_source_29;
36027 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
36028 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_32);
36029 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
36030 l_rec_acct_attrs.array_num_value(46) := p_source_45;
36031 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
36032 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_32);
36033 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
36034 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_35);
36035 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
36036 l_rec_acct_attrs.array_char_value(49) := p_source_34;
36037 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
36038 l_rec_acct_attrs.array_num_value(50) := p_source_56;
36039 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
36040 l_rec_acct_attrs.array_num_value(51) := p_source_57;
36041
36042 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36043 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36044
36045 ---------------------------------------------------------------------------------------------------------------
36046 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36047 ---------------------------------------------------------------------------------------------------------------
36048 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36049
36050 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36051 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36052
36053 IF xla_accounting_cache_pkg.GetValueChar
36054 (p_source_code => 'LEDGER_CATEGORY_CODE'
36055 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36056 AND l_bflow_method_code = 'PRIOR_ENTRY'
36057 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36058 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36059 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36060 )
36061 THEN
36062 xla_ae_lines_pkg.BflowUpgEntry
36063 (p_business_method_code => l_bflow_method_code
36064 ,p_business_class_code => l_bflow_class_code
36065 ,p_balance_type => l_balance_type_code);
36066 ELSE
36067 NULL;
36068 -- No business flow processing for business flow method of NONE.
36069 END IF;
36070
36071 --
36072 -- call analytical criteria
36073 --
36074
36075 --
36076 -- call description
36077 --
36078 -- No description or it is inherited.
36079 --
36080 -- call ADRs
36081 -- Bug 4922099
36082 --
36083 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36084 (NVL(l_actual_upg_option, 'N') = 'O') OR
36085 (NVL(l_enc_upg_option, 'N') = 'O')
36086 )
36087 THEN
36088 NULL;
36089 --
36090 --
36091
36092 l_ccid := AcctDerRule_3(
36096 , p_source_4 => p_source_4
36093 p_application_id => p_application_id
36094 , p_ae_header_id => l_ae_header_id
36095 , p_source_3 => p_source_3
36097 , p_source_5 => p_source_5
36098 , x_transaction_coa_id => l_adr_transaction_coa_id
36099 , x_accounting_coa_id => l_adr_accounting_coa_id
36100 , x_value_type_code => l_adr_value_type_code
36101 , p_side => 'NA'
36102 );
36103
36104 xla_ae_lines_pkg.set_ccid(
36105 p_code_combination_id => l_ccid
36106 , p_value_type_code => l_adr_value_type_code
36107 , p_transaction_coa_id => l_adr_transaction_coa_id
36108 , p_accounting_coa_id => l_adr_accounting_coa_id
36109 , p_adr_code => 'PA_COST_ACCT_RULE'
36110 , p_adr_type_code => 'S'
36111 , p_component_type => l_component_type
36112 , p_component_code => l_component_code
36113 , p_component_type_code => l_component_type_code
36114 , p_component_appl_id => l_component_appl_id
36115 , p_amb_context_code => l_amb_context_code
36116 , p_side => 'NA'
36117 );
36118
36119
36120 --
36121 --
36122 END IF;
36123 --
36124 -- Bug 4922099
36125 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36126 (NVL(l_enc_upg_option, 'N') = 'O')
36127 ) AND
36128 (l_bflow_method_code = 'PRIOR_ENTRY')
36129 )
36130 THEN
36131 IF
36132 --
36133 1 = 2
36134 --
36135 THEN
36136 xla_accounting_err_pkg.build_message
36137 (p_appli_s_name => 'XLA'
36138 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36139 ,p_token_1 => 'LINE_NUMBER'
36140 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36141 ,p_token_2 => 'LINE_TYPE_NAME'
36142 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36143 l_component_type
36144 ,l_component_code
36145 ,l_component_type_code
36146 ,l_component_appl_id
36147 ,l_amb_context_code
36148 ,l_entity_code
36149 ,l_event_class_code
36150 )
36151 ,p_token_3 => 'OWNER'
36152 ,p_value_3 => xla_lookups_pkg.get_meaning(
36153 p_lookup_type => 'XLA_OWNER_TYPE'
36154 ,p_lookup_code => l_component_type_code
36155 )
36156 ,p_token_4 => 'PRODUCT_NAME'
36157 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36158 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36159 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36160 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36161 ,p_ae_header_id => NULL
36162 );
36163
36164 IF (C_LEVEL_ERROR>= g_log_level) THEN
36165 trace
36166 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36167 ,p_level => C_LEVEL_ERROR
36168 ,p_module => l_log_module);
36169 END IF;
36170 END IF;
36171 END IF;
36172 --
36173 --
36174 ------------------------------------------------------------------------------------------------
36175 -- 4219869 Business Flow
36176 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36177 -- Prior Entry. Currently, the following code is always generated.
36178 ------------------------------------------------------------------------------------------------
36179 XLA_AE_LINES_PKG.ValidateCurrentLine;
36180
36181 ------------------------------------------------------------------------------------
36182 -- 4219869 Business Flow
36183 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36184 ------------------------------------------------------------------------------------
36185 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36186
36187 ----------------------------------------------------------------------------------
36188 -- 4219869 Business Flow
36189 -- Update journal entry status -- Need to generate this within IF <condition>
36190 ----------------------------------------------------------------------------------
36194 );
36191 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36192 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36193 ,p_balance_type_code => l_balance_type_code
36195
36196 -------------------------------------------------------------------------------------------
36197 -- 4262811 - Generate the Accrual Reversal lines
36198 -------------------------------------------------------------------------------------------
36199 BEGIN
36200 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36201 (g_array_event(p_event_id).array_value_num('header_index'));
36202 IF l_acc_rev_flag IS NULL THEN
36203 l_acc_rev_flag := 'N';
36204 END IF;
36205 EXCEPTION
36206 WHEN OTHERS THEN
36207 l_acc_rev_flag := 'N';
36208 END;
36209 --
36210 IF (l_acc_rev_flag = 'Y') THEN
36211
36212 -- 4645092 ------------------------------------------------------------------------------
36213 -- To allow MPA report to determine if it should generate report process
36214 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36215 ------------------------------------------------------------------------------------------
36216
36217 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36218 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36219
36220 --
36221 -- Update the line information that should be overwritten
36222 --
36223 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36224 p_header_num => 1);
36225 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36226
36227 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36228
36229 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36230 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36231 END IF;
36232
36233 --
36234 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36235 --
36236 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36237 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36238 ELSE
36239 ---------------------------------------------------------------------------------------------------
36240 -- 4262811a Switch Sign
36241 ---------------------------------------------------------------------------------------------------
36242 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36243 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36244 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36245 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36246 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36247 -- 5132302
36248 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36249 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36250
36251 END IF;
36252
36253 -- 4955764
36254 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36255 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36256
36257
36258 XLA_AE_LINES_PKG.ValidateCurrentLine;
36259 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36260
36261 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36262 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36263 ,p_balance_type_code => l_balance_type_code);
36264
36265 END IF;
36266
36267 -----------------------------------------------------------------------------------------
36268 -- 4262811 Multiperiod Accounting
36269 -----------------------------------------------------------------------------------------
36270 -- No MPA option is assigned.
36271
36272
36273 END IF;
36274 END IF;
36275 --
36276
36277 --
36278 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36279 trace
36280 (p_msg => 'END of AcctLineType_78'
36281 ,p_level => C_LEVEL_PROCEDURE
36282 ,p_module => l_log_module);
36283 END IF;
36284 --
36285 EXCEPTION
36286 WHEN xla_exceptions_pkg.application_exception THEN
36287 RAISE;
36288 WHEN OTHERS THEN
36289 xla_exceptions_pkg.raise_message
36290 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_78');
36291 END AcctLineType_78;
36292 --
36293
36294 ---------------------------------------
36295 --
36296 -- PRIVATE FUNCTION
36297 -- AcctLineType_79
36298 --
36299 ---------------------------------------
36300 PROCEDURE AcctLineType_79 (
36301 p_application_id IN NUMBER
36302 ,p_event_id IN NUMBER
36303 ,p_calculate_acctd_flag IN VARCHAR2
36304 ,p_calculate_g_l_flag IN VARCHAR2
36305 ,p_actual_flag IN OUT VARCHAR2
36309 --Budget Code Combination ID
36306 ,p_balance_type_code OUT VARCHAR2
36307 ,p_gain_or_loss_ref OUT VARCHAR2
36308
36310 , p_source_2 IN NUMBER
36311 --Cost CCID
36312 , p_source_3 IN NUMBER
36313 --Allow Account Override Flag
36314 , p_source_4 IN VARCHAR2
36315 --Adjustment Cost CCID
36316 , p_source_5 IN NUMBER
36317 --Cost Clearing CCID
36318 , p_source_6 IN NUMBER
36319 --Reversing Line Flag
36320 , p_source_22 IN VARCHAR2
36321 --Actual Upgrade Credit Accounting Class
36322 , p_source_23 IN VARCHAR2
36323 --Entered Currency Code
36324 , p_source_25 IN VARCHAR2
36325 --Exchange Rate Date
36326 , p_source_27 IN DATE
36327 --Exchange Rate
36328 , p_source_28 IN NUMBER
36329 --Exchange Rate Type
36330 , p_source_29 IN VARCHAR2
36331 --Actual Upgrade Debit Accounting Class
36332 , p_source_30 IN VARCHAR2
36333 --Use Actuals Upgrade Attributes Flag
36334 , p_source_31 IN VARCHAR2
36335 --Expenditure Item ID
36336 , p_source_32 IN NUMBER
36337 --Cost Distribution Line Number
36338 , p_source_33 IN NUMBER
36339 --Line Type
36340 , p_source_34 IN VARCHAR2
36341 , p_source_34_meaning IN VARCHAR2
36342 --Reversed Line Number
36343 , p_source_35 IN NUMBER
36344 --Entered Burdened Cost
36345 , p_source_44 IN NUMBER
36346 --Accounted Burdened Cost
36347 , p_source_45 IN NUMBER
36348 --Encumbrance Amount
36349 , p_source_46 IN NUMBER
36350 --Project Encumbrance Applied to Application Identifier
36351 , p_source_47 IN NUMBER
36352 --Project Encumbrance Applied to Distribution Type
36353 , p_source_48 IN VARCHAR2
36354 --Project Encumbrance Applied to Entity Code
36355 , p_source_49 IN VARCHAR2
36356 --Project Encumbrance Applied to First Distribution ID
36357 , p_source_50 IN NUMBER
36358 --Project Encumbrance Applied to First System Transaction ID
36359 , p_source_51 IN NUMBER
36360 --Project Encumbrance Applied to Second Distribution ID
36361 , p_source_52 IN VARCHAR2
36362 --Encumbrance Upgrade Debit Accounting Class
36363 , p_source_54 IN VARCHAR2
36364 --Use Encumbrance Upgrade Attributes Flag
36365 , p_source_55 IN VARCHAR2
36366 --Encumbrance Type ID
36367 , p_source_56 IN NUMBER
36368 --Project Encumbrance Type ID
36369 , p_source_57 IN NUMBER
36370 )
36371 IS
36372
36373 l_component_type VARCHAR2(80);
36374 l_component_code VARCHAR2(30);
36375 l_component_type_code VARCHAR2(1);
36376 l_component_appl_id INTEGER;
36377 l_amb_context_code VARCHAR2(30);
36378 l_entity_code VARCHAR2(30);
36379 l_event_class_code VARCHAR2(30);
36380 l_ae_header_id NUMBER;
36381 l_event_type_code VARCHAR2(30);
36382 l_line_definition_code VARCHAR2(30);
36383 l_line_definition_owner_code VARCHAR2(1);
36384 --
36385 -- adr variables
36386 l_segment VARCHAR2(30);
36387 l_ccid NUMBER;
36388 l_adr_transaction_coa_id NUMBER;
36389 l_adr_accounting_coa_id NUMBER;
36390 l_adr_flexfield_segment_code VARCHAR2(30);
36391 l_adr_flex_value_set_id NUMBER;
36392 l_adr_value_type_code VARCHAR2(30);
36393 l_adr_value_combination_id NUMBER;
36394 l_adr_value_segment_code VARCHAR2(30);
36395
36396 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
36397 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
36398 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
36399 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
36400
36401 -- 4262811 Variables ------------------------------------------------------------------------------------------
36402 l_entered_amt_idx NUMBER;
36403 l_accted_amt_idx NUMBER;
36404 l_acc_rev_flag VARCHAR2(1);
36405 l_accrual_line_num NUMBER;
36406 l_tmp_amt NUMBER;
36407 l_acc_rev_natural_side_code VARCHAR2(1);
36408
36409 l_num_entries NUMBER;
36410 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
36411 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
36412 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
36413 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
36414 l_recog_line_1 NUMBER;
36415 l_recog_line_2 NUMBER;
36416
36417 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
36418 l_bflow_applied_to_amt NUMBER; -- 5132302
36419 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
36420
36421 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
36422
36423 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
36424 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
36425
36426 ---------------------------------------------------------------------------------------------------------------
36427
36428
36429 --
36430 -- bulk performance
36434 l_log_module VARCHAR2(240);
36431 --
36432 l_balance_type_code VARCHAR2(1);
36433 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
36435
36436 --
36437 -- Upgrade strategy
36438 --
36439 l_actual_upg_option VARCHAR2(1);
36440 l_enc_upg_option VARCHAR2(1);
36441
36442 --
36443 BEGIN
36444 --
36445 IF g_log_enabled THEN
36446 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_79';
36447 END IF;
36448 --
36449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36450
36451 trace
36452 (p_msg => 'BEGIN of AcctLineType_79'
36453 ,p_level => C_LEVEL_PROCEDURE
36454 ,p_module => l_log_module);
36455
36456 END IF;
36457 --
36458 l_component_type := 'AMB_JLT';
36459 l_component_code := 'PA_TOT_BURDENED_COST_ADJ';
36460 l_component_type_code := 'S';
36461 l_component_appl_id := 275;
36462 l_amb_context_code := 'DEFAULT';
36463 l_entity_code := 'EXPENDITURES';
36464 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
36465 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
36466 l_line_definition_owner_code := 'S';
36467 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
36468 --
36469 l_balance_type_code := 'A';
36470 l_segment := NULL;
36471 l_ccid := NULL;
36472 l_adr_transaction_coa_id := NULL;
36473 l_adr_accounting_coa_id := NULL;
36474 l_adr_flexfield_segment_code := NULL;
36475 l_adr_flex_value_set_id := NULL;
36476 l_adr_value_type_code := NULL;
36477 l_adr_value_combination_id := NULL;
36478 l_adr_value_segment_code := NULL;
36479
36480 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
36481 l_bflow_class_code := ''; -- 4219869 Business Flow
36482 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
36483 l_budgetary_control_flag := 'N';
36484
36485 l_bflow_applied_to_amt_idx := NULL; -- 5132302
36486 l_bflow_applied_to_amt := NULL; -- 5132302
36487 l_entered_amt_idx := NULL; -- 4262811
36488 l_accted_amt_idx := NULL; -- 4262811
36489 l_acc_rev_flag := NULL; -- 4262811
36490 l_accrual_line_num := NULL; -- 4262811
36491 l_tmp_amt := NULL; -- 4262811
36492 --
36493
36494 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
36495 l_balance_type_code <> 'B' THEN
36496 IF NVL(p_source_34,'
36497 ') = 'D'
36498 THEN
36499
36500 --
36501 XLA_AE_LINES_PKG.SetNewLine;
36502
36503 p_balance_type_code := l_balance_type_code;
36504 -- set the flag so later we will know whether the gain loss line needs to be created
36505
36506 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
36507 p_actual_flag :='A';
36508 END IF;
36509
36510 --
36511 -- bulk performance
36512 --
36513 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
36514 p_header_num => 0); -- 4262811
36515 --
36516 -- set accounting line options
36517 --
36518 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
36519 p_natural_side_code => 'D'
36520 , p_gain_or_loss_flag => 'N'
36521 , p_gl_transfer_mode_code => 'S'
36522 , p_acct_entry_type_code => 'A'
36523 , p_switch_side_flag => 'Y'
36524 , p_merge_duplicate_code => 'N'
36525 );
36526 --
36527 l_acc_rev_natural_side_code := 'C'; -- 4262811
36528 --
36529 --
36530 -- set accounting line type info
36531 --
36532 xla_ae_lines_pkg.SetAcctLineType
36533 (p_component_type => l_component_type
36534 ,p_event_type_code => l_event_type_code
36535 ,p_line_definition_owner_code => l_line_definition_owner_code
36536 ,p_line_definition_code => l_line_definition_code
36537 ,p_accounting_line_code => l_component_code
36538 ,p_accounting_line_type_code => l_component_type_code
36539 ,p_accounting_line_appl_id => l_component_appl_id
36540 ,p_amb_context_code => l_amb_context_code
36541 ,p_entity_code => l_entity_code
36542 ,p_event_class_code => l_event_class_code);
36543 --
36544 -- set accounting class
36545 --
36546 xla_ae_lines_pkg.SetAcctClass(
36547 p_accounting_class_code => 'COST'
36548 , p_ae_header_id => l_ae_header_id
36549 );
36550
36551 --
36552 -- set rounding class
36553 --
36554 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
36555 'COST';
36556
36557 --
36558 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
36559 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
36560 --
36561 -- bulk performance
36562 --
36563 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
36564
36565 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
36569 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36566 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
36567
36568 -- 4955764
36570 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
36571
36572 -- 4458381 Public Sector Enh
36573
36574 --
36575 -- set accounting attributes for the line type
36576 --
36577 l_entered_amt_idx := 35;
36578 l_accted_amt_idx := 40;
36579 l_bflow_applied_to_amt_idx := 19; -- 5132302
36580 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
36581 l_rec_acct_attrs.array_char_value(1) := p_source_22;
36582 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
36583 l_rec_acct_attrs.array_char_value(2) := p_source_23;
36584 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
36585 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
36586 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
36587 l_rec_acct_attrs.array_num_value(4) := p_source_44;
36588 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
36589 l_rec_acct_attrs.array_char_value(5) := p_source_25;
36590 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
36591 l_rec_acct_attrs.array_num_value(6) := p_source_45;
36592 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
36593 l_rec_acct_attrs.array_date_value(7) := p_source_27;
36594 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
36595 l_rec_acct_attrs.array_num_value(8) := p_source_28;
36596 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
36597 l_rec_acct_attrs.array_char_value(9) := p_source_29;
36598 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
36599 l_rec_acct_attrs.array_char_value(10) := p_source_30;
36600 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
36601 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
36602 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
36603 l_rec_acct_attrs.array_num_value(12) := p_source_44;
36604 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
36605 l_rec_acct_attrs.array_char_value(13) := p_source_25;
36606 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
36607 l_rec_acct_attrs.array_num_value(14) := p_source_45;
36608 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
36609 l_rec_acct_attrs.array_date_value(15) := p_source_27;
36610 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
36611 l_rec_acct_attrs.array_num_value(16) := p_source_28;
36612 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
36613 l_rec_acct_attrs.array_char_value(17) := p_source_29;
36614 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
36615 l_rec_acct_attrs.array_char_value(18) := p_source_31;
36616 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
36617 l_rec_acct_attrs.array_num_value(19) := p_source_46;
36618 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
36619 l_rec_acct_attrs.array_num_value(20) := p_source_47;
36620 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
36621 l_rec_acct_attrs.array_char_value(21) := p_source_48;
36622 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
36623 l_rec_acct_attrs.array_char_value(22) := p_source_49;
36624 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
36625 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
36626 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
36627 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
36628 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
36629 l_rec_acct_attrs.array_char_value(25) := p_source_52;
36630 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
36631 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
36632 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
36633 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
36634 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
36635 l_rec_acct_attrs.array_char_value(28) := p_source_34;
36636 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
36637 l_rec_acct_attrs.array_char_value(29) := p_source_54;
36638 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
36639 l_rec_acct_attrs.array_num_value(30) := p_source_2;
36640 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
36641 l_rec_acct_attrs.array_num_value(31) := p_source_46;
36642 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
36643 l_rec_acct_attrs.array_char_value(32) :=
36644 xla_ae_sources_pkg.GetSystemSourceChar(
36645 p_source_code => 'XLA_CURRENCY_CODE'
36646 , p_source_type_code => 'Y'
36647 , p_source_application_id => 602
36648 );
36649 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
36650 l_rec_acct_attrs.array_num_value(33) := p_source_46;
36651 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
36652 l_rec_acct_attrs.array_char_value(34) := p_source_55;
36653 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
36654 l_rec_acct_attrs.array_num_value(35) := p_source_44;
36655 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
36659 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
36656 l_rec_acct_attrs.array_char_value(36) := p_source_25;
36657 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
36658 l_rec_acct_attrs.array_date_value(37) := p_source_27;
36660 l_rec_acct_attrs.array_num_value(38) := p_source_28;
36661 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
36662 l_rec_acct_attrs.array_char_value(39) := p_source_29;
36663 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
36664 l_rec_acct_attrs.array_num_value(40) := p_source_45;
36665 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
36666 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_32);
36667 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
36668 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_35);
36669 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
36670 l_rec_acct_attrs.array_char_value(43) := p_source_34;
36671 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
36672 l_rec_acct_attrs.array_num_value(44) := p_source_56;
36673 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
36674 l_rec_acct_attrs.array_num_value(45) := p_source_57;
36675
36676 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
36677 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
36678
36679 ---------------------------------------------------------------------------------------------------------------
36680 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
36681 ---------------------------------------------------------------------------------------------------------------
36682 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
36683
36684 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36685 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
36686
36687 IF xla_accounting_cache_pkg.GetValueChar
36688 (p_source_code => 'LEDGER_CATEGORY_CODE'
36689 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
36690 AND l_bflow_method_code = 'PRIOR_ENTRY'
36691 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
36692 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
36693 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
36694 )
36695 THEN
36696 xla_ae_lines_pkg.BflowUpgEntry
36697 (p_business_method_code => l_bflow_method_code
36698 ,p_business_class_code => l_bflow_class_code
36699 ,p_balance_type => l_balance_type_code);
36700 ELSE
36701 NULL;
36702 -- No business flow processing for business flow method of NONE.
36703 END IF;
36704
36705 --
36706 -- call analytical criteria
36707 --
36708
36709 --
36710 -- call description
36711 --
36712 -- No description or it is inherited.
36713 --
36714 -- call ADRs
36715 -- Bug 4922099
36716 --
36717 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
36718 (NVL(l_actual_upg_option, 'N') = 'O') OR
36719 (NVL(l_enc_upg_option, 'N') = 'O')
36720 )
36721 THEN
36722 NULL;
36723 --
36724 --
36725
36726 l_ccid := AcctDerRule_4(
36727 p_application_id => p_application_id
36728 , p_ae_header_id => l_ae_header_id
36729 , p_source_4 => p_source_4
36730 , p_source_5 => p_source_5
36731 , x_transaction_coa_id => l_adr_transaction_coa_id
36732 , x_accounting_coa_id => l_adr_accounting_coa_id
36733 , x_value_type_code => l_adr_value_type_code
36734 , p_side => 'NA'
36735 );
36736
36737 xla_ae_lines_pkg.set_ccid(
36738 p_code_combination_id => l_ccid
36739 , p_value_type_code => l_adr_value_type_code
36740 , p_transaction_coa_id => l_adr_transaction_coa_id
36741 , p_accounting_coa_id => l_adr_accounting_coa_id
36742 , p_adr_code => 'PA_COST_ACC_ADJ_RULE'
36743 , p_adr_type_code => 'S'
36744 , p_component_type => l_component_type
36745 , p_component_code => l_component_code
36746 , p_component_type_code => l_component_type_code
36747 , p_component_appl_id => l_component_appl_id
36748 , p_amb_context_code => l_amb_context_code
36749 , p_side => 'NA'
36750 );
36751
36752
36753 --
36754 --
36755 END IF;
36756 --
36757 -- Bug 4922099
36758 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
36759 (NVL(l_enc_upg_option, 'N') = 'O')
36760 ) AND
36761 (l_bflow_method_code = 'PRIOR_ENTRY')
36762 )
36763 THEN
36764 IF
36765 --
36766 1 = 2
36767 --
36768 THEN
36769 xla_accounting_err_pkg.build_message
36770 (p_appli_s_name => 'XLA'
36771 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36772 ,p_token_1 => 'LINE_NUMBER'
36773 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
36777 ,l_component_code
36774 ,p_token_2 => 'LINE_TYPE_NAME'
36775 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
36776 l_component_type
36778 ,l_component_type_code
36779 ,l_component_appl_id
36780 ,l_amb_context_code
36781 ,l_entity_code
36782 ,l_event_class_code
36783 )
36784 ,p_token_3 => 'OWNER'
36785 ,p_value_3 => xla_lookups_pkg.get_meaning(
36786 p_lookup_type => 'XLA_OWNER_TYPE'
36787 ,p_lookup_code => l_component_type_code
36788 )
36789 ,p_token_4 => 'PRODUCT_NAME'
36790 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
36791 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
36792 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
36793 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
36794 ,p_ae_header_id => NULL
36795 );
36796
36797 IF (C_LEVEL_ERROR>= g_log_level) THEN
36798 trace
36799 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
36800 ,p_level => C_LEVEL_ERROR
36801 ,p_module => l_log_module);
36802 END IF;
36803 END IF;
36804 END IF;
36805 --
36806 --
36807 ------------------------------------------------------------------------------------------------
36808 -- 4219869 Business Flow
36809 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
36810 -- Prior Entry. Currently, the following code is always generated.
36811 ------------------------------------------------------------------------------------------------
36812 XLA_AE_LINES_PKG.ValidateCurrentLine;
36813
36814 ------------------------------------------------------------------------------------
36815 -- 4219869 Business Flow
36816 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
36817 ------------------------------------------------------------------------------------
36818 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36819
36820 ----------------------------------------------------------------------------------
36821 -- 4219869 Business Flow
36822 -- Update journal entry status -- Need to generate this within IF <condition>
36823 ----------------------------------------------------------------------------------
36824 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36825 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
36826 ,p_balance_type_code => l_balance_type_code
36827 );
36828
36829 -------------------------------------------------------------------------------------------
36830 -- 4262811 - Generate the Accrual Reversal lines
36831 -------------------------------------------------------------------------------------------
36832 BEGIN
36833 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
36834 (g_array_event(p_event_id).array_value_num('header_index'));
36835 IF l_acc_rev_flag IS NULL THEN
36836 l_acc_rev_flag := 'N';
36837 END IF;
36838 EXCEPTION
36839 WHEN OTHERS THEN
36840 l_acc_rev_flag := 'N';
36841 END;
36842 --
36843 IF (l_acc_rev_flag = 'Y') THEN
36844
36845 -- 4645092 ------------------------------------------------------------------------------
36846 -- To allow MPA report to determine if it should generate report process
36847 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
36848 ------------------------------------------------------------------------------------------
36849
36850 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
36851 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
36852
36853 --
36854 -- Update the line information that should be overwritten
36855 --
36856 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
36857 p_header_num => 1);
36858 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
36859
36860 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
36861
36862 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
36866 --
36863 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
36864 END IF;
36865
36867 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
36868 --
36869 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
36870 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
36871 ELSE
36872 ---------------------------------------------------------------------------------------------------
36873 -- 4262811a Switch Sign
36874 ---------------------------------------------------------------------------------------------------
36875 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
36876 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36877 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36878 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
36879 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36880 -- 5132302
36881 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
36882 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
36883
36884 END IF;
36885
36886 -- 4955764
36887 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
36888 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
36889
36890
36891 XLA_AE_LINES_PKG.ValidateCurrentLine;
36892 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
36893
36894 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
36895 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
36896 ,p_balance_type_code => l_balance_type_code);
36897
36898 END IF;
36899
36900 -----------------------------------------------------------------------------------------
36901 -- 4262811 Multiperiod Accounting
36902 -----------------------------------------------------------------------------------------
36903 -- No MPA option is assigned.
36904
36905
36906 END IF;
36907 END IF;
36908 --
36909
36910 --
36911 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
36912 trace
36913 (p_msg => 'END of AcctLineType_79'
36914 ,p_level => C_LEVEL_PROCEDURE
36915 ,p_module => l_log_module);
36916 END IF;
36917 --
36918 EXCEPTION
36919 WHEN xla_exceptions_pkg.application_exception THEN
36920 RAISE;
36921 WHEN OTHERS THEN
36922 xla_exceptions_pkg.raise_message
36923 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_79');
36924 END AcctLineType_79;
36925 --
36926
36927 ---------------------------------------
36928 --
36929 -- PRIVATE FUNCTION
36930 -- AcctLineType_80
36931 --
36932 ---------------------------------------
36933 PROCEDURE AcctLineType_80 (
36934 p_application_id IN NUMBER
36935 ,p_event_id IN NUMBER
36936 ,p_calculate_acctd_flag IN VARCHAR2
36937 ,p_calculate_g_l_flag IN VARCHAR2
36938 ,p_actual_flag IN OUT VARCHAR2
36939 ,p_balance_type_code OUT VARCHAR2
36940 ,p_gain_or_loss_ref OUT VARCHAR2
36941
36942 --Budget Code Combination ID
36943 , p_source_2 IN NUMBER
36944 --Cost CCID
36945 , p_source_3 IN NUMBER
36946 --Allow Account Override Flag
36947 , p_source_4 IN VARCHAR2
36948 --Cost Clearing CCID
36949 , p_source_6 IN NUMBER
36950 --Adjustment Cost Clearing CCID
36951 , p_source_7 IN NUMBER
36952 --Reversing Line Flag
36953 , p_source_22 IN VARCHAR2
36954 --Actual Upgrade Credit Accounting Class
36955 , p_source_23 IN VARCHAR2
36956 --Entered Currency Code
36957 , p_source_25 IN VARCHAR2
36958 --Exchange Rate Date
36959 , p_source_27 IN DATE
36960 --Exchange Rate
36961 , p_source_28 IN NUMBER
36962 --Exchange Rate Type
36963 , p_source_29 IN VARCHAR2
36964 --Actual Upgrade Debit Accounting Class
36965 , p_source_30 IN VARCHAR2
36966 --Use Actuals Upgrade Attributes Flag
36967 , p_source_31 IN VARCHAR2
36968 --Expenditure Item ID
36969 , p_source_32 IN NUMBER
36970 --Cost Distribution Line Number
36971 , p_source_33 IN NUMBER
36972 --Line Type
36973 , p_source_34 IN VARCHAR2
36974 , p_source_34_meaning IN VARCHAR2
36975 --Reversed Line Number
36976 , p_source_35 IN NUMBER
36977 --Entered Burdened Cost
36978 , p_source_44 IN NUMBER
36979 --Accounted Burdened Cost
36980 , p_source_45 IN NUMBER
36981 --Encumbrance Amount
36982 , p_source_46 IN NUMBER
36983 --Project Encumbrance Applied to Application Identifier
36984 , p_source_47 IN NUMBER
36985 --Project Encumbrance Applied to Distribution Type
36986 , p_source_48 IN VARCHAR2
36987 --Project Encumbrance Applied to Entity Code
36991 --Project Encumbrance Applied to First System Transaction ID
36988 , p_source_49 IN VARCHAR2
36989 --Project Encumbrance Applied to First Distribution ID
36990 , p_source_50 IN NUMBER
36992 , p_source_51 IN NUMBER
36993 --Project Encumbrance Applied to Second Distribution ID
36994 , p_source_52 IN VARCHAR2
36995 --Encumbrance Upgrade Credit Accounting Class
36996 , p_source_53 IN VARCHAR2
36997 --Encumbrance Upgrade Debit Accounting Class
36998 , p_source_54 IN VARCHAR2
36999 --Use Encumbrance Upgrade Attributes Flag
37000 , p_source_55 IN VARCHAR2
37001 --Encumbrance Type ID
37002 , p_source_56 IN NUMBER
37003 --Project Encumbrance Type ID
37004 , p_source_57 IN NUMBER
37005 )
37006 IS
37007
37008 l_component_type VARCHAR2(80);
37009 l_component_code VARCHAR2(30);
37010 l_component_type_code VARCHAR2(1);
37011 l_component_appl_id INTEGER;
37012 l_amb_context_code VARCHAR2(30);
37013 l_entity_code VARCHAR2(30);
37014 l_event_class_code VARCHAR2(30);
37015 l_ae_header_id NUMBER;
37016 l_event_type_code VARCHAR2(30);
37017 l_line_definition_code VARCHAR2(30);
37018 l_line_definition_owner_code VARCHAR2(1);
37019 --
37020 -- adr variables
37021 l_segment VARCHAR2(30);
37022 l_ccid NUMBER;
37023 l_adr_transaction_coa_id NUMBER;
37024 l_adr_accounting_coa_id NUMBER;
37025 l_adr_flexfield_segment_code VARCHAR2(30);
37026 l_adr_flex_value_set_id NUMBER;
37027 l_adr_value_type_code VARCHAR2(30);
37028 l_adr_value_combination_id NUMBER;
37029 l_adr_value_segment_code VARCHAR2(30);
37030
37031 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37032 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37033 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37034 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37035
37036 -- 4262811 Variables ------------------------------------------------------------------------------------------
37037 l_entered_amt_idx NUMBER;
37038 l_accted_amt_idx NUMBER;
37039 l_acc_rev_flag VARCHAR2(1);
37040 l_accrual_line_num NUMBER;
37041 l_tmp_amt NUMBER;
37042 l_acc_rev_natural_side_code VARCHAR2(1);
37043
37044 l_num_entries NUMBER;
37045 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37046 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37047 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37048 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37049 l_recog_line_1 NUMBER;
37050 l_recog_line_2 NUMBER;
37051
37052 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37053 l_bflow_applied_to_amt NUMBER; -- 5132302
37054 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37055
37056 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37057
37058 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37059 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37060
37061 ---------------------------------------------------------------------------------------------------------------
37062
37063
37064 --
37065 -- bulk performance
37066 --
37067 l_balance_type_code VARCHAR2(1);
37068 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37069 l_log_module VARCHAR2(240);
37070
37071 --
37072 -- Upgrade strategy
37073 --
37074 l_actual_upg_option VARCHAR2(1);
37075 l_enc_upg_option VARCHAR2(1);
37076
37077 --
37078 BEGIN
37079 --
37080 IF g_log_enabled THEN
37081 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_80';
37082 END IF;
37083 --
37084 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37085
37086 trace
37087 (p_msg => 'BEGIN of AcctLineType_80'
37088 ,p_level => C_LEVEL_PROCEDURE
37089 ,p_module => l_log_module);
37090
37091 END IF;
37092 --
37093 l_component_type := 'AMB_JLT';
37094 l_component_code := 'PA_TOT_BURDENED_COST_CLEARING';
37095 l_component_type_code := 'S';
37096 l_component_appl_id := 275;
37097 l_amb_context_code := 'DEFAULT';
37098 l_entity_code := 'EXPENDITURES';
37099 l_event_class_code := 'TOT_BURDENED_COST';
37100 l_event_type_code := 'TOT_BURDENED_COST_ALL';
37101 l_line_definition_owner_code := 'S';
37102 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
37103 --
37104 l_balance_type_code := 'A';
37105 l_segment := NULL;
37106 l_ccid := NULL;
37107 l_adr_transaction_coa_id := NULL;
37108 l_adr_accounting_coa_id := NULL;
37109 l_adr_flexfield_segment_code := NULL;
37110 l_adr_flex_value_set_id := NULL;
37111 l_adr_value_type_code := NULL;
37112 l_adr_value_combination_id := NULL;
37113 l_adr_value_segment_code := NULL;
37114
37115 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37119
37116 l_bflow_class_code := ''; -- 4219869 Business Flow
37117 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37118 l_budgetary_control_flag := 'N';
37120 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37121 l_bflow_applied_to_amt := NULL; -- 5132302
37122 l_entered_amt_idx := NULL; -- 4262811
37123 l_accted_amt_idx := NULL; -- 4262811
37124 l_acc_rev_flag := NULL; -- 4262811
37125 l_accrual_line_num := NULL; -- 4262811
37126 l_tmp_amt := NULL; -- 4262811
37127 --
37128
37129 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37130 l_balance_type_code <> 'B' THEN
37131 IF NVL(p_source_34,'
37132 ') = 'C'
37133 THEN
37134
37135 --
37136 XLA_AE_LINES_PKG.SetNewLine;
37137
37138 p_balance_type_code := l_balance_type_code;
37139 -- set the flag so later we will know whether the gain loss line needs to be created
37140
37141 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37142 p_actual_flag :='A';
37143 END IF;
37144
37145 --
37146 -- bulk performance
37147 --
37148 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37149 p_header_num => 0); -- 4262811
37150 --
37151 -- set accounting line options
37152 --
37153 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37154 p_natural_side_code => 'C'
37155 , p_gain_or_loss_flag => 'N'
37156 , p_gl_transfer_mode_code => 'S'
37157 , p_acct_entry_type_code => 'A'
37158 , p_switch_side_flag => 'Y'
37159 , p_merge_duplicate_code => 'N'
37160 );
37161 --
37162 l_acc_rev_natural_side_code := 'D'; -- 4262811
37163 --
37164 --
37165 -- set accounting line type info
37166 --
37167 xla_ae_lines_pkg.SetAcctLineType
37168 (p_component_type => l_component_type
37169 ,p_event_type_code => l_event_type_code
37170 ,p_line_definition_owner_code => l_line_definition_owner_code
37171 ,p_line_definition_code => l_line_definition_code
37172 ,p_accounting_line_code => l_component_code
37173 ,p_accounting_line_type_code => l_component_type_code
37174 ,p_accounting_line_appl_id => l_component_appl_id
37175 ,p_amb_context_code => l_amb_context_code
37176 ,p_entity_code => l_entity_code
37177 ,p_event_class_code => l_event_class_code);
37178 --
37179 -- set accounting class
37180 --
37181 xla_ae_lines_pkg.SetAcctClass(
37182 p_accounting_class_code => 'COST_CLEARING'
37183 , p_ae_header_id => l_ae_header_id
37184 );
37185
37186 --
37187 -- set rounding class
37188 --
37189 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37190 'COST_CLEARING';
37191
37192 --
37193 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37194 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37195 --
37196 -- bulk performance
37197 --
37198 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37199
37200 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37201 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37202
37203 -- 4955764
37204 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37205 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37206
37207 -- 4458381 Public Sector Enh
37208
37209 --
37210 -- set accounting attributes for the line type
37211 --
37212 l_entered_amt_idx := 40;
37213 l_accted_amt_idx := 46;
37214 l_bflow_applied_to_amt_idx := 19; -- 5132302
37215 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37216 l_rec_acct_attrs.array_char_value(1) := p_source_22;
37217 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
37218 l_rec_acct_attrs.array_char_value(2) := p_source_23;
37219 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
37220 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
37221 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
37222 l_rec_acct_attrs.array_num_value(4) := p_source_44;
37223 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
37224 l_rec_acct_attrs.array_char_value(5) := p_source_25;
37225 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
37226 l_rec_acct_attrs.array_num_value(6) := p_source_45;
37227 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
37228 l_rec_acct_attrs.array_date_value(7) := p_source_27;
37229 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
37230 l_rec_acct_attrs.array_num_value(8) := p_source_28;
37231 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
37232 l_rec_acct_attrs.array_char_value(9) := p_source_29;
37233 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
37237 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
37234 l_rec_acct_attrs.array_char_value(10) := p_source_30;
37235 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
37236 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
37238 l_rec_acct_attrs.array_num_value(12) := p_source_44;
37239 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
37240 l_rec_acct_attrs.array_char_value(13) := p_source_25;
37241 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
37242 l_rec_acct_attrs.array_num_value(14) := p_source_45;
37243 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
37244 l_rec_acct_attrs.array_date_value(15) := p_source_27;
37245 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
37246 l_rec_acct_attrs.array_num_value(16) := p_source_28;
37247 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
37248 l_rec_acct_attrs.array_char_value(17) := p_source_29;
37249 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
37250 l_rec_acct_attrs.array_char_value(18) := p_source_31;
37251 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
37252 l_rec_acct_attrs.array_num_value(19) := p_source_46;
37253 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
37254 l_rec_acct_attrs.array_num_value(20) := p_source_47;
37255 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37256 l_rec_acct_attrs.array_char_value(21) := p_source_48;
37257 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
37258 l_rec_acct_attrs.array_char_value(22) := p_source_49;
37259 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
37260 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
37261 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37262 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
37263 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
37264 l_rec_acct_attrs.array_char_value(25) := p_source_52;
37265 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
37266 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
37267 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
37268 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
37269 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
37270 l_rec_acct_attrs.array_char_value(28) := p_source_34;
37271 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
37272 l_rec_acct_attrs.array_char_value(29) := p_source_53;
37273 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
37274 l_rec_acct_attrs.array_num_value(30) := p_source_2;
37275 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
37276 l_rec_acct_attrs.array_num_value(31) := p_source_46;
37277 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
37278 l_rec_acct_attrs.array_char_value(32) :=
37279 xla_ae_sources_pkg.GetSystemSourceChar(
37280 p_source_code => 'XLA_CURRENCY_CODE'
37281 , p_source_type_code => 'Y'
37282 , p_source_application_id => 602
37283 );
37284 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
37285 l_rec_acct_attrs.array_num_value(33) := p_source_46;
37286 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
37287 l_rec_acct_attrs.array_char_value(34) := p_source_54;
37288 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
37289 l_rec_acct_attrs.array_num_value(35) := p_source_2;
37290 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
37291 l_rec_acct_attrs.array_num_value(36) := p_source_46;
37292 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
37293 l_rec_acct_attrs.array_char_value(37) :=
37294 xla_ae_sources_pkg.GetSystemSourceChar(
37295 p_source_code => 'XLA_CURRENCY_CODE'
37296 , p_source_type_code => 'Y'
37297 , p_source_application_id => 602
37298 );
37299 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
37300 l_rec_acct_attrs.array_num_value(38) := p_source_46;
37301 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
37302 l_rec_acct_attrs.array_char_value(39) := p_source_55;
37303 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
37304 l_rec_acct_attrs.array_num_value(40) := p_source_44;
37305 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
37306 l_rec_acct_attrs.array_char_value(41) := p_source_25;
37307 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
37308 l_rec_acct_attrs.array_date_value(42) := p_source_27;
37309 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
37310 l_rec_acct_attrs.array_num_value(43) := p_source_28;
37311 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
37312 l_rec_acct_attrs.array_char_value(44) := p_source_29;
37313 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
37314 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_32);
37315 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
37316 l_rec_acct_attrs.array_num_value(46) := p_source_45;
37317 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
37318 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_32);
37319 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
37320 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_35);
37321 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
37325 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
37322 l_rec_acct_attrs.array_char_value(49) := p_source_34;
37323 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
37324 l_rec_acct_attrs.array_num_value(50) := p_source_56;
37326 l_rec_acct_attrs.array_num_value(51) := p_source_57;
37327
37328 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37329 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37330
37331 ---------------------------------------------------------------------------------------------------------------
37332 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37333 ---------------------------------------------------------------------------------------------------------------
37334 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37335
37336 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37337 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37338
37339 IF xla_accounting_cache_pkg.GetValueChar
37340 (p_source_code => 'LEDGER_CATEGORY_CODE'
37341 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37342 AND l_bflow_method_code = 'PRIOR_ENTRY'
37343 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37344 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37345 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37346 )
37347 THEN
37348 xla_ae_lines_pkg.BflowUpgEntry
37349 (p_business_method_code => l_bflow_method_code
37350 ,p_business_class_code => l_bflow_class_code
37351 ,p_balance_type => l_balance_type_code);
37352 ELSE
37353 NULL;
37354 -- No business flow processing for business flow method of NONE.
37355 END IF;
37356
37357 --
37358 -- call analytical criteria
37359 --
37360
37361 --
37362 -- call description
37363 --
37364 -- No description or it is inherited.
37365 --
37366 -- call ADRs
37367 -- Bug 4922099
37368 --
37369 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
37370 (NVL(l_actual_upg_option, 'N') = 'O') OR
37371 (NVL(l_enc_upg_option, 'N') = 'O')
37372 )
37373 THEN
37374 NULL;
37375 --
37376 --
37377
37378 l_ccid := AcctDerRule_5(
37379 p_application_id => p_application_id
37380 , p_ae_header_id => l_ae_header_id
37381 , p_source_4 => p_source_4
37382 , p_source_6 => p_source_6
37383 , p_source_7 => p_source_7
37384 , x_transaction_coa_id => l_adr_transaction_coa_id
37385 , x_accounting_coa_id => l_adr_accounting_coa_id
37386 , x_value_type_code => l_adr_value_type_code
37387 , p_side => 'NA'
37388 );
37389
37390 xla_ae_lines_pkg.set_ccid(
37391 p_code_combination_id => l_ccid
37392 , p_value_type_code => l_adr_value_type_code
37393 , p_transaction_coa_id => l_adr_transaction_coa_id
37394 , p_accounting_coa_id => l_adr_accounting_coa_id
37395 , p_adr_code => 'PA_COST_CLEARING_ACCT_RULE'
37396 , p_adr_type_code => 'S'
37397 , p_component_type => l_component_type
37398 , p_component_code => l_component_code
37399 , p_component_type_code => l_component_type_code
37400 , p_component_appl_id => l_component_appl_id
37401 , p_amb_context_code => l_amb_context_code
37402 , p_side => 'NA'
37403 );
37404
37405
37406 --
37407 --
37408 END IF;
37409 --
37410 -- Bug 4922099
37411 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
37412 (NVL(l_enc_upg_option, 'N') = 'O')
37413 ) AND
37414 (l_bflow_method_code = 'PRIOR_ENTRY')
37415 )
37416 THEN
37417 IF
37418 --
37419 1 = 2
37420 --
37421 THEN
37422 xla_accounting_err_pkg.build_message
37423 (p_appli_s_name => 'XLA'
37424 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37425 ,p_token_1 => 'LINE_NUMBER'
37426 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
37427 ,p_token_2 => 'LINE_TYPE_NAME'
37428 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
37429 l_component_type
37430 ,l_component_code
37431 ,l_component_type_code
37432 ,l_component_appl_id
37433 ,l_amb_context_code
37434 ,l_entity_code
37435 ,l_event_class_code
37439 p_lookup_type => 'XLA_OWNER_TYPE'
37436 )
37437 ,p_token_3 => 'OWNER'
37438 ,p_value_3 => xla_lookups_pkg.get_meaning(
37440 ,p_lookup_code => l_component_type_code
37441 )
37442 ,p_token_4 => 'PRODUCT_NAME'
37443 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
37444 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
37445 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
37446 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
37447 ,p_ae_header_id => NULL
37448 );
37449
37450 IF (C_LEVEL_ERROR>= g_log_level) THEN
37451 trace
37452 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
37453 ,p_level => C_LEVEL_ERROR
37454 ,p_module => l_log_module);
37455 END IF;
37456 END IF;
37457 END IF;
37458 --
37459 --
37460 ------------------------------------------------------------------------------------------------
37461 -- 4219869 Business Flow
37462 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
37463 -- Prior Entry. Currently, the following code is always generated.
37464 ------------------------------------------------------------------------------------------------
37465 XLA_AE_LINES_PKG.ValidateCurrentLine;
37466
37467 ------------------------------------------------------------------------------------
37468 -- 4219869 Business Flow
37469 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
37470 ------------------------------------------------------------------------------------
37471 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37472
37473 ----------------------------------------------------------------------------------
37474 -- 4219869 Business Flow
37475 -- Update journal entry status -- Need to generate this within IF <condition>
37476 ----------------------------------------------------------------------------------
37477 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37478 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
37479 ,p_balance_type_code => l_balance_type_code
37480 );
37481
37482 -------------------------------------------------------------------------------------------
37483 -- 4262811 - Generate the Accrual Reversal lines
37484 -------------------------------------------------------------------------------------------
37485 BEGIN
37486 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
37487 (g_array_event(p_event_id).array_value_num('header_index'));
37488 IF l_acc_rev_flag IS NULL THEN
37489 l_acc_rev_flag := 'N';
37490 END IF;
37491 EXCEPTION
37492 WHEN OTHERS THEN
37493 l_acc_rev_flag := 'N';
37494 END;
37495 --
37496 IF (l_acc_rev_flag = 'Y') THEN
37497
37498 -- 4645092 ------------------------------------------------------------------------------
37499 -- To allow MPA report to determine if it should generate report process
37500 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
37501 ------------------------------------------------------------------------------------------
37502
37503 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
37504 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
37505
37506 --
37507 -- Update the line information that should be overwritten
37508 --
37509 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
37510 p_header_num => 1);
37511 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
37512
37513 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
37514
37515 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
37516 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
37517 END IF;
37518
37519 --
37520 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
37521 --
37522 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
37523 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
37524 ELSE
37525 ---------------------------------------------------------------------------------------------------
37526 -- 4262811a Switch Sign
37527 ---------------------------------------------------------------------------------------------------
37528 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
37532 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37529 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37530 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37531 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
37533 -- 5132302
37534 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
37535 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
37536
37537 END IF;
37538
37539 -- 4955764
37540 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37541 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
37542
37543
37544 XLA_AE_LINES_PKG.ValidateCurrentLine;
37545 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
37546
37547 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
37548 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
37549 ,p_balance_type_code => l_balance_type_code);
37550
37551 END IF;
37552
37553 -----------------------------------------------------------------------------------------
37554 -- 4262811 Multiperiod Accounting
37555 -----------------------------------------------------------------------------------------
37556 -- No MPA option is assigned.
37557
37558
37559 END IF;
37560 END IF;
37561 --
37562
37563 --
37564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37565 trace
37566 (p_msg => 'END of AcctLineType_80'
37567 ,p_level => C_LEVEL_PROCEDURE
37568 ,p_module => l_log_module);
37569 END IF;
37570 --
37571 EXCEPTION
37572 WHEN xla_exceptions_pkg.application_exception THEN
37573 RAISE;
37574 WHEN OTHERS THEN
37575 xla_exceptions_pkg.raise_message
37576 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_80');
37577 END AcctLineType_80;
37578 --
37579
37580 ---------------------------------------
37581 --
37582 -- PRIVATE FUNCTION
37583 -- AcctLineType_81
37584 --
37585 ---------------------------------------
37586 PROCEDURE AcctLineType_81 (
37587 p_application_id IN NUMBER
37588 ,p_event_id IN NUMBER
37589 ,p_calculate_acctd_flag IN VARCHAR2
37590 ,p_calculate_g_l_flag IN VARCHAR2
37591 ,p_actual_flag IN OUT VARCHAR2
37592 ,p_balance_type_code OUT VARCHAR2
37593 ,p_gain_or_loss_ref OUT VARCHAR2
37594
37595 --Budget Code Combination ID
37596 , p_source_2 IN NUMBER
37597 --Cost CCID
37598 , p_source_3 IN NUMBER
37599 --Allow Account Override Flag
37600 , p_source_4 IN VARCHAR2
37601 --Cost Clearing CCID
37602 , p_source_6 IN NUMBER
37603 --Adjustment Cost Clearing CCID
37604 , p_source_7 IN NUMBER
37605 --Reversing Line Flag
37606 , p_source_22 IN VARCHAR2
37607 --Actual Upgrade Credit Accounting Class
37608 , p_source_23 IN VARCHAR2
37609 --Entered Currency Code
37610 , p_source_25 IN VARCHAR2
37611 --Exchange Rate Date
37612 , p_source_27 IN DATE
37613 --Exchange Rate
37614 , p_source_28 IN NUMBER
37615 --Exchange Rate Type
37616 , p_source_29 IN VARCHAR2
37617 --Actual Upgrade Debit Accounting Class
37618 , p_source_30 IN VARCHAR2
37619 --Use Actuals Upgrade Attributes Flag
37620 , p_source_31 IN VARCHAR2
37621 --Expenditure Item ID
37622 , p_source_32 IN NUMBER
37623 --Cost Distribution Line Number
37624 , p_source_33 IN NUMBER
37625 --Line Type
37626 , p_source_34 IN VARCHAR2
37627 , p_source_34_meaning IN VARCHAR2
37628 --Reversed Line Number
37629 , p_source_35 IN NUMBER
37630 --Entered Burdened Cost
37631 , p_source_44 IN NUMBER
37632 --Accounted Burdened Cost
37633 , p_source_45 IN NUMBER
37634 --Encumbrance Amount
37635 , p_source_46 IN NUMBER
37636 --Project Encumbrance Applied to Application Identifier
37637 , p_source_47 IN NUMBER
37638 --Project Encumbrance Applied to Distribution Type
37639 , p_source_48 IN VARCHAR2
37640 --Project Encumbrance Applied to Entity Code
37641 , p_source_49 IN VARCHAR2
37642 --Project Encumbrance Applied to First Distribution ID
37643 , p_source_50 IN NUMBER
37644 --Project Encumbrance Applied to First System Transaction ID
37645 , p_source_51 IN NUMBER
37646 --Project Encumbrance Applied to Second Distribution ID
37647 , p_source_52 IN VARCHAR2
37648 --Encumbrance Upgrade Debit Accounting Class
37649 , p_source_54 IN VARCHAR2
37650 --Use Encumbrance Upgrade Attributes Flag
37651 , p_source_55 IN VARCHAR2
37652 --Encumbrance Type ID
37653 , p_source_56 IN NUMBER
37654 --Project Encumbrance Type ID
37655 , p_source_57 IN NUMBER
37656 )
37657 IS
37658
37659 l_component_type VARCHAR2(80);
37660 l_component_code VARCHAR2(30);
37661 l_component_type_code VARCHAR2(1);
37662 l_component_appl_id INTEGER;
37666 l_ae_header_id NUMBER;
37663 l_amb_context_code VARCHAR2(30);
37664 l_entity_code VARCHAR2(30);
37665 l_event_class_code VARCHAR2(30);
37667 l_event_type_code VARCHAR2(30);
37668 l_line_definition_code VARCHAR2(30);
37669 l_line_definition_owner_code VARCHAR2(1);
37670 --
37671 -- adr variables
37672 l_segment VARCHAR2(30);
37673 l_ccid NUMBER;
37674 l_adr_transaction_coa_id NUMBER;
37675 l_adr_accounting_coa_id NUMBER;
37676 l_adr_flexfield_segment_code VARCHAR2(30);
37677 l_adr_flex_value_set_id NUMBER;
37678 l_adr_value_type_code VARCHAR2(30);
37679 l_adr_value_combination_id NUMBER;
37680 l_adr_value_segment_code VARCHAR2(30);
37681
37682 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
37683 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
37684 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
37685 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
37686
37687 -- 4262811 Variables ------------------------------------------------------------------------------------------
37688 l_entered_amt_idx NUMBER;
37689 l_accted_amt_idx NUMBER;
37690 l_acc_rev_flag VARCHAR2(1);
37691 l_accrual_line_num NUMBER;
37692 l_tmp_amt NUMBER;
37693 l_acc_rev_natural_side_code VARCHAR2(1);
37694
37695 l_num_entries NUMBER;
37696 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
37697 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
37698 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
37699 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
37700 l_recog_line_1 NUMBER;
37701 l_recog_line_2 NUMBER;
37702
37703 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
37704 l_bflow_applied_to_amt NUMBER; -- 5132302
37705 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
37706
37707 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
37708
37709 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
37710 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
37711
37712 ---------------------------------------------------------------------------------------------------------------
37713
37714
37715 --
37716 -- bulk performance
37717 --
37718 l_balance_type_code VARCHAR2(1);
37719 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
37720 l_log_module VARCHAR2(240);
37721
37722 --
37723 -- Upgrade strategy
37724 --
37725 l_actual_upg_option VARCHAR2(1);
37726 l_enc_upg_option VARCHAR2(1);
37727
37728 --
37729 BEGIN
37730 --
37731 IF g_log_enabled THEN
37732 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_81';
37733 END IF;
37734 --
37735 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
37736
37737 trace
37738 (p_msg => 'BEGIN of AcctLineType_81'
37739 ,p_level => C_LEVEL_PROCEDURE
37740 ,p_module => l_log_module);
37741
37742 END IF;
37743 --
37744 l_component_type := 'AMB_JLT';
37745 l_component_code := 'PA_TOT_BURDENED_COST_CLEAR_ADJ';
37746 l_component_type_code := 'S';
37747 l_component_appl_id := 275;
37748 l_amb_context_code := 'DEFAULT';
37749 l_entity_code := 'EXPENDITURES';
37750 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
37751 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
37752 l_line_definition_owner_code := 'S';
37753 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
37754 --
37755 l_balance_type_code := 'A';
37756 l_segment := NULL;
37757 l_ccid := NULL;
37758 l_adr_transaction_coa_id := NULL;
37759 l_adr_accounting_coa_id := NULL;
37760 l_adr_flexfield_segment_code := NULL;
37761 l_adr_flex_value_set_id := NULL;
37762 l_adr_value_type_code := NULL;
37763 l_adr_value_combination_id := NULL;
37764 l_adr_value_segment_code := NULL;
37765
37766 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
37767 l_bflow_class_code := ''; -- 4219869 Business Flow
37768 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
37769 l_budgetary_control_flag := 'N';
37770
37771 l_bflow_applied_to_amt_idx := NULL; -- 5132302
37772 l_bflow_applied_to_amt := NULL; -- 5132302
37773 l_entered_amt_idx := NULL; -- 4262811
37774 l_accted_amt_idx := NULL; -- 4262811
37775 l_acc_rev_flag := NULL; -- 4262811
37776 l_accrual_line_num := NULL; -- 4262811
37777 l_tmp_amt := NULL; -- 4262811
37778 --
37779
37780 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
37781 l_balance_type_code <> 'B' THEN
37782 IF NVL(p_source_34,'
37783 ') = 'C'
37784 THEN
37785
37786 --
37787 XLA_AE_LINES_PKG.SetNewLine;
37788
37789 p_balance_type_code := l_balance_type_code;
37793 p_actual_flag :='A';
37790 -- set the flag so later we will know whether the gain loss line needs to be created
37791
37792 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
37794 END IF;
37795
37796 --
37797 -- bulk performance
37798 --
37799 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
37800 p_header_num => 0); -- 4262811
37801 --
37802 -- set accounting line options
37803 --
37804 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
37805 p_natural_side_code => 'C'
37806 , p_gain_or_loss_flag => 'N'
37807 , p_gl_transfer_mode_code => 'S'
37808 , p_acct_entry_type_code => 'A'
37809 , p_switch_side_flag => 'Y'
37810 , p_merge_duplicate_code => 'N'
37811 );
37812 --
37813 l_acc_rev_natural_side_code := 'D'; -- 4262811
37814 --
37815 --
37816 -- set accounting line type info
37817 --
37818 xla_ae_lines_pkg.SetAcctLineType
37819 (p_component_type => l_component_type
37820 ,p_event_type_code => l_event_type_code
37821 ,p_line_definition_owner_code => l_line_definition_owner_code
37822 ,p_line_definition_code => l_line_definition_code
37823 ,p_accounting_line_code => l_component_code
37824 ,p_accounting_line_type_code => l_component_type_code
37825 ,p_accounting_line_appl_id => l_component_appl_id
37826 ,p_amb_context_code => l_amb_context_code
37827 ,p_entity_code => l_entity_code
37828 ,p_event_class_code => l_event_class_code);
37829 --
37830 -- set accounting class
37831 --
37832 xla_ae_lines_pkg.SetAcctClass(
37833 p_accounting_class_code => 'COST_CLEARING'
37834 , p_ae_header_id => l_ae_header_id
37835 );
37836
37837 --
37838 -- set rounding class
37839 --
37840 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
37841 'COST_CLEARING';
37842
37843 --
37844 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
37845 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
37846 --
37847 -- bulk performance
37848 --
37849 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
37850
37851 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
37852 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
37853
37854 -- 4955764
37855 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
37856 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
37857
37858 -- 4458381 Public Sector Enh
37859
37860 --
37861 -- set accounting attributes for the line type
37862 --
37863 l_entered_amt_idx := 35;
37864 l_accted_amt_idx := 40;
37865 l_bflow_applied_to_amt_idx := 19; -- 5132302
37866 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
37867 l_rec_acct_attrs.array_char_value(1) := p_source_22;
37868 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
37869 l_rec_acct_attrs.array_char_value(2) := p_source_23;
37870 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
37871 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
37872 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
37873 l_rec_acct_attrs.array_num_value(4) := p_source_44;
37874 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
37875 l_rec_acct_attrs.array_char_value(5) := p_source_25;
37876 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
37877 l_rec_acct_attrs.array_num_value(6) := p_source_45;
37878 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
37879 l_rec_acct_attrs.array_date_value(7) := p_source_27;
37880 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
37881 l_rec_acct_attrs.array_num_value(8) := p_source_28;
37882 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
37883 l_rec_acct_attrs.array_char_value(9) := p_source_29;
37884 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
37885 l_rec_acct_attrs.array_char_value(10) := p_source_30;
37886 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
37887 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
37888 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
37889 l_rec_acct_attrs.array_num_value(12) := p_source_44;
37890 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
37891 l_rec_acct_attrs.array_char_value(13) := p_source_25;
37892 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
37893 l_rec_acct_attrs.array_num_value(14) := p_source_45;
37894 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
37895 l_rec_acct_attrs.array_date_value(15) := p_source_27;
37896 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
37897 l_rec_acct_attrs.array_num_value(16) := p_source_28;
37898 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
37899 l_rec_acct_attrs.array_char_value(17) := p_source_29;
37903 l_rec_acct_attrs.array_num_value(19) := p_source_46;
37900 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
37901 l_rec_acct_attrs.array_char_value(18) := p_source_31;
37902 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
37904 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
37905 l_rec_acct_attrs.array_num_value(20) := p_source_47;
37906 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
37907 l_rec_acct_attrs.array_char_value(21) := p_source_48;
37908 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
37909 l_rec_acct_attrs.array_char_value(22) := p_source_49;
37910 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
37911 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
37912 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
37913 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
37914 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
37915 l_rec_acct_attrs.array_char_value(25) := p_source_52;
37916 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
37917 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
37918 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
37919 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
37920 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
37921 l_rec_acct_attrs.array_char_value(28) := p_source_34;
37922 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
37923 l_rec_acct_attrs.array_char_value(29) := p_source_54;
37924 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
37925 l_rec_acct_attrs.array_num_value(30) := p_source_2;
37926 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
37927 l_rec_acct_attrs.array_num_value(31) := p_source_46;
37928 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
37929 l_rec_acct_attrs.array_char_value(32) :=
37930 xla_ae_sources_pkg.GetSystemSourceChar(
37931 p_source_code => 'XLA_CURRENCY_CODE'
37932 , p_source_type_code => 'Y'
37933 , p_source_application_id => 602
37934 );
37935 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
37936 l_rec_acct_attrs.array_num_value(33) := p_source_46;
37937 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
37938 l_rec_acct_attrs.array_char_value(34) := p_source_55;
37939 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
37940 l_rec_acct_attrs.array_num_value(35) := p_source_44;
37941 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
37942 l_rec_acct_attrs.array_char_value(36) := p_source_25;
37943 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
37944 l_rec_acct_attrs.array_date_value(37) := p_source_27;
37945 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
37946 l_rec_acct_attrs.array_num_value(38) := p_source_28;
37947 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
37948 l_rec_acct_attrs.array_char_value(39) := p_source_29;
37949 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
37950 l_rec_acct_attrs.array_num_value(40) := p_source_45;
37951 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
37952 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_32);
37953 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
37954 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_35);
37955 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
37956 l_rec_acct_attrs.array_char_value(43) := p_source_34;
37957 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
37958 l_rec_acct_attrs.array_num_value(44) := p_source_56;
37959 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
37960 l_rec_acct_attrs.array_num_value(45) := p_source_57;
37961
37962 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
37963 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
37964
37965 ---------------------------------------------------------------------------------------------------------------
37966 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
37967 ---------------------------------------------------------------------------------------------------------------
37968 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
37969
37970 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37971 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
37972
37973 IF xla_accounting_cache_pkg.GetValueChar
37974 (p_source_code => 'LEDGER_CATEGORY_CODE'
37975 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
37976 AND l_bflow_method_code = 'PRIOR_ENTRY'
37977 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
37978 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
37979 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
37980 )
37981 THEN
37982 xla_ae_lines_pkg.BflowUpgEntry
37983 (p_business_method_code => l_bflow_method_code
37984 ,p_business_class_code => l_bflow_class_code
37985 ,p_balance_type => l_balance_type_code);
37986 ELSE
37987 NULL;
37988 -- No business flow processing for business flow method of NONE.
37992 -- call analytical criteria
37989 END IF;
37990
37991 --
37993 --
37994
37995 --
37996 -- call description
37997 --
37998 -- No description or it is inherited.
37999 --
38000 -- call ADRs
38001 -- Bug 4922099
38002 --
38003 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38004 (NVL(l_actual_upg_option, 'N') = 'O') OR
38005 (NVL(l_enc_upg_option, 'N') = 'O')
38006 )
38007 THEN
38008 NULL;
38009 --
38010 --
38011
38012 l_ccid := AcctDerRule_6(
38013 p_application_id => p_application_id
38014 , p_ae_header_id => l_ae_header_id
38015 , p_source_4 => p_source_4
38016 , p_source_7 => p_source_7
38017 , x_transaction_coa_id => l_adr_transaction_coa_id
38018 , x_accounting_coa_id => l_adr_accounting_coa_id
38019 , x_value_type_code => l_adr_value_type_code
38020 , p_side => 'NA'
38021 );
38022
38023 xla_ae_lines_pkg.set_ccid(
38024 p_code_combination_id => l_ccid
38025 , p_value_type_code => l_adr_value_type_code
38026 , p_transaction_coa_id => l_adr_transaction_coa_id
38027 , p_accounting_coa_id => l_adr_accounting_coa_id
38028 , p_adr_code => 'PA_COST_CLEARING_ADJ_ACC'
38029 , p_adr_type_code => 'S'
38030 , p_component_type => l_component_type
38031 , p_component_code => l_component_code
38032 , p_component_type_code => l_component_type_code
38033 , p_component_appl_id => l_component_appl_id
38034 , p_amb_context_code => l_amb_context_code
38035 , p_side => 'NA'
38036 );
38037
38038
38039 --
38040 --
38041 END IF;
38042 --
38043 -- Bug 4922099
38044 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38045 (NVL(l_enc_upg_option, 'N') = 'O')
38046 ) AND
38047 (l_bflow_method_code = 'PRIOR_ENTRY')
38048 )
38049 THEN
38050 IF
38051 --
38052 1 = 2
38053 --
38054 THEN
38055 xla_accounting_err_pkg.build_message
38056 (p_appli_s_name => 'XLA'
38057 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38058 ,p_token_1 => 'LINE_NUMBER'
38059 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38060 ,p_token_2 => 'LINE_TYPE_NAME'
38061 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38062 l_component_type
38063 ,l_component_code
38064 ,l_component_type_code
38065 ,l_component_appl_id
38066 ,l_amb_context_code
38067 ,l_entity_code
38068 ,l_event_class_code
38069 )
38070 ,p_token_3 => 'OWNER'
38071 ,p_value_3 => xla_lookups_pkg.get_meaning(
38072 p_lookup_type => 'XLA_OWNER_TYPE'
38073 ,p_lookup_code => l_component_type_code
38074 )
38075 ,p_token_4 => 'PRODUCT_NAME'
38076 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38077 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38078 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38079 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38080 ,p_ae_header_id => NULL
38081 );
38082
38083 IF (C_LEVEL_ERROR>= g_log_level) THEN
38084 trace
38085 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38086 ,p_level => C_LEVEL_ERROR
38087 ,p_module => l_log_module);
38088 END IF;
38089 END IF;
38090 END IF;
38091 --
38092 --
38093 ------------------------------------------------------------------------------------------------
38094 -- 4219869 Business Flow
38095 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38096 -- Prior Entry. Currently, the following code is always generated.
38097 ------------------------------------------------------------------------------------------------
38101 -- 4219869 Business Flow
38098 XLA_AE_LINES_PKG.ValidateCurrentLine;
38099
38100 ------------------------------------------------------------------------------------
38102 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38103 ------------------------------------------------------------------------------------
38104 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38105
38106 ----------------------------------------------------------------------------------
38107 -- 4219869 Business Flow
38108 -- Update journal entry status -- Need to generate this within IF <condition>
38109 ----------------------------------------------------------------------------------
38110 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38111 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38112 ,p_balance_type_code => l_balance_type_code
38113 );
38114
38115 -------------------------------------------------------------------------------------------
38116 -- 4262811 - Generate the Accrual Reversal lines
38117 -------------------------------------------------------------------------------------------
38118 BEGIN
38119 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38120 (g_array_event(p_event_id).array_value_num('header_index'));
38121 IF l_acc_rev_flag IS NULL THEN
38122 l_acc_rev_flag := 'N';
38123 END IF;
38124 EXCEPTION
38125 WHEN OTHERS THEN
38126 l_acc_rev_flag := 'N';
38127 END;
38128 --
38129 IF (l_acc_rev_flag = 'Y') THEN
38130
38131 -- 4645092 ------------------------------------------------------------------------------
38132 -- To allow MPA report to determine if it should generate report process
38133 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38134 ------------------------------------------------------------------------------------------
38135
38136 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38137 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38138
38139 --
38140 -- Update the line information that should be overwritten
38141 --
38142 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38143 p_header_num => 1);
38144 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38145
38146 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38147
38148 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38149 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38150 END IF;
38151
38152 --
38153 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38154 --
38155 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38156 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38157 ELSE
38158 ---------------------------------------------------------------------------------------------------
38159 -- 4262811a Switch Sign
38160 ---------------------------------------------------------------------------------------------------
38161 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38162 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38163 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38164 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38165 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38166 -- 5132302
38167 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38168 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38169
38170 END IF;
38171
38172 -- 4955764
38173 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38174 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38175
38176
38177 XLA_AE_LINES_PKG.ValidateCurrentLine;
38178 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38179
38180 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38181 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38182 ,p_balance_type_code => l_balance_type_code);
38183
38184 END IF;
38185
38186 -----------------------------------------------------------------------------------------
38187 -- 4262811 Multiperiod Accounting
38188 -----------------------------------------------------------------------------------------
38189 -- No MPA option is assigned.
38190
38191
38192 END IF;
38193 END IF;
38194 --
38195
38196 --
38197 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38198 trace
38199 (p_msg => 'END of AcctLineType_81'
38200 ,p_level => C_LEVEL_PROCEDURE
38201 ,p_module => l_log_module);
38202 END IF;
38203 --
38204 EXCEPTION
38208 xla_exceptions_pkg.raise_message
38205 WHEN xla_exceptions_pkg.application_exception THEN
38206 RAISE;
38207 WHEN OTHERS THEN
38209 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_81');
38210 END AcctLineType_81;
38211 --
38212
38213 ---------------------------------------
38214 --
38215 -- PRIVATE FUNCTION
38216 -- AcctLineType_82
38217 --
38218 ---------------------------------------
38219 PROCEDURE AcctLineType_82 (
38220 p_application_id IN NUMBER
38221 ,p_event_id IN NUMBER
38222 ,p_calculate_acctd_flag IN VARCHAR2
38223 ,p_calculate_g_l_flag IN VARCHAR2
38224 ,p_actual_flag IN OUT VARCHAR2
38225 ,p_balance_type_code OUT VARCHAR2
38226 ,p_gain_or_loss_ref OUT VARCHAR2
38227
38228 --Unbilled Receivables CCID
38229 , p_source_19 IN NUMBER
38230 --Entered Currency Code
38231 , p_source_25 IN VARCHAR2
38232 --Exchange Rate Date
38233 , p_source_27 IN DATE
38234 --Exchange Rate
38235 , p_source_28 IN NUMBER
38236 --Exchange Rate Type
38237 , p_source_29 IN VARCHAR2
38238 --Revenue Distribution Type
38239 , p_source_36 IN VARCHAR2
38240 --Crediting Revenue Flag
38241 , p_source_38 IN VARCHAR2
38242 --Revenue First Distribution ID
38243 , p_source_39 IN NUMBER
38244 --Revenue Second Distribution ID
38245 , p_source_40 IN NUMBER
38246 --Entered Amount
38247 , p_source_41 IN NUMBER
38248 --Event ID
38249 , p_source_42 IN NUMBER
38250 --Accounted Amount
38251 , p_source_43 IN NUMBER
38252 )
38253 IS
38254
38255 l_component_type VARCHAR2(80);
38256 l_component_code VARCHAR2(30);
38257 l_component_type_code VARCHAR2(1);
38258 l_component_appl_id INTEGER;
38259 l_amb_context_code VARCHAR2(30);
38260 l_entity_code VARCHAR2(30);
38261 l_event_class_code VARCHAR2(30);
38262 l_ae_header_id NUMBER;
38263 l_event_type_code VARCHAR2(30);
38264 l_line_definition_code VARCHAR2(30);
38265 l_line_definition_owner_code VARCHAR2(1);
38266 --
38267 -- adr variables
38268 l_segment VARCHAR2(30);
38269 l_ccid NUMBER;
38270 l_adr_transaction_coa_id NUMBER;
38271 l_adr_accounting_coa_id NUMBER;
38272 l_adr_flexfield_segment_code VARCHAR2(30);
38273 l_adr_flex_value_set_id NUMBER;
38274 l_adr_value_type_code VARCHAR2(30);
38275 l_adr_value_combination_id NUMBER;
38276 l_adr_value_segment_code VARCHAR2(30);
38277
38278 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38279 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38280 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38281 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38282
38283 -- 4262811 Variables ------------------------------------------------------------------------------------------
38284 l_entered_amt_idx NUMBER;
38285 l_accted_amt_idx NUMBER;
38286 l_acc_rev_flag VARCHAR2(1);
38287 l_accrual_line_num NUMBER;
38288 l_tmp_amt NUMBER;
38289 l_acc_rev_natural_side_code VARCHAR2(1);
38290
38291 l_num_entries NUMBER;
38292 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38293 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38294 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38295 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38296 l_recog_line_1 NUMBER;
38297 l_recog_line_2 NUMBER;
38298
38299 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38300 l_bflow_applied_to_amt NUMBER; -- 5132302
38301 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38302
38303 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38304
38305 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38306 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38307
38308 ---------------------------------------------------------------------------------------------------------------
38309
38310
38311 --
38312 -- bulk performance
38313 --
38314 l_balance_type_code VARCHAR2(1);
38315 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38316 l_log_module VARCHAR2(240);
38317
38318 --
38319 -- Upgrade strategy
38320 --
38321 l_actual_upg_option VARCHAR2(1);
38322 l_enc_upg_option VARCHAR2(1);
38323
38324 --
38325 BEGIN
38326 --
38327 IF g_log_enabled THEN
38328 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_82';
38329 END IF;
38330 --
38331 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38332
38333 trace
38334 (p_msg => 'BEGIN of AcctLineType_82'
38335 ,p_level => C_LEVEL_PROCEDURE
38336 ,p_module => l_log_module);
38337
38338 END IF;
38339 --
38340 l_component_type := 'AMB_JLT';
38341 l_component_code := 'PA_UBR';
38342 l_component_type_code := 'S';
38343 l_component_appl_id := 275;
38347 l_event_type_code := 'REVENUE_ALL';
38344 l_amb_context_code := 'DEFAULT';
38345 l_entity_code := 'REVENUE';
38346 l_event_class_code := 'REVENUE';
38348 l_line_definition_owner_code := 'S';
38349 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
38350 --
38351 l_balance_type_code := 'A';
38352 l_segment := NULL;
38353 l_ccid := NULL;
38354 l_adr_transaction_coa_id := NULL;
38355 l_adr_accounting_coa_id := NULL;
38356 l_adr_flexfield_segment_code := NULL;
38357 l_adr_flex_value_set_id := NULL;
38358 l_adr_value_type_code := NULL;
38359 l_adr_value_combination_id := NULL;
38360 l_adr_value_segment_code := NULL;
38361
38362 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38363 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
38364 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38365 l_budgetary_control_flag := 'N';
38366
38367 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38368 l_bflow_applied_to_amt := NULL; -- 5132302
38369 l_entered_amt_idx := NULL; -- 4262811
38370 l_accted_amt_idx := NULL; -- 4262811
38371 l_acc_rev_flag := NULL; -- 4262811
38372 l_accrual_line_num := NULL; -- 4262811
38373 l_tmp_amt := NULL; -- 4262811
38374 --
38375
38376 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38377 l_balance_type_code <> 'B' THEN
38378 IF NVL(p_source_36,'
38379 ') = 'Revenue - UBR' AND
38380 NVL(p_source_38,'
38381 ') = 'N'
38382 THEN
38383
38384 --
38385 XLA_AE_LINES_PKG.SetNewLine;
38386
38387 p_balance_type_code := l_balance_type_code;
38388 -- set the flag so later we will know whether the gain loss line needs to be created
38389
38390 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38391 p_actual_flag :='A';
38392 END IF;
38393
38394 --
38395 -- bulk performance
38396 --
38397 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38398 p_header_num => 0); -- 4262811
38399 --
38400 -- set accounting line options
38401 --
38402 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38403 p_natural_side_code => 'D'
38404 , p_gain_or_loss_flag => 'N'
38405 , p_gl_transfer_mode_code => 'S'
38406 , p_acct_entry_type_code => 'A'
38407 , p_switch_side_flag => 'Y'
38408 , p_merge_duplicate_code => 'N'
38409 );
38410 --
38411 l_acc_rev_natural_side_code := 'C'; -- 4262811
38412 --
38413 --
38414 -- set accounting line type info
38415 --
38416 xla_ae_lines_pkg.SetAcctLineType
38417 (p_component_type => l_component_type
38418 ,p_event_type_code => l_event_type_code
38419 ,p_line_definition_owner_code => l_line_definition_owner_code
38420 ,p_line_definition_code => l_line_definition_code
38421 ,p_accounting_line_code => l_component_code
38422 ,p_accounting_line_type_code => l_component_type_code
38423 ,p_accounting_line_appl_id => l_component_appl_id
38424 ,p_amb_context_code => l_amb_context_code
38425 ,p_entity_code => l_entity_code
38426 ,p_event_class_code => l_event_class_code);
38427 --
38428 -- set accounting class
38429 --
38430 xla_ae_lines_pkg.SetAcctClass(
38431 p_accounting_class_code => 'UNBILL'
38432 , p_ae_header_id => l_ae_header_id
38433 );
38434
38435 --
38436 -- set rounding class
38437 --
38438 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38439 'UNBILL';
38440
38441 --
38442 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38443 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38444 --
38445 -- bulk performance
38446 --
38447 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38448
38449 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38450 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38451
38452 -- 4955764
38453 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38454 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38455
38456 -- 4458381 Public Sector Enh
38457
38458 --
38459 -- set accounting attributes for the line type
38460 --
38461 l_entered_amt_idx := 4;
38462 l_accted_amt_idx := 10;
38463 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38464 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
38465 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
38466 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
38467 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
38468 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
38469 l_rec_acct_attrs.array_char_value(3) := p_source_36;
38473 l_rec_acct_attrs.array_char_value(5) := p_source_25;
38470 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
38471 l_rec_acct_attrs.array_num_value(4) := p_source_41;
38472 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
38474 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
38475 l_rec_acct_attrs.array_date_value(6) := p_source_27;
38476 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
38477 l_rec_acct_attrs.array_num_value(7) := p_source_28;
38478 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
38479 l_rec_acct_attrs.array_char_value(8) := p_source_29;
38480 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
38481 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
38482 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
38483 l_rec_acct_attrs.array_num_value(10) := p_source_43;
38484
38485 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
38486 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
38487
38488 ---------------------------------------------------------------------------------------------------------------
38489 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
38490 ---------------------------------------------------------------------------------------------------------------
38491 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
38492
38493 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38494 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
38495
38496 IF xla_accounting_cache_pkg.GetValueChar
38497 (p_source_code => 'LEDGER_CATEGORY_CODE'
38498 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
38499 AND l_bflow_method_code = 'PRIOR_ENTRY'
38500 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
38501 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
38502 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
38503 )
38504 THEN
38505 xla_ae_lines_pkg.BflowUpgEntry
38506 (p_business_method_code => l_bflow_method_code
38507 ,p_business_class_code => l_bflow_class_code
38508 ,p_balance_type => l_balance_type_code);
38509 ELSE
38510 NULL;
38511 -- No business flow processing for business flow method of NONE.
38512 END IF;
38513
38514 --
38515 -- call analytical criteria
38516 --
38517
38518 --
38519 -- call description
38520 --
38521 -- No description or it is inherited.
38522 --
38523 -- call ADRs
38524 -- Bug 4922099
38525 --
38526 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
38527 (NVL(l_actual_upg_option, 'N') = 'O') OR
38528 (NVL(l_enc_upg_option, 'N') = 'O')
38529 )
38530 THEN
38531 NULL;
38532 --
38533 --
38534
38535 l_ccid := AcctDerRule_18(
38536 p_application_id => p_application_id
38537 , p_ae_header_id => l_ae_header_id
38538 , p_source_19 => p_source_19
38539 , x_transaction_coa_id => l_adr_transaction_coa_id
38540 , x_accounting_coa_id => l_adr_accounting_coa_id
38541 , x_value_type_code => l_adr_value_type_code
38542 , p_side => 'NA'
38543 );
38544
38545 xla_ae_lines_pkg.set_ccid(
38546 p_code_combination_id => l_ccid
38547 , p_value_type_code => l_adr_value_type_code
38548 , p_transaction_coa_id => l_adr_transaction_coa_id
38549 , p_accounting_coa_id => l_adr_accounting_coa_id
38550 , p_adr_code => 'UBR_RULE'
38551 , p_adr_type_code => 'S'
38552 , p_component_type => l_component_type
38553 , p_component_code => l_component_code
38554 , p_component_type_code => l_component_type_code
38555 , p_component_appl_id => l_component_appl_id
38556 , p_amb_context_code => l_amb_context_code
38557 , p_side => 'NA'
38558 );
38559
38560
38561 --
38562 --
38563 END IF;
38564 --
38565 -- Bug 4922099
38566 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
38567 (NVL(l_enc_upg_option, 'N') = 'O')
38568 ) AND
38569 (l_bflow_method_code = 'PRIOR_ENTRY')
38570 )
38571 THEN
38572 IF
38573 --
38574 1 = 2
38575 --
38576 THEN
38577 xla_accounting_err_pkg.build_message
38578 (p_appli_s_name => 'XLA'
38579 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38580 ,p_token_1 => 'LINE_NUMBER'
38581 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
38582 ,p_token_2 => 'LINE_TYPE_NAME'
38583 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
38584 l_component_type
38585 ,l_component_code
38589 ,l_entity_code
38586 ,l_component_type_code
38587 ,l_component_appl_id
38588 ,l_amb_context_code
38590 ,l_event_class_code
38591 )
38592 ,p_token_3 => 'OWNER'
38593 ,p_value_3 => xla_lookups_pkg.get_meaning(
38594 p_lookup_type => 'XLA_OWNER_TYPE'
38595 ,p_lookup_code => l_component_type_code
38596 )
38597 ,p_token_4 => 'PRODUCT_NAME'
38598 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
38599 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
38600 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
38601 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
38602 ,p_ae_header_id => NULL
38603 );
38604
38605 IF (C_LEVEL_ERROR>= g_log_level) THEN
38606 trace
38607 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
38608 ,p_level => C_LEVEL_ERROR
38609 ,p_module => l_log_module);
38610 END IF;
38611 END IF;
38612 END IF;
38613 --
38614 --
38615 ------------------------------------------------------------------------------------------------
38616 -- 4219869 Business Flow
38617 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
38618 -- Prior Entry. Currently, the following code is always generated.
38619 ------------------------------------------------------------------------------------------------
38620 XLA_AE_LINES_PKG.ValidateCurrentLine;
38621
38622 ------------------------------------------------------------------------------------
38623 -- 4219869 Business Flow
38624 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
38625 ------------------------------------------------------------------------------------
38626 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38627
38628 ----------------------------------------------------------------------------------
38629 -- 4219869 Business Flow
38630 -- Update journal entry status -- Need to generate this within IF <condition>
38631 ----------------------------------------------------------------------------------
38632 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38633 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
38634 ,p_balance_type_code => l_balance_type_code
38635 );
38636
38637 -------------------------------------------------------------------------------------------
38638 -- 4262811 - Generate the Accrual Reversal lines
38639 -------------------------------------------------------------------------------------------
38640 BEGIN
38641 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
38642 (g_array_event(p_event_id).array_value_num('header_index'));
38643 IF l_acc_rev_flag IS NULL THEN
38644 l_acc_rev_flag := 'N';
38645 END IF;
38646 EXCEPTION
38647 WHEN OTHERS THEN
38648 l_acc_rev_flag := 'N';
38649 END;
38650 --
38651 IF (l_acc_rev_flag = 'Y') THEN
38652
38653 -- 4645092 ------------------------------------------------------------------------------
38654 -- To allow MPA report to determine if it should generate report process
38655 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
38656 ------------------------------------------------------------------------------------------
38657
38658 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
38659 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
38660
38661 --
38662 -- Update the line information that should be overwritten
38663 --
38664 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
38665 p_header_num => 1);
38666 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
38667
38668 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
38669
38670 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
38671 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
38672 END IF;
38673
38674 --
38675 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
38676 --
38677 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
38681 -- 4262811a Switch Sign
38678 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
38679 ELSE
38680 ---------------------------------------------------------------------------------------------------
38682 ---------------------------------------------------------------------------------------------------
38683 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
38684 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38685 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38686 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
38687 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38688 -- 5132302
38689 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
38690 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
38691
38692 END IF;
38693
38694 -- 4955764
38695 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38696 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
38697
38698
38699 XLA_AE_LINES_PKG.ValidateCurrentLine;
38700 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
38701
38702 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
38703 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
38704 ,p_balance_type_code => l_balance_type_code);
38705
38706 END IF;
38707
38708 -----------------------------------------------------------------------------------------
38709 -- 4262811 Multiperiod Accounting
38710 -----------------------------------------------------------------------------------------
38711 -- No MPA option is assigned.
38712
38713
38714 END IF;
38715 END IF;
38716 --
38717
38718 --
38719 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38720 trace
38721 (p_msg => 'END of AcctLineType_82'
38722 ,p_level => C_LEVEL_PROCEDURE
38723 ,p_module => l_log_module);
38724 END IF;
38725 --
38726 EXCEPTION
38727 WHEN xla_exceptions_pkg.application_exception THEN
38728 RAISE;
38729 WHEN OTHERS THEN
38730 xla_exceptions_pkg.raise_message
38731 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_82');
38732 END AcctLineType_82;
38733 --
38734
38735 ---------------------------------------
38736 --
38737 -- PRIVATE FUNCTION
38738 -- AcctLineType_83
38739 --
38740 ---------------------------------------
38741 PROCEDURE AcctLineType_83 (
38742 p_application_id IN NUMBER
38743 ,p_event_id IN NUMBER
38744 ,p_calculate_acctd_flag IN VARCHAR2
38745 ,p_calculate_g_l_flag IN VARCHAR2
38746 ,p_actual_flag IN OUT VARCHAR2
38747 ,p_balance_type_code OUT VARCHAR2
38748 ,p_gain_or_loss_ref OUT VARCHAR2
38749
38750 --Unbilled Receivables CCID
38751 , p_source_19 IN NUMBER
38752 --Actual Upgrade Credit Accounting Class
38753 , p_source_23 IN VARCHAR2
38754 --Entered Currency Code
38755 , p_source_25 IN VARCHAR2
38756 --Exchange Rate Date
38757 , p_source_27 IN DATE
38758 --Exchange Rate
38759 , p_source_28 IN NUMBER
38760 --Exchange Rate Type
38761 , p_source_29 IN VARCHAR2
38762 --Actual Upgrade Debit Accounting Class
38763 , p_source_30 IN VARCHAR2
38764 --Use Actuals Upgrade Attributes Flag
38765 , p_source_31 IN VARCHAR2
38766 --Revenue Distribution Type
38767 , p_source_36 IN VARCHAR2
38768 --Crediting Revenue Flag
38769 , p_source_38 IN VARCHAR2
38770 --Revenue First Distribution ID
38771 , p_source_39 IN NUMBER
38772 --Revenue Second Distribution ID
38773 , p_source_40 IN NUMBER
38774 --Entered Amount
38775 , p_source_41 IN NUMBER
38776 --Event ID
38777 , p_source_42 IN NUMBER
38778 --Accounted Amount
38779 , p_source_43 IN NUMBER
38780 --Actual Upgrade Credit CCID
38781 , p_source_59 IN NUMBER
38782 --Actual Upgrade Debit CCID
38783 , p_source_60 IN NUMBER
38784 --Application ID
38785 , p_source_61 IN NUMBER
38786 --Revenue Entity Code
38787 , p_source_62 IN VARCHAR2
38788 --Crediting Revenue First Distribution ID
38789 , p_source_63 IN NUMBER
38790 --Project ID
38791 , p_source_64 IN NUMBER
38792 --Crediting Revenue Second Distribution ID
38793 , p_source_65 IN NUMBER
38794 --Draft Revenue Number Credited
38795 , p_source_66 IN NUMBER
38796 )
38797 IS
38798
38799 l_component_type VARCHAR2(80);
38800 l_component_code VARCHAR2(30);
38801 l_component_type_code VARCHAR2(1);
38802 l_component_appl_id INTEGER;
38803 l_amb_context_code VARCHAR2(30);
38804 l_entity_code VARCHAR2(30);
38805 l_event_class_code VARCHAR2(30);
38809 l_line_definition_owner_code VARCHAR2(1);
38806 l_ae_header_id NUMBER;
38807 l_event_type_code VARCHAR2(30);
38808 l_line_definition_code VARCHAR2(30);
38810 --
38811 -- adr variables
38812 l_segment VARCHAR2(30);
38813 l_ccid NUMBER;
38814 l_adr_transaction_coa_id NUMBER;
38815 l_adr_accounting_coa_id NUMBER;
38816 l_adr_flexfield_segment_code VARCHAR2(30);
38817 l_adr_flex_value_set_id NUMBER;
38818 l_adr_value_type_code VARCHAR2(30);
38819 l_adr_value_combination_id NUMBER;
38820 l_adr_value_segment_code VARCHAR2(30);
38821
38822 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
38823 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
38824 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
38825 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
38826
38827 -- 4262811 Variables ------------------------------------------------------------------------------------------
38828 l_entered_amt_idx NUMBER;
38829 l_accted_amt_idx NUMBER;
38830 l_acc_rev_flag VARCHAR2(1);
38831 l_accrual_line_num NUMBER;
38832 l_tmp_amt NUMBER;
38833 l_acc_rev_natural_side_code VARCHAR2(1);
38834
38835 l_num_entries NUMBER;
38836 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
38837 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
38838 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
38839 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
38840 l_recog_line_1 NUMBER;
38841 l_recog_line_2 NUMBER;
38842
38843 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
38844 l_bflow_applied_to_amt NUMBER; -- 5132302
38845 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
38846
38847 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
38848
38849 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
38850 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
38851
38852 ---------------------------------------------------------------------------------------------------------------
38853
38854
38855 --
38856 -- bulk performance
38857 --
38858 l_balance_type_code VARCHAR2(1);
38859 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
38860 l_log_module VARCHAR2(240);
38861
38862 --
38863 -- Upgrade strategy
38864 --
38865 l_actual_upg_option VARCHAR2(1);
38866 l_enc_upg_option VARCHAR2(1);
38867
38868 --
38869 BEGIN
38870 --
38871 IF g_log_enabled THEN
38872 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_83';
38873 END IF;
38874 --
38875 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
38876
38877 trace
38878 (p_msg => 'BEGIN of AcctLineType_83'
38879 ,p_level => C_LEVEL_PROCEDURE
38880 ,p_module => l_log_module);
38881
38882 END IF;
38883 --
38884 l_component_type := 'AMB_JLT';
38885 l_component_code := 'PA_UBR_ADJ';
38886 l_component_type_code := 'S';
38887 l_component_appl_id := 275;
38888 l_amb_context_code := 'DEFAULT';
38889 l_entity_code := 'REVENUE';
38890 l_event_class_code := 'REVENUE_ADJ';
38891 l_event_type_code := 'REVENUE_ADJ_ALL';
38892 l_line_definition_owner_code := 'S';
38893 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
38894 --
38895 l_balance_type_code := 'A';
38896 l_segment := NULL;
38897 l_ccid := NULL;
38898 l_adr_transaction_coa_id := NULL;
38899 l_adr_accounting_coa_id := NULL;
38900 l_adr_flexfield_segment_code := NULL;
38901 l_adr_flex_value_set_id := NULL;
38902 l_adr_value_type_code := NULL;
38903 l_adr_value_combination_id := NULL;
38904 l_adr_value_segment_code := NULL;
38905
38906 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
38907 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
38908 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
38909 l_budgetary_control_flag := 'N';
38910
38911 l_bflow_applied_to_amt_idx := NULL; -- 5132302
38912 l_bflow_applied_to_amt := NULL; -- 5132302
38913 l_entered_amt_idx := NULL; -- 4262811
38914 l_accted_amt_idx := NULL; -- 4262811
38915 l_acc_rev_flag := NULL; -- 4262811
38916 l_accrual_line_num := NULL; -- 4262811
38917 l_tmp_amt := NULL; -- 4262811
38918 --
38919
38920 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
38921 l_balance_type_code <> 'B' THEN
38922 IF NVL(p_source_36,'
38923 ') = 'Revenue - UBR' AND
38924 NVL(p_source_38,'
38925 ') = 'Y'
38926 THEN
38927
38928 --
38929 XLA_AE_LINES_PKG.SetNewLine;
38930
38931 p_balance_type_code := l_balance_type_code;
38932 -- set the flag so later we will know whether the gain loss line needs to be created
38933
38934 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
38935 p_actual_flag :='A';
38936 END IF;
38940 --
38937
38938 --
38939 -- bulk performance
38941 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
38942 p_header_num => 0); -- 4262811
38943 --
38944 -- set accounting line options
38945 --
38946 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
38947 p_natural_side_code => 'C'
38948 , p_gain_or_loss_flag => 'N'
38949 , p_gl_transfer_mode_code => 'S'
38950 , p_acct_entry_type_code => 'A'
38951 , p_switch_side_flag => 'Y'
38952 , p_merge_duplicate_code => 'N'
38953 );
38954 --
38955 l_acc_rev_natural_side_code := 'D'; -- 4262811
38956 --
38957 --
38958 -- set accounting line type info
38959 --
38960 xla_ae_lines_pkg.SetAcctLineType
38961 (p_component_type => l_component_type
38962 ,p_event_type_code => l_event_type_code
38963 ,p_line_definition_owner_code => l_line_definition_owner_code
38964 ,p_line_definition_code => l_line_definition_code
38965 ,p_accounting_line_code => l_component_code
38966 ,p_accounting_line_type_code => l_component_type_code
38967 ,p_accounting_line_appl_id => l_component_appl_id
38968 ,p_amb_context_code => l_amb_context_code
38969 ,p_entity_code => l_entity_code
38970 ,p_event_class_code => l_event_class_code);
38971 --
38972 -- set accounting class
38973 --
38974 xla_ae_lines_pkg.SetAcctClass(
38975 p_accounting_class_code => 'UNBILL'
38976 , p_ae_header_id => l_ae_header_id
38977 );
38978
38979 --
38980 -- set rounding class
38981 --
38982 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
38983 'UNBILL';
38984
38985 --
38986 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
38987 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
38988 --
38989 -- bulk performance
38990 --
38991 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
38992
38993 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
38994 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
38995
38996 -- 4955764
38997 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
38998 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
38999
39000 -- 4458381 Public Sector Enh
39001
39002 --
39003 -- set accounting attributes for the line type
39004 --
39005 l_entered_amt_idx := 28;
39006 l_accted_amt_idx := 34;
39007 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39008 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
39009 l_rec_acct_attrs.array_char_value(1) := p_source_23;
39010 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
39011 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
39012 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
39013 l_rec_acct_attrs.array_num_value(3) := p_source_41;
39014 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
39015 l_rec_acct_attrs.array_char_value(4) := p_source_25;
39016 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
39017 l_rec_acct_attrs.array_num_value(5) := p_source_43;
39018 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
39019 l_rec_acct_attrs.array_date_value(6) := p_source_27;
39020 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
39021 l_rec_acct_attrs.array_num_value(7) := p_source_28;
39022 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
39023 l_rec_acct_attrs.array_char_value(8) := p_source_29;
39024 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
39025 l_rec_acct_attrs.array_char_value(9) := p_source_30;
39026 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
39027 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
39028 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
39029 l_rec_acct_attrs.array_num_value(11) := p_source_41;
39030 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
39031 l_rec_acct_attrs.array_char_value(12) := p_source_25;
39032 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
39033 l_rec_acct_attrs.array_num_value(13) := p_source_43;
39034 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
39035 l_rec_acct_attrs.array_date_value(14) := p_source_27;
39036 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
39037 l_rec_acct_attrs.array_num_value(15) := p_source_28;
39038 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
39039 l_rec_acct_attrs.array_char_value(16) := p_source_29;
39040 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
39041 l_rec_acct_attrs.array_char_value(17) := p_source_31;
39042 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
39043 l_rec_acct_attrs.array_num_value(18) := p_source_61;
39044 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
39045 l_rec_acct_attrs.array_char_value(19) := p_source_36;
39049 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
39046 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
39047 l_rec_acct_attrs.array_char_value(20) := p_source_62;
39048 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
39050 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
39051 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
39052 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
39053 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
39054 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
39055 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
39056 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
39057 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
39058 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
39059 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
39060 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
39061 l_rec_acct_attrs.array_char_value(27) := p_source_36;
39062 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
39063 l_rec_acct_attrs.array_num_value(28) := p_source_41;
39064 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
39065 l_rec_acct_attrs.array_char_value(29) := p_source_25;
39066 l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_DATE';
39067 l_rec_acct_attrs.array_date_value(30) := p_source_27;
39068 l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE';
39069 l_rec_acct_attrs.array_num_value(31) := p_source_28;
39070 l_rec_acct_attrs.array_acct_attr_code(32) := 'EXCHANGE_RATE_TYPE';
39071 l_rec_acct_attrs.array_char_value(32) := p_source_29;
39072 l_rec_acct_attrs.array_acct_attr_code(33) := 'GAIN_LOSS_REFERENCE';
39073 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_42);
39074 l_rec_acct_attrs.array_acct_attr_code(34) := 'LEDGER_AMOUNT';
39075 l_rec_acct_attrs.array_num_value(34) := p_source_43;
39076
39077 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39078 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39079
39080 ---------------------------------------------------------------------------------------------------------------
39081 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39082 ---------------------------------------------------------------------------------------------------------------
39083 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39084
39085 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39086 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39087
39088 IF xla_accounting_cache_pkg.GetValueChar
39089 (p_source_code => 'LEDGER_CATEGORY_CODE'
39090 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39091 AND l_bflow_method_code = 'PRIOR_ENTRY'
39092 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39093 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39094 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39095 )
39096 THEN
39097 xla_ae_lines_pkg.BflowUpgEntry
39098 (p_business_method_code => l_bflow_method_code
39099 ,p_business_class_code => l_bflow_class_code
39100 ,p_balance_type => l_balance_type_code);
39101 ELSE
39102 NULL;
39103 -- No business flow processing for business flow method of NONE.
39104 END IF;
39105
39106 --
39107 -- call analytical criteria
39108 --
39109
39110 --
39111 -- call description
39112 --
39113 -- No description or it is inherited.
39114 --
39115 -- call ADRs
39116 -- Bug 4922099
39117 --
39118 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39119 (NVL(l_actual_upg_option, 'N') = 'O') OR
39120 (NVL(l_enc_upg_option, 'N') = 'O')
39121 )
39122 THEN
39123 NULL;
39124 --
39125 --
39126
39127 l_ccid := AcctDerRule_18(
39128 p_application_id => p_application_id
39129 , p_ae_header_id => l_ae_header_id
39130 , p_source_19 => p_source_19
39131 , x_transaction_coa_id => l_adr_transaction_coa_id
39132 , x_accounting_coa_id => l_adr_accounting_coa_id
39133 , x_value_type_code => l_adr_value_type_code
39134 , p_side => 'NA'
39135 );
39136
39137 xla_ae_lines_pkg.set_ccid(
39138 p_code_combination_id => l_ccid
39139 , p_value_type_code => l_adr_value_type_code
39140 , p_transaction_coa_id => l_adr_transaction_coa_id
39141 , p_accounting_coa_id => l_adr_accounting_coa_id
39142 , p_adr_code => 'UBR_RULE'
39143 , p_adr_type_code => 'S'
39144 , p_component_type => l_component_type
39145 , p_component_code => l_component_code
39146 , p_component_type_code => l_component_type_code
39147 , p_component_appl_id => l_component_appl_id
39148 , p_amb_context_code => l_amb_context_code
39149 , p_side => 'NA'
39150 );
39151
39152
39153 --
39154 --
39155 END IF;
39159 (NVL(l_enc_upg_option, 'N') = 'O')
39156 --
39157 -- Bug 4922099
39158 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39160 ) AND
39161 (l_bflow_method_code = 'PRIOR_ENTRY')
39162 )
39163 THEN
39164 IF
39165 --
39166 1 = 2
39167 --
39168 THEN
39169 xla_accounting_err_pkg.build_message
39170 (p_appli_s_name => 'XLA'
39171 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39172 ,p_token_1 => 'LINE_NUMBER'
39173 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39174 ,p_token_2 => 'LINE_TYPE_NAME'
39175 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39176 l_component_type
39177 ,l_component_code
39178 ,l_component_type_code
39179 ,l_component_appl_id
39180 ,l_amb_context_code
39181 ,l_entity_code
39182 ,l_event_class_code
39183 )
39184 ,p_token_3 => 'OWNER'
39185 ,p_value_3 => xla_lookups_pkg.get_meaning(
39186 p_lookup_type => 'XLA_OWNER_TYPE'
39187 ,p_lookup_code => l_component_type_code
39188 )
39189 ,p_token_4 => 'PRODUCT_NAME'
39190 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39191 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39192 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39193 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39194 ,p_ae_header_id => NULL
39195 );
39196
39197 IF (C_LEVEL_ERROR>= g_log_level) THEN
39198 trace
39199 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39200 ,p_level => C_LEVEL_ERROR
39201 ,p_module => l_log_module);
39202 END IF;
39203 END IF;
39204 END IF;
39205 --
39206 --
39207 ------------------------------------------------------------------------------------------------
39208 -- 4219869 Business Flow
39209 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39210 -- Prior Entry. Currently, the following code is always generated.
39211 ------------------------------------------------------------------------------------------------
39212 XLA_AE_LINES_PKG.ValidateCurrentLine;
39213
39214 ------------------------------------------------------------------------------------
39215 -- 4219869 Business Flow
39216 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39217 ------------------------------------------------------------------------------------
39218 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39219
39220 ----------------------------------------------------------------------------------
39221 -- 4219869 Business Flow
39222 -- Update journal entry status -- Need to generate this within IF <condition>
39223 ----------------------------------------------------------------------------------
39224 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39225 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39226 ,p_balance_type_code => l_balance_type_code
39227 );
39228
39229 -------------------------------------------------------------------------------------------
39230 -- 4262811 - Generate the Accrual Reversal lines
39231 -------------------------------------------------------------------------------------------
39232 BEGIN
39233 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39234 (g_array_event(p_event_id).array_value_num('header_index'));
39235 IF l_acc_rev_flag IS NULL THEN
39236 l_acc_rev_flag := 'N';
39237 END IF;
39238 EXCEPTION
39239 WHEN OTHERS THEN
39240 l_acc_rev_flag := 'N';
39241 END;
39242 --
39243 IF (l_acc_rev_flag = 'Y') THEN
39244
39245 -- 4645092 ------------------------------------------------------------------------------
39246 -- To allow MPA report to determine if it should generate report process
39247 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39248 ------------------------------------------------------------------------------------------
39252
39249
39250 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39251 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39253 --
39254 -- Update the line information that should be overwritten
39255 --
39256 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39257 p_header_num => 1);
39258 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39259
39260 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39261
39262 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39263 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39264 END IF;
39265
39266 --
39267 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39268 --
39269 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39270 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39271 ELSE
39272 ---------------------------------------------------------------------------------------------------
39273 -- 4262811a Switch Sign
39274 ---------------------------------------------------------------------------------------------------
39275 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39276 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39277 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39278 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39279 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39280 -- 5132302
39281 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39282 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39283
39284 END IF;
39285
39286 -- 4955764
39287 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39288 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39289
39290
39291 XLA_AE_LINES_PKG.ValidateCurrentLine;
39292 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39293
39294 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39295 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39296 ,p_balance_type_code => l_balance_type_code);
39297
39298 END IF;
39299
39300 -----------------------------------------------------------------------------------------
39301 -- 4262811 Multiperiod Accounting
39302 -----------------------------------------------------------------------------------------
39303 -- No MPA option is assigned.
39304
39305
39306 END IF;
39307 END IF;
39308 --
39309
39310 --
39311 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39312 trace
39313 (p_msg => 'END of AcctLineType_83'
39314 ,p_level => C_LEVEL_PROCEDURE
39315 ,p_module => l_log_module);
39316 END IF;
39317 --
39318 EXCEPTION
39319 WHEN xla_exceptions_pkg.application_exception THEN
39320 RAISE;
39321 WHEN OTHERS THEN
39322 xla_exceptions_pkg.raise_message
39323 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_83');
39324 END AcctLineType_83;
39325 --
39326
39327 ---------------------------------------
39328 --
39329 -- PRIVATE FUNCTION
39330 -- AcctLineType_84
39331 --
39332 ---------------------------------------
39333 PROCEDURE AcctLineType_84 (
39334 p_application_id IN NUMBER
39335 ,p_event_id IN NUMBER
39336 ,p_calculate_acctd_flag IN VARCHAR2
39337 ,p_calculate_g_l_flag IN VARCHAR2
39338 ,p_actual_flag IN OUT VARCHAR2
39339 ,p_balance_type_code OUT VARCHAR2
39340 ,p_gain_or_loss_ref OUT VARCHAR2
39341
39342 --Unearned Revenue CCID
39343 , p_source_20 IN NUMBER
39344 --Entered Currency Code
39345 , p_source_25 IN VARCHAR2
39346 --Exchange Rate Date
39347 , p_source_27 IN DATE
39348 --Exchange Rate
39349 , p_source_28 IN NUMBER
39350 --Exchange Rate Type
39351 , p_source_29 IN VARCHAR2
39352 --Revenue Distribution Type
39353 , p_source_36 IN VARCHAR2
39354 --Crediting Revenue Flag
39355 , p_source_38 IN VARCHAR2
39356 --Revenue First Distribution ID
39357 , p_source_39 IN NUMBER
39358 --Revenue Second Distribution ID
39359 , p_source_40 IN NUMBER
39360 --Entered Amount
39361 , p_source_41 IN NUMBER
39362 --Event ID
39363 , p_source_42 IN NUMBER
39364 --Accounted Amount
39365 , p_source_43 IN NUMBER
39366 )
39367 IS
39368
39369 l_component_type VARCHAR2(80);
39370 l_component_code VARCHAR2(30);
39371 l_component_type_code VARCHAR2(1);
39372 l_component_appl_id INTEGER;
39376 l_ae_header_id NUMBER;
39373 l_amb_context_code VARCHAR2(30);
39374 l_entity_code VARCHAR2(30);
39375 l_event_class_code VARCHAR2(30);
39377 l_event_type_code VARCHAR2(30);
39378 l_line_definition_code VARCHAR2(30);
39379 l_line_definition_owner_code VARCHAR2(1);
39380 --
39381 -- adr variables
39382 l_segment VARCHAR2(30);
39383 l_ccid NUMBER;
39384 l_adr_transaction_coa_id NUMBER;
39385 l_adr_accounting_coa_id NUMBER;
39386 l_adr_flexfield_segment_code VARCHAR2(30);
39387 l_adr_flex_value_set_id NUMBER;
39388 l_adr_value_type_code VARCHAR2(30);
39389 l_adr_value_combination_id NUMBER;
39390 l_adr_value_segment_code VARCHAR2(30);
39391
39392 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39393 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39394 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39395 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39396
39397 -- 4262811 Variables ------------------------------------------------------------------------------------------
39398 l_entered_amt_idx NUMBER;
39399 l_accted_amt_idx NUMBER;
39400 l_acc_rev_flag VARCHAR2(1);
39401 l_accrual_line_num NUMBER;
39402 l_tmp_amt NUMBER;
39403 l_acc_rev_natural_side_code VARCHAR2(1);
39404
39405 l_num_entries NUMBER;
39406 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39407 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39408 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39409 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39410 l_recog_line_1 NUMBER;
39411 l_recog_line_2 NUMBER;
39412
39413 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39414 l_bflow_applied_to_amt NUMBER; -- 5132302
39415 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39416
39417 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39418
39419 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39420 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39421
39422 ---------------------------------------------------------------------------------------------------------------
39423
39424
39425 --
39426 -- bulk performance
39427 --
39428 l_balance_type_code VARCHAR2(1);
39429 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39430 l_log_module VARCHAR2(240);
39431
39432 --
39433 -- Upgrade strategy
39434 --
39435 l_actual_upg_option VARCHAR2(1);
39436 l_enc_upg_option VARCHAR2(1);
39437
39438 --
39439 BEGIN
39440 --
39441 IF g_log_enabled THEN
39442 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_84';
39443 END IF;
39444 --
39445 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39446
39447 trace
39448 (p_msg => 'BEGIN of AcctLineType_84'
39449 ,p_level => C_LEVEL_PROCEDURE
39450 ,p_module => l_log_module);
39451
39452 END IF;
39453 --
39454 l_component_type := 'AMB_JLT';
39455 l_component_code := 'PA_UER';
39456 l_component_type_code := 'S';
39457 l_component_appl_id := 275;
39458 l_amb_context_code := 'DEFAULT';
39459 l_entity_code := 'REVENUE';
39460 l_event_class_code := 'REVENUE';
39461 l_event_type_code := 'REVENUE_ALL';
39462 l_line_definition_owner_code := 'S';
39463 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
39464 --
39465 l_balance_type_code := 'A';
39466 l_segment := NULL;
39467 l_ccid := NULL;
39468 l_adr_transaction_coa_id := NULL;
39469 l_adr_accounting_coa_id := NULL;
39470 l_adr_flexfield_segment_code := NULL;
39471 l_adr_flex_value_set_id := NULL;
39472 l_adr_value_type_code := NULL;
39473 l_adr_value_combination_id := NULL;
39474 l_adr_value_segment_code := NULL;
39475
39476 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
39477 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
39478 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
39479 l_budgetary_control_flag := 'N';
39480
39481 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39482 l_bflow_applied_to_amt := NULL; -- 5132302
39483 l_entered_amt_idx := NULL; -- 4262811
39484 l_accted_amt_idx := NULL; -- 4262811
39485 l_acc_rev_flag := NULL; -- 4262811
39486 l_accrual_line_num := NULL; -- 4262811
39487 l_tmp_amt := NULL; -- 4262811
39488 --
39489
39490 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
39491 l_balance_type_code <> 'B' THEN
39492 IF NVL(p_source_36,'
39493 ') = 'Revenue - UER' AND
39494 NVL(p_source_38,'
39495 ') = 'N'
39496 THEN
39497
39498 --
39499 XLA_AE_LINES_PKG.SetNewLine;
39500
39501 p_balance_type_code := l_balance_type_code;
39505 p_actual_flag :='A';
39502 -- set the flag so later we will know whether the gain loss line needs to be created
39503
39504 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
39506 END IF;
39507
39508 --
39509 -- bulk performance
39510 --
39511 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
39512 p_header_num => 0); -- 4262811
39513 --
39514 -- set accounting line options
39515 --
39516 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
39517 p_natural_side_code => 'D'
39518 , p_gain_or_loss_flag => 'N'
39519 , p_gl_transfer_mode_code => 'S'
39520 , p_acct_entry_type_code => 'A'
39521 , p_switch_side_flag => 'Y'
39522 , p_merge_duplicate_code => 'N'
39523 );
39524 --
39525 l_acc_rev_natural_side_code := 'C'; -- 4262811
39526 --
39527 --
39528 -- set accounting line type info
39529 --
39530 xla_ae_lines_pkg.SetAcctLineType
39531 (p_component_type => l_component_type
39532 ,p_event_type_code => l_event_type_code
39533 ,p_line_definition_owner_code => l_line_definition_owner_code
39534 ,p_line_definition_code => l_line_definition_code
39535 ,p_accounting_line_code => l_component_code
39536 ,p_accounting_line_type_code => l_component_type_code
39537 ,p_accounting_line_appl_id => l_component_appl_id
39538 ,p_amb_context_code => l_amb_context_code
39539 ,p_entity_code => l_entity_code
39540 ,p_event_class_code => l_event_class_code);
39541 --
39542 -- set accounting class
39543 --
39544 xla_ae_lines_pkg.SetAcctClass(
39545 p_accounting_class_code => 'UNEARNED_REVENUE'
39546 , p_ae_header_id => l_ae_header_id
39547 );
39548
39549 --
39550 -- set rounding class
39551 --
39552 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
39553 'UNEARNED_REVENUE';
39554
39555 --
39556 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
39557 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
39558 --
39559 -- bulk performance
39560 --
39561 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
39562
39563 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
39564 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
39565
39566 -- 4955764
39567 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39568 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
39569
39570 -- 4458381 Public Sector Enh
39571
39572 --
39573 -- set accounting attributes for the line type
39574 --
39575 l_entered_amt_idx := 4;
39576 l_accted_amt_idx := 10;
39577 l_bflow_applied_to_amt_idx := NULL; -- 5132302
39578 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
39579 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
39580 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
39581 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
39582 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
39583 l_rec_acct_attrs.array_char_value(3) := p_source_36;
39584 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
39585 l_rec_acct_attrs.array_num_value(4) := p_source_41;
39586 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
39587 l_rec_acct_attrs.array_char_value(5) := p_source_25;
39588 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
39589 l_rec_acct_attrs.array_date_value(6) := p_source_27;
39590 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
39591 l_rec_acct_attrs.array_num_value(7) := p_source_28;
39592 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
39593 l_rec_acct_attrs.array_char_value(8) := p_source_29;
39594 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
39595 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
39596 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
39597 l_rec_acct_attrs.array_num_value(10) := p_source_43;
39598
39599 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
39600 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
39601
39602 ---------------------------------------------------------------------------------------------------------------
39603 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
39604 ---------------------------------------------------------------------------------------------------------------
39605 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
39606
39607 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39608 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
39609
39610 IF xla_accounting_cache_pkg.GetValueChar
39611 (p_source_code => 'LEDGER_CATEGORY_CODE'
39615 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
39612 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
39613 AND l_bflow_method_code = 'PRIOR_ENTRY'
39614 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
39616 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
39617 )
39618 THEN
39619 xla_ae_lines_pkg.BflowUpgEntry
39620 (p_business_method_code => l_bflow_method_code
39621 ,p_business_class_code => l_bflow_class_code
39622 ,p_balance_type => l_balance_type_code);
39623 ELSE
39624 NULL;
39625 -- No business flow processing for business flow method of NONE.
39626 END IF;
39627
39628 --
39629 -- call analytical criteria
39630 --
39631
39632 --
39633 -- call description
39634 --
39635 -- No description or it is inherited.
39636 --
39637 -- call ADRs
39638 -- Bug 4922099
39639 --
39640 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
39641 (NVL(l_actual_upg_option, 'N') = 'O') OR
39642 (NVL(l_enc_upg_option, 'N') = 'O')
39643 )
39644 THEN
39645 NULL;
39646 --
39647 --
39648
39649 l_ccid := AcctDerRule_19(
39650 p_application_id => p_application_id
39651 , p_ae_header_id => l_ae_header_id
39652 , p_source_20 => p_source_20
39653 , x_transaction_coa_id => l_adr_transaction_coa_id
39654 , x_accounting_coa_id => l_adr_accounting_coa_id
39655 , x_value_type_code => l_adr_value_type_code
39656 , p_side => 'NA'
39657 );
39658
39659 xla_ae_lines_pkg.set_ccid(
39660 p_code_combination_id => l_ccid
39661 , p_value_type_code => l_adr_value_type_code
39662 , p_transaction_coa_id => l_adr_transaction_coa_id
39663 , p_accounting_coa_id => l_adr_accounting_coa_id
39664 , p_adr_code => 'UER_RULE'
39665 , p_adr_type_code => 'S'
39666 , p_component_type => l_component_type
39667 , p_component_code => l_component_code
39668 , p_component_type_code => l_component_type_code
39669 , p_component_appl_id => l_component_appl_id
39670 , p_amb_context_code => l_amb_context_code
39671 , p_side => 'NA'
39672 );
39673
39674
39675 --
39676 --
39677 END IF;
39678 --
39679 -- Bug 4922099
39680 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
39681 (NVL(l_enc_upg_option, 'N') = 'O')
39682 ) AND
39683 (l_bflow_method_code = 'PRIOR_ENTRY')
39684 )
39685 THEN
39686 IF
39687 --
39688 1 = 2
39689 --
39690 THEN
39691 xla_accounting_err_pkg.build_message
39692 (p_appli_s_name => 'XLA'
39693 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39694 ,p_token_1 => 'LINE_NUMBER'
39695 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
39696 ,p_token_2 => 'LINE_TYPE_NAME'
39697 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
39698 l_component_type
39699 ,l_component_code
39700 ,l_component_type_code
39701 ,l_component_appl_id
39702 ,l_amb_context_code
39703 ,l_entity_code
39704 ,l_event_class_code
39705 )
39706 ,p_token_3 => 'OWNER'
39707 ,p_value_3 => xla_lookups_pkg.get_meaning(
39708 p_lookup_type => 'XLA_OWNER_TYPE'
39709 ,p_lookup_code => l_component_type_code
39710 )
39711 ,p_token_4 => 'PRODUCT_NAME'
39712 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
39713 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
39714 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
39715 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
39716 ,p_ae_header_id => NULL
39717 );
39718
39719 IF (C_LEVEL_ERROR>= g_log_level) THEN
39720 trace
39721 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
39722 ,p_level => C_LEVEL_ERROR
39726 END IF;
39723 ,p_module => l_log_module);
39724 END IF;
39725 END IF;
39727 --
39728 --
39729 ------------------------------------------------------------------------------------------------
39730 -- 4219869 Business Flow
39731 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
39732 -- Prior Entry. Currently, the following code is always generated.
39733 ------------------------------------------------------------------------------------------------
39734 XLA_AE_LINES_PKG.ValidateCurrentLine;
39735
39736 ------------------------------------------------------------------------------------
39737 -- 4219869 Business Flow
39738 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
39739 ------------------------------------------------------------------------------------
39740 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39741
39742 ----------------------------------------------------------------------------------
39743 -- 4219869 Business Flow
39744 -- Update journal entry status -- Need to generate this within IF <condition>
39745 ----------------------------------------------------------------------------------
39746 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39747 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
39748 ,p_balance_type_code => l_balance_type_code
39749 );
39750
39751 -------------------------------------------------------------------------------------------
39752 -- 4262811 - Generate the Accrual Reversal lines
39753 -------------------------------------------------------------------------------------------
39754 BEGIN
39755 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
39756 (g_array_event(p_event_id).array_value_num('header_index'));
39757 IF l_acc_rev_flag IS NULL THEN
39758 l_acc_rev_flag := 'N';
39759 END IF;
39760 EXCEPTION
39761 WHEN OTHERS THEN
39762 l_acc_rev_flag := 'N';
39763 END;
39764 --
39765 IF (l_acc_rev_flag = 'Y') THEN
39766
39767 -- 4645092 ------------------------------------------------------------------------------
39768 -- To allow MPA report to determine if it should generate report process
39769 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
39770 ------------------------------------------------------------------------------------------
39771
39772 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
39773 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
39774
39775 --
39776 -- Update the line information that should be overwritten
39777 --
39778 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
39779 p_header_num => 1);
39780 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
39781
39782 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
39783
39784 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
39785 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
39786 END IF;
39787
39788 --
39789 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
39790 --
39791 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
39792 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
39793 ELSE
39794 ---------------------------------------------------------------------------------------------------
39795 -- 4262811a Switch Sign
39796 ---------------------------------------------------------------------------------------------------
39797 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
39798 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39799 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39800 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
39801 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39802 -- 5132302
39803 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
39804 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
39805
39806 END IF;
39807
39808 -- 4955764
39809 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
39810 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
39811
39812
39813 XLA_AE_LINES_PKG.ValidateCurrentLine;
39814 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
39815
39816 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
39817 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
39818 ,p_balance_type_code => l_balance_type_code);
39819
39820 END IF;
39821
39822 -----------------------------------------------------------------------------------------
39826
39823 -- 4262811 Multiperiod Accounting
39824 -----------------------------------------------------------------------------------------
39825 -- No MPA option is assigned.
39827
39828 END IF;
39829 END IF;
39830 --
39831
39832 --
39833 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39834 trace
39835 (p_msg => 'END of AcctLineType_84'
39836 ,p_level => C_LEVEL_PROCEDURE
39837 ,p_module => l_log_module);
39838 END IF;
39839 --
39840 EXCEPTION
39841 WHEN xla_exceptions_pkg.application_exception THEN
39842 RAISE;
39843 WHEN OTHERS THEN
39844 xla_exceptions_pkg.raise_message
39845 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_84');
39846 END AcctLineType_84;
39847 --
39848
39849 ---------------------------------------
39850 --
39851 -- PRIVATE FUNCTION
39852 -- AcctLineType_85
39853 --
39854 ---------------------------------------
39855 PROCEDURE AcctLineType_85 (
39856 p_application_id IN NUMBER
39857 ,p_event_id IN NUMBER
39858 ,p_calculate_acctd_flag IN VARCHAR2
39859 ,p_calculate_g_l_flag IN VARCHAR2
39860 ,p_actual_flag IN OUT VARCHAR2
39861 ,p_balance_type_code OUT VARCHAR2
39862 ,p_gain_or_loss_ref OUT VARCHAR2
39863
39864 --Unearned Revenue CCID
39865 , p_source_20 IN NUMBER
39866 --Actual Upgrade Credit Accounting Class
39867 , p_source_23 IN VARCHAR2
39868 --Entered Currency Code
39869 , p_source_25 IN VARCHAR2
39870 --Exchange Rate Date
39871 , p_source_27 IN DATE
39872 --Exchange Rate
39873 , p_source_28 IN NUMBER
39874 --Exchange Rate Type
39875 , p_source_29 IN VARCHAR2
39876 --Actual Upgrade Debit Accounting Class
39877 , p_source_30 IN VARCHAR2
39878 --Use Actuals Upgrade Attributes Flag
39879 , p_source_31 IN VARCHAR2
39880 --Revenue Distribution Type
39881 , p_source_36 IN VARCHAR2
39882 --Crediting Revenue Flag
39883 , p_source_38 IN VARCHAR2
39884 --Revenue First Distribution ID
39885 , p_source_39 IN NUMBER
39886 --Revenue Second Distribution ID
39887 , p_source_40 IN NUMBER
39888 --Entered Amount
39889 , p_source_41 IN NUMBER
39890 --Event ID
39891 , p_source_42 IN NUMBER
39892 --Accounted Amount
39893 , p_source_43 IN NUMBER
39894 --Actual Upgrade Credit CCID
39895 , p_source_59 IN NUMBER
39896 --Actual Upgrade Debit CCID
39897 , p_source_60 IN NUMBER
39898 --Application ID
39899 , p_source_61 IN NUMBER
39900 --Revenue Entity Code
39901 , p_source_62 IN VARCHAR2
39902 --Crediting Revenue First Distribution ID
39903 , p_source_63 IN NUMBER
39904 --Project ID
39905 , p_source_64 IN NUMBER
39906 --Crediting Revenue Second Distribution ID
39907 , p_source_65 IN NUMBER
39908 --Draft Revenue Number Credited
39909 , p_source_66 IN NUMBER
39910 )
39911 IS
39912
39913 l_component_type VARCHAR2(80);
39914 l_component_code VARCHAR2(30);
39915 l_component_type_code VARCHAR2(1);
39916 l_component_appl_id INTEGER;
39917 l_amb_context_code VARCHAR2(30);
39918 l_entity_code VARCHAR2(30);
39919 l_event_class_code VARCHAR2(30);
39920 l_ae_header_id NUMBER;
39921 l_event_type_code VARCHAR2(30);
39922 l_line_definition_code VARCHAR2(30);
39923 l_line_definition_owner_code VARCHAR2(1);
39924 --
39925 -- adr variables
39926 l_segment VARCHAR2(30);
39927 l_ccid NUMBER;
39928 l_adr_transaction_coa_id NUMBER;
39929 l_adr_accounting_coa_id NUMBER;
39930 l_adr_flexfield_segment_code VARCHAR2(30);
39931 l_adr_flex_value_set_id NUMBER;
39932 l_adr_value_type_code VARCHAR2(30);
39933 l_adr_value_combination_id NUMBER;
39934 l_adr_value_segment_code VARCHAR2(30);
39935
39936 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
39937 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
39938 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
39939 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
39940
39941 -- 4262811 Variables ------------------------------------------------------------------------------------------
39942 l_entered_amt_idx NUMBER;
39943 l_accted_amt_idx NUMBER;
39944 l_acc_rev_flag VARCHAR2(1);
39945 l_accrual_line_num NUMBER;
39946 l_tmp_amt NUMBER;
39947 l_acc_rev_natural_side_code VARCHAR2(1);
39948
39949 l_num_entries NUMBER;
39950 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
39951 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
39952 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
39953 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
39954 l_recog_line_1 NUMBER;
39955 l_recog_line_2 NUMBER;
39956
39957 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
39958 l_bflow_applied_to_amt NUMBER; -- 5132302
39962
39959 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
39960
39961 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
39963 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
39964 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
39965
39966 ---------------------------------------------------------------------------------------------------------------
39967
39968
39969 --
39970 -- bulk performance
39971 --
39972 l_balance_type_code VARCHAR2(1);
39973 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
39974 l_log_module VARCHAR2(240);
39975
39976 --
39977 -- Upgrade strategy
39978 --
39979 l_actual_upg_option VARCHAR2(1);
39980 l_enc_upg_option VARCHAR2(1);
39981
39982 --
39983 BEGIN
39984 --
39985 IF g_log_enabled THEN
39986 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_85';
39987 END IF;
39988 --
39989 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
39990
39991 trace
39992 (p_msg => 'BEGIN of AcctLineType_85'
39993 ,p_level => C_LEVEL_PROCEDURE
39994 ,p_module => l_log_module);
39995
39996 END IF;
39997 --
39998 l_component_type := 'AMB_JLT';
39999 l_component_code := 'PA_UER_ADJ';
40000 l_component_type_code := 'S';
40001 l_component_appl_id := 275;
40002 l_amb_context_code := 'DEFAULT';
40003 l_entity_code := 'REVENUE';
40004 l_event_class_code := 'REVENUE_ADJ';
40005 l_event_type_code := 'REVENUE_ADJ_ALL';
40006 l_line_definition_owner_code := 'S';
40007 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
40008 --
40009 l_balance_type_code := 'A';
40010 l_segment := NULL;
40011 l_ccid := NULL;
40012 l_adr_transaction_coa_id := NULL;
40013 l_adr_accounting_coa_id := NULL;
40014 l_adr_flexfield_segment_code := NULL;
40015 l_adr_flex_value_set_id := NULL;
40016 l_adr_value_type_code := NULL;
40017 l_adr_value_combination_id := NULL;
40018 l_adr_value_segment_code := NULL;
40019
40020 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40021 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
40022 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40023 l_budgetary_control_flag := 'N';
40024
40025 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40026 l_bflow_applied_to_amt := NULL; -- 5132302
40027 l_entered_amt_idx := NULL; -- 4262811
40028 l_accted_amt_idx := NULL; -- 4262811
40029 l_acc_rev_flag := NULL; -- 4262811
40030 l_accrual_line_num := NULL; -- 4262811
40031 l_tmp_amt := NULL; -- 4262811
40032 --
40033
40034 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40035 l_balance_type_code <> 'B' THEN
40036 IF NVL(p_source_36,'
40037 ') = 'Revenue - UER' AND
40038 NVL(p_source_38,'
40039 ') = 'Y'
40040 THEN
40041
40042 --
40043 XLA_AE_LINES_PKG.SetNewLine;
40044
40045 p_balance_type_code := l_balance_type_code;
40046 -- set the flag so later we will know whether the gain loss line needs to be created
40047
40048 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40049 p_actual_flag :='A';
40050 END IF;
40051
40052 --
40053 -- bulk performance
40054 --
40055 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40056 p_header_num => 0); -- 4262811
40057 --
40058 -- set accounting line options
40059 --
40060 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40061 p_natural_side_code => 'C'
40062 , p_gain_or_loss_flag => 'N'
40063 , p_gl_transfer_mode_code => 'S'
40064 , p_acct_entry_type_code => 'A'
40065 , p_switch_side_flag => 'Y'
40066 , p_merge_duplicate_code => 'N'
40067 );
40068 --
40069 l_acc_rev_natural_side_code := 'D'; -- 4262811
40070 --
40071 --
40072 -- set accounting line type info
40073 --
40074 xla_ae_lines_pkg.SetAcctLineType
40075 (p_component_type => l_component_type
40076 ,p_event_type_code => l_event_type_code
40077 ,p_line_definition_owner_code => l_line_definition_owner_code
40078 ,p_line_definition_code => l_line_definition_code
40079 ,p_accounting_line_code => l_component_code
40080 ,p_accounting_line_type_code => l_component_type_code
40081 ,p_accounting_line_appl_id => l_component_appl_id
40082 ,p_amb_context_code => l_amb_context_code
40083 ,p_entity_code => l_entity_code
40084 ,p_event_class_code => l_event_class_code);
40085 --
40086 -- set accounting class
40087 --
40088 xla_ae_lines_pkg.SetAcctClass(
40089 p_accounting_class_code => 'UNEARNED_REVENUE'
40090 , p_ae_header_id => l_ae_header_id
40091 );
40092
40093 --
40094 -- set rounding class
40095 --
40099 --
40096 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40097 'UNEARNED_REVENUE';
40098
40100 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40101 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40102 --
40103 -- bulk performance
40104 --
40105 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40106
40107 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40108 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40109
40110 -- 4955764
40111 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40112 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40113
40114 -- 4458381 Public Sector Enh
40115
40116 --
40117 -- set accounting attributes for the line type
40118 --
40119 l_entered_amt_idx := 28;
40120 l_accted_amt_idx := 34;
40121 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40122 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACTUAL_UPG_CR_ACCT_CLASS';
40123 l_rec_acct_attrs.array_char_value(1) := p_source_23;
40124 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_CCID';
40125 l_rec_acct_attrs.array_num_value(2) := TO_NUMBER(p_source_59);
40126 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ENTERED_AMT';
40127 l_rec_acct_attrs.array_num_value(3) := p_source_41;
40128 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_CURR';
40129 l_rec_acct_attrs.array_char_value(4) := p_source_25;
40130 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_LEDGER_AMT';
40131 l_rec_acct_attrs.array_num_value(5) := p_source_43;
40132 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_XDATE';
40133 l_rec_acct_attrs.array_date_value(6) := p_source_27;
40134 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XRATE';
40135 l_rec_acct_attrs.array_num_value(7) := p_source_28;
40136 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE_TYPE';
40137 l_rec_acct_attrs.array_char_value(8) := p_source_29;
40138 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_DR_ACCT_CLASS';
40139 l_rec_acct_attrs.array_char_value(9) := p_source_30;
40140 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_CCID';
40141 l_rec_acct_attrs.array_num_value(10) := TO_NUMBER(p_source_60);
40142 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ENTERED_AMT';
40143 l_rec_acct_attrs.array_num_value(11) := p_source_41;
40144 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_CURR';
40145 l_rec_acct_attrs.array_char_value(12) := p_source_25;
40146 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_LEDGER_AMT';
40147 l_rec_acct_attrs.array_num_value(13) := p_source_43;
40148 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_XDATE';
40149 l_rec_acct_attrs.array_date_value(14) := p_source_27;
40150 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XRATE';
40151 l_rec_acct_attrs.array_num_value(15) := p_source_28;
40152 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE_TYPE';
40153 l_rec_acct_attrs.array_char_value(16) := p_source_29;
40154 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_OPTION';
40155 l_rec_acct_attrs.array_char_value(17) := p_source_31;
40156 l_rec_acct_attrs.array_acct_attr_code(18) := 'APPLIED_TO_APPLICATION_ID';
40157 l_rec_acct_attrs.array_num_value(18) := p_source_61;
40158 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_DISTRIBUTION_TYPE';
40159 l_rec_acct_attrs.array_char_value(19) := p_source_36;
40160 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_ENTITY_CODE';
40161 l_rec_acct_attrs.array_char_value(20) := p_source_62;
40162 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_FIRST_DIST_ID';
40163 l_rec_acct_attrs.array_num_value(21) := to_char(p_source_63);
40164 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
40165 l_rec_acct_attrs.array_num_value(22) := to_char(p_source_64);
40166 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_SECOND_DIST_ID';
40167 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_65);
40168 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_SECOND_SYS_TRAN_ID';
40169 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_66);
40170 l_rec_acct_attrs.array_acct_attr_code(25) := 'DISTRIBUTION_IDENTIFIER_1';
40171 l_rec_acct_attrs.array_num_value(25) := to_char(p_source_39);
40172 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_2';
40173 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_40);
40174 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_TYPE';
40175 l_rec_acct_attrs.array_char_value(27) := p_source_36;
40176 l_rec_acct_attrs.array_acct_attr_code(28) := 'ENTERED_CURRENCY_AMOUNT';
40177 l_rec_acct_attrs.array_num_value(28) := p_source_41;
40178 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENTERED_CURRENCY_CODE';
40179 l_rec_acct_attrs.array_char_value(29) := p_source_25;
40180 l_rec_acct_attrs.array_acct_attr_code(30) := 'EXCHANGE_DATE';
40181 l_rec_acct_attrs.array_date_value(30) := p_source_27;
40182 l_rec_acct_attrs.array_acct_attr_code(31) := 'EXCHANGE_RATE';
40183 l_rec_acct_attrs.array_num_value(31) := p_source_28;
40184 l_rec_acct_attrs.array_acct_attr_code(32) := 'EXCHANGE_RATE_TYPE';
40185 l_rec_acct_attrs.array_char_value(32) := p_source_29;
40189 l_rec_acct_attrs.array_num_value(34) := p_source_43;
40186 l_rec_acct_attrs.array_acct_attr_code(33) := 'GAIN_LOSS_REFERENCE';
40187 l_rec_acct_attrs.array_num_value(33) := to_char(p_source_42);
40188 l_rec_acct_attrs.array_acct_attr_code(34) := 'LEDGER_AMOUNT';
40190
40191 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40192 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40193
40194 ---------------------------------------------------------------------------------------------------------------
40195 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40196 ---------------------------------------------------------------------------------------------------------------
40197 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40198
40199 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40200 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40201
40202 IF xla_accounting_cache_pkg.GetValueChar
40203 (p_source_code => 'LEDGER_CATEGORY_CODE'
40204 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40205 AND l_bflow_method_code = 'PRIOR_ENTRY'
40206 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40207 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40208 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40209 )
40210 THEN
40211 xla_ae_lines_pkg.BflowUpgEntry
40212 (p_business_method_code => l_bflow_method_code
40213 ,p_business_class_code => l_bflow_class_code
40214 ,p_balance_type => l_balance_type_code);
40215 ELSE
40216 NULL;
40217 -- No business flow processing for business flow method of NONE.
40218 END IF;
40219
40220 --
40221 -- call analytical criteria
40222 --
40223
40224 --
40225 -- call description
40226 --
40227 -- No description or it is inherited.
40228 --
40229 -- call ADRs
40230 -- Bug 4922099
40231 --
40232 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40233 (NVL(l_actual_upg_option, 'N') = 'O') OR
40234 (NVL(l_enc_upg_option, 'N') = 'O')
40235 )
40236 THEN
40237 NULL;
40238 --
40239 --
40240
40241 l_ccid := AcctDerRule_19(
40242 p_application_id => p_application_id
40243 , p_ae_header_id => l_ae_header_id
40244 , p_source_20 => p_source_20
40245 , x_transaction_coa_id => l_adr_transaction_coa_id
40246 , x_accounting_coa_id => l_adr_accounting_coa_id
40247 , x_value_type_code => l_adr_value_type_code
40248 , p_side => 'NA'
40249 );
40250
40251 xla_ae_lines_pkg.set_ccid(
40252 p_code_combination_id => l_ccid
40253 , p_value_type_code => l_adr_value_type_code
40254 , p_transaction_coa_id => l_adr_transaction_coa_id
40255 , p_accounting_coa_id => l_adr_accounting_coa_id
40256 , p_adr_code => 'UER_RULE'
40257 , p_adr_type_code => 'S'
40258 , p_component_type => l_component_type
40259 , p_component_code => l_component_code
40260 , p_component_type_code => l_component_type_code
40261 , p_component_appl_id => l_component_appl_id
40262 , p_amb_context_code => l_amb_context_code
40263 , p_side => 'NA'
40264 );
40265
40266
40267 --
40268 --
40269 END IF;
40270 --
40271 -- Bug 4922099
40272 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40273 (NVL(l_enc_upg_option, 'N') = 'O')
40274 ) AND
40275 (l_bflow_method_code = 'PRIOR_ENTRY')
40276 )
40277 THEN
40278 IF
40279 --
40280 1 = 2
40281 --
40282 THEN
40283 xla_accounting_err_pkg.build_message
40284 (p_appli_s_name => 'XLA'
40285 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40286 ,p_token_1 => 'LINE_NUMBER'
40287 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40288 ,p_token_2 => 'LINE_TYPE_NAME'
40289 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40290 l_component_type
40291 ,l_component_code
40292 ,l_component_type_code
40293 ,l_component_appl_id
40294 ,l_amb_context_code
40295 ,l_entity_code
40296 ,l_event_class_code
40297 )
40301 ,p_lookup_code => l_component_type_code
40298 ,p_token_3 => 'OWNER'
40299 ,p_value_3 => xla_lookups_pkg.get_meaning(
40300 p_lookup_type => 'XLA_OWNER_TYPE'
40302 )
40303 ,p_token_4 => 'PRODUCT_NAME'
40304 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40305 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40306 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40307 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40308 ,p_ae_header_id => NULL
40309 );
40310
40311 IF (C_LEVEL_ERROR>= g_log_level) THEN
40312 trace
40313 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40314 ,p_level => C_LEVEL_ERROR
40315 ,p_module => l_log_module);
40316 END IF;
40317 END IF;
40318 END IF;
40319 --
40320 --
40321 ------------------------------------------------------------------------------------------------
40322 -- 4219869 Business Flow
40323 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40324 -- Prior Entry. Currently, the following code is always generated.
40325 ------------------------------------------------------------------------------------------------
40326 XLA_AE_LINES_PKG.ValidateCurrentLine;
40327
40328 ------------------------------------------------------------------------------------
40329 -- 4219869 Business Flow
40330 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40331 ------------------------------------------------------------------------------------
40332 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40333
40334 ----------------------------------------------------------------------------------
40335 -- 4219869 Business Flow
40336 -- Update journal entry status -- Need to generate this within IF <condition>
40337 ----------------------------------------------------------------------------------
40338 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40339 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40340 ,p_balance_type_code => l_balance_type_code
40341 );
40342
40343 -------------------------------------------------------------------------------------------
40344 -- 4262811 - Generate the Accrual Reversal lines
40345 -------------------------------------------------------------------------------------------
40346 BEGIN
40347 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40348 (g_array_event(p_event_id).array_value_num('header_index'));
40349 IF l_acc_rev_flag IS NULL THEN
40350 l_acc_rev_flag := 'N';
40351 END IF;
40352 EXCEPTION
40353 WHEN OTHERS THEN
40354 l_acc_rev_flag := 'N';
40355 END;
40356 --
40357 IF (l_acc_rev_flag = 'Y') THEN
40358
40359 -- 4645092 ------------------------------------------------------------------------------
40360 -- To allow MPA report to determine if it should generate report process
40361 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40362 ------------------------------------------------------------------------------------------
40363
40364 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40365 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40366
40367 --
40368 -- Update the line information that should be overwritten
40369 --
40370 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40371 p_header_num => 1);
40372 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40373
40374 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40375
40376 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40377 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40378 END IF;
40379
40380 --
40381 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40382 --
40383 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40384 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40385 ELSE
40386 ---------------------------------------------------------------------------------------------------
40387 -- 4262811a Switch Sign
40388 ---------------------------------------------------------------------------------------------------
40389 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40390 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40394 -- 5132302
40391 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40392 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40393 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40395 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40396 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40397
40398 END IF;
40399
40400 -- 4955764
40401 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40402 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40403
40404
40405 XLA_AE_LINES_PKG.ValidateCurrentLine;
40406 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40407
40408 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40409 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40410 ,p_balance_type_code => l_balance_type_code);
40411
40412 END IF;
40413
40414 -----------------------------------------------------------------------------------------
40415 -- 4262811 Multiperiod Accounting
40416 -----------------------------------------------------------------------------------------
40417 -- No MPA option is assigned.
40418
40419
40420 END IF;
40421 END IF;
40422 --
40423
40424 --
40425 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40426 trace
40427 (p_msg => 'END of AcctLineType_85'
40428 ,p_level => C_LEVEL_PROCEDURE
40429 ,p_module => l_log_module);
40430 END IF;
40431 --
40432 EXCEPTION
40433 WHEN xla_exceptions_pkg.application_exception THEN
40434 RAISE;
40435 WHEN OTHERS THEN
40436 xla_exceptions_pkg.raise_message
40437 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_85');
40438 END AcctLineType_85;
40439 --
40440
40441 ---------------------------------------
40442 --
40443 -- PRIVATE FUNCTION
40444 -- AcctLineType_86
40445 --
40446 ---------------------------------------
40447 PROCEDURE AcctLineType_86 (
40448 p_application_id IN NUMBER
40449 ,p_event_id IN NUMBER
40450 ,p_calculate_acctd_flag IN VARCHAR2
40451 ,p_calculate_g_l_flag IN VARCHAR2
40452 ,p_actual_flag IN OUT VARCHAR2
40453 ,p_balance_type_code OUT VARCHAR2
40454 ,p_gain_or_loss_ref OUT VARCHAR2
40455
40456 --Revenue CCID
40457 , p_source_18 IN NUMBER
40458 --Entered Currency Code
40459 , p_source_25 IN VARCHAR2
40460 --Exchange Rate Date
40461 , p_source_27 IN DATE
40462 --Exchange Rate
40463 , p_source_28 IN NUMBER
40464 --Exchange Rate Type
40465 , p_source_29 IN VARCHAR2
40466 --Revenue Distribution Type
40467 , p_source_36 IN VARCHAR2
40468 --System Linkage Function
40469 , p_source_37 IN VARCHAR2
40470 --Crediting Revenue Flag
40471 , p_source_38 IN VARCHAR2
40472 --Revenue First Distribution ID
40473 , p_source_39 IN NUMBER
40474 --Revenue Second Distribution ID
40475 , p_source_40 IN NUMBER
40476 --Entered Amount
40477 , p_source_41 IN NUMBER
40478 --Event ID
40479 , p_source_42 IN NUMBER
40480 --Accounted Amount
40481 , p_source_43 IN NUMBER
40482 )
40483 IS
40484
40485 l_component_type VARCHAR2(80);
40486 l_component_code VARCHAR2(30);
40487 l_component_type_code VARCHAR2(1);
40488 l_component_appl_id INTEGER;
40489 l_amb_context_code VARCHAR2(30);
40490 l_entity_code VARCHAR2(30);
40491 l_event_class_code VARCHAR2(30);
40492 l_ae_header_id NUMBER;
40493 l_event_type_code VARCHAR2(30);
40494 l_line_definition_code VARCHAR2(30);
40495 l_line_definition_owner_code VARCHAR2(1);
40496 --
40497 -- adr variables
40498 l_segment VARCHAR2(30);
40499 l_ccid NUMBER;
40500 l_adr_transaction_coa_id NUMBER;
40501 l_adr_accounting_coa_id NUMBER;
40502 l_adr_flexfield_segment_code VARCHAR2(30);
40503 l_adr_flex_value_set_id NUMBER;
40504 l_adr_value_type_code VARCHAR2(30);
40505 l_adr_value_combination_id NUMBER;
40506 l_adr_value_segment_code VARCHAR2(30);
40507
40508 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
40509 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
40510 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
40511 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
40512
40513 -- 4262811 Variables ------------------------------------------------------------------------------------------
40514 l_entered_amt_idx NUMBER;
40515 l_accted_amt_idx NUMBER;
40516 l_acc_rev_flag VARCHAR2(1);
40517 l_accrual_line_num NUMBER;
40518 l_tmp_amt NUMBER;
40519 l_acc_rev_natural_side_code VARCHAR2(1);
40520
40521 l_num_entries NUMBER;
40522 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
40526 l_recog_line_1 NUMBER;
40523 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
40524 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
40525 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
40527 l_recog_line_2 NUMBER;
40528
40529 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
40530 l_bflow_applied_to_amt NUMBER; -- 5132302
40531 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
40532
40533 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
40534
40535 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
40536 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
40537
40538 ---------------------------------------------------------------------------------------------------------------
40539
40540
40541 --
40542 -- bulk performance
40543 --
40544 l_balance_type_code VARCHAR2(1);
40545 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
40546 l_log_module VARCHAR2(240);
40547
40548 --
40549 -- Upgrade strategy
40550 --
40551 l_actual_upg_option VARCHAR2(1);
40552 l_enc_upg_option VARCHAR2(1);
40553
40554 --
40555 BEGIN
40556 --
40557 IF g_log_enabled THEN
40558 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_86';
40559 END IF;
40560 --
40561 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40562
40563 trace
40564 (p_msg => 'BEGIN of AcctLineType_86'
40565 ,p_level => C_LEVEL_PROCEDURE
40566 ,p_module => l_log_module);
40567
40568 END IF;
40569 --
40570 l_component_type := 'AMB_JLT';
40571 l_component_code := 'PA_USG_REV';
40572 l_component_type_code := 'S';
40573 l_component_appl_id := 275;
40574 l_amb_context_code := 'DEFAULT';
40575 l_entity_code := 'REVENUE';
40576 l_event_class_code := 'REVENUE';
40577 l_event_type_code := 'REVENUE_ALL';
40578 l_line_definition_owner_code := 'S';
40579 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
40580 --
40581 l_balance_type_code := 'A';
40582 l_segment := NULL;
40583 l_ccid := NULL;
40584 l_adr_transaction_coa_id := NULL;
40585 l_adr_accounting_coa_id := NULL;
40586 l_adr_flexfield_segment_code := NULL;
40587 l_adr_flex_value_set_id := NULL;
40588 l_adr_value_type_code := NULL;
40589 l_adr_value_combination_id := NULL;
40590 l_adr_value_segment_code := NULL;
40591
40592 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
40593 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
40594 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
40595 l_budgetary_control_flag := 'N';
40596
40597 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40598 l_bflow_applied_to_amt := NULL; -- 5132302
40599 l_entered_amt_idx := NULL; -- 4262811
40600 l_accted_amt_idx := NULL; -- 4262811
40601 l_acc_rev_flag := NULL; -- 4262811
40602 l_accrual_line_num := NULL; -- 4262811
40603 l_tmp_amt := NULL; -- 4262811
40604 --
40605
40606 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
40607 l_balance_type_code <> 'B' THEN
40608 IF NVL(p_source_36,'
40609 ') = 'Revenue - Normal Revenue' AND
40610 NVL(p_source_37,'
40611 ') = 'USG' AND
40612 NVL(p_source_38,'
40613 ') = 'N'
40614 THEN
40615
40616 --
40617 XLA_AE_LINES_PKG.SetNewLine;
40618
40619 p_balance_type_code := l_balance_type_code;
40620 -- set the flag so later we will know whether the gain loss line needs to be created
40621
40622 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
40623 p_actual_flag :='A';
40624 END IF;
40625
40626 --
40627 -- bulk performance
40628 --
40629 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
40630 p_header_num => 0); -- 4262811
40631 --
40632 -- set accounting line options
40633 --
40634 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
40635 p_natural_side_code => 'C'
40636 , p_gain_or_loss_flag => 'N'
40637 , p_gl_transfer_mode_code => 'S'
40638 , p_acct_entry_type_code => 'A'
40639 , p_switch_side_flag => 'Y'
40640 , p_merge_duplicate_code => 'N'
40641 );
40642 --
40643 l_acc_rev_natural_side_code := 'D'; -- 4262811
40644 --
40645 --
40646 -- set accounting line type info
40647 --
40648 xla_ae_lines_pkg.SetAcctLineType
40649 (p_component_type => l_component_type
40650 ,p_event_type_code => l_event_type_code
40651 ,p_line_definition_owner_code => l_line_definition_owner_code
40652 ,p_line_definition_code => l_line_definition_code
40653 ,p_accounting_line_code => l_component_code
40654 ,p_accounting_line_type_code => l_component_type_code
40655 ,p_accounting_line_appl_id => l_component_appl_id
40659 --
40656 ,p_amb_context_code => l_amb_context_code
40657 ,p_entity_code => l_entity_code
40658 ,p_event_class_code => l_event_class_code);
40660 -- set accounting class
40661 --
40662 xla_ae_lines_pkg.SetAcctClass(
40663 p_accounting_class_code => 'REVENUE'
40664 , p_ae_header_id => l_ae_header_id
40665 );
40666
40667 --
40668 -- set rounding class
40669 --
40670 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
40671 'REVENUE';
40672
40673 --
40674 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
40675 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
40676 --
40677 -- bulk performance
40678 --
40679 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
40680
40681 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
40682 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
40683
40684 -- 4955764
40685 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40686 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
40687
40688 -- 4458381 Public Sector Enh
40689
40690 --
40691 -- set accounting attributes for the line type
40692 --
40693 l_entered_amt_idx := 4;
40694 l_accted_amt_idx := 10;
40695 l_bflow_applied_to_amt_idx := NULL; -- 5132302
40696 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
40697 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
40698 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
40699 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
40700 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
40701 l_rec_acct_attrs.array_char_value(3) := p_source_36;
40702 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
40703 l_rec_acct_attrs.array_num_value(4) := p_source_41;
40704 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
40705 l_rec_acct_attrs.array_char_value(5) := p_source_25;
40706 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
40707 l_rec_acct_attrs.array_date_value(6) := p_source_27;
40708 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
40709 l_rec_acct_attrs.array_num_value(7) := p_source_28;
40710 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
40711 l_rec_acct_attrs.array_char_value(8) := p_source_29;
40712 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
40713 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
40714 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
40715 l_rec_acct_attrs.array_num_value(10) := p_source_43;
40716
40717 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
40718 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
40719
40720 ---------------------------------------------------------------------------------------------------------------
40721 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
40722 ---------------------------------------------------------------------------------------------------------------
40723 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
40724
40725 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40726 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
40727
40728 IF xla_accounting_cache_pkg.GetValueChar
40729 (p_source_code => 'LEDGER_CATEGORY_CODE'
40730 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
40731 AND l_bflow_method_code = 'PRIOR_ENTRY'
40732 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
40733 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
40734 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
40735 )
40736 THEN
40737 xla_ae_lines_pkg.BflowUpgEntry
40738 (p_business_method_code => l_bflow_method_code
40739 ,p_business_class_code => l_bflow_class_code
40740 ,p_balance_type => l_balance_type_code);
40741 ELSE
40742 NULL;
40743 -- No business flow processing for business flow method of NONE.
40744 END IF;
40745
40746 --
40747 -- call analytical criteria
40748 --
40749
40750 --
40751 -- call description
40752 --
40753 -- No description or it is inherited.
40754 --
40755 -- call ADRs
40756 -- Bug 4922099
40757 --
40758 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
40759 (NVL(l_actual_upg_option, 'N') = 'O') OR
40760 (NVL(l_enc_upg_option, 'N') = 'O')
40761 )
40762 THEN
40763 NULL;
40764 --
40765 --
40766
40767 l_ccid := AcctDerRule_17(
40768 p_application_id => p_application_id
40769 , p_ae_header_id => l_ae_header_id
40770 , p_source_18 => p_source_18
40771 , x_transaction_coa_id => l_adr_transaction_coa_id
40775 );
40772 , x_accounting_coa_id => l_adr_accounting_coa_id
40773 , x_value_type_code => l_adr_value_type_code
40774 , p_side => 'NA'
40776
40777 xla_ae_lines_pkg.set_ccid(
40778 p_code_combination_id => l_ccid
40779 , p_value_type_code => l_adr_value_type_code
40780 , p_transaction_coa_id => l_adr_transaction_coa_id
40781 , p_accounting_coa_id => l_adr_accounting_coa_id
40782 , p_adr_code => 'REVENUE_RULE'
40783 , p_adr_type_code => 'S'
40784 , p_component_type => l_component_type
40785 , p_component_code => l_component_code
40786 , p_component_type_code => l_component_type_code
40787 , p_component_appl_id => l_component_appl_id
40788 , p_amb_context_code => l_amb_context_code
40789 , p_side => 'NA'
40790 );
40791
40792
40793 --
40794 --
40795 END IF;
40796 --
40797 -- Bug 4922099
40798 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
40799 (NVL(l_enc_upg_option, 'N') = 'O')
40800 ) AND
40801 (l_bflow_method_code = 'PRIOR_ENTRY')
40802 )
40803 THEN
40804 IF
40805 --
40806 1 = 2
40807 --
40808 THEN
40809 xla_accounting_err_pkg.build_message
40810 (p_appli_s_name => 'XLA'
40811 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40812 ,p_token_1 => 'LINE_NUMBER'
40813 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
40814 ,p_token_2 => 'LINE_TYPE_NAME'
40815 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
40816 l_component_type
40817 ,l_component_code
40818 ,l_component_type_code
40819 ,l_component_appl_id
40820 ,l_amb_context_code
40821 ,l_entity_code
40822 ,l_event_class_code
40823 )
40824 ,p_token_3 => 'OWNER'
40825 ,p_value_3 => xla_lookups_pkg.get_meaning(
40826 p_lookup_type => 'XLA_OWNER_TYPE'
40827 ,p_lookup_code => l_component_type_code
40828 )
40829 ,p_token_4 => 'PRODUCT_NAME'
40830 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
40831 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
40832 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
40833 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
40834 ,p_ae_header_id => NULL
40835 );
40836
40837 IF (C_LEVEL_ERROR>= g_log_level) THEN
40838 trace
40839 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
40840 ,p_level => C_LEVEL_ERROR
40841 ,p_module => l_log_module);
40842 END IF;
40843 END IF;
40844 END IF;
40845 --
40846 --
40847 ------------------------------------------------------------------------------------------------
40848 -- 4219869 Business Flow
40849 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
40850 -- Prior Entry. Currently, the following code is always generated.
40851 ------------------------------------------------------------------------------------------------
40852 XLA_AE_LINES_PKG.ValidateCurrentLine;
40853
40854 ------------------------------------------------------------------------------------
40855 -- 4219869 Business Flow
40856 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
40857 ------------------------------------------------------------------------------------
40858 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40859
40860 ----------------------------------------------------------------------------------
40861 -- 4219869 Business Flow
40862 -- Update journal entry status -- Need to generate this within IF <condition>
40863 ----------------------------------------------------------------------------------
40864 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40865 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
40866 ,p_balance_type_code => l_balance_type_code
40867 );
40868
40872 BEGIN
40869 -------------------------------------------------------------------------------------------
40870 -- 4262811 - Generate the Accrual Reversal lines
40871 -------------------------------------------------------------------------------------------
40873 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
40874 (g_array_event(p_event_id).array_value_num('header_index'));
40875 IF l_acc_rev_flag IS NULL THEN
40876 l_acc_rev_flag := 'N';
40877 END IF;
40878 EXCEPTION
40879 WHEN OTHERS THEN
40880 l_acc_rev_flag := 'N';
40881 END;
40882 --
40883 IF (l_acc_rev_flag = 'Y') THEN
40884
40885 -- 4645092 ------------------------------------------------------------------------------
40886 -- To allow MPA report to determine if it should generate report process
40887 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
40888 ------------------------------------------------------------------------------------------
40889
40890 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
40891 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
40892
40893 --
40894 -- Update the line information that should be overwritten
40895 --
40896 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
40897 p_header_num => 1);
40898 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
40899
40900 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
40901
40902 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
40903 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
40904 END IF;
40905
40906 --
40907 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
40908 --
40909 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
40910 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
40911 ELSE
40912 ---------------------------------------------------------------------------------------------------
40913 -- 4262811a Switch Sign
40914 ---------------------------------------------------------------------------------------------------
40915 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
40916 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40917 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40918 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
40919 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40920 -- 5132302
40921 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
40922 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
40923
40924 END IF;
40925
40926 -- 4955764
40927 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
40928 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
40929
40930
40931 XLA_AE_LINES_PKG.ValidateCurrentLine;
40932 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
40933
40934 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
40935 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
40936 ,p_balance_type_code => l_balance_type_code);
40937
40938 END IF;
40939
40940 -----------------------------------------------------------------------------------------
40941 -- 4262811 Multiperiod Accounting
40942 -----------------------------------------------------------------------------------------
40943 -- No MPA option is assigned.
40944
40945
40946 END IF;
40947 END IF;
40948 --
40949
40950 --
40951 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
40952 trace
40953 (p_msg => 'END of AcctLineType_86'
40954 ,p_level => C_LEVEL_PROCEDURE
40955 ,p_module => l_log_module);
40956 END IF;
40957 --
40958 EXCEPTION
40959 WHEN xla_exceptions_pkg.application_exception THEN
40960 RAISE;
40961 WHEN OTHERS THEN
40962 xla_exceptions_pkg.raise_message
40963 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_86');
40964 END AcctLineType_86;
40965 --
40966
40967 ---------------------------------------
40968 --
40969 -- PRIVATE FUNCTION
40970 -- AcctLineType_87
40971 --
40972 ---------------------------------------
40973 PROCEDURE AcctLineType_87 (
40974 p_application_id IN NUMBER
40975 ,p_event_id IN NUMBER
40976 ,p_calculate_acctd_flag IN VARCHAR2
40977 ,p_calculate_g_l_flag IN VARCHAR2
40978 ,p_actual_flag IN OUT VARCHAR2
40979 ,p_balance_type_code OUT VARCHAR2
40980 ,p_gain_or_loss_ref OUT VARCHAR2
40981
40982 --Revenue CCID
40983 , p_source_18 IN NUMBER
40984 --Entered Currency Code
40985 , p_source_25 IN VARCHAR2
40989 , p_source_28 IN NUMBER
40986 --Exchange Rate Date
40987 , p_source_27 IN DATE
40988 --Exchange Rate
40990 --Exchange Rate Type
40991 , p_source_29 IN VARCHAR2
40992 --Revenue Distribution Type
40993 , p_source_36 IN VARCHAR2
40994 --System Linkage Function
40995 , p_source_37 IN VARCHAR2
40996 --Crediting Revenue Flag
40997 , p_source_38 IN VARCHAR2
40998 --Revenue First Distribution ID
40999 , p_source_39 IN NUMBER
41000 --Revenue Second Distribution ID
41001 , p_source_40 IN NUMBER
41002 --Entered Amount
41003 , p_source_41 IN NUMBER
41004 --Event ID
41005 , p_source_42 IN NUMBER
41006 --Accounted Amount
41007 , p_source_43 IN NUMBER
41008 )
41009 IS
41010
41011 l_component_type VARCHAR2(80);
41012 l_component_code VARCHAR2(30);
41013 l_component_type_code VARCHAR2(1);
41014 l_component_appl_id INTEGER;
41015 l_amb_context_code VARCHAR2(30);
41016 l_entity_code VARCHAR2(30);
41017 l_event_class_code VARCHAR2(30);
41018 l_ae_header_id NUMBER;
41019 l_event_type_code VARCHAR2(30);
41020 l_line_definition_code VARCHAR2(30);
41021 l_line_definition_owner_code VARCHAR2(1);
41022 --
41023 -- adr variables
41024 l_segment VARCHAR2(30);
41025 l_ccid NUMBER;
41026 l_adr_transaction_coa_id NUMBER;
41027 l_adr_accounting_coa_id NUMBER;
41028 l_adr_flexfield_segment_code VARCHAR2(30);
41029 l_adr_flex_value_set_id NUMBER;
41030 l_adr_value_type_code VARCHAR2(30);
41031 l_adr_value_combination_id NUMBER;
41032 l_adr_value_segment_code VARCHAR2(30);
41033
41034 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41035 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41036 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41037 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41038
41039 -- 4262811 Variables ------------------------------------------------------------------------------------------
41040 l_entered_amt_idx NUMBER;
41041 l_accted_amt_idx NUMBER;
41042 l_acc_rev_flag VARCHAR2(1);
41043 l_accrual_line_num NUMBER;
41044 l_tmp_amt NUMBER;
41045 l_acc_rev_natural_side_code VARCHAR2(1);
41046
41047 l_num_entries NUMBER;
41048 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41049 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41050 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41051 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41052 l_recog_line_1 NUMBER;
41053 l_recog_line_2 NUMBER;
41054
41055 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41056 l_bflow_applied_to_amt NUMBER; -- 5132302
41057 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41058
41059 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41060
41061 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41062 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41063
41064 ---------------------------------------------------------------------------------------------------------------
41065
41066
41067 --
41068 -- bulk performance
41069 --
41070 l_balance_type_code VARCHAR2(1);
41071 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41072 l_log_module VARCHAR2(240);
41073
41074 --
41075 -- Upgrade strategy
41076 --
41077 l_actual_upg_option VARCHAR2(1);
41078 l_enc_upg_option VARCHAR2(1);
41079
41080 --
41081 BEGIN
41082 --
41083 IF g_log_enabled THEN
41084 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_87';
41085 END IF;
41086 --
41087 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41088
41089 trace
41090 (p_msg => 'BEGIN of AcctLineType_87'
41091 ,p_level => C_LEVEL_PROCEDURE
41092 ,p_module => l_log_module);
41093
41094 END IF;
41095 --
41096 l_component_type := 'AMB_JLT';
41097 l_component_code := 'PA_VI_REV';
41098 l_component_type_code := 'S';
41099 l_component_appl_id := 275;
41100 l_amb_context_code := 'DEFAULT';
41101 l_entity_code := 'REVENUE';
41102 l_event_class_code := 'REVENUE';
41103 l_event_type_code := 'REVENUE_ALL';
41104 l_line_definition_owner_code := 'S';
41105 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
41106 --
41107 l_balance_type_code := 'A';
41108 l_segment := NULL;
41109 l_ccid := NULL;
41110 l_adr_transaction_coa_id := NULL;
41111 l_adr_accounting_coa_id := NULL;
41112 l_adr_flexfield_segment_code := NULL;
41113 l_adr_flex_value_set_id := NULL;
41114 l_adr_value_type_code := NULL;
41115 l_adr_value_combination_id := NULL;
41116 l_adr_value_segment_code := NULL;
41117
41118 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41122
41119 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
41120 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41121 l_budgetary_control_flag := 'N';
41123 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41124 l_bflow_applied_to_amt := NULL; -- 5132302
41125 l_entered_amt_idx := NULL; -- 4262811
41126 l_accted_amt_idx := NULL; -- 4262811
41127 l_acc_rev_flag := NULL; -- 4262811
41128 l_accrual_line_num := NULL; -- 4262811
41129 l_tmp_amt := NULL; -- 4262811
41130 --
41131
41132 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41133 l_balance_type_code <> 'B' THEN
41134 IF NVL(p_source_36,'
41135 ') = 'Revenue - Normal Revenue' AND
41136 NVL(p_source_37,'
41137 ') = 'VI' AND
41138 NVL(p_source_38,'
41139 ') = 'N'
41140 THEN
41141
41142 --
41143 XLA_AE_LINES_PKG.SetNewLine;
41144
41145 p_balance_type_code := l_balance_type_code;
41146 -- set the flag so later we will know whether the gain loss line needs to be created
41147
41148 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41149 p_actual_flag :='A';
41150 END IF;
41151
41152 --
41153 -- bulk performance
41154 --
41155 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41156 p_header_num => 0); -- 4262811
41157 --
41158 -- set accounting line options
41159 --
41160 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41161 p_natural_side_code => 'C'
41162 , p_gain_or_loss_flag => 'N'
41163 , p_gl_transfer_mode_code => 'S'
41164 , p_acct_entry_type_code => 'A'
41165 , p_switch_side_flag => 'Y'
41166 , p_merge_duplicate_code => 'N'
41167 );
41168 --
41169 l_acc_rev_natural_side_code := 'D'; -- 4262811
41170 --
41171 --
41172 -- set accounting line type info
41173 --
41174 xla_ae_lines_pkg.SetAcctLineType
41175 (p_component_type => l_component_type
41176 ,p_event_type_code => l_event_type_code
41177 ,p_line_definition_owner_code => l_line_definition_owner_code
41178 ,p_line_definition_code => l_line_definition_code
41179 ,p_accounting_line_code => l_component_code
41180 ,p_accounting_line_type_code => l_component_type_code
41181 ,p_accounting_line_appl_id => l_component_appl_id
41182 ,p_amb_context_code => l_amb_context_code
41183 ,p_entity_code => l_entity_code
41184 ,p_event_class_code => l_event_class_code);
41185 --
41186 -- set accounting class
41187 --
41188 xla_ae_lines_pkg.SetAcctClass(
41189 p_accounting_class_code => 'REVENUE'
41190 , p_ae_header_id => l_ae_header_id
41191 );
41192
41193 --
41194 -- set rounding class
41195 --
41196 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41197 'REVENUE';
41198
41199 --
41200 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41201 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41202 --
41203 -- bulk performance
41204 --
41205 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41206
41207 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41208 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41209
41210 -- 4955764
41211 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41212 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41213
41214 -- 4458381 Public Sector Enh
41215
41216 --
41217 -- set accounting attributes for the line type
41218 --
41219 l_entered_amt_idx := 4;
41220 l_accted_amt_idx := 10;
41221 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41222 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
41223 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
41224 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
41225 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
41226 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
41227 l_rec_acct_attrs.array_char_value(3) := p_source_36;
41228 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
41229 l_rec_acct_attrs.array_num_value(4) := p_source_41;
41230 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
41231 l_rec_acct_attrs.array_char_value(5) := p_source_25;
41232 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
41233 l_rec_acct_attrs.array_date_value(6) := p_source_27;
41234 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
41235 l_rec_acct_attrs.array_num_value(7) := p_source_28;
41236 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
41237 l_rec_acct_attrs.array_char_value(8) := p_source_29;
41238 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
41242
41239 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
41240 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
41241 l_rec_acct_attrs.array_num_value(10) := p_source_43;
41243 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41244 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41245
41246 ---------------------------------------------------------------------------------------------------------------
41247 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41248 ---------------------------------------------------------------------------------------------------------------
41249 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41250
41251 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41252 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41253
41254 IF xla_accounting_cache_pkg.GetValueChar
41255 (p_source_code => 'LEDGER_CATEGORY_CODE'
41256 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41257 AND l_bflow_method_code = 'PRIOR_ENTRY'
41258 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41259 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41260 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41261 )
41262 THEN
41263 xla_ae_lines_pkg.BflowUpgEntry
41264 (p_business_method_code => l_bflow_method_code
41265 ,p_business_class_code => l_bflow_class_code
41266 ,p_balance_type => l_balance_type_code);
41267 ELSE
41268 NULL;
41269 -- No business flow processing for business flow method of NONE.
41270 END IF;
41271
41272 --
41273 -- call analytical criteria
41274 --
41275
41276 --
41277 -- call description
41278 --
41279 -- No description or it is inherited.
41280 --
41281 -- call ADRs
41282 -- Bug 4922099
41283 --
41284 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41285 (NVL(l_actual_upg_option, 'N') = 'O') OR
41286 (NVL(l_enc_upg_option, 'N') = 'O')
41287 )
41288 THEN
41289 NULL;
41290 --
41291 --
41292
41293 l_ccid := AcctDerRule_17(
41294 p_application_id => p_application_id
41295 , p_ae_header_id => l_ae_header_id
41296 , p_source_18 => p_source_18
41297 , x_transaction_coa_id => l_adr_transaction_coa_id
41298 , x_accounting_coa_id => l_adr_accounting_coa_id
41299 , x_value_type_code => l_adr_value_type_code
41300 , p_side => 'NA'
41301 );
41302
41303 xla_ae_lines_pkg.set_ccid(
41304 p_code_combination_id => l_ccid
41305 , p_value_type_code => l_adr_value_type_code
41306 , p_transaction_coa_id => l_adr_transaction_coa_id
41307 , p_accounting_coa_id => l_adr_accounting_coa_id
41308 , p_adr_code => 'REVENUE_RULE'
41309 , p_adr_type_code => 'S'
41310 , p_component_type => l_component_type
41311 , p_component_code => l_component_code
41312 , p_component_type_code => l_component_type_code
41313 , p_component_appl_id => l_component_appl_id
41314 , p_amb_context_code => l_amb_context_code
41315 , p_side => 'NA'
41316 );
41317
41318
41319 --
41320 --
41321 END IF;
41322 --
41323 -- Bug 4922099
41324 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41325 (NVL(l_enc_upg_option, 'N') = 'O')
41326 ) AND
41327 (l_bflow_method_code = 'PRIOR_ENTRY')
41328 )
41329 THEN
41330 IF
41331 --
41332 1 = 2
41333 --
41334 THEN
41335 xla_accounting_err_pkg.build_message
41336 (p_appli_s_name => 'XLA'
41337 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41338 ,p_token_1 => 'LINE_NUMBER'
41339 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41340 ,p_token_2 => 'LINE_TYPE_NAME'
41341 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41342 l_component_type
41343 ,l_component_code
41344 ,l_component_type_code
41345 ,l_component_appl_id
41346 ,l_amb_context_code
41347 ,l_entity_code
41348 ,l_event_class_code
41349 )
41350 ,p_token_3 => 'OWNER'
41354 )
41351 ,p_value_3 => xla_lookups_pkg.get_meaning(
41352 p_lookup_type => 'XLA_OWNER_TYPE'
41353 ,p_lookup_code => l_component_type_code
41355 ,p_token_4 => 'PRODUCT_NAME'
41356 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41357 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41358 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41359 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41360 ,p_ae_header_id => NULL
41361 );
41362
41363 IF (C_LEVEL_ERROR>= g_log_level) THEN
41364 trace
41365 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41366 ,p_level => C_LEVEL_ERROR
41367 ,p_module => l_log_module);
41368 END IF;
41369 END IF;
41370 END IF;
41371 --
41372 --
41373 ------------------------------------------------------------------------------------------------
41374 -- 4219869 Business Flow
41375 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41376 -- Prior Entry. Currently, the following code is always generated.
41377 ------------------------------------------------------------------------------------------------
41378 XLA_AE_LINES_PKG.ValidateCurrentLine;
41379
41380 ------------------------------------------------------------------------------------
41381 -- 4219869 Business Flow
41382 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41383 ------------------------------------------------------------------------------------
41384 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41385
41386 ----------------------------------------------------------------------------------
41387 -- 4219869 Business Flow
41388 -- Update journal entry status -- Need to generate this within IF <condition>
41389 ----------------------------------------------------------------------------------
41390 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41391 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41392 ,p_balance_type_code => l_balance_type_code
41393 );
41394
41395 -------------------------------------------------------------------------------------------
41396 -- 4262811 - Generate the Accrual Reversal lines
41397 -------------------------------------------------------------------------------------------
41398 BEGIN
41399 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41400 (g_array_event(p_event_id).array_value_num('header_index'));
41401 IF l_acc_rev_flag IS NULL THEN
41402 l_acc_rev_flag := 'N';
41403 END IF;
41404 EXCEPTION
41405 WHEN OTHERS THEN
41406 l_acc_rev_flag := 'N';
41407 END;
41408 --
41409 IF (l_acc_rev_flag = 'Y') THEN
41410
41411 -- 4645092 ------------------------------------------------------------------------------
41412 -- To allow MPA report to determine if it should generate report process
41413 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41414 ------------------------------------------------------------------------------------------
41415
41416 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41417 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41418
41419 --
41420 -- Update the line information that should be overwritten
41421 --
41422 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41423 p_header_num => 1);
41424 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41425
41426 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41427
41428 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41429 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41430 END IF;
41431
41432 --
41433 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41434 --
41435 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41436 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41437 ELSE
41438 ---------------------------------------------------------------------------------------------------
41439 -- 4262811a Switch Sign
41440 ---------------------------------------------------------------------------------------------------
41441 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41442 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41443 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41447 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41444 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41445 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41446 -- 5132302
41448 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41449
41450 END IF;
41451
41452 -- 4955764
41453 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41454 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41455
41456
41457 XLA_AE_LINES_PKG.ValidateCurrentLine;
41458 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41459
41460 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41461 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41462 ,p_balance_type_code => l_balance_type_code);
41463
41464 END IF;
41465
41466 -----------------------------------------------------------------------------------------
41467 -- 4262811 Multiperiod Accounting
41468 -----------------------------------------------------------------------------------------
41469 -- No MPA option is assigned.
41470
41471
41472 END IF;
41473 END IF;
41474 --
41475
41476 --
41477 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41478 trace
41479 (p_msg => 'END of AcctLineType_87'
41480 ,p_level => C_LEVEL_PROCEDURE
41481 ,p_module => l_log_module);
41482 END IF;
41483 --
41484 EXCEPTION
41485 WHEN xla_exceptions_pkg.application_exception THEN
41486 RAISE;
41487 WHEN OTHERS THEN
41488 xla_exceptions_pkg.raise_message
41489 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_87');
41490 END AcctLineType_87;
41491 --
41492
41493 ---------------------------------------
41494 --
41495 -- PRIVATE FUNCTION
41496 -- AcctLineType_88
41497 --
41498 ---------------------------------------
41499 PROCEDURE AcctLineType_88 (
41500 p_application_id IN NUMBER
41501 ,p_event_id IN NUMBER
41502 ,p_calculate_acctd_flag IN VARCHAR2
41503 ,p_calculate_g_l_flag IN VARCHAR2
41504 ,p_actual_flag IN OUT VARCHAR2
41505 ,p_balance_type_code OUT VARCHAR2
41506 ,p_gain_or_loss_ref OUT VARCHAR2
41507
41508 --Revenue CCID
41509 , p_source_18 IN NUMBER
41510 --Entered Currency Code
41511 , p_source_25 IN VARCHAR2
41512 --Exchange Rate Date
41513 , p_source_27 IN DATE
41514 --Exchange Rate
41515 , p_source_28 IN NUMBER
41516 --Exchange Rate Type
41517 , p_source_29 IN VARCHAR2
41518 --Revenue Distribution Type
41519 , p_source_36 IN VARCHAR2
41520 --System Linkage Function
41521 , p_source_37 IN VARCHAR2
41522 --Crediting Revenue Flag
41523 , p_source_38 IN VARCHAR2
41524 --Revenue First Distribution ID
41525 , p_source_39 IN NUMBER
41526 --Revenue Second Distribution ID
41527 , p_source_40 IN NUMBER
41528 --Entered Amount
41529 , p_source_41 IN NUMBER
41530 --Event ID
41531 , p_source_42 IN NUMBER
41532 --Accounted Amount
41533 , p_source_43 IN NUMBER
41534 )
41535 IS
41536
41537 l_component_type VARCHAR2(80);
41538 l_component_code VARCHAR2(30);
41539 l_component_type_code VARCHAR2(1);
41540 l_component_appl_id INTEGER;
41541 l_amb_context_code VARCHAR2(30);
41542 l_entity_code VARCHAR2(30);
41543 l_event_class_code VARCHAR2(30);
41544 l_ae_header_id NUMBER;
41545 l_event_type_code VARCHAR2(30);
41546 l_line_definition_code VARCHAR2(30);
41547 l_line_definition_owner_code VARCHAR2(1);
41548 --
41549 -- adr variables
41550 l_segment VARCHAR2(30);
41551 l_ccid NUMBER;
41552 l_adr_transaction_coa_id NUMBER;
41553 l_adr_accounting_coa_id NUMBER;
41554 l_adr_flexfield_segment_code VARCHAR2(30);
41555 l_adr_flex_value_set_id NUMBER;
41556 l_adr_value_type_code VARCHAR2(30);
41557 l_adr_value_combination_id NUMBER;
41558 l_adr_value_segment_code VARCHAR2(30);
41559
41560 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
41561 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
41562 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
41563 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
41564
41565 -- 4262811 Variables ------------------------------------------------------------------------------------------
41566 l_entered_amt_idx NUMBER;
41567 l_accted_amt_idx NUMBER;
41568 l_acc_rev_flag VARCHAR2(1);
41569 l_accrual_line_num NUMBER;
41570 l_tmp_amt NUMBER;
41571 l_acc_rev_natural_side_code VARCHAR2(1);
41572
41573 l_num_entries NUMBER;
41574 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
41575 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
41576 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
41577 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
41581 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
41578 l_recog_line_1 NUMBER;
41579 l_recog_line_2 NUMBER;
41580
41582 l_bflow_applied_to_amt NUMBER; -- 5132302
41583 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
41584
41585 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
41586
41587 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
41588 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
41589
41590 ---------------------------------------------------------------------------------------------------------------
41591
41592
41593 --
41594 -- bulk performance
41595 --
41596 l_balance_type_code VARCHAR2(1);
41597 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
41598 l_log_module VARCHAR2(240);
41599
41600 --
41601 -- Upgrade strategy
41602 --
41603 l_actual_upg_option VARCHAR2(1);
41604 l_enc_upg_option VARCHAR2(1);
41605
41606 --
41607 BEGIN
41608 --
41609 IF g_log_enabled THEN
41610 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_88';
41611 END IF;
41612 --
41613 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
41614
41615 trace
41616 (p_msg => 'BEGIN of AcctLineType_88'
41617 ,p_level => C_LEVEL_PROCEDURE
41618 ,p_module => l_log_module);
41619
41620 END IF;
41621 --
41622 l_component_type := 'AMB_JLT';
41623 l_component_code := 'PA_WIP_REV';
41624 l_component_type_code := 'S';
41625 l_component_appl_id := 275;
41626 l_amb_context_code := 'DEFAULT';
41627 l_entity_code := 'REVENUE';
41628 l_event_class_code := 'REVENUE';
41629 l_event_type_code := 'REVENUE_ALL';
41630 l_line_definition_owner_code := 'S';
41631 l_line_definition_code := 'PA_STANDARD_ACCOUNTING';
41632 --
41633 l_balance_type_code := 'A';
41634 l_segment := NULL;
41635 l_ccid := NULL;
41636 l_adr_transaction_coa_id := NULL;
41637 l_adr_accounting_coa_id := NULL;
41638 l_adr_flexfield_segment_code := NULL;
41639 l_adr_flex_value_set_id := NULL;
41640 l_adr_value_type_code := NULL;
41641 l_adr_value_combination_id := NULL;
41642 l_adr_value_segment_code := NULL;
41643
41644 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
41645 l_bflow_class_code := 'PA_REV_ADJ'; -- 4219869 Business Flow
41646 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
41647 l_budgetary_control_flag := 'N';
41648
41649 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41650 l_bflow_applied_to_amt := NULL; -- 5132302
41651 l_entered_amt_idx := NULL; -- 4262811
41652 l_accted_amt_idx := NULL; -- 4262811
41653 l_acc_rev_flag := NULL; -- 4262811
41654 l_accrual_line_num := NULL; -- 4262811
41655 l_tmp_amt := NULL; -- 4262811
41656 --
41657
41658 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
41659 l_balance_type_code <> 'B' THEN
41660 IF NVL(p_source_36,'
41661 ') = 'Revenue - Normal Revenue' AND
41662 NVL(p_source_37,'
41663 ') = 'WIP' AND
41664 NVL(p_source_38,'
41665 ') = 'N'
41666 THEN
41667
41668 --
41669 XLA_AE_LINES_PKG.SetNewLine;
41670
41671 p_balance_type_code := l_balance_type_code;
41672 -- set the flag so later we will know whether the gain loss line needs to be created
41673
41674 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
41675 p_actual_flag :='A';
41676 END IF;
41677
41678 --
41679 -- bulk performance
41680 --
41681 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
41682 p_header_num => 0); -- 4262811
41683 --
41684 -- set accounting line options
41685 --
41686 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
41687 p_natural_side_code => 'C'
41688 , p_gain_or_loss_flag => 'N'
41689 , p_gl_transfer_mode_code => 'S'
41690 , p_acct_entry_type_code => 'A'
41691 , p_switch_side_flag => 'Y'
41692 , p_merge_duplicate_code => 'N'
41693 );
41694 --
41695 l_acc_rev_natural_side_code := 'D'; -- 4262811
41696 --
41697 --
41698 -- set accounting line type info
41699 --
41700 xla_ae_lines_pkg.SetAcctLineType
41701 (p_component_type => l_component_type
41702 ,p_event_type_code => l_event_type_code
41703 ,p_line_definition_owner_code => l_line_definition_owner_code
41704 ,p_line_definition_code => l_line_definition_code
41705 ,p_accounting_line_code => l_component_code
41706 ,p_accounting_line_type_code => l_component_type_code
41707 ,p_accounting_line_appl_id => l_component_appl_id
41708 ,p_amb_context_code => l_amb_context_code
41709 ,p_entity_code => l_entity_code
41710 ,p_event_class_code => l_event_class_code);
41711 --
41712 -- set accounting class
41716 , p_ae_header_id => l_ae_header_id
41713 --
41714 xla_ae_lines_pkg.SetAcctClass(
41715 p_accounting_class_code => 'REVENUE'
41717 );
41718
41719 --
41720 -- set rounding class
41721 --
41722 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
41723 'REVENUE';
41724
41725 --
41726 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
41727 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
41728 --
41729 -- bulk performance
41730 --
41731 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
41732
41733 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
41734 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
41735
41736 -- 4955764
41737 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41738 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
41739
41740 -- 4458381 Public Sector Enh
41741
41742 --
41743 -- set accounting attributes for the line type
41744 --
41745 l_entered_amt_idx := 4;
41746 l_accted_amt_idx := 10;
41747 l_bflow_applied_to_amt_idx := NULL; -- 5132302
41748 l_rec_acct_attrs.array_acct_attr_code(1) := 'DISTRIBUTION_IDENTIFIER_1';
41749 l_rec_acct_attrs.array_num_value(1) := to_char(p_source_39);
41750 l_rec_acct_attrs.array_acct_attr_code(2) := 'DISTRIBUTION_IDENTIFIER_2';
41751 l_rec_acct_attrs.array_num_value(2) := to_char(p_source_40);
41752 l_rec_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_TYPE';
41753 l_rec_acct_attrs.array_char_value(3) := p_source_36;
41754 l_rec_acct_attrs.array_acct_attr_code(4) := 'ENTERED_CURRENCY_AMOUNT';
41755 l_rec_acct_attrs.array_num_value(4) := p_source_41;
41756 l_rec_acct_attrs.array_acct_attr_code(5) := 'ENTERED_CURRENCY_CODE';
41757 l_rec_acct_attrs.array_char_value(5) := p_source_25;
41758 l_rec_acct_attrs.array_acct_attr_code(6) := 'EXCHANGE_DATE';
41759 l_rec_acct_attrs.array_date_value(6) := p_source_27;
41760 l_rec_acct_attrs.array_acct_attr_code(7) := 'EXCHANGE_RATE';
41761 l_rec_acct_attrs.array_num_value(7) := p_source_28;
41762 l_rec_acct_attrs.array_acct_attr_code(8) := 'EXCHANGE_RATE_TYPE';
41763 l_rec_acct_attrs.array_char_value(8) := p_source_29;
41764 l_rec_acct_attrs.array_acct_attr_code(9) := 'GAIN_LOSS_REFERENCE';
41765 l_rec_acct_attrs.array_num_value(9) := to_char(p_source_42);
41766 l_rec_acct_attrs.array_acct_attr_code(10) := 'LEDGER_AMOUNT';
41767 l_rec_acct_attrs.array_num_value(10) := p_source_43;
41768
41769 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
41770 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
41771
41772 ---------------------------------------------------------------------------------------------------------------
41773 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
41774 ---------------------------------------------------------------------------------------------------------------
41775 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
41776
41777 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41778 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
41779
41780 IF xla_accounting_cache_pkg.GetValueChar
41781 (p_source_code => 'LEDGER_CATEGORY_CODE'
41782 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
41783 AND l_bflow_method_code = 'PRIOR_ENTRY'
41784 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
41785 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
41786 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
41787 )
41788 THEN
41789 xla_ae_lines_pkg.BflowUpgEntry
41790 (p_business_method_code => l_bflow_method_code
41791 ,p_business_class_code => l_bflow_class_code
41792 ,p_balance_type => l_balance_type_code);
41793 ELSE
41794 NULL;
41795 -- No business flow processing for business flow method of NONE.
41796 END IF;
41797
41798 --
41799 -- call analytical criteria
41800 --
41801
41802 --
41803 -- call description
41804 --
41805 -- No description or it is inherited.
41806 --
41807 -- call ADRs
41808 -- Bug 4922099
41809 --
41810 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
41811 (NVL(l_actual_upg_option, 'N') = 'O') OR
41812 (NVL(l_enc_upg_option, 'N') = 'O')
41813 )
41814 THEN
41815 NULL;
41816 --
41817 --
41818
41819 l_ccid := AcctDerRule_17(
41820 p_application_id => p_application_id
41821 , p_ae_header_id => l_ae_header_id
41822 , p_source_18 => p_source_18
41823 , x_transaction_coa_id => l_adr_transaction_coa_id
41824 , x_accounting_coa_id => l_adr_accounting_coa_id
41825 , x_value_type_code => l_adr_value_type_code
41826 , p_side => 'NA'
41827 );
41828
41832 , p_transaction_coa_id => l_adr_transaction_coa_id
41829 xla_ae_lines_pkg.set_ccid(
41830 p_code_combination_id => l_ccid
41831 , p_value_type_code => l_adr_value_type_code
41833 , p_accounting_coa_id => l_adr_accounting_coa_id
41834 , p_adr_code => 'REVENUE_RULE'
41835 , p_adr_type_code => 'S'
41836 , p_component_type => l_component_type
41837 , p_component_code => l_component_code
41838 , p_component_type_code => l_component_type_code
41839 , p_component_appl_id => l_component_appl_id
41840 , p_amb_context_code => l_amb_context_code
41841 , p_side => 'NA'
41842 );
41843
41844
41845 --
41846 --
41847 END IF;
41848 --
41849 -- Bug 4922099
41850 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
41851 (NVL(l_enc_upg_option, 'N') = 'O')
41852 ) AND
41853 (l_bflow_method_code = 'PRIOR_ENTRY')
41854 )
41855 THEN
41856 IF
41857 --
41858 1 = 2
41859 --
41860 THEN
41861 xla_accounting_err_pkg.build_message
41862 (p_appli_s_name => 'XLA'
41863 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41864 ,p_token_1 => 'LINE_NUMBER'
41865 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
41866 ,p_token_2 => 'LINE_TYPE_NAME'
41867 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
41868 l_component_type
41869 ,l_component_code
41870 ,l_component_type_code
41871 ,l_component_appl_id
41872 ,l_amb_context_code
41873 ,l_entity_code
41874 ,l_event_class_code
41875 )
41876 ,p_token_3 => 'OWNER'
41877 ,p_value_3 => xla_lookups_pkg.get_meaning(
41878 p_lookup_type => 'XLA_OWNER_TYPE'
41879 ,p_lookup_code => l_component_type_code
41880 )
41881 ,p_token_4 => 'PRODUCT_NAME'
41882 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
41883 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
41884 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
41885 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
41886 ,p_ae_header_id => NULL
41887 );
41888
41889 IF (C_LEVEL_ERROR>= g_log_level) THEN
41890 trace
41891 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
41892 ,p_level => C_LEVEL_ERROR
41893 ,p_module => l_log_module);
41894 END IF;
41895 END IF;
41896 END IF;
41897 --
41898 --
41899 ------------------------------------------------------------------------------------------------
41900 -- 4219869 Business Flow
41901 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
41902 -- Prior Entry. Currently, the following code is always generated.
41903 ------------------------------------------------------------------------------------------------
41904 XLA_AE_LINES_PKG.ValidateCurrentLine;
41905
41906 ------------------------------------------------------------------------------------
41907 -- 4219869 Business Flow
41908 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
41909 ------------------------------------------------------------------------------------
41910 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41911
41912 ----------------------------------------------------------------------------------
41913 -- 4219869 Business Flow
41914 -- Update journal entry status -- Need to generate this within IF <condition>
41915 ----------------------------------------------------------------------------------
41916 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41917 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
41918 ,p_balance_type_code => l_balance_type_code
41919 );
41920
41921 -------------------------------------------------------------------------------------------
41922 -- 4262811 - Generate the Accrual Reversal lines
41926 (g_array_event(p_event_id).array_value_num('header_index'));
41923 -------------------------------------------------------------------------------------------
41924 BEGIN
41925 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
41927 IF l_acc_rev_flag IS NULL THEN
41928 l_acc_rev_flag := 'N';
41929 END IF;
41930 EXCEPTION
41931 WHEN OTHERS THEN
41932 l_acc_rev_flag := 'N';
41933 END;
41934 --
41935 IF (l_acc_rev_flag = 'Y') THEN
41936
41937 -- 4645092 ------------------------------------------------------------------------------
41938 -- To allow MPA report to determine if it should generate report process
41939 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
41940 ------------------------------------------------------------------------------------------
41941
41942 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
41943 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
41944
41945 --
41946 -- Update the line information that should be overwritten
41947 --
41948 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
41949 p_header_num => 1);
41950 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
41951
41952 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
41953
41954 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
41955 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
41956 END IF;
41957
41958 --
41959 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
41960 --
41961 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
41962 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
41963 ELSE
41964 ---------------------------------------------------------------------------------------------------
41965 -- 4262811a Switch Sign
41966 ---------------------------------------------------------------------------------------------------
41967 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
41968 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41969 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41970 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
41971 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41972 -- 5132302
41973 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
41974 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
41975
41976 END IF;
41977
41978 -- 4955764
41979 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
41980 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
41981
41982
41983 XLA_AE_LINES_PKG.ValidateCurrentLine;
41984 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
41985
41986 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
41987 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
41988 ,p_balance_type_code => l_balance_type_code);
41989
41990 END IF;
41991
41992 -----------------------------------------------------------------------------------------
41993 -- 4262811 Multiperiod Accounting
41994 -----------------------------------------------------------------------------------------
41995 -- No MPA option is assigned.
41996
41997
41998 END IF;
41999 END IF;
42000 --
42001
42002 --
42003 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42004 trace
42005 (p_msg => 'END of AcctLineType_88'
42006 ,p_level => C_LEVEL_PROCEDURE
42007 ,p_module => l_log_module);
42008 END IF;
42009 --
42010 EXCEPTION
42011 WHEN xla_exceptions_pkg.application_exception THEN
42012 RAISE;
42013 WHEN OTHERS THEN
42014 xla_exceptions_pkg.raise_message
42015 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_88');
42016 END AcctLineType_88;
42017 --
42018
42019 ---------------------------------------
42020 --
42021 -- PRIVATE FUNCTION
42022 -- AcctLineType_89
42023 --
42024 ---------------------------------------
42025 PROCEDURE AcctLineType_89 (
42026 p_application_id IN NUMBER
42027 ,p_event_id IN NUMBER
42028 ,p_calculate_acctd_flag IN VARCHAR2
42029 ,p_calculate_g_l_flag IN VARCHAR2
42030 ,p_actual_flag IN OUT VARCHAR2
42031 ,p_balance_type_code OUT VARCHAR2
42032 ,p_gain_or_loss_ref OUT VARCHAR2
42033
42034 --Budget Code Combination ID
42035 , p_source_2 IN NUMBER
42036 --Cost CCID
42037 , p_source_3 IN NUMBER
42038 --Cost Clearing CCID
42039 , p_source_6 IN NUMBER
42040 --Reversing Line Flag
42041 , p_source_22 IN VARCHAR2
42045 , p_source_25 IN VARCHAR2
42042 --Actual Upgrade Credit Accounting Class
42043 , p_source_23 IN VARCHAR2
42044 --Entered Currency Code
42046 --Exchange Rate Date
42047 , p_source_27 IN DATE
42048 --Exchange Rate
42049 , p_source_28 IN NUMBER
42050 --Exchange Rate Type
42051 , p_source_29 IN VARCHAR2
42052 --Actual Upgrade Debit Accounting Class
42053 , p_source_30 IN VARCHAR2
42054 --Use Actuals Upgrade Attributes Flag
42055 , p_source_31 IN VARCHAR2
42056 --Expenditure Item ID
42057 , p_source_32 IN NUMBER
42058 --Cost Distribution Line Number
42059 , p_source_33 IN NUMBER
42060 --Line Type
42061 , p_source_34 IN VARCHAR2
42062 , p_source_34_meaning IN VARCHAR2
42063 --Reversed Line Number
42064 , p_source_35 IN NUMBER
42065 --Entered Burdened Cost
42066 , p_source_44 IN NUMBER
42067 --Accounted Burdened Cost
42068 , p_source_45 IN NUMBER
42069 --Encumbrance Amount
42070 , p_source_46 IN NUMBER
42071 --Project Encumbrance Applied to Application Identifier
42072 , p_source_47 IN NUMBER
42073 --Project Encumbrance Applied to Distribution Type
42074 , p_source_48 IN VARCHAR2
42075 --Project Encumbrance Applied to Entity Code
42076 , p_source_49 IN VARCHAR2
42077 --Project Encumbrance Applied to First Distribution ID
42078 , p_source_50 IN NUMBER
42079 --Project Encumbrance Applied to First System Transaction ID
42080 , p_source_51 IN NUMBER
42081 --Project Encumbrance Applied to Second Distribution ID
42082 , p_source_52 IN VARCHAR2
42083 --Encumbrance Upgrade Debit Accounting Class
42084 , p_source_54 IN VARCHAR2
42085 --Use Encumbrance Upgrade Attributes Flag
42086 , p_source_55 IN VARCHAR2
42087 --Encumbrance Type ID
42088 , p_source_56 IN NUMBER
42089 --Project Encumbrance Type ID
42090 , p_source_57 IN NUMBER
42091 )
42092 IS
42093
42094 l_component_type VARCHAR2(80);
42095 l_component_code VARCHAR2(30);
42096 l_component_type_code VARCHAR2(1);
42097 l_component_appl_id INTEGER;
42098 l_amb_context_code VARCHAR2(30);
42099 l_entity_code VARCHAR2(30);
42100 l_event_class_code VARCHAR2(30);
42101 l_ae_header_id NUMBER;
42102 l_event_type_code VARCHAR2(30);
42103 l_line_definition_code VARCHAR2(30);
42104 l_line_definition_owner_code VARCHAR2(1);
42105 --
42106 -- adr variables
42107 l_segment VARCHAR2(30);
42108 l_ccid NUMBER;
42109 l_adr_transaction_coa_id NUMBER;
42110 l_adr_accounting_coa_id NUMBER;
42111 l_adr_flexfield_segment_code VARCHAR2(30);
42112 l_adr_flex_value_set_id NUMBER;
42113 l_adr_value_type_code VARCHAR2(30);
42114 l_adr_value_combination_id NUMBER;
42115 l_adr_value_segment_code VARCHAR2(30);
42116
42117 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42118 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42119 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42120 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42121
42122 -- 4262811 Variables ------------------------------------------------------------------------------------------
42123 l_entered_amt_idx NUMBER;
42124 l_accted_amt_idx NUMBER;
42125 l_acc_rev_flag VARCHAR2(1);
42126 l_accrual_line_num NUMBER;
42127 l_tmp_amt NUMBER;
42128 l_acc_rev_natural_side_code VARCHAR2(1);
42129
42130 l_num_entries NUMBER;
42131 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42132 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42133 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42134 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42135 l_recog_line_1 NUMBER;
42136 l_recog_line_2 NUMBER;
42137
42138 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42139 l_bflow_applied_to_amt NUMBER; -- 5132302
42140 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42141
42142 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42143
42144 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42145 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42146
42147 ---------------------------------------------------------------------------------------------------------------
42148
42149
42150 --
42151 -- bulk performance
42152 --
42153 l_balance_type_code VARCHAR2(1);
42154 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42155 l_log_module VARCHAR2(240);
42156
42157 --
42158 -- Upgrade strategy
42159 --
42160 l_actual_upg_option VARCHAR2(1);
42161 l_enc_upg_option VARCHAR2(1);
42162
42163 --
42164 BEGIN
42165 --
42166 IF g_log_enabled THEN
42167 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_89';
42168 END IF;
42169 --
42170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42171
42172 trace
42176
42173 (p_msg => 'BEGIN of AcctLineType_89'
42174 ,p_level => C_LEVEL_PROCEDURE
42175 ,p_module => l_log_module);
42177 END IF;
42178 --
42179 l_component_type := 'AMB_JLT';
42180 l_component_code := 'REINSTATE_PROJ_ENC';
42181 l_component_type_code := 'S';
42182 l_component_appl_id := 275;
42183 l_amb_context_code := 'DEFAULT';
42184 l_entity_code := 'EXPENDITURES';
42185 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
42186 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
42187 l_line_definition_owner_code := 'S';
42188 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
42189 --
42190 l_balance_type_code := 'E';
42191 l_segment := NULL;
42192 l_ccid := NULL;
42193 l_adr_transaction_coa_id := NULL;
42194 l_adr_accounting_coa_id := NULL;
42195 l_adr_flexfield_segment_code := NULL;
42196 l_adr_flex_value_set_id := NULL;
42197 l_adr_value_type_code := NULL;
42198 l_adr_value_combination_id := NULL;
42199 l_adr_value_segment_code := NULL;
42200
42201 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
42202 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
42203 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42204 l_budgetary_control_flag := 'N';
42205
42206 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42207 l_bflow_applied_to_amt := NULL; -- 5132302
42208 l_entered_amt_idx := NULL; -- 4262811
42209 l_accted_amt_idx := NULL; -- 4262811
42210 l_acc_rev_flag := NULL; -- 4262811
42211 l_accrual_line_num := NULL; -- 4262811
42212 l_tmp_amt := NULL; -- 4262811
42213 --
42214
42215 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42216 l_balance_type_code <> 'B' THEN
42217 IF NVL(p_source_34,'
42218 ') = 'E'
42219 THEN
42220
42221 --
42222 XLA_AE_LINES_PKG.SetNewLine;
42223
42224 p_balance_type_code := l_balance_type_code;
42225 -- set the flag so later we will know whether the gain loss line needs to be created
42226
42227 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42228 p_actual_flag :='A';
42229 END IF;
42230
42231 --
42232 -- bulk performance
42233 --
42234 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42235 p_header_num => 0); -- 4262811
42236 --
42237 -- set accounting line options
42238 --
42239 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42240 p_natural_side_code => 'D'
42241 , p_gain_or_loss_flag => 'N'
42242 , p_gl_transfer_mode_code => 'S'
42243 , p_acct_entry_type_code => 'E'
42244 , p_switch_side_flag => 'N'
42245 , p_merge_duplicate_code => 'N'
42246 );
42247 --
42248 l_acc_rev_natural_side_code := 'C'; -- 4262811
42249 --
42250 --
42251 -- set accounting line type info
42252 --
42253 xla_ae_lines_pkg.SetAcctLineType
42254 (p_component_type => l_component_type
42255 ,p_event_type_code => l_event_type_code
42256 ,p_line_definition_owner_code => l_line_definition_owner_code
42257 ,p_line_definition_code => l_line_definition_code
42258 ,p_accounting_line_code => l_component_code
42259 ,p_accounting_line_type_code => l_component_type_code
42260 ,p_accounting_line_appl_id => l_component_appl_id
42261 ,p_amb_context_code => l_amb_context_code
42262 ,p_entity_code => l_entity_code
42263 ,p_event_class_code => l_event_class_code);
42264 --
42265 -- set accounting class
42266 --
42267 xla_ae_lines_pkg.SetAcctClass(
42268 p_accounting_class_code => 'PA_BUDGET_ENC'
42269 , p_ae_header_id => l_ae_header_id
42270 );
42271
42272 --
42273 -- set rounding class
42274 --
42275 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42276 'PA_BUDGET_ENC';
42277
42278 --
42279 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42280 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42281 --
42282 -- bulk performance
42283 --
42284 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42285
42286 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42287 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42288
42289 -- 4955764
42290 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42291 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42292
42293 -- 4458381 Public Sector Enh
42294
42295 --
42296 -- set accounting attributes for the line type
42297 --
42298 l_entered_amt_idx := 35;
42299 l_accted_amt_idx := 37;
42300 l_bflow_applied_to_amt_idx := 19; -- 5132302
42304 l_rec_acct_attrs.array_char_value(2) := p_source_23;
42301 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42302 l_rec_acct_attrs.array_char_value(1) := p_source_22;
42303 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
42305 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
42306 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
42307 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
42308 l_rec_acct_attrs.array_num_value(4) := p_source_44;
42309 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
42310 l_rec_acct_attrs.array_char_value(5) := p_source_25;
42311 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
42312 l_rec_acct_attrs.array_num_value(6) := p_source_45;
42313 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
42314 l_rec_acct_attrs.array_date_value(7) := p_source_27;
42315 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
42316 l_rec_acct_attrs.array_num_value(8) := p_source_28;
42317 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
42318 l_rec_acct_attrs.array_char_value(9) := p_source_29;
42319 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
42320 l_rec_acct_attrs.array_char_value(10) := p_source_30;
42321 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
42322 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
42323 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
42324 l_rec_acct_attrs.array_num_value(12) := p_source_44;
42325 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
42326 l_rec_acct_attrs.array_char_value(13) := p_source_25;
42327 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
42328 l_rec_acct_attrs.array_num_value(14) := p_source_45;
42329 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
42330 l_rec_acct_attrs.array_date_value(15) := p_source_27;
42331 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
42332 l_rec_acct_attrs.array_num_value(16) := p_source_28;
42333 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
42334 l_rec_acct_attrs.array_char_value(17) := p_source_29;
42335 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
42336 l_rec_acct_attrs.array_char_value(18) := p_source_31;
42337 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
42338 l_rec_acct_attrs.array_num_value(19) := p_source_46;
42339 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
42340 l_rec_acct_attrs.array_num_value(20) := p_source_47;
42341 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42342 l_rec_acct_attrs.array_char_value(21) := p_source_48;
42343 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
42344 l_rec_acct_attrs.array_char_value(22) := p_source_49;
42345 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
42346 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
42347 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42348 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
42349 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
42350 l_rec_acct_attrs.array_char_value(25) := p_source_52;
42351 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
42352 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
42353 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
42354 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
42355 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
42356 l_rec_acct_attrs.array_char_value(28) := p_source_34;
42357 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
42358 l_rec_acct_attrs.array_char_value(29) := p_source_54;
42359 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
42360 l_rec_acct_attrs.array_num_value(30) := p_source_2;
42361 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
42362 l_rec_acct_attrs.array_num_value(31) := p_source_46;
42363 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
42364 l_rec_acct_attrs.array_char_value(32) :=
42365 xla_ae_sources_pkg.GetSystemSourceChar(
42366 p_source_code => 'XLA_CURRENCY_CODE'
42367 , p_source_type_code => 'Y'
42368 , p_source_application_id => 602
42369 );
42370 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
42371 l_rec_acct_attrs.array_num_value(33) := p_source_46;
42372 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
42373 l_rec_acct_attrs.array_char_value(34) := p_source_55;
42374 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
42375 l_rec_acct_attrs.array_num_value(35) := p_source_46;
42376 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
42377 l_rec_acct_attrs.array_char_value(36) := p_source_25;
42378 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
42379 l_rec_acct_attrs.array_num_value(37) := p_source_46;
42380 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
42381 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
42382 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
42383 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
42387 l_rec_acct_attrs.array_num_value(41) := p_source_56;
42384 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
42385 l_rec_acct_attrs.array_char_value(40) := p_source_34;
42386 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
42388 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
42389 l_rec_acct_attrs.array_num_value(42) := p_source_57;
42390
42391 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42392 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42393
42394 ---------------------------------------------------------------------------------------------------------------
42395 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
42396 ---------------------------------------------------------------------------------------------------------------
42397 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
42398
42399 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42400 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
42401
42402 IF xla_accounting_cache_pkg.GetValueChar
42403 (p_source_code => 'LEDGER_CATEGORY_CODE'
42404 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
42405 AND l_bflow_method_code = 'PRIOR_ENTRY'
42406 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
42407 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
42408 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
42409 )
42410 THEN
42411 xla_ae_lines_pkg.BflowUpgEntry
42412 (p_business_method_code => l_bflow_method_code
42413 ,p_business_class_code => l_bflow_class_code
42414 ,p_balance_type => l_balance_type_code);
42415 ELSE
42416 NULL;
42417 XLA_AE_LINES_PKG.business_flow_validation(
42418 p_business_method_code => l_bflow_method_code
42419 ,p_business_class_code => l_bflow_class_code
42420 ,p_inherit_description_flag => l_inherit_desc_flag);
42421 END IF;
42422
42423 --
42424 -- call analytical criteria
42425 --
42426 -- Inherited Analytical Criteria for business flow method of Prior Entry.
42427 --
42428 -- call description
42429 --
42430 -- No description or it is inherited.
42431 --
42432 -- call ADRs
42433 -- Bug 4922099
42434 --
42435 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
42436 (NVL(l_actual_upg_option, 'N') = 'O') OR
42437 (NVL(l_enc_upg_option, 'N') = 'O')
42438 )
42439 THEN
42440 NULL;
42441 --
42442 --
42443
42444 --
42445 --
42446 END IF;
42447 --
42448 -- Bug 4922099
42449 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
42450 (NVL(l_enc_upg_option, 'N') = 'O')
42451 ) AND
42452 (l_bflow_method_code = 'PRIOR_ENTRY')
42453 )
42454 THEN
42455 IF
42456 --
42457 1 = 1
42458 --
42459 THEN
42460 xla_accounting_err_pkg.build_message
42461 (p_appli_s_name => 'XLA'
42462 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42463 ,p_token_1 => 'LINE_NUMBER'
42464 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
42465 ,p_token_2 => 'LINE_TYPE_NAME'
42466 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
42467 l_component_type
42468 ,l_component_code
42469 ,l_component_type_code
42470 ,l_component_appl_id
42471 ,l_amb_context_code
42472 ,l_entity_code
42473 ,l_event_class_code
42474 )
42475 ,p_token_3 => 'OWNER'
42476 ,p_value_3 => xla_lookups_pkg.get_meaning(
42477 p_lookup_type => 'XLA_OWNER_TYPE'
42478 ,p_lookup_code => l_component_type_code
42479 )
42480 ,p_token_4 => 'PRODUCT_NAME'
42481 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
42482 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
42483 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
42487
42484 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
42485 ,p_ae_header_id => NULL
42486 );
42488 IF (C_LEVEL_ERROR>= g_log_level) THEN
42489 trace
42490 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
42491 ,p_level => C_LEVEL_ERROR
42492 ,p_module => l_log_module);
42493 END IF;
42494 END IF;
42495 END IF;
42496 --
42497 --
42498 ------------------------------------------------------------------------------------------------
42499 -- 4219869 Business Flow
42500 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
42501 -- Prior Entry. Currently, the following code is always generated.
42502 ------------------------------------------------------------------------------------------------
42503 -- No ValidateCurrentLine for business flow method of Prior Entry
42504
42505 ------------------------------------------------------------------------------------
42506 -- 4219869 Business Flow
42507 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
42508 ------------------------------------------------------------------------------------
42509 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42510
42511 ----------------------------------------------------------------------------------
42512 -- 4219869 Business Flow
42513 -- Update journal entry status -- Need to generate this within IF <condition>
42514 ----------------------------------------------------------------------------------
42515 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42516 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
42517 ,p_balance_type_code => l_balance_type_code
42518 );
42519
42520 -------------------------------------------------------------------------------------------
42521 -- 4262811 - Generate the Accrual Reversal lines
42522 -------------------------------------------------------------------------------------------
42523 BEGIN
42524 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
42525 (g_array_event(p_event_id).array_value_num('header_index'));
42526 IF l_acc_rev_flag IS NULL THEN
42527 l_acc_rev_flag := 'N';
42528 END IF;
42529 EXCEPTION
42530 WHEN OTHERS THEN
42531 l_acc_rev_flag := 'N';
42532 END;
42533 --
42534 IF (l_acc_rev_flag = 'Y') THEN
42535
42536 -- 4645092 ------------------------------------------------------------------------------
42537 -- To allow MPA report to determine if it should generate report process
42538 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
42539 ------------------------------------------------------------------------------------------
42540
42541 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
42542 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
42543
42544 --
42545 -- Update the line information that should be overwritten
42546 --
42547 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
42548 p_header_num => 1);
42549 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
42550
42551 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
42552
42553 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
42554 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
42555 END IF;
42556
42557 --
42558 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
42559 --
42560 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
42561 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
42562 ELSE
42563 ---------------------------------------------------------------------------------------------------
42564 -- 4262811a Switch Sign
42565 ---------------------------------------------------------------------------------------------------
42566 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
42567 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42568 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42569 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
42570 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42571 -- 5132302
42572 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
42573 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
42574
42575 END IF;
42576
42577 -- 4955764
42578 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42579 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
42580
42581
42582 XLA_AE_LINES_PKG.ValidateCurrentLine;
42583 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
42584
42588
42585 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
42586 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
42587 ,p_balance_type_code => l_balance_type_code);
42589 END IF;
42590
42591 -----------------------------------------------------------------------------------------
42592 -- 4262811 Multiperiod Accounting
42593 -----------------------------------------------------------------------------------------
42594 -- No MPA option is assigned.
42595
42596
42597 END IF;
42598 END IF;
42599 --
42600
42601 --
42602 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42603 trace
42604 (p_msg => 'END of AcctLineType_89'
42605 ,p_level => C_LEVEL_PROCEDURE
42606 ,p_module => l_log_module);
42607 END IF;
42608 --
42609 EXCEPTION
42610 WHEN xla_exceptions_pkg.application_exception THEN
42611 RAISE;
42612 WHEN OTHERS THEN
42613 xla_exceptions_pkg.raise_message
42614 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_89');
42615 END AcctLineType_89;
42616 --
42617
42618 ---------------------------------------
42619 --
42620 -- PRIVATE FUNCTION
42621 -- AcctLineType_90
42622 --
42623 ---------------------------------------
42624 PROCEDURE AcctLineType_90 (
42625 p_application_id IN NUMBER
42626 ,p_event_id IN NUMBER
42627 ,p_calculate_acctd_flag IN VARCHAR2
42628 ,p_calculate_g_l_flag IN VARCHAR2
42629 ,p_actual_flag IN OUT VARCHAR2
42630 ,p_balance_type_code OUT VARCHAR2
42631 ,p_gain_or_loss_ref OUT VARCHAR2
42632
42633 --Budget Code Combination ID
42634 , p_source_2 IN NUMBER
42635 --Cost CCID
42636 , p_source_3 IN NUMBER
42637 --Cost Clearing CCID
42638 , p_source_6 IN NUMBER
42639 --Reversing Line Flag
42640 , p_source_22 IN VARCHAR2
42641 --Actual Upgrade Credit Accounting Class
42642 , p_source_23 IN VARCHAR2
42643 --Entered Currency Code
42644 , p_source_25 IN VARCHAR2
42645 --Exchange Rate Date
42646 , p_source_27 IN DATE
42647 --Exchange Rate
42648 , p_source_28 IN NUMBER
42649 --Exchange Rate Type
42650 , p_source_29 IN VARCHAR2
42651 --Actual Upgrade Debit Accounting Class
42652 , p_source_30 IN VARCHAR2
42653 --Use Actuals Upgrade Attributes Flag
42654 , p_source_31 IN VARCHAR2
42655 --Expenditure Item ID
42656 , p_source_32 IN NUMBER
42657 --Cost Distribution Line Number
42658 , p_source_33 IN NUMBER
42659 --Line Type
42660 , p_source_34 IN VARCHAR2
42661 , p_source_34_meaning IN VARCHAR2
42662 --Reversed Line Number
42663 , p_source_35 IN NUMBER
42664 --Entered Burdened Cost
42665 , p_source_44 IN NUMBER
42666 --Accounted Burdened Cost
42667 , p_source_45 IN NUMBER
42668 --Encumbrance Amount
42669 , p_source_46 IN NUMBER
42670 --Project Encumbrance Applied to Application Identifier
42671 , p_source_47 IN NUMBER
42672 --Project Encumbrance Applied to Distribution Type
42673 , p_source_48 IN VARCHAR2
42674 --Project Encumbrance Applied to Entity Code
42675 , p_source_49 IN VARCHAR2
42676 --Project Encumbrance Applied to First Distribution ID
42677 , p_source_50 IN NUMBER
42678 --Project Encumbrance Applied to First System Transaction ID
42679 , p_source_51 IN NUMBER
42680 --Project Encumbrance Applied to Second Distribution ID
42681 , p_source_52 IN VARCHAR2
42682 --Encumbrance Upgrade Credit Accounting Class
42683 , p_source_53 IN VARCHAR2
42684 --Encumbrance Upgrade Debit Accounting Class
42685 , p_source_54 IN VARCHAR2
42686 --Use Encumbrance Upgrade Attributes Flag
42687 , p_source_55 IN VARCHAR2
42688 --Encumbrance Type ID
42689 , p_source_56 IN NUMBER
42690 --Project Encumbrance Type ID
42691 , p_source_57 IN NUMBER
42692 )
42693 IS
42694
42695 l_component_type VARCHAR2(80);
42696 l_component_code VARCHAR2(30);
42697 l_component_type_code VARCHAR2(1);
42698 l_component_appl_id INTEGER;
42699 l_amb_context_code VARCHAR2(30);
42700 l_entity_code VARCHAR2(30);
42701 l_event_class_code VARCHAR2(30);
42702 l_ae_header_id NUMBER;
42703 l_event_type_code VARCHAR2(30);
42704 l_line_definition_code VARCHAR2(30);
42705 l_line_definition_owner_code VARCHAR2(1);
42706 --
42707 -- adr variables
42708 l_segment VARCHAR2(30);
42709 l_ccid NUMBER;
42710 l_adr_transaction_coa_id NUMBER;
42711 l_adr_accounting_coa_id NUMBER;
42712 l_adr_flexfield_segment_code VARCHAR2(30);
42713 l_adr_flex_value_set_id NUMBER;
42714 l_adr_value_type_code VARCHAR2(30);
42715 l_adr_value_combination_id NUMBER;
42716 l_adr_value_segment_code VARCHAR2(30);
42717
42718 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
42719 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
42720 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
42721 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
42722
42726 l_acc_rev_flag VARCHAR2(1);
42723 -- 4262811 Variables ------------------------------------------------------------------------------------------
42724 l_entered_amt_idx NUMBER;
42725 l_accted_amt_idx NUMBER;
42727 l_accrual_line_num NUMBER;
42728 l_tmp_amt NUMBER;
42729 l_acc_rev_natural_side_code VARCHAR2(1);
42730
42731 l_num_entries NUMBER;
42732 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
42733 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
42734 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
42735 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
42736 l_recog_line_1 NUMBER;
42737 l_recog_line_2 NUMBER;
42738
42739 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
42740 l_bflow_applied_to_amt NUMBER; -- 5132302
42741 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
42742
42743 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
42744
42745 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
42746 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
42747
42748 ---------------------------------------------------------------------------------------------------------------
42749
42750
42751 --
42752 -- bulk performance
42753 --
42754 l_balance_type_code VARCHAR2(1);
42755 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
42756 l_log_module VARCHAR2(240);
42757
42758 --
42759 -- Upgrade strategy
42760 --
42761 l_actual_upg_option VARCHAR2(1);
42762 l_enc_upg_option VARCHAR2(1);
42763
42764 --
42765 BEGIN
42766 --
42767 IF g_log_enabled THEN
42768 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_90';
42769 END IF;
42770 --
42771 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
42772
42773 trace
42774 (p_msg => 'BEGIN of AcctLineType_90'
42775 ,p_level => C_LEVEL_PROCEDURE
42776 ,p_module => l_log_module);
42777
42778 END IF;
42779 --
42780 l_component_type := 'AMB_JLT';
42781 l_component_code := 'REINSTATE_PROJ_ENC';
42782 l_component_type_code := 'S';
42783 l_component_appl_id := 275;
42784 l_amb_context_code := 'DEFAULT';
42785 l_entity_code := 'EXPENDITURES';
42786 l_event_class_code := 'BURDEN_COST';
42787 l_event_type_code := 'BURDEN_COST_ALL';
42788 l_line_definition_owner_code := 'S';
42789 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
42790 --
42791 l_balance_type_code := 'E';
42792 l_segment := NULL;
42793 l_ccid := NULL;
42794 l_adr_transaction_coa_id := NULL;
42795 l_adr_accounting_coa_id := NULL;
42796 l_adr_flexfield_segment_code := NULL;
42797 l_adr_flex_value_set_id := NULL;
42798 l_adr_value_type_code := NULL;
42799 l_adr_value_combination_id := NULL;
42800 l_adr_value_segment_code := NULL;
42801
42802 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
42803 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
42804 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
42805 l_budgetary_control_flag := 'N';
42806
42807 l_bflow_applied_to_amt_idx := NULL; -- 5132302
42808 l_bflow_applied_to_amt := NULL; -- 5132302
42809 l_entered_amt_idx := NULL; -- 4262811
42810 l_accted_amt_idx := NULL; -- 4262811
42811 l_acc_rev_flag := NULL; -- 4262811
42812 l_accrual_line_num := NULL; -- 4262811
42813 l_tmp_amt := NULL; -- 4262811
42814 --
42815
42816 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
42817 l_balance_type_code <> 'B' THEN
42818 IF NVL(p_source_34,'
42819 ') = 'E'
42820 THEN
42821
42822 --
42823 XLA_AE_LINES_PKG.SetNewLine;
42824
42825 p_balance_type_code := l_balance_type_code;
42826 -- set the flag so later we will know whether the gain loss line needs to be created
42827
42828 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
42829 p_actual_flag :='A';
42830 END IF;
42831
42832 --
42833 -- bulk performance
42834 --
42835 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
42836 p_header_num => 0); -- 4262811
42837 --
42838 -- set accounting line options
42839 --
42840 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
42841 p_natural_side_code => 'D'
42842 , p_gain_or_loss_flag => 'N'
42843 , p_gl_transfer_mode_code => 'S'
42844 , p_acct_entry_type_code => 'E'
42845 , p_switch_side_flag => 'N'
42846 , p_merge_duplicate_code => 'N'
42847 );
42848 --
42849 l_acc_rev_natural_side_code := 'C'; -- 4262811
42850 --
42851 --
42852 -- set accounting line type info
42853 --
42854 xla_ae_lines_pkg.SetAcctLineType
42858 ,p_line_definition_code => l_line_definition_code
42855 (p_component_type => l_component_type
42856 ,p_event_type_code => l_event_type_code
42857 ,p_line_definition_owner_code => l_line_definition_owner_code
42859 ,p_accounting_line_code => l_component_code
42860 ,p_accounting_line_type_code => l_component_type_code
42861 ,p_accounting_line_appl_id => l_component_appl_id
42862 ,p_amb_context_code => l_amb_context_code
42863 ,p_entity_code => l_entity_code
42864 ,p_event_class_code => l_event_class_code);
42865 --
42866 -- set accounting class
42867 --
42868 xla_ae_lines_pkg.SetAcctClass(
42869 p_accounting_class_code => 'PA_BUDGET_ENC'
42870 , p_ae_header_id => l_ae_header_id
42871 );
42872
42873 --
42874 -- set rounding class
42875 --
42876 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
42877 'PA_BUDGET_ENC';
42878
42879 --
42880 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
42881 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
42882 --
42883 -- bulk performance
42884 --
42885 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
42886
42887 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
42888 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
42889
42890 -- 4955764
42891 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
42892 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
42893
42894 -- 4458381 Public Sector Enh
42895
42896 --
42897 -- set accounting attributes for the line type
42898 --
42899 l_entered_amt_idx := 40;
42900 l_accted_amt_idx := 42;
42901 l_bflow_applied_to_amt_idx := 19; -- 5132302
42902 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
42903 l_rec_acct_attrs.array_char_value(1) := p_source_22;
42904 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
42905 l_rec_acct_attrs.array_char_value(2) := p_source_23;
42906 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
42907 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
42908 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
42909 l_rec_acct_attrs.array_num_value(4) := p_source_44;
42910 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
42911 l_rec_acct_attrs.array_char_value(5) := p_source_25;
42912 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
42913 l_rec_acct_attrs.array_num_value(6) := p_source_45;
42914 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
42915 l_rec_acct_attrs.array_date_value(7) := p_source_27;
42916 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
42917 l_rec_acct_attrs.array_num_value(8) := p_source_28;
42918 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
42919 l_rec_acct_attrs.array_char_value(9) := p_source_29;
42920 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
42921 l_rec_acct_attrs.array_char_value(10) := p_source_30;
42922 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
42923 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
42924 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
42925 l_rec_acct_attrs.array_num_value(12) := p_source_44;
42926 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
42927 l_rec_acct_attrs.array_char_value(13) := p_source_25;
42928 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
42929 l_rec_acct_attrs.array_num_value(14) := p_source_45;
42930 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
42931 l_rec_acct_attrs.array_date_value(15) := p_source_27;
42932 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
42933 l_rec_acct_attrs.array_num_value(16) := p_source_28;
42934 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
42935 l_rec_acct_attrs.array_char_value(17) := p_source_29;
42936 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
42937 l_rec_acct_attrs.array_char_value(18) := p_source_31;
42938 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
42939 l_rec_acct_attrs.array_num_value(19) := p_source_46;
42940 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
42941 l_rec_acct_attrs.array_num_value(20) := p_source_47;
42942 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
42943 l_rec_acct_attrs.array_char_value(21) := p_source_48;
42944 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
42945 l_rec_acct_attrs.array_char_value(22) := p_source_49;
42946 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
42947 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
42948 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
42949 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
42950 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
42954 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
42951 l_rec_acct_attrs.array_char_value(25) := p_source_52;
42952 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
42953 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
42955 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
42956 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
42957 l_rec_acct_attrs.array_char_value(28) := p_source_34;
42958 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
42959 l_rec_acct_attrs.array_char_value(29) := p_source_53;
42960 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
42961 l_rec_acct_attrs.array_num_value(30) := p_source_2;
42962 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
42963 l_rec_acct_attrs.array_num_value(31) := p_source_46;
42964 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
42965 l_rec_acct_attrs.array_char_value(32) := p_source_25;
42966 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
42967 l_rec_acct_attrs.array_num_value(33) := p_source_46;
42968 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
42969 l_rec_acct_attrs.array_char_value(34) := p_source_54;
42970 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
42971 l_rec_acct_attrs.array_num_value(35) := p_source_2;
42972 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
42973 l_rec_acct_attrs.array_num_value(36) := p_source_46;
42974 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
42975 l_rec_acct_attrs.array_char_value(37) := p_source_25;
42976 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
42977 l_rec_acct_attrs.array_num_value(38) := p_source_46;
42978 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
42979 l_rec_acct_attrs.array_char_value(39) := p_source_55;
42980 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
42981 l_rec_acct_attrs.array_num_value(40) := p_source_46;
42982 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
42983 l_rec_acct_attrs.array_char_value(41) := p_source_25;
42984 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
42985 l_rec_acct_attrs.array_num_value(42) := p_source_46;
42986 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
42987 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
42988 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
42989 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
42990 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
42991 l_rec_acct_attrs.array_char_value(45) := p_source_34;
42992 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
42993 l_rec_acct_attrs.array_num_value(46) := p_source_56;
42994 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
42995 l_rec_acct_attrs.array_num_value(47) := p_source_57;
42996
42997 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
42998 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
42999
43000 ---------------------------------------------------------------------------------------------------------------
43001 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43002 ---------------------------------------------------------------------------------------------------------------
43003 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43004
43005 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43006 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43007
43008 IF xla_accounting_cache_pkg.GetValueChar
43009 (p_source_code => 'LEDGER_CATEGORY_CODE'
43010 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43011 AND l_bflow_method_code = 'PRIOR_ENTRY'
43012 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43013 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43014 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43015 )
43016 THEN
43017 xla_ae_lines_pkg.BflowUpgEntry
43018 (p_business_method_code => l_bflow_method_code
43019 ,p_business_class_code => l_bflow_class_code
43020 ,p_balance_type => l_balance_type_code);
43021 ELSE
43022 NULL;
43023 XLA_AE_LINES_PKG.business_flow_validation(
43024 p_business_method_code => l_bflow_method_code
43025 ,p_business_class_code => l_bflow_class_code
43026 ,p_inherit_description_flag => l_inherit_desc_flag);
43027 END IF;
43028
43029 --
43030 -- call analytical criteria
43031 --
43032 -- Inherited Analytical Criteria for business flow method of Prior Entry.
43033 --
43034 -- call description
43035 --
43036 -- No description or it is inherited.
43037 --
43038 -- call ADRs
43039 -- Bug 4922099
43040 --
43041 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43042 (NVL(l_actual_upg_option, 'N') = 'O') OR
43043 (NVL(l_enc_upg_option, 'N') = 'O')
43044 )
43045 THEN
43046 NULL;
43047 --
43051 --
43048 --
43049
43050 --
43052 END IF;
43053 --
43054 -- Bug 4922099
43055 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43056 (NVL(l_enc_upg_option, 'N') = 'O')
43057 ) AND
43058 (l_bflow_method_code = 'PRIOR_ENTRY')
43059 )
43060 THEN
43061 IF
43062 --
43063 1 = 1
43064 --
43065 THEN
43066 xla_accounting_err_pkg.build_message
43067 (p_appli_s_name => 'XLA'
43068 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43069 ,p_token_1 => 'LINE_NUMBER'
43070 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43071 ,p_token_2 => 'LINE_TYPE_NAME'
43072 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43073 l_component_type
43074 ,l_component_code
43075 ,l_component_type_code
43076 ,l_component_appl_id
43077 ,l_amb_context_code
43078 ,l_entity_code
43079 ,l_event_class_code
43080 )
43081 ,p_token_3 => 'OWNER'
43082 ,p_value_3 => xla_lookups_pkg.get_meaning(
43083 p_lookup_type => 'XLA_OWNER_TYPE'
43084 ,p_lookup_code => l_component_type_code
43085 )
43086 ,p_token_4 => 'PRODUCT_NAME'
43087 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43088 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43089 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43090 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43091 ,p_ae_header_id => NULL
43092 );
43093
43094 IF (C_LEVEL_ERROR>= g_log_level) THEN
43095 trace
43096 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43097 ,p_level => C_LEVEL_ERROR
43098 ,p_module => l_log_module);
43099 END IF;
43100 END IF;
43101 END IF;
43102 --
43103 --
43104 ------------------------------------------------------------------------------------------------
43105 -- 4219869 Business Flow
43106 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43107 -- Prior Entry. Currently, the following code is always generated.
43108 ------------------------------------------------------------------------------------------------
43109 -- No ValidateCurrentLine for business flow method of Prior Entry
43110
43111 ------------------------------------------------------------------------------------
43112 -- 4219869 Business Flow
43113 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43114 ------------------------------------------------------------------------------------
43115 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43116
43117 ----------------------------------------------------------------------------------
43118 -- 4219869 Business Flow
43119 -- Update journal entry status -- Need to generate this within IF <condition>
43120 ----------------------------------------------------------------------------------
43121 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43122 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43123 ,p_balance_type_code => l_balance_type_code
43124 );
43125
43126 -------------------------------------------------------------------------------------------
43127 -- 4262811 - Generate the Accrual Reversal lines
43128 -------------------------------------------------------------------------------------------
43129 BEGIN
43130 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43131 (g_array_event(p_event_id).array_value_num('header_index'));
43132 IF l_acc_rev_flag IS NULL THEN
43133 l_acc_rev_flag := 'N';
43134 END IF;
43135 EXCEPTION
43136 WHEN OTHERS THEN
43137 l_acc_rev_flag := 'N';
43138 END;
43139 --
43140 IF (l_acc_rev_flag = 'Y') THEN
43141
43142 -- 4645092 ------------------------------------------------------------------------------
43143 -- To allow MPA report to determine if it should generate report process
43144 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43145 ------------------------------------------------------------------------------------------
43149
43146
43147 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43148 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43150 --
43151 -- Update the line information that should be overwritten
43152 --
43153 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43154 p_header_num => 1);
43155 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43156
43157 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43158
43159 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43160 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43161 END IF;
43162
43163 --
43164 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43165 --
43166 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43167 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43168 ELSE
43169 ---------------------------------------------------------------------------------------------------
43170 -- 4262811a Switch Sign
43171 ---------------------------------------------------------------------------------------------------
43172 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43173 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43174 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43175 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43176 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43177 -- 5132302
43178 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43179 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43180
43181 END IF;
43182
43183 -- 4955764
43184 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43185 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43186
43187
43188 XLA_AE_LINES_PKG.ValidateCurrentLine;
43189 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43190
43191 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43192 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43193 ,p_balance_type_code => l_balance_type_code);
43194
43195 END IF;
43196
43197 -----------------------------------------------------------------------------------------
43198 -- 4262811 Multiperiod Accounting
43199 -----------------------------------------------------------------------------------------
43200 -- No MPA option is assigned.
43201
43202
43203 END IF;
43204 END IF;
43205 --
43206
43207 --
43208 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43209 trace
43210 (p_msg => 'END of AcctLineType_90'
43211 ,p_level => C_LEVEL_PROCEDURE
43212 ,p_module => l_log_module);
43213 END IF;
43214 --
43215 EXCEPTION
43216 WHEN xla_exceptions_pkg.application_exception THEN
43217 RAISE;
43218 WHEN OTHERS THEN
43219 xla_exceptions_pkg.raise_message
43220 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_90');
43221 END AcctLineType_90;
43222 --
43223
43224 ---------------------------------------
43225 --
43226 -- PRIVATE FUNCTION
43227 -- AcctLineType_91
43228 --
43229 ---------------------------------------
43230 PROCEDURE AcctLineType_91 (
43231 p_application_id IN NUMBER
43232 ,p_event_id IN NUMBER
43233 ,p_calculate_acctd_flag IN VARCHAR2
43234 ,p_calculate_g_l_flag IN VARCHAR2
43235 ,p_actual_flag IN OUT VARCHAR2
43236 ,p_balance_type_code OUT VARCHAR2
43237 ,p_gain_or_loss_ref OUT VARCHAR2
43238
43239 --Budget Code Combination ID
43240 , p_source_2 IN NUMBER
43241 --Cost CCID
43242 , p_source_3 IN NUMBER
43243 --Cost Clearing CCID
43244 , p_source_6 IN NUMBER
43245 --Reversing Line Flag
43246 , p_source_22 IN VARCHAR2
43247 --Actual Upgrade Credit Accounting Class
43248 , p_source_23 IN VARCHAR2
43249 --Entered Currency Code
43250 , p_source_25 IN VARCHAR2
43251 --Exchange Rate Date
43252 , p_source_27 IN DATE
43253 --Exchange Rate
43254 , p_source_28 IN NUMBER
43255 --Exchange Rate Type
43256 , p_source_29 IN VARCHAR2
43257 --Actual Upgrade Debit Accounting Class
43258 , p_source_30 IN VARCHAR2
43259 --Use Actuals Upgrade Attributes Flag
43260 , p_source_31 IN VARCHAR2
43261 --Expenditure Item ID
43262 , p_source_32 IN NUMBER
43263 --Cost Distribution Line Number
43264 , p_source_33 IN NUMBER
43265 --Line Type
43266 , p_source_34 IN VARCHAR2
43267 , p_source_34_meaning IN VARCHAR2
43268 --Reversed Line Number
43269 , p_source_35 IN NUMBER
43270 --Entered Burdened Cost
43274 --Encumbrance Amount
43271 , p_source_44 IN NUMBER
43272 --Accounted Burdened Cost
43273 , p_source_45 IN NUMBER
43275 , p_source_46 IN NUMBER
43276 --Project Encumbrance Applied to Application Identifier
43277 , p_source_47 IN NUMBER
43278 --Project Encumbrance Applied to Distribution Type
43279 , p_source_48 IN VARCHAR2
43280 --Project Encumbrance Applied to Entity Code
43281 , p_source_49 IN VARCHAR2
43282 --Project Encumbrance Applied to First Distribution ID
43283 , p_source_50 IN NUMBER
43284 --Project Encumbrance Applied to First System Transaction ID
43285 , p_source_51 IN NUMBER
43286 --Project Encumbrance Applied to Second Distribution ID
43287 , p_source_52 IN VARCHAR2
43288 --Encumbrance Upgrade Credit Accounting Class
43289 , p_source_53 IN VARCHAR2
43290 --Encumbrance Upgrade Debit Accounting Class
43291 , p_source_54 IN VARCHAR2
43292 --Use Encumbrance Upgrade Attributes Flag
43293 , p_source_55 IN VARCHAR2
43294 --Encumbrance Type ID
43295 , p_source_56 IN NUMBER
43296 --Project Encumbrance Type ID
43297 , p_source_57 IN NUMBER
43298 )
43299 IS
43300
43301 l_component_type VARCHAR2(80);
43302 l_component_code VARCHAR2(30);
43303 l_component_type_code VARCHAR2(1);
43304 l_component_appl_id INTEGER;
43305 l_amb_context_code VARCHAR2(30);
43306 l_entity_code VARCHAR2(30);
43307 l_event_class_code VARCHAR2(30);
43308 l_ae_header_id NUMBER;
43309 l_event_type_code VARCHAR2(30);
43310 l_line_definition_code VARCHAR2(30);
43311 l_line_definition_owner_code VARCHAR2(1);
43312 --
43313 -- adr variables
43314 l_segment VARCHAR2(30);
43315 l_ccid NUMBER;
43316 l_adr_transaction_coa_id NUMBER;
43317 l_adr_accounting_coa_id NUMBER;
43318 l_adr_flexfield_segment_code VARCHAR2(30);
43319 l_adr_flex_value_set_id NUMBER;
43320 l_adr_value_type_code VARCHAR2(30);
43321 l_adr_value_combination_id NUMBER;
43322 l_adr_value_segment_code VARCHAR2(30);
43323
43324 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43325 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43326 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43327 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43328
43329 -- 4262811 Variables ------------------------------------------------------------------------------------------
43330 l_entered_amt_idx NUMBER;
43331 l_accted_amt_idx NUMBER;
43332 l_acc_rev_flag VARCHAR2(1);
43333 l_accrual_line_num NUMBER;
43334 l_tmp_amt NUMBER;
43335 l_acc_rev_natural_side_code VARCHAR2(1);
43336
43337 l_num_entries NUMBER;
43338 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43339 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43340 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43341 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43342 l_recog_line_1 NUMBER;
43343 l_recog_line_2 NUMBER;
43344
43345 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43346 l_bflow_applied_to_amt NUMBER; -- 5132302
43347 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43348
43349 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43350
43351 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43352 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43353
43354 ---------------------------------------------------------------------------------------------------------------
43355
43356
43357 --
43358 -- bulk performance
43359 --
43360 l_balance_type_code VARCHAR2(1);
43361 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43362 l_log_module VARCHAR2(240);
43363
43364 --
43365 -- Upgrade strategy
43366 --
43367 l_actual_upg_option VARCHAR2(1);
43368 l_enc_upg_option VARCHAR2(1);
43369
43370 --
43371 BEGIN
43372 --
43373 IF g_log_enabled THEN
43374 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_91';
43375 END IF;
43376 --
43377 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43378
43379 trace
43380 (p_msg => 'BEGIN of AcctLineType_91'
43381 ,p_level => C_LEVEL_PROCEDURE
43382 ,p_module => l_log_module);
43383
43384 END IF;
43385 --
43386 l_component_type := 'AMB_JLT';
43387 l_component_code := 'REINSTATE_PROJ_ENC';
43388 l_component_type_code := 'S';
43389 l_component_appl_id := 275;
43390 l_amb_context_code := 'DEFAULT';
43391 l_entity_code := 'EXPENDITURES';
43392 l_event_class_code := 'TOT_BURDENED_COST';
43393 l_event_type_code := 'TOT_BURDENED_COST_ALL';
43394 l_line_definition_owner_code := 'S';
43395 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
43396 --
43397 l_balance_type_code := 'E';
43401 l_adr_accounting_coa_id := NULL;
43398 l_segment := NULL;
43399 l_ccid := NULL;
43400 l_adr_transaction_coa_id := NULL;
43402 l_adr_flexfield_segment_code := NULL;
43403 l_adr_flex_value_set_id := NULL;
43404 l_adr_value_type_code := NULL;
43405 l_adr_value_combination_id := NULL;
43406 l_adr_value_segment_code := NULL;
43407
43408 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
43409 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
43410 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
43411 l_budgetary_control_flag := 'N';
43412
43413 l_bflow_applied_to_amt_idx := NULL; -- 5132302
43414 l_bflow_applied_to_amt := NULL; -- 5132302
43415 l_entered_amt_idx := NULL; -- 4262811
43416 l_accted_amt_idx := NULL; -- 4262811
43417 l_acc_rev_flag := NULL; -- 4262811
43418 l_accrual_line_num := NULL; -- 4262811
43419 l_tmp_amt := NULL; -- 4262811
43420 --
43421
43422 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
43423 l_balance_type_code <> 'B' THEN
43424 IF NVL(p_source_34,'
43425 ') = 'E'
43426 THEN
43427
43428 --
43429 XLA_AE_LINES_PKG.SetNewLine;
43430
43431 p_balance_type_code := l_balance_type_code;
43432 -- set the flag so later we will know whether the gain loss line needs to be created
43433
43434 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
43435 p_actual_flag :='A';
43436 END IF;
43437
43438 --
43439 -- bulk performance
43440 --
43441 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
43442 p_header_num => 0); -- 4262811
43443 --
43444 -- set accounting line options
43445 --
43446 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
43447 p_natural_side_code => 'D'
43448 , p_gain_or_loss_flag => 'N'
43449 , p_gl_transfer_mode_code => 'S'
43450 , p_acct_entry_type_code => 'E'
43451 , p_switch_side_flag => 'N'
43452 , p_merge_duplicate_code => 'N'
43453 );
43454 --
43455 l_acc_rev_natural_side_code := 'C'; -- 4262811
43456 --
43457 --
43458 -- set accounting line type info
43459 --
43460 xla_ae_lines_pkg.SetAcctLineType
43461 (p_component_type => l_component_type
43462 ,p_event_type_code => l_event_type_code
43463 ,p_line_definition_owner_code => l_line_definition_owner_code
43464 ,p_line_definition_code => l_line_definition_code
43465 ,p_accounting_line_code => l_component_code
43466 ,p_accounting_line_type_code => l_component_type_code
43467 ,p_accounting_line_appl_id => l_component_appl_id
43468 ,p_amb_context_code => l_amb_context_code
43469 ,p_entity_code => l_entity_code
43470 ,p_event_class_code => l_event_class_code);
43471 --
43472 -- set accounting class
43473 --
43474 xla_ae_lines_pkg.SetAcctClass(
43475 p_accounting_class_code => 'PA_BUDGET_ENC'
43476 , p_ae_header_id => l_ae_header_id
43477 );
43478
43479 --
43480 -- set rounding class
43481 --
43482 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
43483 'PA_BUDGET_ENC';
43484
43485 --
43486 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
43487 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
43488 --
43489 -- bulk performance
43490 --
43491 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
43492
43493 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
43494 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
43495
43496 -- 4955764
43497 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43498 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
43499
43500 -- 4458381 Public Sector Enh
43501
43502 --
43503 -- set accounting attributes for the line type
43504 --
43505 l_entered_amt_idx := 40;
43506 l_accted_amt_idx := 43;
43507 l_bflow_applied_to_amt_idx := 19; -- 5132302
43508 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
43509 l_rec_acct_attrs.array_char_value(1) := p_source_22;
43510 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
43511 l_rec_acct_attrs.array_char_value(2) := p_source_23;
43512 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
43513 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
43514 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
43515 l_rec_acct_attrs.array_num_value(4) := p_source_44;
43516 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
43517 l_rec_acct_attrs.array_char_value(5) := p_source_25;
43521 l_rec_acct_attrs.array_date_value(7) := p_source_27;
43518 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
43519 l_rec_acct_attrs.array_num_value(6) := p_source_45;
43520 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
43522 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
43523 l_rec_acct_attrs.array_num_value(8) := p_source_28;
43524 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
43525 l_rec_acct_attrs.array_char_value(9) := p_source_29;
43526 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
43527 l_rec_acct_attrs.array_char_value(10) := p_source_30;
43528 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
43529 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
43530 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
43531 l_rec_acct_attrs.array_num_value(12) := p_source_44;
43532 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
43533 l_rec_acct_attrs.array_char_value(13) := p_source_25;
43534 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
43535 l_rec_acct_attrs.array_num_value(14) := p_source_45;
43536 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
43537 l_rec_acct_attrs.array_date_value(15) := p_source_27;
43538 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
43539 l_rec_acct_attrs.array_num_value(16) := p_source_28;
43540 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
43541 l_rec_acct_attrs.array_char_value(17) := p_source_29;
43542 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
43543 l_rec_acct_attrs.array_char_value(18) := p_source_31;
43544 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
43545 l_rec_acct_attrs.array_num_value(19) := p_source_46;
43546 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
43547 l_rec_acct_attrs.array_num_value(20) := p_source_47;
43548 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
43549 l_rec_acct_attrs.array_char_value(21) := p_source_48;
43550 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
43551 l_rec_acct_attrs.array_char_value(22) := p_source_49;
43552 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
43553 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
43554 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
43555 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
43556 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
43557 l_rec_acct_attrs.array_char_value(25) := p_source_52;
43558 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
43559 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
43560 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
43561 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
43562 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
43563 l_rec_acct_attrs.array_char_value(28) := p_source_34;
43564 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
43565 l_rec_acct_attrs.array_char_value(29) := p_source_53;
43566 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
43567 l_rec_acct_attrs.array_num_value(30) := p_source_2;
43568 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
43569 l_rec_acct_attrs.array_num_value(31) := p_source_46;
43570 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
43571 l_rec_acct_attrs.array_char_value(32) :=
43572 xla_ae_sources_pkg.GetSystemSourceChar(
43573 p_source_code => 'XLA_CURRENCY_CODE'
43574 , p_source_type_code => 'Y'
43575 , p_source_application_id => 602
43576 );
43577 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
43578 l_rec_acct_attrs.array_num_value(33) := p_source_46;
43579 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
43580 l_rec_acct_attrs.array_char_value(34) := p_source_54;
43581 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
43582 l_rec_acct_attrs.array_num_value(35) := p_source_2;
43583 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
43584 l_rec_acct_attrs.array_num_value(36) := p_source_46;
43585 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
43586 l_rec_acct_attrs.array_char_value(37) :=
43587 xla_ae_sources_pkg.GetSystemSourceChar(
43588 p_source_code => 'XLA_CURRENCY_CODE'
43589 , p_source_type_code => 'Y'
43590 , p_source_application_id => 602
43591 );
43592 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
43593 l_rec_acct_attrs.array_num_value(38) := p_source_46;
43594 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
43595 l_rec_acct_attrs.array_char_value(39) := p_source_55;
43596 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
43597 l_rec_acct_attrs.array_num_value(40) := p_source_46;
43598 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
43599 l_rec_acct_attrs.array_char_value(41) := p_source_25;
43600 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
43601 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
43602 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
43603 l_rec_acct_attrs.array_num_value(43) := p_source_46;
43604 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
43605 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
43609 l_rec_acct_attrs.array_char_value(46) := p_source_34;
43606 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
43607 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
43608 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
43610 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
43611 l_rec_acct_attrs.array_num_value(47) := p_source_56;
43612 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
43613 l_rec_acct_attrs.array_num_value(48) := p_source_57;
43614
43615 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
43616 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
43617
43618 ---------------------------------------------------------------------------------------------------------------
43619 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
43620 ---------------------------------------------------------------------------------------------------------------
43621 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
43622
43623 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43624 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
43625
43626 IF xla_accounting_cache_pkg.GetValueChar
43627 (p_source_code => 'LEDGER_CATEGORY_CODE'
43628 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
43629 AND l_bflow_method_code = 'PRIOR_ENTRY'
43630 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
43631 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
43632 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
43633 )
43634 THEN
43635 xla_ae_lines_pkg.BflowUpgEntry
43636 (p_business_method_code => l_bflow_method_code
43637 ,p_business_class_code => l_bflow_class_code
43638 ,p_balance_type => l_balance_type_code);
43639 ELSE
43640 NULL;
43641 XLA_AE_LINES_PKG.business_flow_validation(
43642 p_business_method_code => l_bflow_method_code
43643 ,p_business_class_code => l_bflow_class_code
43644 ,p_inherit_description_flag => l_inherit_desc_flag);
43645 END IF;
43646
43647 --
43648 -- call analytical criteria
43649 --
43650 -- Inherited Analytical Criteria for business flow method of Prior Entry.
43651 --
43652 -- call description
43653 --
43654 -- No description or it is inherited.
43655 --
43656 -- call ADRs
43657 -- Bug 4922099
43658 --
43659 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
43660 (NVL(l_actual_upg_option, 'N') = 'O') OR
43661 (NVL(l_enc_upg_option, 'N') = 'O')
43662 )
43663 THEN
43664 NULL;
43665 --
43666 --
43667
43668 --
43669 --
43670 END IF;
43671 --
43672 -- Bug 4922099
43673 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
43674 (NVL(l_enc_upg_option, 'N') = 'O')
43675 ) AND
43676 (l_bflow_method_code = 'PRIOR_ENTRY')
43677 )
43678 THEN
43679 IF
43680 --
43681 1 = 1
43682 --
43683 THEN
43684 xla_accounting_err_pkg.build_message
43685 (p_appli_s_name => 'XLA'
43686 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43687 ,p_token_1 => 'LINE_NUMBER'
43688 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
43689 ,p_token_2 => 'LINE_TYPE_NAME'
43690 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
43691 l_component_type
43692 ,l_component_code
43693 ,l_component_type_code
43694 ,l_component_appl_id
43695 ,l_amb_context_code
43696 ,l_entity_code
43697 ,l_event_class_code
43698 )
43699 ,p_token_3 => 'OWNER'
43700 ,p_value_3 => xla_lookups_pkg.get_meaning(
43701 p_lookup_type => 'XLA_OWNER_TYPE'
43702 ,p_lookup_code => l_component_type_code
43703 )
43704 ,p_token_4 => 'PRODUCT_NAME'
43705 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
43706 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
43710 );
43707 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
43708 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
43709 ,p_ae_header_id => NULL
43711
43712 IF (C_LEVEL_ERROR>= g_log_level) THEN
43713 trace
43714 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
43715 ,p_level => C_LEVEL_ERROR
43716 ,p_module => l_log_module);
43717 END IF;
43718 END IF;
43719 END IF;
43720 --
43721 --
43722 ------------------------------------------------------------------------------------------------
43723 -- 4219869 Business Flow
43724 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
43725 -- Prior Entry. Currently, the following code is always generated.
43726 ------------------------------------------------------------------------------------------------
43727 -- No ValidateCurrentLine for business flow method of Prior Entry
43728
43729 ------------------------------------------------------------------------------------
43730 -- 4219869 Business Flow
43731 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
43732 ------------------------------------------------------------------------------------
43733 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43734
43735 ----------------------------------------------------------------------------------
43736 -- 4219869 Business Flow
43737 -- Update journal entry status -- Need to generate this within IF <condition>
43738 ----------------------------------------------------------------------------------
43739 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43740 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
43741 ,p_balance_type_code => l_balance_type_code
43742 );
43743
43744 -------------------------------------------------------------------------------------------
43745 -- 4262811 - Generate the Accrual Reversal lines
43746 -------------------------------------------------------------------------------------------
43747 BEGIN
43748 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
43749 (g_array_event(p_event_id).array_value_num('header_index'));
43750 IF l_acc_rev_flag IS NULL THEN
43751 l_acc_rev_flag := 'N';
43752 END IF;
43753 EXCEPTION
43754 WHEN OTHERS THEN
43755 l_acc_rev_flag := 'N';
43756 END;
43757 --
43758 IF (l_acc_rev_flag = 'Y') THEN
43759
43760 -- 4645092 ------------------------------------------------------------------------------
43761 -- To allow MPA report to determine if it should generate report process
43762 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
43763 ------------------------------------------------------------------------------------------
43764
43765 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
43766 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
43767
43768 --
43769 -- Update the line information that should be overwritten
43770 --
43771 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
43772 p_header_num => 1);
43773 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
43774
43775 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
43776
43777 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
43778 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
43779 END IF;
43780
43781 --
43782 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
43783 --
43784 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
43785 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
43786 ELSE
43787 ---------------------------------------------------------------------------------------------------
43788 -- 4262811a Switch Sign
43789 ---------------------------------------------------------------------------------------------------
43790 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
43791 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43792 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43793 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
43794 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43795 -- 5132302
43796 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
43797 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
43798
43799 END IF;
43800
43801 -- 4955764
43802 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
43803 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
43804
43805
43809 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
43806 XLA_AE_LINES_PKG.ValidateCurrentLine;
43807 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
43808
43810 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
43811 ,p_balance_type_code => l_balance_type_code);
43812
43813 END IF;
43814
43815 -----------------------------------------------------------------------------------------
43816 -- 4262811 Multiperiod Accounting
43817 -----------------------------------------------------------------------------------------
43818 -- No MPA option is assigned.
43819
43820
43821 END IF;
43822 END IF;
43823 --
43824
43825 --
43826 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43827 trace
43828 (p_msg => 'END of AcctLineType_91'
43829 ,p_level => C_LEVEL_PROCEDURE
43830 ,p_module => l_log_module);
43831 END IF;
43832 --
43833 EXCEPTION
43834 WHEN xla_exceptions_pkg.application_exception THEN
43835 RAISE;
43836 WHEN OTHERS THEN
43837 xla_exceptions_pkg.raise_message
43838 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_91');
43839 END AcctLineType_91;
43840 --
43841
43842 ---------------------------------------
43843 --
43844 -- PRIVATE FUNCTION
43845 -- AcctLineType_92
43846 --
43847 ---------------------------------------
43848 PROCEDURE AcctLineType_92 (
43849 p_application_id IN NUMBER
43850 ,p_event_id IN NUMBER
43851 ,p_calculate_acctd_flag IN VARCHAR2
43852 ,p_calculate_g_l_flag IN VARCHAR2
43853 ,p_actual_flag IN OUT VARCHAR2
43854 ,p_balance_type_code OUT VARCHAR2
43855 ,p_gain_or_loss_ref OUT VARCHAR2
43856
43857 --Budget Code Combination ID
43858 , p_source_2 IN NUMBER
43859 --Cost CCID
43860 , p_source_3 IN NUMBER
43861 --Cost Clearing CCID
43862 , p_source_6 IN NUMBER
43863 --Reversing Line Flag
43864 , p_source_22 IN VARCHAR2
43865 --Actual Upgrade Credit Accounting Class
43866 , p_source_23 IN VARCHAR2
43867 --Entered Currency Code
43868 , p_source_25 IN VARCHAR2
43869 --Exchange Rate Date
43870 , p_source_27 IN DATE
43871 --Exchange Rate
43872 , p_source_28 IN NUMBER
43873 --Exchange Rate Type
43874 , p_source_29 IN VARCHAR2
43875 --Actual Upgrade Debit Accounting Class
43876 , p_source_30 IN VARCHAR2
43877 --Use Actuals Upgrade Attributes Flag
43878 , p_source_31 IN VARCHAR2
43879 --Expenditure Item ID
43880 , p_source_32 IN NUMBER
43881 --Cost Distribution Line Number
43882 , p_source_33 IN NUMBER
43883 --Line Type
43884 , p_source_34 IN VARCHAR2
43885 , p_source_34_meaning IN VARCHAR2
43886 --Reversed Line Number
43887 , p_source_35 IN NUMBER
43888 --Entered Burdened Cost
43889 , p_source_44 IN NUMBER
43890 --Accounted Burdened Cost
43891 , p_source_45 IN NUMBER
43892 --Encumbrance Amount
43893 , p_source_46 IN NUMBER
43894 --Project Encumbrance Applied to Application Identifier
43895 , p_source_47 IN NUMBER
43896 --Project Encumbrance Applied to Distribution Type
43897 , p_source_48 IN VARCHAR2
43898 --Project Encumbrance Applied to Entity Code
43899 , p_source_49 IN VARCHAR2
43900 --Project Encumbrance Applied to First Distribution ID
43901 , p_source_50 IN NUMBER
43902 --Project Encumbrance Applied to First System Transaction ID
43903 , p_source_51 IN NUMBER
43904 --Project Encumbrance Applied to Second Distribution ID
43905 , p_source_52 IN VARCHAR2
43906 --Encumbrance Upgrade Debit Accounting Class
43907 , p_source_54 IN VARCHAR2
43908 --Use Encumbrance Upgrade Attributes Flag
43909 , p_source_55 IN VARCHAR2
43910 --Encumbrance Type ID
43911 , p_source_56 IN NUMBER
43912 --Project Encumbrance Type ID
43913 , p_source_57 IN NUMBER
43914 --Document Type
43915 , p_source_69 IN VARCHAR2
43916 , p_source_69_meaning IN VARCHAR2
43917 --Encumbrance Journal Lines Reversed Flag
43918 , p_source_70 IN VARCHAR2
43919 )
43920 IS
43921
43922 l_component_type VARCHAR2(80);
43923 l_component_code VARCHAR2(30);
43924 l_component_type_code VARCHAR2(1);
43925 l_component_appl_id INTEGER;
43926 l_amb_context_code VARCHAR2(30);
43927 l_entity_code VARCHAR2(30);
43928 l_event_class_code VARCHAR2(30);
43929 l_ae_header_id NUMBER;
43930 l_event_type_code VARCHAR2(30);
43931 l_line_definition_code VARCHAR2(30);
43932 l_line_definition_owner_code VARCHAR2(1);
43933 --
43934 -- adr variables
43935 l_segment VARCHAR2(30);
43936 l_ccid NUMBER;
43937 l_adr_transaction_coa_id NUMBER;
43938 l_adr_accounting_coa_id NUMBER;
43939 l_adr_flexfield_segment_code VARCHAR2(30);
43940 l_adr_flex_value_set_id NUMBER;
43941 l_adr_value_type_code VARCHAR2(30);
43942 l_adr_value_combination_id NUMBER;
43943 l_adr_value_segment_code VARCHAR2(30);
43944
43948 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
43945 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
43946 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
43947 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
43949
43950 -- 4262811 Variables ------------------------------------------------------------------------------------------
43951 l_entered_amt_idx NUMBER;
43952 l_accted_amt_idx NUMBER;
43953 l_acc_rev_flag VARCHAR2(1);
43954 l_accrual_line_num NUMBER;
43955 l_tmp_amt NUMBER;
43956 l_acc_rev_natural_side_code VARCHAR2(1);
43957
43958 l_num_entries NUMBER;
43959 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
43960 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
43961 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
43962 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
43963 l_recog_line_1 NUMBER;
43964 l_recog_line_2 NUMBER;
43965
43966 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
43967 l_bflow_applied_to_amt NUMBER; -- 5132302
43968 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
43969
43970 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
43971
43972 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
43973 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
43974
43975 ---------------------------------------------------------------------------------------------------------------
43976
43977
43978 --
43979 -- bulk performance
43980 --
43981 l_balance_type_code VARCHAR2(1);
43982 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
43983 l_log_module VARCHAR2(240);
43984
43985 --
43986 -- Upgrade strategy
43987 --
43988 l_actual_upg_option VARCHAR2(1);
43989 l_enc_upg_option VARCHAR2(1);
43990
43991 --
43992 BEGIN
43993 --
43994 IF g_log_enabled THEN
43995 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_92';
43996 END IF;
43997 --
43998 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
43999
44000 trace
44001 (p_msg => 'BEGIN of AcctLineType_92'
44002 ,p_level => C_LEVEL_PROCEDURE
44003 ,p_module => l_log_module);
44004
44005 END IF;
44006 --
44007 l_component_type := 'AMB_JLT';
44008 l_component_code := 'REL_CANCELLED_INV_BURDENED_ENC';
44009 l_component_type_code := 'S';
44010 l_component_appl_id := 275;
44011 l_amb_context_code := 'DEFAULT';
44012 l_entity_code := 'EXPENDITURES';
44013 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
44014 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
44015 l_line_definition_owner_code := 'S';
44016 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
44017 --
44018 l_balance_type_code := 'E';
44019 l_segment := NULL;
44020 l_ccid := NULL;
44021 l_adr_transaction_coa_id := NULL;
44022 l_adr_accounting_coa_id := NULL;
44023 l_adr_flexfield_segment_code := NULL;
44024 l_adr_flex_value_set_id := NULL;
44025 l_adr_value_type_code := NULL;
44026 l_adr_value_combination_id := NULL;
44027 l_adr_value_segment_code := NULL;
44028
44029 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44030 l_bflow_class_code := 'AP_INV_PA_BURDENED_ENC'; -- 4219869 Business Flow
44031 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44032 l_budgetary_control_flag := 'N';
44033
44034 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44035 l_bflow_applied_to_amt := NULL; -- 5132302
44036 l_entered_amt_idx := NULL; -- 4262811
44037 l_accted_amt_idx := NULL; -- 4262811
44038 l_acc_rev_flag := NULL; -- 4262811
44039 l_accrual_line_num := NULL; -- 4262811
44040 l_tmp_amt := NULL; -- 4262811
44041 --
44042
44043 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44044 l_balance_type_code <> 'B' THEN
44045 IF NVL(p_source_34,'
44046 ') = 'E' AND
44047 NVL(p_source_69,'
44048 ') = 'AP' AND
44049 NVL(p_source_70,'
44050 ') = 'Y'
44051 THEN
44052
44053 --
44054 XLA_AE_LINES_PKG.SetNewLine;
44055
44056 p_balance_type_code := l_balance_type_code;
44057 -- set the flag so later we will know whether the gain loss line needs to be created
44058
44059 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44060 p_actual_flag :='A';
44061 END IF;
44062
44063 --
44064 -- bulk performance
44065 --
44066 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44067 p_header_num => 0); -- 4262811
44068 --
44069 -- set accounting line options
44070 --
44071 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44072 p_natural_side_code => 'C'
44076 , p_switch_side_flag => 'N'
44073 , p_gain_or_loss_flag => 'N'
44074 , p_gl_transfer_mode_code => 'S'
44075 , p_acct_entry_type_code => 'E'
44077 , p_merge_duplicate_code => 'N'
44078 );
44079 --
44080 l_acc_rev_natural_side_code := 'D'; -- 4262811
44081 --
44082 --
44083 -- set accounting line type info
44084 --
44085 xla_ae_lines_pkg.SetAcctLineType
44086 (p_component_type => l_component_type
44087 ,p_event_type_code => l_event_type_code
44088 ,p_line_definition_owner_code => l_line_definition_owner_code
44089 ,p_line_definition_code => l_line_definition_code
44090 ,p_accounting_line_code => l_component_code
44091 ,p_accounting_line_type_code => l_component_type_code
44092 ,p_accounting_line_appl_id => l_component_appl_id
44093 ,p_amb_context_code => l_amb_context_code
44094 ,p_entity_code => l_entity_code
44095 ,p_event_class_code => l_event_class_code);
44096 --
44097 -- set accounting class
44098 --
44099 xla_ae_lines_pkg.SetAcctClass(
44100 p_accounting_class_code => 'AP_INV_PA_BURDENED'
44101 , p_ae_header_id => l_ae_header_id
44102 );
44103
44104 --
44105 -- set rounding class
44106 --
44107 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44108 'AP_INV_PA_BURDENED';
44109
44110 --
44111 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44112 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44113 --
44114 -- bulk performance
44115 --
44116 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44117
44118 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44119 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44120
44121 -- 4955764
44122 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44123 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44124
44125 -- 4458381 Public Sector Enh
44126 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
44127 --
44128 -- set accounting attributes for the line type
44129 --
44130 l_entered_amt_idx := 35;
44131 l_accted_amt_idx := 40;
44132 l_bflow_applied_to_amt_idx := 19; -- 5132302
44133 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44134 l_rec_acct_attrs.array_char_value(1) := p_source_22;
44135 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
44136 l_rec_acct_attrs.array_char_value(2) := p_source_23;
44137 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
44138 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
44139 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
44140 l_rec_acct_attrs.array_num_value(4) := p_source_44;
44141 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
44142 l_rec_acct_attrs.array_char_value(5) := p_source_25;
44143 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
44144 l_rec_acct_attrs.array_num_value(6) := p_source_45;
44145 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
44146 l_rec_acct_attrs.array_date_value(7) := p_source_27;
44147 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
44148 l_rec_acct_attrs.array_num_value(8) := p_source_28;
44149 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
44150 l_rec_acct_attrs.array_char_value(9) := p_source_29;
44151 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
44152 l_rec_acct_attrs.array_char_value(10) := p_source_30;
44153 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
44154 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
44155 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
44156 l_rec_acct_attrs.array_num_value(12) := p_source_44;
44157 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
44158 l_rec_acct_attrs.array_char_value(13) := p_source_25;
44159 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
44160 l_rec_acct_attrs.array_num_value(14) := p_source_45;
44161 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
44162 l_rec_acct_attrs.array_date_value(15) := p_source_27;
44163 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
44164 l_rec_acct_attrs.array_num_value(16) := p_source_28;
44165 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
44166 l_rec_acct_attrs.array_char_value(17) := p_source_29;
44167 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
44168 l_rec_acct_attrs.array_char_value(18) := p_source_31;
44169 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
44170 l_rec_acct_attrs.array_num_value(19) := p_source_46;
44171 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
44172 l_rec_acct_attrs.array_num_value(20) := p_source_47;
44173 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44174 l_rec_acct_attrs.array_char_value(21) := p_source_48;
44175 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
44179 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44176 l_rec_acct_attrs.array_char_value(22) := p_source_49;
44177 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
44178 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
44180 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
44181 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
44182 l_rec_acct_attrs.array_char_value(25) := p_source_52;
44183 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
44184 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
44185 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
44186 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
44187 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
44188 l_rec_acct_attrs.array_char_value(28) := p_source_34;
44189 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
44190 l_rec_acct_attrs.array_char_value(29) := p_source_54;
44191 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
44192 l_rec_acct_attrs.array_num_value(30) := p_source_2;
44193 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
44194 l_rec_acct_attrs.array_num_value(31) := p_source_46;
44195 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
44196 l_rec_acct_attrs.array_char_value(32) :=
44197 xla_ae_sources_pkg.GetSystemSourceChar(
44198 p_source_code => 'XLA_CURRENCY_CODE'
44199 , p_source_type_code => 'Y'
44200 , p_source_application_id => 602
44201 );
44202 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
44203 l_rec_acct_attrs.array_num_value(33) := p_source_46;
44204 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
44205 l_rec_acct_attrs.array_char_value(34) := p_source_55;
44206 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
44207 l_rec_acct_attrs.array_num_value(35) := p_source_46;
44208 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
44209 l_rec_acct_attrs.array_char_value(36) := p_source_25;
44210 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
44211 l_rec_acct_attrs.array_date_value(37) := p_source_27;
44212 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
44213 l_rec_acct_attrs.array_num_value(38) := p_source_28;
44214 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
44215 l_rec_acct_attrs.array_char_value(39) := p_source_29;
44216 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
44217 l_rec_acct_attrs.array_num_value(40) := p_source_46;
44218 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
44219 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_32);
44220 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
44221 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_35);
44222 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
44223 l_rec_acct_attrs.array_char_value(43) := p_source_34;
44224 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
44225 l_rec_acct_attrs.array_num_value(44) := p_source_56;
44226 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
44227 l_rec_acct_attrs.array_num_value(45) := p_source_57;
44228
44229 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44230 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44231
44232 ---------------------------------------------------------------------------------------------------------------
44233 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44234 ---------------------------------------------------------------------------------------------------------------
44235 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44236
44237 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44238 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44239
44240 IF xla_accounting_cache_pkg.GetValueChar
44241 (p_source_code => 'LEDGER_CATEGORY_CODE'
44242 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44243 AND l_bflow_method_code = 'PRIOR_ENTRY'
44244 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44245 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44246 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44247 )
44248 THEN
44249 xla_ae_lines_pkg.BflowUpgEntry
44250 (p_business_method_code => l_bflow_method_code
44251 ,p_business_class_code => l_bflow_class_code
44252 ,p_balance_type => l_balance_type_code);
44253 ELSE
44254 NULL;
44255 -- No business flow processing for business flow method of NONE.
44256 END IF;
44257
44258 --
44259 -- call analytical criteria
44260 --
44261
44262 --
44263 -- call description
44264 --
44265 -- No description or it is inherited.
44266 --
44267 -- call ADRs
44268 -- Bug 4922099
44269 --
44270 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44271 (NVL(l_actual_upg_option, 'N') = 'O') OR
44272 (NVL(l_enc_upg_option, 'N') = 'O')
44273 )
44274 THEN
44275 NULL;
44279 l_ccid := AcctDerRule_2(
44276 --
44277 --
44278
44280 p_application_id => p_application_id
44281 , p_ae_header_id => l_ae_header_id
44282 , p_source_2 => p_source_2
44283 , x_transaction_coa_id => l_adr_transaction_coa_id
44284 , x_accounting_coa_id => l_adr_accounting_coa_id
44285 , x_value_type_code => l_adr_value_type_code
44286 , p_side => 'NA'
44287 );
44288
44289 xla_ae_lines_pkg.set_ccid(
44290 p_code_combination_id => l_ccid
44291 , p_value_type_code => l_adr_value_type_code
44292 , p_transaction_coa_id => l_adr_transaction_coa_id
44293 , p_accounting_coa_id => l_adr_accounting_coa_id
44294 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
44295 , p_adr_type_code => 'S'
44296 , p_component_type => l_component_type
44297 , p_component_code => l_component_code
44298 , p_component_type_code => l_component_type_code
44299 , p_component_appl_id => l_component_appl_id
44300 , p_amb_context_code => l_amb_context_code
44301 , p_side => 'NA'
44302 );
44303
44304
44305 --
44306 --
44307 END IF;
44308 --
44309 -- Bug 4922099
44310 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44311 (NVL(l_enc_upg_option, 'N') = 'O')
44312 ) AND
44313 (l_bflow_method_code = 'PRIOR_ENTRY')
44314 )
44315 THEN
44316 IF
44317 --
44318 1 = 2
44319 --
44320 THEN
44321 xla_accounting_err_pkg.build_message
44322 (p_appli_s_name => 'XLA'
44323 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44324 ,p_token_1 => 'LINE_NUMBER'
44325 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44326 ,p_token_2 => 'LINE_TYPE_NAME'
44327 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44328 l_component_type
44329 ,l_component_code
44330 ,l_component_type_code
44331 ,l_component_appl_id
44332 ,l_amb_context_code
44333 ,l_entity_code
44334 ,l_event_class_code
44335 )
44336 ,p_token_3 => 'OWNER'
44337 ,p_value_3 => xla_lookups_pkg.get_meaning(
44338 p_lookup_type => 'XLA_OWNER_TYPE'
44339 ,p_lookup_code => l_component_type_code
44340 )
44341 ,p_token_4 => 'PRODUCT_NAME'
44342 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44343 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
44344 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
44345 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
44346 ,p_ae_header_id => NULL
44347 );
44348
44349 IF (C_LEVEL_ERROR>= g_log_level) THEN
44350 trace
44351 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44352 ,p_level => C_LEVEL_ERROR
44353 ,p_module => l_log_module);
44354 END IF;
44355 END IF;
44356 END IF;
44357 --
44358 --
44359 ------------------------------------------------------------------------------------------------
44360 -- 4219869 Business Flow
44361 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
44362 -- Prior Entry. Currently, the following code is always generated.
44363 ------------------------------------------------------------------------------------------------
44364 XLA_AE_LINES_PKG.ValidateCurrentLine;
44365
44366 ------------------------------------------------------------------------------------
44367 -- 4219869 Business Flow
44368 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
44369 ------------------------------------------------------------------------------------
44370 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44371
44372 ----------------------------------------------------------------------------------
44373 -- 4219869 Business Flow
44374 -- Update journal entry status -- Need to generate this within IF <condition>
44375 ----------------------------------------------------------------------------------
44376 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44380
44377 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
44378 ,p_balance_type_code => l_balance_type_code
44379 );
44381 -------------------------------------------------------------------------------------------
44382 -- 4262811 - Generate the Accrual Reversal lines
44383 -------------------------------------------------------------------------------------------
44384 BEGIN
44385 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
44386 (g_array_event(p_event_id).array_value_num('header_index'));
44387 IF l_acc_rev_flag IS NULL THEN
44388 l_acc_rev_flag := 'N';
44389 END IF;
44390 EXCEPTION
44391 WHEN OTHERS THEN
44392 l_acc_rev_flag := 'N';
44393 END;
44394 --
44395 IF (l_acc_rev_flag = 'Y') THEN
44396
44397 -- 4645092 ------------------------------------------------------------------------------
44398 -- To allow MPA report to determine if it should generate report process
44399 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
44400 ------------------------------------------------------------------------------------------
44401
44402 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
44403 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
44404
44405 --
44406 -- Update the line information that should be overwritten
44407 --
44408 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
44409 p_header_num => 1);
44410 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
44411
44412 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
44413
44414 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
44415 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
44416 END IF;
44417
44418 --
44419 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
44420 --
44421 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
44422 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
44423 ELSE
44424 ---------------------------------------------------------------------------------------------------
44425 -- 4262811a Switch Sign
44426 ---------------------------------------------------------------------------------------------------
44427 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
44428 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44429 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44430 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
44431 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44432 -- 5132302
44433 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
44434 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
44435
44436 END IF;
44437
44438 -- 4955764
44439 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44440 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
44441
44442
44443 XLA_AE_LINES_PKG.ValidateCurrentLine;
44444 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
44445
44446 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
44447 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
44448 ,p_balance_type_code => l_balance_type_code);
44449
44450 END IF;
44451
44452 -----------------------------------------------------------------------------------------
44453 -- 4262811 Multiperiod Accounting
44454 -----------------------------------------------------------------------------------------
44455 -- No MPA option is assigned.
44456
44457
44458 END IF;
44459 END IF;
44460 --
44461
44462 --
44463 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44464 trace
44465 (p_msg => 'END of AcctLineType_92'
44466 ,p_level => C_LEVEL_PROCEDURE
44467 ,p_module => l_log_module);
44468 END IF;
44469 --
44470 EXCEPTION
44471 WHEN xla_exceptions_pkg.application_exception THEN
44472 RAISE;
44473 WHEN OTHERS THEN
44474 xla_exceptions_pkg.raise_message
44475 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_92');
44476 END AcctLineType_92;
44477 --
44478
44479 ---------------------------------------
44480 --
44481 -- PRIVATE FUNCTION
44482 -- AcctLineType_93
44483 --
44484 ---------------------------------------
44485 PROCEDURE AcctLineType_93 (
44486 p_application_id IN NUMBER
44487 ,p_event_id IN NUMBER
44488 ,p_calculate_acctd_flag IN VARCHAR2
44489 ,p_calculate_g_l_flag IN VARCHAR2
44490 ,p_actual_flag IN OUT VARCHAR2
44491 ,p_balance_type_code OUT VARCHAR2
44492 ,p_gain_or_loss_ref OUT VARCHAR2
44496 --Cost CCID
44493
44494 --Budget Code Combination ID
44495 , p_source_2 IN NUMBER
44497 , p_source_3 IN NUMBER
44498 --Cost Clearing CCID
44499 , p_source_6 IN NUMBER
44500 --Reversing Line Flag
44501 , p_source_22 IN VARCHAR2
44502 --Actual Upgrade Credit Accounting Class
44503 , p_source_23 IN VARCHAR2
44504 --Entered Currency Code
44505 , p_source_25 IN VARCHAR2
44506 --Exchange Rate Date
44507 , p_source_27 IN DATE
44508 --Exchange Rate
44509 , p_source_28 IN NUMBER
44510 --Exchange Rate Type
44511 , p_source_29 IN VARCHAR2
44512 --Actual Upgrade Debit Accounting Class
44513 , p_source_30 IN VARCHAR2
44514 --Use Actuals Upgrade Attributes Flag
44515 , p_source_31 IN VARCHAR2
44516 --Expenditure Item ID
44517 , p_source_32 IN NUMBER
44518 --Cost Distribution Line Number
44519 , p_source_33 IN NUMBER
44520 --Line Type
44521 , p_source_34 IN VARCHAR2
44522 , p_source_34_meaning IN VARCHAR2
44523 --Reversed Line Number
44524 , p_source_35 IN NUMBER
44525 --Entered Burdened Cost
44526 , p_source_44 IN NUMBER
44527 --Accounted Burdened Cost
44528 , p_source_45 IN NUMBER
44529 --Encumbrance Amount
44530 , p_source_46 IN NUMBER
44531 --Project Encumbrance Applied to Application Identifier
44532 , p_source_47 IN NUMBER
44533 --Project Encumbrance Applied to Distribution Type
44534 , p_source_48 IN VARCHAR2
44535 --Project Encumbrance Applied to Entity Code
44536 , p_source_49 IN VARCHAR2
44537 --Project Encumbrance Applied to First Distribution ID
44538 , p_source_50 IN NUMBER
44539 --Project Encumbrance Applied to First System Transaction ID
44540 , p_source_51 IN NUMBER
44541 --Project Encumbrance Applied to Second Distribution ID
44542 , p_source_52 IN VARCHAR2
44543 --Encumbrance Upgrade Credit Accounting Class
44544 , p_source_53 IN VARCHAR2
44545 --Encumbrance Upgrade Debit Accounting Class
44546 , p_source_54 IN VARCHAR2
44547 --Use Encumbrance Upgrade Attributes Flag
44548 , p_source_55 IN VARCHAR2
44549 --Encumbrance Type ID
44550 , p_source_56 IN NUMBER
44551 --Project Encumbrance Type ID
44552 , p_source_57 IN NUMBER
44553 --Document Type
44554 , p_source_69 IN VARCHAR2
44555 , p_source_69_meaning IN VARCHAR2
44556 --Encumbrance Journal Lines Reversed Flag
44557 , p_source_70 IN VARCHAR2
44558 )
44559 IS
44560
44561 l_component_type VARCHAR2(80);
44562 l_component_code VARCHAR2(30);
44563 l_component_type_code VARCHAR2(1);
44564 l_component_appl_id INTEGER;
44565 l_amb_context_code VARCHAR2(30);
44566 l_entity_code VARCHAR2(30);
44567 l_event_class_code VARCHAR2(30);
44568 l_ae_header_id NUMBER;
44569 l_event_type_code VARCHAR2(30);
44570 l_line_definition_code VARCHAR2(30);
44571 l_line_definition_owner_code VARCHAR2(1);
44572 --
44573 -- adr variables
44574 l_segment VARCHAR2(30);
44575 l_ccid NUMBER;
44576 l_adr_transaction_coa_id NUMBER;
44577 l_adr_accounting_coa_id NUMBER;
44578 l_adr_flexfield_segment_code VARCHAR2(30);
44579 l_adr_flex_value_set_id NUMBER;
44580 l_adr_value_type_code VARCHAR2(30);
44581 l_adr_value_combination_id NUMBER;
44582 l_adr_value_segment_code VARCHAR2(30);
44583
44584 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
44585 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
44586 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
44587 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
44588
44589 -- 4262811 Variables ------------------------------------------------------------------------------------------
44590 l_entered_amt_idx NUMBER;
44591 l_accted_amt_idx NUMBER;
44592 l_acc_rev_flag VARCHAR2(1);
44593 l_accrual_line_num NUMBER;
44594 l_tmp_amt NUMBER;
44595 l_acc_rev_natural_side_code VARCHAR2(1);
44596
44597 l_num_entries NUMBER;
44598 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
44599 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
44600 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
44601 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
44602 l_recog_line_1 NUMBER;
44603 l_recog_line_2 NUMBER;
44604
44605 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
44606 l_bflow_applied_to_amt NUMBER; -- 5132302
44607 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
44608
44609 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
44610
44611 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
44612 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
44613
44614 ---------------------------------------------------------------------------------------------------------------
44615
44619 --
44616
44617 --
44618 -- bulk performance
44620 l_balance_type_code VARCHAR2(1);
44621 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
44622 l_log_module VARCHAR2(240);
44623
44624 --
44625 -- Upgrade strategy
44626 --
44627 l_actual_upg_option VARCHAR2(1);
44628 l_enc_upg_option VARCHAR2(1);
44629
44630 --
44631 BEGIN
44632 --
44633 IF g_log_enabled THEN
44634 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_93';
44635 END IF;
44636 --
44637 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
44638
44639 trace
44640 (p_msg => 'BEGIN of AcctLineType_93'
44641 ,p_level => C_LEVEL_PROCEDURE
44642 ,p_module => l_log_module);
44643
44644 END IF;
44645 --
44646 l_component_type := 'AMB_JLT';
44647 l_component_code := 'REL_CANCELLED_INV_BURDENED_ENC';
44648 l_component_type_code := 'S';
44649 l_component_appl_id := 275;
44650 l_amb_context_code := 'DEFAULT';
44651 l_entity_code := 'EXPENDITURES';
44652 l_event_class_code := 'TOT_BURDENED_COST';
44653 l_event_type_code := 'TOT_BURDENED_COST_ALL';
44654 l_line_definition_owner_code := 'S';
44655 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
44656 --
44657 l_balance_type_code := 'E';
44658 l_segment := NULL;
44659 l_ccid := NULL;
44660 l_adr_transaction_coa_id := NULL;
44661 l_adr_accounting_coa_id := NULL;
44662 l_adr_flexfield_segment_code := NULL;
44663 l_adr_flex_value_set_id := NULL;
44664 l_adr_value_type_code := NULL;
44665 l_adr_value_combination_id := NULL;
44666 l_adr_value_segment_code := NULL;
44667
44668 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
44669 l_bflow_class_code := 'AP_INV_PA_BURDENED_ENC'; -- 4219869 Business Flow
44670 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
44671 l_budgetary_control_flag := 'N';
44672
44673 l_bflow_applied_to_amt_idx := NULL; -- 5132302
44674 l_bflow_applied_to_amt := NULL; -- 5132302
44675 l_entered_amt_idx := NULL; -- 4262811
44676 l_accted_amt_idx := NULL; -- 4262811
44677 l_acc_rev_flag := NULL; -- 4262811
44678 l_accrual_line_num := NULL; -- 4262811
44679 l_tmp_amt := NULL; -- 4262811
44680 --
44681
44682 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
44683 l_balance_type_code <> 'B' THEN
44684 IF NVL(p_source_34,'
44685 ') = 'E' AND
44686 NVL(p_source_69,'
44687 ') = 'AP' AND
44688 NVL(p_source_70,'
44689 ') = 'Y'
44690 THEN
44691
44692 --
44693 XLA_AE_LINES_PKG.SetNewLine;
44694
44695 p_balance_type_code := l_balance_type_code;
44696 -- set the flag so later we will know whether the gain loss line needs to be created
44697
44698 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
44699 p_actual_flag :='A';
44700 END IF;
44701
44702 --
44703 -- bulk performance
44704 --
44705 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
44706 p_header_num => 0); -- 4262811
44707 --
44708 -- set accounting line options
44709 --
44710 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
44711 p_natural_side_code => 'C'
44712 , p_gain_or_loss_flag => 'N'
44713 , p_gl_transfer_mode_code => 'S'
44714 , p_acct_entry_type_code => 'E'
44715 , p_switch_side_flag => 'N'
44716 , p_merge_duplicate_code => 'N'
44717 );
44718 --
44719 l_acc_rev_natural_side_code := 'D'; -- 4262811
44720 --
44721 --
44722 -- set accounting line type info
44723 --
44724 xla_ae_lines_pkg.SetAcctLineType
44725 (p_component_type => l_component_type
44726 ,p_event_type_code => l_event_type_code
44727 ,p_line_definition_owner_code => l_line_definition_owner_code
44728 ,p_line_definition_code => l_line_definition_code
44729 ,p_accounting_line_code => l_component_code
44730 ,p_accounting_line_type_code => l_component_type_code
44731 ,p_accounting_line_appl_id => l_component_appl_id
44732 ,p_amb_context_code => l_amb_context_code
44733 ,p_entity_code => l_entity_code
44734 ,p_event_class_code => l_event_class_code);
44735 --
44736 -- set accounting class
44737 --
44738 xla_ae_lines_pkg.SetAcctClass(
44739 p_accounting_class_code => 'AP_INV_PA_BURDENED'
44740 , p_ae_header_id => l_ae_header_id
44741 );
44742
44743 --
44744 -- set rounding class
44745 --
44746 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
44747 'AP_INV_PA_BURDENED';
44748
44749 --
44750 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
44751 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
44752 --
44756
44753 -- bulk performance
44754 --
44755 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
44757 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
44758 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
44759
44760 -- 4955764
44761 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
44762 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
44763
44764 -- 4458381 Public Sector Enh
44765 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
44766 --
44767 -- set accounting attributes for the line type
44768 --
44769 l_entered_amt_idx := 40;
44770 l_accted_amt_idx := 46;
44771 l_bflow_applied_to_amt_idx := 19; -- 5132302
44772 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
44773 l_rec_acct_attrs.array_char_value(1) := p_source_22;
44774 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
44775 l_rec_acct_attrs.array_char_value(2) := p_source_23;
44776 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
44777 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
44778 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
44779 l_rec_acct_attrs.array_num_value(4) := p_source_44;
44780 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
44781 l_rec_acct_attrs.array_char_value(5) := p_source_25;
44782 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
44783 l_rec_acct_attrs.array_num_value(6) := p_source_45;
44784 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
44785 l_rec_acct_attrs.array_date_value(7) := p_source_27;
44786 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
44787 l_rec_acct_attrs.array_num_value(8) := p_source_28;
44788 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
44789 l_rec_acct_attrs.array_char_value(9) := p_source_29;
44790 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
44791 l_rec_acct_attrs.array_char_value(10) := p_source_30;
44792 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
44793 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
44794 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
44795 l_rec_acct_attrs.array_num_value(12) := p_source_44;
44796 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
44797 l_rec_acct_attrs.array_char_value(13) := p_source_25;
44798 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
44799 l_rec_acct_attrs.array_num_value(14) := p_source_45;
44800 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
44801 l_rec_acct_attrs.array_date_value(15) := p_source_27;
44802 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
44803 l_rec_acct_attrs.array_num_value(16) := p_source_28;
44804 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
44805 l_rec_acct_attrs.array_char_value(17) := p_source_29;
44806 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
44807 l_rec_acct_attrs.array_char_value(18) := p_source_31;
44808 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
44809 l_rec_acct_attrs.array_num_value(19) := p_source_46;
44810 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
44811 l_rec_acct_attrs.array_num_value(20) := p_source_47;
44812 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
44813 l_rec_acct_attrs.array_char_value(21) := p_source_48;
44814 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
44815 l_rec_acct_attrs.array_char_value(22) := p_source_49;
44816 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
44817 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
44818 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
44819 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
44820 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
44821 l_rec_acct_attrs.array_char_value(25) := p_source_52;
44822 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
44823 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
44824 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
44825 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
44826 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
44827 l_rec_acct_attrs.array_char_value(28) := p_source_34;
44828 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
44829 l_rec_acct_attrs.array_char_value(29) := p_source_53;
44830 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
44831 l_rec_acct_attrs.array_num_value(30) := p_source_2;
44832 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
44833 l_rec_acct_attrs.array_num_value(31) := p_source_46;
44834 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
44835 l_rec_acct_attrs.array_char_value(32) :=
44836 xla_ae_sources_pkg.GetSystemSourceChar(
44837 p_source_code => 'XLA_CURRENCY_CODE'
44838 , p_source_type_code => 'Y'
44839 , p_source_application_id => 602
44840 );
44841 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
44842 l_rec_acct_attrs.array_num_value(33) := p_source_46;
44846 l_rec_acct_attrs.array_num_value(35) := p_source_2;
44843 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
44844 l_rec_acct_attrs.array_char_value(34) := p_source_54;
44845 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
44847 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
44848 l_rec_acct_attrs.array_num_value(36) := p_source_46;
44849 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
44850 l_rec_acct_attrs.array_char_value(37) :=
44851 xla_ae_sources_pkg.GetSystemSourceChar(
44852 p_source_code => 'XLA_CURRENCY_CODE'
44853 , p_source_type_code => 'Y'
44854 , p_source_application_id => 602
44855 );
44856 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
44857 l_rec_acct_attrs.array_num_value(38) := p_source_46;
44858 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
44859 l_rec_acct_attrs.array_char_value(39) := p_source_55;
44860 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
44861 l_rec_acct_attrs.array_num_value(40) := p_source_46;
44862 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
44863 l_rec_acct_attrs.array_char_value(41) := p_source_25;
44864 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
44865 l_rec_acct_attrs.array_date_value(42) := p_source_27;
44866 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
44867 l_rec_acct_attrs.array_num_value(43) := p_source_28;
44868 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
44869 l_rec_acct_attrs.array_char_value(44) := p_source_29;
44870 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
44871 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_32);
44872 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
44873 l_rec_acct_attrs.array_num_value(46) := p_source_46;
44874 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
44875 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_32);
44876 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
44877 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_35);
44878 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
44879 l_rec_acct_attrs.array_char_value(49) := p_source_34;
44880 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
44881 l_rec_acct_attrs.array_num_value(50) := p_source_56;
44882 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
44883 l_rec_acct_attrs.array_num_value(51) := p_source_57;
44884
44885 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
44886 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
44887
44888 ---------------------------------------------------------------------------------------------------------------
44889 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
44890 ---------------------------------------------------------------------------------------------------------------
44891 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
44892
44893 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44894 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
44895
44896 IF xla_accounting_cache_pkg.GetValueChar
44897 (p_source_code => 'LEDGER_CATEGORY_CODE'
44898 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
44899 AND l_bflow_method_code = 'PRIOR_ENTRY'
44900 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
44901 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
44902 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
44903 )
44904 THEN
44905 xla_ae_lines_pkg.BflowUpgEntry
44906 (p_business_method_code => l_bflow_method_code
44907 ,p_business_class_code => l_bflow_class_code
44908 ,p_balance_type => l_balance_type_code);
44909 ELSE
44910 NULL;
44911 -- No business flow processing for business flow method of NONE.
44912 END IF;
44913
44914 --
44915 -- call analytical criteria
44916 --
44917
44918 --
44919 -- call description
44920 --
44921 -- No description or it is inherited.
44922 --
44923 -- call ADRs
44924 -- Bug 4922099
44925 --
44926 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
44927 (NVL(l_actual_upg_option, 'N') = 'O') OR
44928 (NVL(l_enc_upg_option, 'N') = 'O')
44929 )
44930 THEN
44931 NULL;
44932 --
44933 --
44934
44935 l_ccid := AcctDerRule_2(
44936 p_application_id => p_application_id
44937 , p_ae_header_id => l_ae_header_id
44938 , p_source_2 => p_source_2
44939 , x_transaction_coa_id => l_adr_transaction_coa_id
44940 , x_accounting_coa_id => l_adr_accounting_coa_id
44941 , x_value_type_code => l_adr_value_type_code
44942 , p_side => 'NA'
44943 );
44944
44945 xla_ae_lines_pkg.set_ccid(
44946 p_code_combination_id => l_ccid
44947 , p_value_type_code => l_adr_value_type_code
44948 , p_transaction_coa_id => l_adr_transaction_coa_id
44949 , p_accounting_coa_id => l_adr_accounting_coa_id
44953 , p_component_code => l_component_code
44950 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
44951 , p_adr_type_code => 'S'
44952 , p_component_type => l_component_type
44954 , p_component_type_code => l_component_type_code
44955 , p_component_appl_id => l_component_appl_id
44956 , p_amb_context_code => l_amb_context_code
44957 , p_side => 'NA'
44958 );
44959
44960
44961 --
44962 --
44963 END IF;
44964 --
44965 -- Bug 4922099
44966 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
44967 (NVL(l_enc_upg_option, 'N') = 'O')
44968 ) AND
44969 (l_bflow_method_code = 'PRIOR_ENTRY')
44970 )
44971 THEN
44972 IF
44973 --
44974 1 = 2
44975 --
44976 THEN
44977 xla_accounting_err_pkg.build_message
44978 (p_appli_s_name => 'XLA'
44979 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
44980 ,p_token_1 => 'LINE_NUMBER'
44981 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
44982 ,p_token_2 => 'LINE_TYPE_NAME'
44983 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
44984 l_component_type
44985 ,l_component_code
44986 ,l_component_type_code
44987 ,l_component_appl_id
44988 ,l_amb_context_code
44989 ,l_entity_code
44990 ,l_event_class_code
44991 )
44992 ,p_token_3 => 'OWNER'
44993 ,p_value_3 => xla_lookups_pkg.get_meaning(
44994 p_lookup_type => 'XLA_OWNER_TYPE'
44995 ,p_lookup_code => l_component_type_code
44996 )
44997 ,p_token_4 => 'PRODUCT_NAME'
44998 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
44999 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45000 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45001 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45002 ,p_ae_header_id => NULL
45003 );
45004
45005 IF (C_LEVEL_ERROR>= g_log_level) THEN
45006 trace
45007 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45008 ,p_level => C_LEVEL_ERROR
45009 ,p_module => l_log_module);
45010 END IF;
45011 END IF;
45012 END IF;
45013 --
45014 --
45015 ------------------------------------------------------------------------------------------------
45016 -- 4219869 Business Flow
45017 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45018 -- Prior Entry. Currently, the following code is always generated.
45019 ------------------------------------------------------------------------------------------------
45020 XLA_AE_LINES_PKG.ValidateCurrentLine;
45021
45022 ------------------------------------------------------------------------------------
45023 -- 4219869 Business Flow
45024 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45025 ------------------------------------------------------------------------------------
45026 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45027
45028 ----------------------------------------------------------------------------------
45029 -- 4219869 Business Flow
45030 -- Update journal entry status -- Need to generate this within IF <condition>
45031 ----------------------------------------------------------------------------------
45032 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45033 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45034 ,p_balance_type_code => l_balance_type_code
45035 );
45036
45037 -------------------------------------------------------------------------------------------
45038 -- 4262811 - Generate the Accrual Reversal lines
45039 -------------------------------------------------------------------------------------------
45040 BEGIN
45041 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45042 (g_array_event(p_event_id).array_value_num('header_index'));
45043 IF l_acc_rev_flag IS NULL THEN
45044 l_acc_rev_flag := 'N';
45045 END IF;
45049 END;
45046 EXCEPTION
45047 WHEN OTHERS THEN
45048 l_acc_rev_flag := 'N';
45050 --
45051 IF (l_acc_rev_flag = 'Y') THEN
45052
45053 -- 4645092 ------------------------------------------------------------------------------
45054 -- To allow MPA report to determine if it should generate report process
45055 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45056 ------------------------------------------------------------------------------------------
45057
45058 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45059 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45060
45061 --
45062 -- Update the line information that should be overwritten
45063 --
45064 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45065 p_header_num => 1);
45066 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45067
45068 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45069
45070 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45071 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45072 END IF;
45073
45074 --
45075 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45076 --
45077 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45078 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45079 ELSE
45080 ---------------------------------------------------------------------------------------------------
45081 -- 4262811a Switch Sign
45082 ---------------------------------------------------------------------------------------------------
45083 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45084 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45085 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45086 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45087 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45088 -- 5132302
45089 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45090 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45091
45092 END IF;
45093
45094 -- 4955764
45095 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45096 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45097
45098
45099 XLA_AE_LINES_PKG.ValidateCurrentLine;
45100 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45101
45102 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45103 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45104 ,p_balance_type_code => l_balance_type_code);
45105
45106 END IF;
45107
45108 -----------------------------------------------------------------------------------------
45109 -- 4262811 Multiperiod Accounting
45110 -----------------------------------------------------------------------------------------
45111 -- No MPA option is assigned.
45112
45113
45114 END IF;
45115 END IF;
45116 --
45117
45118 --
45119 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45120 trace
45121 (p_msg => 'END of AcctLineType_93'
45122 ,p_level => C_LEVEL_PROCEDURE
45123 ,p_module => l_log_module);
45124 END IF;
45125 --
45126 EXCEPTION
45127 WHEN xla_exceptions_pkg.application_exception THEN
45128 RAISE;
45129 WHEN OTHERS THEN
45130 xla_exceptions_pkg.raise_message
45131 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_93');
45132 END AcctLineType_93;
45133 --
45134
45135 ---------------------------------------
45136 --
45137 -- PRIVATE FUNCTION
45138 -- AcctLineType_94
45139 --
45140 ---------------------------------------
45141 PROCEDURE AcctLineType_94 (
45142 p_application_id IN NUMBER
45143 ,p_event_id IN NUMBER
45144 ,p_calculate_acctd_flag IN VARCHAR2
45145 ,p_calculate_g_l_flag IN VARCHAR2
45146 ,p_actual_flag IN OUT VARCHAR2
45147 ,p_balance_type_code OUT VARCHAR2
45148 ,p_gain_or_loss_ref OUT VARCHAR2
45149
45150 --Budget Code Combination ID
45151 , p_source_2 IN NUMBER
45152 --Cost CCID
45153 , p_source_3 IN NUMBER
45154 --Cost Clearing CCID
45155 , p_source_6 IN NUMBER
45156 --Reversing Line Flag
45157 , p_source_22 IN VARCHAR2
45158 --Actual Upgrade Credit Accounting Class
45159 , p_source_23 IN VARCHAR2
45160 --Entered Currency Code
45161 , p_source_25 IN VARCHAR2
45162 --Exchange Rate Date
45163 , p_source_27 IN DATE
45164 --Exchange Rate
45165 , p_source_28 IN NUMBER
45166 --Exchange Rate Type
45167 , p_source_29 IN VARCHAR2
45171 , p_source_31 IN VARCHAR2
45168 --Actual Upgrade Debit Accounting Class
45169 , p_source_30 IN VARCHAR2
45170 --Use Actuals Upgrade Attributes Flag
45172 --Expenditure Item ID
45173 , p_source_32 IN NUMBER
45174 --Cost Distribution Line Number
45175 , p_source_33 IN NUMBER
45176 --Line Type
45177 , p_source_34 IN VARCHAR2
45178 , p_source_34_meaning IN VARCHAR2
45179 --Reversed Line Number
45180 , p_source_35 IN NUMBER
45181 --Entered Burdened Cost
45182 , p_source_44 IN NUMBER
45183 --Accounted Burdened Cost
45184 , p_source_45 IN NUMBER
45185 --Encumbrance Amount
45186 , p_source_46 IN NUMBER
45187 --Project Encumbrance Applied to Application Identifier
45188 , p_source_47 IN NUMBER
45189 --Project Encumbrance Applied to Distribution Type
45190 , p_source_48 IN VARCHAR2
45191 --Project Encumbrance Applied to Entity Code
45192 , p_source_49 IN VARCHAR2
45193 --Project Encumbrance Applied to First Distribution ID
45194 , p_source_50 IN NUMBER
45195 --Project Encumbrance Applied to First System Transaction ID
45196 , p_source_51 IN NUMBER
45197 --Project Encumbrance Applied to Second Distribution ID
45198 , p_source_52 IN VARCHAR2
45199 --Encumbrance Upgrade Credit Accounting Class
45200 , p_source_53 IN VARCHAR2
45201 --Encumbrance Upgrade Debit Accounting Class
45202 , p_source_54 IN VARCHAR2
45203 --Use Encumbrance Upgrade Attributes Flag
45204 , p_source_55 IN VARCHAR2
45205 --Encumbrance Type ID
45206 , p_source_56 IN NUMBER
45207 --Project Encumbrance Type ID
45208 , p_source_57 IN NUMBER
45209 --Document Type
45210 , p_source_69 IN VARCHAR2
45211 , p_source_69_meaning IN VARCHAR2
45212 --Encumbrance Journal Lines Reversed Flag
45213 , p_source_70 IN VARCHAR2
45214 )
45215 IS
45216
45217 l_component_type VARCHAR2(80);
45218 l_component_code VARCHAR2(30);
45219 l_component_type_code VARCHAR2(1);
45220 l_component_appl_id INTEGER;
45221 l_amb_context_code VARCHAR2(30);
45222 l_entity_code VARCHAR2(30);
45223 l_event_class_code VARCHAR2(30);
45224 l_ae_header_id NUMBER;
45225 l_event_type_code VARCHAR2(30);
45226 l_line_definition_code VARCHAR2(30);
45227 l_line_definition_owner_code VARCHAR2(1);
45228 --
45229 -- adr variables
45230 l_segment VARCHAR2(30);
45231 l_ccid NUMBER;
45232 l_adr_transaction_coa_id NUMBER;
45233 l_adr_accounting_coa_id NUMBER;
45234 l_adr_flexfield_segment_code VARCHAR2(30);
45235 l_adr_flex_value_set_id NUMBER;
45236 l_adr_value_type_code VARCHAR2(30);
45237 l_adr_value_combination_id NUMBER;
45238 l_adr_value_segment_code VARCHAR2(30);
45239
45240 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45241 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45242 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45243 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45244
45245 -- 4262811 Variables ------------------------------------------------------------------------------------------
45246 l_entered_amt_idx NUMBER;
45247 l_accted_amt_idx NUMBER;
45248 l_acc_rev_flag VARCHAR2(1);
45249 l_accrual_line_num NUMBER;
45250 l_tmp_amt NUMBER;
45251 l_acc_rev_natural_side_code VARCHAR2(1);
45252
45253 l_num_entries NUMBER;
45254 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45255 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45256 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45257 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45258 l_recog_line_1 NUMBER;
45259 l_recog_line_2 NUMBER;
45260
45261 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45262 l_bflow_applied_to_amt NUMBER; -- 5132302
45263 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45264
45265 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45266
45267 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45268 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45269
45270 ---------------------------------------------------------------------------------------------------------------
45271
45272
45273 --
45274 -- bulk performance
45275 --
45276 l_balance_type_code VARCHAR2(1);
45277 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45278 l_log_module VARCHAR2(240);
45279
45280 --
45281 -- Upgrade strategy
45282 --
45283 l_actual_upg_option VARCHAR2(1);
45284 l_enc_upg_option VARCHAR2(1);
45285
45286 --
45287 BEGIN
45288 --
45289 IF g_log_enabled THEN
45290 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_94';
45291 END IF;
45292 --
45293 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45294
45295 trace
45299
45296 (p_msg => 'BEGIN of AcctLineType_94'
45297 ,p_level => C_LEVEL_PROCEDURE
45298 ,p_module => l_log_module);
45300 END IF;
45301 --
45302 l_component_type := 'AMB_JLT';
45303 l_component_code := 'REL_CANCELLED_INV_BURDEN_ENC';
45304 l_component_type_code := 'S';
45305 l_component_appl_id := 275;
45306 l_amb_context_code := 'DEFAULT';
45307 l_entity_code := 'EXPENDITURES';
45308 l_event_class_code := 'BURDEN_COST';
45309 l_event_type_code := 'BURDEN_COST_ALL';
45310 l_line_definition_owner_code := 'S';
45311 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
45312 --
45313 l_balance_type_code := 'E';
45314 l_segment := NULL;
45315 l_ccid := NULL;
45316 l_adr_transaction_coa_id := NULL;
45317 l_adr_accounting_coa_id := NULL;
45318 l_adr_flexfield_segment_code := NULL;
45319 l_adr_flex_value_set_id := NULL;
45320 l_adr_value_type_code := NULL;
45321 l_adr_value_combination_id := NULL;
45322 l_adr_value_segment_code := NULL;
45323
45324 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45325 l_bflow_class_code := 'AP_INV_PA_BURDEN_ENC'; -- 4219869 Business Flow
45326 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45327 l_budgetary_control_flag := 'N';
45328
45329 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45330 l_bflow_applied_to_amt := NULL; -- 5132302
45331 l_entered_amt_idx := NULL; -- 4262811
45332 l_accted_amt_idx := NULL; -- 4262811
45333 l_acc_rev_flag := NULL; -- 4262811
45334 l_accrual_line_num := NULL; -- 4262811
45335 l_tmp_amt := NULL; -- 4262811
45336 --
45337
45338 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45339 l_balance_type_code <> 'B' THEN
45340 IF NVL(p_source_34,'
45341 ') = 'E' AND
45342 NVL(p_source_69,'
45343 ') = 'AP' AND
45344 NVL(p_source_70,'
45345 ') = 'Y'
45346 THEN
45347
45348 --
45349 XLA_AE_LINES_PKG.SetNewLine;
45350
45351 p_balance_type_code := l_balance_type_code;
45352 -- set the flag so later we will know whether the gain loss line needs to be created
45353
45354 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
45355 p_actual_flag :='A';
45356 END IF;
45357
45358 --
45359 -- bulk performance
45360 --
45361 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
45362 p_header_num => 0); -- 4262811
45363 --
45364 -- set accounting line options
45365 --
45366 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
45367 p_natural_side_code => 'C'
45368 , p_gain_or_loss_flag => 'N'
45369 , p_gl_transfer_mode_code => 'S'
45370 , p_acct_entry_type_code => 'E'
45371 , p_switch_side_flag => 'N'
45372 , p_merge_duplicate_code => 'N'
45373 );
45374 --
45375 l_acc_rev_natural_side_code := 'D'; -- 4262811
45376 --
45377 --
45378 -- set accounting line type info
45379 --
45380 xla_ae_lines_pkg.SetAcctLineType
45381 (p_component_type => l_component_type
45382 ,p_event_type_code => l_event_type_code
45383 ,p_line_definition_owner_code => l_line_definition_owner_code
45384 ,p_line_definition_code => l_line_definition_code
45385 ,p_accounting_line_code => l_component_code
45386 ,p_accounting_line_type_code => l_component_type_code
45387 ,p_accounting_line_appl_id => l_component_appl_id
45388 ,p_amb_context_code => l_amb_context_code
45389 ,p_entity_code => l_entity_code
45390 ,p_event_class_code => l_event_class_code);
45391 --
45392 -- set accounting class
45393 --
45394 xla_ae_lines_pkg.SetAcctClass(
45395 p_accounting_class_code => 'AP_INV_PA_BURDEN'
45396 , p_ae_header_id => l_ae_header_id
45397 );
45398
45399 --
45400 -- set rounding class
45401 --
45402 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
45403 'AP_INV_PA_BURDEN';
45404
45405 --
45406 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
45407 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
45408 --
45409 -- bulk performance
45410 --
45411 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
45412
45413 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
45414 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
45415
45416 -- 4955764
45417 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45418 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
45419
45420 -- 4458381 Public Sector Enh
45421 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1060;
45422 --
45423 -- set accounting attributes for the line type
45424 --
45428 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
45425 l_entered_amt_idx := 40;
45426 l_accted_amt_idx := 45;
45427 l_bflow_applied_to_amt_idx := 19; -- 5132302
45429 l_rec_acct_attrs.array_char_value(1) := p_source_22;
45430 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
45431 l_rec_acct_attrs.array_char_value(2) := p_source_23;
45432 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
45433 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
45434 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
45435 l_rec_acct_attrs.array_num_value(4) := p_source_44;
45436 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
45437 l_rec_acct_attrs.array_char_value(5) := p_source_25;
45438 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
45439 l_rec_acct_attrs.array_num_value(6) := p_source_45;
45440 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
45441 l_rec_acct_attrs.array_date_value(7) := p_source_27;
45442 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
45443 l_rec_acct_attrs.array_num_value(8) := p_source_28;
45444 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
45445 l_rec_acct_attrs.array_char_value(9) := p_source_29;
45446 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
45447 l_rec_acct_attrs.array_char_value(10) := p_source_30;
45448 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
45449 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
45450 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
45451 l_rec_acct_attrs.array_num_value(12) := p_source_44;
45452 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
45453 l_rec_acct_attrs.array_char_value(13) := p_source_25;
45454 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
45455 l_rec_acct_attrs.array_num_value(14) := p_source_45;
45456 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
45457 l_rec_acct_attrs.array_date_value(15) := p_source_27;
45458 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
45459 l_rec_acct_attrs.array_num_value(16) := p_source_28;
45460 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
45461 l_rec_acct_attrs.array_char_value(17) := p_source_29;
45462 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
45463 l_rec_acct_attrs.array_char_value(18) := p_source_31;
45464 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
45465 l_rec_acct_attrs.array_num_value(19) := p_source_46;
45466 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
45467 l_rec_acct_attrs.array_num_value(20) := p_source_47;
45468 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
45469 l_rec_acct_attrs.array_char_value(21) := p_source_48;
45470 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
45471 l_rec_acct_attrs.array_char_value(22) := p_source_49;
45472 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
45473 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
45474 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
45475 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
45476 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
45477 l_rec_acct_attrs.array_char_value(25) := p_source_52;
45478 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
45479 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
45480 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
45481 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
45482 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
45483 l_rec_acct_attrs.array_char_value(28) := p_source_34;
45484 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
45485 l_rec_acct_attrs.array_char_value(29) := p_source_53;
45486 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
45487 l_rec_acct_attrs.array_num_value(30) := p_source_2;
45488 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
45489 l_rec_acct_attrs.array_num_value(31) := p_source_46;
45490 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
45491 l_rec_acct_attrs.array_char_value(32) := p_source_25;
45492 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
45493 l_rec_acct_attrs.array_num_value(33) := p_source_46;
45494 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
45495 l_rec_acct_attrs.array_char_value(34) := p_source_54;
45496 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
45497 l_rec_acct_attrs.array_num_value(35) := p_source_2;
45498 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
45499 l_rec_acct_attrs.array_num_value(36) := p_source_46;
45500 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
45501 l_rec_acct_attrs.array_char_value(37) := p_source_25;
45502 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
45503 l_rec_acct_attrs.array_num_value(38) := p_source_46;
45504 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
45505 l_rec_acct_attrs.array_char_value(39) := p_source_55;
45506 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
45507 l_rec_acct_attrs.array_num_value(40) := p_source_46;
45508 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
45512 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
45509 l_rec_acct_attrs.array_char_value(41) := p_source_25;
45510 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
45511 l_rec_acct_attrs.array_date_value(42) := p_source_27;
45513 l_rec_acct_attrs.array_num_value(43) := p_source_28;
45514 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
45515 l_rec_acct_attrs.array_char_value(44) := p_source_29;
45516 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
45517 l_rec_acct_attrs.array_num_value(45) := p_source_46;
45518 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
45519 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_32);
45520 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
45521 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_35);
45522 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
45523 l_rec_acct_attrs.array_char_value(48) := p_source_34;
45524 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
45525 l_rec_acct_attrs.array_num_value(49) := p_source_56;
45526 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
45527 l_rec_acct_attrs.array_num_value(50) := p_source_57;
45528
45529 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
45530 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
45531
45532 ---------------------------------------------------------------------------------------------------------------
45533 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
45534 ---------------------------------------------------------------------------------------------------------------
45535 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
45536
45537 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45538 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
45539
45540 IF xla_accounting_cache_pkg.GetValueChar
45541 (p_source_code => 'LEDGER_CATEGORY_CODE'
45542 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
45543 AND l_bflow_method_code = 'PRIOR_ENTRY'
45544 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
45545 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
45546 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
45547 )
45548 THEN
45549 xla_ae_lines_pkg.BflowUpgEntry
45550 (p_business_method_code => l_bflow_method_code
45551 ,p_business_class_code => l_bflow_class_code
45552 ,p_balance_type => l_balance_type_code);
45553 ELSE
45554 NULL;
45555 -- No business flow processing for business flow method of NONE.
45556 END IF;
45557
45558 --
45559 -- call analytical criteria
45560 --
45561
45562 --
45563 -- call description
45564 --
45565 -- No description or it is inherited.
45566 --
45567 -- call ADRs
45568 -- Bug 4922099
45569 --
45570 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
45571 (NVL(l_actual_upg_option, 'N') = 'O') OR
45572 (NVL(l_enc_upg_option, 'N') = 'O')
45573 )
45574 THEN
45575 NULL;
45576 --
45577 --
45578
45579 l_ccid := AcctDerRule_2(
45580 p_application_id => p_application_id
45581 , p_ae_header_id => l_ae_header_id
45582 , p_source_2 => p_source_2
45583 , x_transaction_coa_id => l_adr_transaction_coa_id
45584 , x_accounting_coa_id => l_adr_accounting_coa_id
45585 , x_value_type_code => l_adr_value_type_code
45586 , p_side => 'NA'
45587 );
45588
45589 xla_ae_lines_pkg.set_ccid(
45590 p_code_combination_id => l_ccid
45591 , p_value_type_code => l_adr_value_type_code
45592 , p_transaction_coa_id => l_adr_transaction_coa_id
45593 , p_accounting_coa_id => l_adr_accounting_coa_id
45594 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
45595 , p_adr_type_code => 'S'
45596 , p_component_type => l_component_type
45597 , p_component_code => l_component_code
45598 , p_component_type_code => l_component_type_code
45599 , p_component_appl_id => l_component_appl_id
45600 , p_amb_context_code => l_amb_context_code
45601 , p_side => 'NA'
45602 );
45603
45604
45605 --
45606 --
45607 END IF;
45608 --
45609 -- Bug 4922099
45610 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
45611 (NVL(l_enc_upg_option, 'N') = 'O')
45612 ) AND
45613 (l_bflow_method_code = 'PRIOR_ENTRY')
45614 )
45615 THEN
45616 IF
45617 --
45618 1 = 2
45619 --
45620 THEN
45621 xla_accounting_err_pkg.build_message
45622 (p_appli_s_name => 'XLA'
45623 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45624 ,p_token_1 => 'LINE_NUMBER'
45625 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
45629 ,l_component_code
45626 ,p_token_2 => 'LINE_TYPE_NAME'
45627 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
45628 l_component_type
45630 ,l_component_type_code
45631 ,l_component_appl_id
45632 ,l_amb_context_code
45633 ,l_entity_code
45634 ,l_event_class_code
45635 )
45636 ,p_token_3 => 'OWNER'
45637 ,p_value_3 => xla_lookups_pkg.get_meaning(
45638 p_lookup_type => 'XLA_OWNER_TYPE'
45639 ,p_lookup_code => l_component_type_code
45640 )
45641 ,p_token_4 => 'PRODUCT_NAME'
45642 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
45643 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
45644 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
45645 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
45646 ,p_ae_header_id => NULL
45647 );
45648
45649 IF (C_LEVEL_ERROR>= g_log_level) THEN
45650 trace
45651 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
45652 ,p_level => C_LEVEL_ERROR
45653 ,p_module => l_log_module);
45654 END IF;
45655 END IF;
45656 END IF;
45657 --
45658 --
45659 ------------------------------------------------------------------------------------------------
45660 -- 4219869 Business Flow
45661 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
45662 -- Prior Entry. Currently, the following code is always generated.
45663 ------------------------------------------------------------------------------------------------
45664 XLA_AE_LINES_PKG.ValidateCurrentLine;
45665
45666 ------------------------------------------------------------------------------------
45667 -- 4219869 Business Flow
45668 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
45669 ------------------------------------------------------------------------------------
45670 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45671
45672 ----------------------------------------------------------------------------------
45673 -- 4219869 Business Flow
45674 -- Update journal entry status -- Need to generate this within IF <condition>
45675 ----------------------------------------------------------------------------------
45676 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45677 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
45678 ,p_balance_type_code => l_balance_type_code
45679 );
45680
45681 -------------------------------------------------------------------------------------------
45682 -- 4262811 - Generate the Accrual Reversal lines
45683 -------------------------------------------------------------------------------------------
45684 BEGIN
45685 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
45686 (g_array_event(p_event_id).array_value_num('header_index'));
45687 IF l_acc_rev_flag IS NULL THEN
45688 l_acc_rev_flag := 'N';
45689 END IF;
45690 EXCEPTION
45691 WHEN OTHERS THEN
45692 l_acc_rev_flag := 'N';
45693 END;
45694 --
45695 IF (l_acc_rev_flag = 'Y') THEN
45696
45697 -- 4645092 ------------------------------------------------------------------------------
45698 -- To allow MPA report to determine if it should generate report process
45699 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
45700 ------------------------------------------------------------------------------------------
45701
45702 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
45703 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
45704
45705 --
45706 -- Update the line information that should be overwritten
45707 --
45708 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
45709 p_header_num => 1);
45710 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
45711
45712 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
45713
45714 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
45718 --
45715 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
45716 END IF;
45717
45719 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
45720 --
45721 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
45722 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
45723 ELSE
45724 ---------------------------------------------------------------------------------------------------
45725 -- 4262811a Switch Sign
45726 ---------------------------------------------------------------------------------------------------
45727 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
45728 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45729 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45730 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
45731 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45732 -- 5132302
45733 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
45734 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
45735
45736 END IF;
45737
45738 -- 4955764
45739 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
45740 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
45741
45742
45743 XLA_AE_LINES_PKG.ValidateCurrentLine;
45744 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
45745
45746 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
45747 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
45748 ,p_balance_type_code => l_balance_type_code);
45749
45750 END IF;
45751
45752 -----------------------------------------------------------------------------------------
45753 -- 4262811 Multiperiod Accounting
45754 -----------------------------------------------------------------------------------------
45755 -- No MPA option is assigned.
45756
45757
45758 END IF;
45759 END IF;
45760 --
45761
45762 --
45763 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45764 trace
45765 (p_msg => 'END of AcctLineType_94'
45766 ,p_level => C_LEVEL_PROCEDURE
45767 ,p_module => l_log_module);
45768 END IF;
45769 --
45770 EXCEPTION
45771 WHEN xla_exceptions_pkg.application_exception THEN
45772 RAISE;
45773 WHEN OTHERS THEN
45774 xla_exceptions_pkg.raise_message
45775 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_94');
45776 END AcctLineType_94;
45777 --
45778
45779 ---------------------------------------
45780 --
45781 -- PRIVATE FUNCTION
45782 -- AcctLineType_95
45783 --
45784 ---------------------------------------
45785 PROCEDURE AcctLineType_95 (
45786 p_application_id IN NUMBER
45787 ,p_event_id IN NUMBER
45788 ,p_calculate_acctd_flag IN VARCHAR2
45789 ,p_calculate_g_l_flag IN VARCHAR2
45790 ,p_actual_flag IN OUT VARCHAR2
45791 ,p_balance_type_code OUT VARCHAR2
45792 ,p_gain_or_loss_ref OUT VARCHAR2
45793
45794 --Budget Code Combination ID
45795 , p_source_2 IN NUMBER
45796 --Cost CCID
45797 , p_source_3 IN NUMBER
45798 --Cost Clearing CCID
45799 , p_source_6 IN NUMBER
45800 --Reversing Line Flag
45801 , p_source_22 IN VARCHAR2
45802 --Actual Upgrade Credit Accounting Class
45803 , p_source_23 IN VARCHAR2
45804 --Entered Currency Code
45805 , p_source_25 IN VARCHAR2
45806 --Exchange Rate Date
45807 , p_source_27 IN DATE
45808 --Exchange Rate
45809 , p_source_28 IN NUMBER
45810 --Exchange Rate Type
45811 , p_source_29 IN VARCHAR2
45812 --Actual Upgrade Debit Accounting Class
45813 , p_source_30 IN VARCHAR2
45814 --Use Actuals Upgrade Attributes Flag
45815 , p_source_31 IN VARCHAR2
45816 --Expenditure Item ID
45817 , p_source_32 IN NUMBER
45818 --Cost Distribution Line Number
45819 , p_source_33 IN NUMBER
45820 --Line Type
45821 , p_source_34 IN VARCHAR2
45822 , p_source_34_meaning IN VARCHAR2
45823 --Reversed Line Number
45824 , p_source_35 IN NUMBER
45825 --Entered Burdened Cost
45826 , p_source_44 IN NUMBER
45827 --Accounted Burdened Cost
45828 , p_source_45 IN NUMBER
45829 --Encumbrance Amount
45830 , p_source_46 IN NUMBER
45831 --Project Encumbrance Applied to Application Identifier
45832 , p_source_47 IN NUMBER
45833 --Project Encumbrance Applied to Distribution Type
45834 , p_source_48 IN VARCHAR2
45835 --Project Encumbrance Applied to Entity Code
45836 , p_source_49 IN VARCHAR2
45837 --Project Encumbrance Applied to First Distribution ID
45838 , p_source_50 IN NUMBER
45842 , p_source_52 IN VARCHAR2
45839 --Project Encumbrance Applied to First System Transaction ID
45840 , p_source_51 IN NUMBER
45841 --Project Encumbrance Applied to Second Distribution ID
45843 --Encumbrance Upgrade Debit Accounting Class
45844 , p_source_54 IN VARCHAR2
45845 --Use Encumbrance Upgrade Attributes Flag
45846 , p_source_55 IN VARCHAR2
45847 --Encumbrance Type ID
45848 , p_source_56 IN NUMBER
45849 --Project Encumbrance Type ID
45850 , p_source_57 IN NUMBER
45851 --Document Type
45852 , p_source_69 IN VARCHAR2
45853 , p_source_69_meaning IN VARCHAR2
45854 --Release ID
45855 , p_source_71 IN NUMBER
45856 --Contingent Worker Timecard Flag
45857 , p_source_72 IN VARCHAR2
45858 )
45859 IS
45860
45861 l_component_type VARCHAR2(80);
45862 l_component_code VARCHAR2(30);
45863 l_component_type_code VARCHAR2(1);
45864 l_component_appl_id INTEGER;
45865 l_amb_context_code VARCHAR2(30);
45866 l_entity_code VARCHAR2(30);
45867 l_event_class_code VARCHAR2(30);
45868 l_ae_header_id NUMBER;
45869 l_event_type_code VARCHAR2(30);
45870 l_line_definition_code VARCHAR2(30);
45871 l_line_definition_owner_code VARCHAR2(1);
45872 --
45873 -- adr variables
45874 l_segment VARCHAR2(30);
45875 l_ccid NUMBER;
45876 l_adr_transaction_coa_id NUMBER;
45877 l_adr_accounting_coa_id NUMBER;
45878 l_adr_flexfield_segment_code VARCHAR2(30);
45879 l_adr_flex_value_set_id NUMBER;
45880 l_adr_value_type_code VARCHAR2(30);
45881 l_adr_value_combination_id NUMBER;
45882 l_adr_value_segment_code VARCHAR2(30);
45883
45884 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
45885 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
45886 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
45887 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
45888
45889 -- 4262811 Variables ------------------------------------------------------------------------------------------
45890 l_entered_amt_idx NUMBER;
45891 l_accted_amt_idx NUMBER;
45892 l_acc_rev_flag VARCHAR2(1);
45893 l_accrual_line_num NUMBER;
45894 l_tmp_amt NUMBER;
45895 l_acc_rev_natural_side_code VARCHAR2(1);
45896
45897 l_num_entries NUMBER;
45898 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
45899 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
45900 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
45901 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
45902 l_recog_line_1 NUMBER;
45903 l_recog_line_2 NUMBER;
45904
45905 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
45906 l_bflow_applied_to_amt NUMBER; -- 5132302
45907 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
45908
45909 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
45910
45911 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
45912 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
45913
45914 ---------------------------------------------------------------------------------------------------------------
45915
45916
45917 --
45918 -- bulk performance
45919 --
45920 l_balance_type_code VARCHAR2(1);
45921 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
45922 l_log_module VARCHAR2(240);
45923
45924 --
45925 -- Upgrade strategy
45926 --
45927 l_actual_upg_option VARCHAR2(1);
45928 l_enc_upg_option VARCHAR2(1);
45929
45930 --
45931 BEGIN
45932 --
45933 IF g_log_enabled THEN
45934 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_95';
45935 END IF;
45936 --
45937 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
45938
45939 trace
45940 (p_msg => 'BEGIN of AcctLineType_95'
45941 ,p_level => C_LEVEL_PROCEDURE
45942 ,p_module => l_log_module);
45943
45944 END IF;
45945 --
45946 l_component_type := 'AMB_JLT';
45947 l_component_code := 'REL_CWK_PO_BURDENED_ENC';
45948 l_component_type_code := 'S';
45949 l_component_appl_id := 275;
45950 l_amb_context_code := 'DEFAULT';
45951 l_entity_code := 'EXPENDITURES';
45952 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
45953 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
45954 l_line_definition_owner_code := 'S';
45955 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
45956 --
45957 l_balance_type_code := 'E';
45958 l_segment := NULL;
45959 l_ccid := NULL;
45960 l_adr_transaction_coa_id := NULL;
45961 l_adr_accounting_coa_id := NULL;
45962 l_adr_flexfield_segment_code := NULL;
45963 l_adr_flex_value_set_id := NULL;
45964 l_adr_value_type_code := NULL;
45965 l_adr_value_combination_id := NULL;
45966 l_adr_value_segment_code := NULL;
45967
45968 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
45972
45969 l_bflow_class_code := ''; -- 4219869 Business Flow
45970 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
45971 l_budgetary_control_flag := 'N';
45973 l_bflow_applied_to_amt_idx := NULL; -- 5132302
45974 l_bflow_applied_to_amt := NULL; -- 5132302
45975 l_entered_amt_idx := NULL; -- 4262811
45976 l_accted_amt_idx := NULL; -- 4262811
45977 l_acc_rev_flag := NULL; -- 4262811
45978 l_accrual_line_num := NULL; -- 4262811
45979 l_tmp_amt := NULL; -- 4262811
45980 --
45981
45982 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
45983 l_balance_type_code <> 'B' THEN
45984 IF NVL(p_source_34,'
45985 ') = 'E' AND
45986 NVL(p_source_69,'
45987 ') = 'PO' AND
45988 p_source_71 IS NULL AND
45989 NVL(p_source_72,'
45990 ') = 'Y'
45991 THEN
45992
45993 --
45994 XLA_AE_LINES_PKG.SetNewLine;
45995
45996 p_balance_type_code := l_balance_type_code;
45997 -- set the flag so later we will know whether the gain loss line needs to be created
45998
45999 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46000 p_actual_flag :='A';
46001 END IF;
46002
46003 --
46004 -- bulk performance
46005 --
46006 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46007 p_header_num => 0); -- 4262811
46008 --
46009 -- set accounting line options
46010 --
46011 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46012 p_natural_side_code => 'C'
46013 , p_gain_or_loss_flag => 'N'
46014 , p_gl_transfer_mode_code => 'S'
46015 , p_acct_entry_type_code => 'E'
46016 , p_switch_side_flag => 'N'
46017 , p_merge_duplicate_code => 'N'
46018 );
46019 --
46020 l_acc_rev_natural_side_code := 'D'; -- 4262811
46021 --
46022 --
46023 -- set accounting line type info
46024 --
46025 xla_ae_lines_pkg.SetAcctLineType
46026 (p_component_type => l_component_type
46027 ,p_event_type_code => l_event_type_code
46028 ,p_line_definition_owner_code => l_line_definition_owner_code
46029 ,p_line_definition_code => l_line_definition_code
46030 ,p_accounting_line_code => l_component_code
46031 ,p_accounting_line_type_code => l_component_type_code
46032 ,p_accounting_line_appl_id => l_component_appl_id
46033 ,p_amb_context_code => l_amb_context_code
46034 ,p_entity_code => l_entity_code
46035 ,p_event_class_code => l_event_class_code);
46036 --
46037 -- set accounting class
46038 --
46039 xla_ae_lines_pkg.SetAcctClass(
46040 p_accounting_class_code => 'PO_PA_BURDENED'
46041 , p_ae_header_id => l_ae_header_id
46042 );
46043
46044 --
46045 -- set rounding class
46046 --
46047 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46048 'PO_PA_BURDENED';
46049
46050 --
46051 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46052 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46053 --
46054 -- bulk performance
46055 --
46056 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46057
46058 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46059 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46060
46061 -- 4955764
46062 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46063 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46064
46065 -- 4458381 Public Sector Enh
46066 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
46067 --
46068 -- set accounting attributes for the line type
46069 --
46070 l_entered_amt_idx := 35;
46071 l_accted_amt_idx := 40;
46072 l_bflow_applied_to_amt_idx := 19; -- 5132302
46073 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46074 l_rec_acct_attrs.array_char_value(1) := p_source_22;
46075 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
46076 l_rec_acct_attrs.array_char_value(2) := p_source_23;
46077 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
46078 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
46079 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
46080 l_rec_acct_attrs.array_num_value(4) := p_source_44;
46081 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
46082 l_rec_acct_attrs.array_char_value(5) := p_source_25;
46083 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
46084 l_rec_acct_attrs.array_num_value(6) := p_source_45;
46085 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
46086 l_rec_acct_attrs.array_date_value(7) := p_source_27;
46087 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
46088 l_rec_acct_attrs.array_num_value(8) := p_source_28;
46092 l_rec_acct_attrs.array_char_value(10) := p_source_30;
46089 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
46090 l_rec_acct_attrs.array_char_value(9) := p_source_29;
46091 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
46093 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
46094 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
46095 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
46096 l_rec_acct_attrs.array_num_value(12) := p_source_44;
46097 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
46098 l_rec_acct_attrs.array_char_value(13) := p_source_25;
46099 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
46100 l_rec_acct_attrs.array_num_value(14) := p_source_45;
46101 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
46102 l_rec_acct_attrs.array_date_value(15) := p_source_27;
46103 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
46104 l_rec_acct_attrs.array_num_value(16) := p_source_28;
46105 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
46106 l_rec_acct_attrs.array_char_value(17) := p_source_29;
46107 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
46108 l_rec_acct_attrs.array_char_value(18) := p_source_31;
46109 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
46110 l_rec_acct_attrs.array_num_value(19) := p_source_46;
46111 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
46112 l_rec_acct_attrs.array_num_value(20) := p_source_47;
46113 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46114 l_rec_acct_attrs.array_char_value(21) := p_source_48;
46115 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
46116 l_rec_acct_attrs.array_char_value(22) := p_source_49;
46117 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
46118 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
46119 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46120 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
46121 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
46122 l_rec_acct_attrs.array_char_value(25) := p_source_52;
46123 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
46124 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
46125 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
46126 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
46127 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
46128 l_rec_acct_attrs.array_char_value(28) := p_source_34;
46129 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
46130 l_rec_acct_attrs.array_char_value(29) := p_source_54;
46131 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
46132 l_rec_acct_attrs.array_num_value(30) := p_source_2;
46133 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
46134 l_rec_acct_attrs.array_num_value(31) := p_source_46;
46135 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
46136 l_rec_acct_attrs.array_char_value(32) :=
46137 xla_ae_sources_pkg.GetSystemSourceChar(
46138 p_source_code => 'XLA_CURRENCY_CODE'
46139 , p_source_type_code => 'Y'
46140 , p_source_application_id => 602
46141 );
46142 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
46143 l_rec_acct_attrs.array_num_value(33) := p_source_46;
46144 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
46145 l_rec_acct_attrs.array_char_value(34) := p_source_55;
46146 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
46147 l_rec_acct_attrs.array_num_value(35) := p_source_46;
46148 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
46149 l_rec_acct_attrs.array_char_value(36) := p_source_25;
46150 l_rec_acct_attrs.array_acct_attr_code(37) := 'EXCHANGE_DATE';
46151 l_rec_acct_attrs.array_date_value(37) := p_source_27;
46152 l_rec_acct_attrs.array_acct_attr_code(38) := 'EXCHANGE_RATE';
46153 l_rec_acct_attrs.array_num_value(38) := p_source_28;
46154 l_rec_acct_attrs.array_acct_attr_code(39) := 'EXCHANGE_RATE_TYPE';
46155 l_rec_acct_attrs.array_char_value(39) := p_source_29;
46156 l_rec_acct_attrs.array_acct_attr_code(40) := 'LEDGER_AMOUNT';
46157 l_rec_acct_attrs.array_num_value(40) := p_source_46;
46158 l_rec_acct_attrs.array_acct_attr_code(41) := 'REVERSED_DISTRIBUTION_ID1';
46159 l_rec_acct_attrs.array_num_value(41) := to_char(p_source_32);
46160 l_rec_acct_attrs.array_acct_attr_code(42) := 'REVERSED_DISTRIBUTION_ID2';
46161 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_35);
46162 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_TYPE';
46163 l_rec_acct_attrs.array_char_value(43) := p_source_34;
46164 l_rec_acct_attrs.array_acct_attr_code(44) := 'UPG_CR_ENC_TYPE_ID';
46165 l_rec_acct_attrs.array_num_value(44) := p_source_56;
46166 l_rec_acct_attrs.array_acct_attr_code(45) := 'UPG_DR_ENC_TYPE_ID';
46167 l_rec_acct_attrs.array_num_value(45) := p_source_57;
46168
46169 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46170 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46171
46172 ---------------------------------------------------------------------------------------------------------------
46173 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46177 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46174 ---------------------------------------------------------------------------------------------------------------
46175 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46176
46178 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46179
46180 IF xla_accounting_cache_pkg.GetValueChar
46181 (p_source_code => 'LEDGER_CATEGORY_CODE'
46182 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46183 AND l_bflow_method_code = 'PRIOR_ENTRY'
46184 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46185 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46186 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46187 )
46188 THEN
46189 xla_ae_lines_pkg.BflowUpgEntry
46190 (p_business_method_code => l_bflow_method_code
46191 ,p_business_class_code => l_bflow_class_code
46192 ,p_balance_type => l_balance_type_code);
46193 ELSE
46194 NULL;
46195 -- No business flow processing for business flow method of NONE.
46196 END IF;
46197
46198 --
46199 -- call analytical criteria
46200 --
46201
46202 --
46203 -- call description
46204 --
46205 -- No description or it is inherited.
46206 --
46207 -- call ADRs
46208 -- Bug 4922099
46209 --
46210 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46211 (NVL(l_actual_upg_option, 'N') = 'O') OR
46212 (NVL(l_enc_upg_option, 'N') = 'O')
46213 )
46214 THEN
46215 NULL;
46216 --
46217 --
46218
46219 l_ccid := AcctDerRule_2(
46220 p_application_id => p_application_id
46221 , p_ae_header_id => l_ae_header_id
46222 , p_source_2 => p_source_2
46223 , x_transaction_coa_id => l_adr_transaction_coa_id
46224 , x_accounting_coa_id => l_adr_accounting_coa_id
46225 , x_value_type_code => l_adr_value_type_code
46226 , p_side => 'NA'
46227 );
46228
46229 xla_ae_lines_pkg.set_ccid(
46230 p_code_combination_id => l_ccid
46231 , p_value_type_code => l_adr_value_type_code
46232 , p_transaction_coa_id => l_adr_transaction_coa_id
46233 , p_accounting_coa_id => l_adr_accounting_coa_id
46234 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
46235 , p_adr_type_code => 'S'
46236 , p_component_type => l_component_type
46237 , p_component_code => l_component_code
46238 , p_component_type_code => l_component_type_code
46239 , p_component_appl_id => l_component_appl_id
46240 , p_amb_context_code => l_amb_context_code
46241 , p_side => 'NA'
46242 );
46243
46244
46245 --
46246 --
46247 END IF;
46248 --
46249 -- Bug 4922099
46250 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46251 (NVL(l_enc_upg_option, 'N') = 'O')
46252 ) AND
46253 (l_bflow_method_code = 'PRIOR_ENTRY')
46254 )
46255 THEN
46256 IF
46257 --
46258 1 = 2
46259 --
46260 THEN
46261 xla_accounting_err_pkg.build_message
46262 (p_appli_s_name => 'XLA'
46263 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46264 ,p_token_1 => 'LINE_NUMBER'
46265 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46266 ,p_token_2 => 'LINE_TYPE_NAME'
46267 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46268 l_component_type
46269 ,l_component_code
46270 ,l_component_type_code
46271 ,l_component_appl_id
46272 ,l_amb_context_code
46273 ,l_entity_code
46274 ,l_event_class_code
46275 )
46276 ,p_token_3 => 'OWNER'
46277 ,p_value_3 => xla_lookups_pkg.get_meaning(
46278 p_lookup_type => 'XLA_OWNER_TYPE'
46279 ,p_lookup_code => l_component_type_code
46280 )
46281 ,p_token_4 => 'PRODUCT_NAME'
46282 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46286 ,p_ae_header_id => NULL
46283 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46284 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46285 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46287 );
46288
46289 IF (C_LEVEL_ERROR>= g_log_level) THEN
46290 trace
46291 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46292 ,p_level => C_LEVEL_ERROR
46293 ,p_module => l_log_module);
46294 END IF;
46295 END IF;
46296 END IF;
46297 --
46298 --
46299 ------------------------------------------------------------------------------------------------
46300 -- 4219869 Business Flow
46301 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46302 -- Prior Entry. Currently, the following code is always generated.
46303 ------------------------------------------------------------------------------------------------
46304 XLA_AE_LINES_PKG.ValidateCurrentLine;
46305
46306 ------------------------------------------------------------------------------------
46307 -- 4219869 Business Flow
46308 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46309 ------------------------------------------------------------------------------------
46310 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46311
46312 ----------------------------------------------------------------------------------
46313 -- 4219869 Business Flow
46314 -- Update journal entry status -- Need to generate this within IF <condition>
46315 ----------------------------------------------------------------------------------
46316 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46317 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46318 ,p_balance_type_code => l_balance_type_code
46319 );
46320
46321 -------------------------------------------------------------------------------------------
46322 -- 4262811 - Generate the Accrual Reversal lines
46323 -------------------------------------------------------------------------------------------
46324 BEGIN
46325 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46326 (g_array_event(p_event_id).array_value_num('header_index'));
46327 IF l_acc_rev_flag IS NULL THEN
46328 l_acc_rev_flag := 'N';
46329 END IF;
46330 EXCEPTION
46331 WHEN OTHERS THEN
46332 l_acc_rev_flag := 'N';
46333 END;
46334 --
46335 IF (l_acc_rev_flag = 'Y') THEN
46336
46337 -- 4645092 ------------------------------------------------------------------------------
46338 -- To allow MPA report to determine if it should generate report process
46339 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46340 ------------------------------------------------------------------------------------------
46341
46342 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
46343 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
46344
46345 --
46346 -- Update the line information that should be overwritten
46347 --
46348 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
46349 p_header_num => 1);
46350 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
46351
46352 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
46353
46354 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
46355 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
46356 END IF;
46357
46358 --
46359 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
46360 --
46361 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
46362 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
46363 ELSE
46364 ---------------------------------------------------------------------------------------------------
46365 -- 4262811a Switch Sign
46366 ---------------------------------------------------------------------------------------------------
46367 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
46368 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46369 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46370 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
46371 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46372 -- 5132302
46373 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
46374 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
46375
46376 END IF;
46377
46378 -- 4955764
46382
46379 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46380 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
46381
46383 XLA_AE_LINES_PKG.ValidateCurrentLine;
46384 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46385
46386 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46387 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
46388 ,p_balance_type_code => l_balance_type_code);
46389
46390 END IF;
46391
46392 -----------------------------------------------------------------------------------------
46393 -- 4262811 Multiperiod Accounting
46394 -----------------------------------------------------------------------------------------
46395 -- No MPA option is assigned.
46396
46397
46398 END IF;
46399 END IF;
46400 --
46401
46402 --
46403 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46404 trace
46405 (p_msg => 'END of AcctLineType_95'
46406 ,p_level => C_LEVEL_PROCEDURE
46407 ,p_module => l_log_module);
46408 END IF;
46409 --
46410 EXCEPTION
46411 WHEN xla_exceptions_pkg.application_exception THEN
46412 RAISE;
46413 WHEN OTHERS THEN
46414 xla_exceptions_pkg.raise_message
46415 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_95');
46416 END AcctLineType_95;
46417 --
46418
46419 ---------------------------------------
46420 --
46421 -- PRIVATE FUNCTION
46422 -- AcctLineType_96
46423 --
46424 ---------------------------------------
46425 PROCEDURE AcctLineType_96 (
46426 p_application_id IN NUMBER
46427 ,p_event_id IN NUMBER
46428 ,p_calculate_acctd_flag IN VARCHAR2
46429 ,p_calculate_g_l_flag IN VARCHAR2
46430 ,p_actual_flag IN OUT VARCHAR2
46431 ,p_balance_type_code OUT VARCHAR2
46432 ,p_gain_or_loss_ref OUT VARCHAR2
46433
46434 --Budget Code Combination ID
46435 , p_source_2 IN NUMBER
46436 --Cost CCID
46437 , p_source_3 IN NUMBER
46438 --Cost Clearing CCID
46439 , p_source_6 IN NUMBER
46440 --Reversing Line Flag
46441 , p_source_22 IN VARCHAR2
46442 --Actual Upgrade Credit Accounting Class
46443 , p_source_23 IN VARCHAR2
46444 --Entered Currency Code
46445 , p_source_25 IN VARCHAR2
46446 --Exchange Rate Date
46447 , p_source_27 IN DATE
46448 --Exchange Rate
46449 , p_source_28 IN NUMBER
46450 --Exchange Rate Type
46451 , p_source_29 IN VARCHAR2
46452 --Actual Upgrade Debit Accounting Class
46453 , p_source_30 IN VARCHAR2
46454 --Use Actuals Upgrade Attributes Flag
46455 , p_source_31 IN VARCHAR2
46456 --Expenditure Item ID
46457 , p_source_32 IN NUMBER
46458 --Cost Distribution Line Number
46459 , p_source_33 IN NUMBER
46460 --Line Type
46461 , p_source_34 IN VARCHAR2
46462 , p_source_34_meaning IN VARCHAR2
46463 --Reversed Line Number
46464 , p_source_35 IN NUMBER
46465 --Entered Burdened Cost
46466 , p_source_44 IN NUMBER
46467 --Accounted Burdened Cost
46468 , p_source_45 IN NUMBER
46469 --Encumbrance Amount
46470 , p_source_46 IN NUMBER
46471 --Project Encumbrance Applied to Application Identifier
46472 , p_source_47 IN NUMBER
46473 --Project Encumbrance Applied to Distribution Type
46474 , p_source_48 IN VARCHAR2
46475 --Project Encumbrance Applied to Entity Code
46476 , p_source_49 IN VARCHAR2
46477 --Project Encumbrance Applied to First Distribution ID
46478 , p_source_50 IN NUMBER
46479 --Project Encumbrance Applied to First System Transaction ID
46480 , p_source_51 IN NUMBER
46481 --Project Encumbrance Applied to Second Distribution ID
46482 , p_source_52 IN VARCHAR2
46483 --Encumbrance Upgrade Credit Accounting Class
46484 , p_source_53 IN VARCHAR2
46485 --Encumbrance Upgrade Debit Accounting Class
46486 , p_source_54 IN VARCHAR2
46487 --Use Encumbrance Upgrade Attributes Flag
46488 , p_source_55 IN VARCHAR2
46489 --Encumbrance Type ID
46490 , p_source_56 IN NUMBER
46491 --Project Encumbrance Type ID
46492 , p_source_57 IN NUMBER
46493 --Document Type
46494 , p_source_69 IN VARCHAR2
46495 , p_source_69_meaning IN VARCHAR2
46496 --Release ID
46497 , p_source_71 IN NUMBER
46498 --Contingent Worker Timecard Flag
46499 , p_source_72 IN VARCHAR2
46500 )
46501 IS
46502
46503 l_component_type VARCHAR2(80);
46504 l_component_code VARCHAR2(30);
46505 l_component_type_code VARCHAR2(1);
46506 l_component_appl_id INTEGER;
46507 l_amb_context_code VARCHAR2(30);
46508 l_entity_code VARCHAR2(30);
46509 l_event_class_code VARCHAR2(30);
46510 l_ae_header_id NUMBER;
46511 l_event_type_code VARCHAR2(30);
46512 l_line_definition_code VARCHAR2(30);
46513 l_line_definition_owner_code VARCHAR2(1);
46514 --
46515 -- adr variables
46516 l_segment VARCHAR2(30);
46517 l_ccid NUMBER;
46518 l_adr_transaction_coa_id NUMBER;
46519 l_adr_accounting_coa_id NUMBER;
46523 l_adr_value_combination_id NUMBER;
46520 l_adr_flexfield_segment_code VARCHAR2(30);
46521 l_adr_flex_value_set_id NUMBER;
46522 l_adr_value_type_code VARCHAR2(30);
46524 l_adr_value_segment_code VARCHAR2(30);
46525
46526 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
46527 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
46528 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
46529 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
46530
46531 -- 4262811 Variables ------------------------------------------------------------------------------------------
46532 l_entered_amt_idx NUMBER;
46533 l_accted_amt_idx NUMBER;
46534 l_acc_rev_flag VARCHAR2(1);
46535 l_accrual_line_num NUMBER;
46536 l_tmp_amt NUMBER;
46537 l_acc_rev_natural_side_code VARCHAR2(1);
46538
46539 l_num_entries NUMBER;
46540 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
46541 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
46542 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
46543 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
46544 l_recog_line_1 NUMBER;
46545 l_recog_line_2 NUMBER;
46546
46547 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
46548 l_bflow_applied_to_amt NUMBER; -- 5132302
46549 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
46550
46551 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
46552
46553 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
46554 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
46555
46556 ---------------------------------------------------------------------------------------------------------------
46557
46558
46559 --
46560 -- bulk performance
46561 --
46562 l_balance_type_code VARCHAR2(1);
46563 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
46564 l_log_module VARCHAR2(240);
46565
46566 --
46567 -- Upgrade strategy
46568 --
46569 l_actual_upg_option VARCHAR2(1);
46570 l_enc_upg_option VARCHAR2(1);
46571
46572 --
46573 BEGIN
46574 --
46575 IF g_log_enabled THEN
46576 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_96';
46577 END IF;
46578 --
46579 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
46580
46581 trace
46582 (p_msg => 'BEGIN of AcctLineType_96'
46583 ,p_level => C_LEVEL_PROCEDURE
46584 ,p_module => l_log_module);
46585
46586 END IF;
46587 --
46588 l_component_type := 'AMB_JLT';
46589 l_component_code := 'REL_CWK_PO_BURDENED_ENC';
46590 l_component_type_code := 'S';
46591 l_component_appl_id := 275;
46592 l_amb_context_code := 'DEFAULT';
46593 l_entity_code := 'EXPENDITURES';
46594 l_event_class_code := 'TOT_BURDENED_COST';
46595 l_event_type_code := 'TOT_BURDENED_COST_ALL';
46596 l_line_definition_owner_code := 'S';
46597 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
46598 --
46599 l_balance_type_code := 'E';
46600 l_segment := NULL;
46601 l_ccid := NULL;
46602 l_adr_transaction_coa_id := NULL;
46603 l_adr_accounting_coa_id := NULL;
46604 l_adr_flexfield_segment_code := NULL;
46605 l_adr_flex_value_set_id := NULL;
46606 l_adr_value_type_code := NULL;
46607 l_adr_value_combination_id := NULL;
46608 l_adr_value_segment_code := NULL;
46609
46610 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
46611 l_bflow_class_code := ''; -- 4219869 Business Flow
46612 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
46613 l_budgetary_control_flag := 'N';
46614
46615 l_bflow_applied_to_amt_idx := NULL; -- 5132302
46616 l_bflow_applied_to_amt := NULL; -- 5132302
46617 l_entered_amt_idx := NULL; -- 4262811
46618 l_accted_amt_idx := NULL; -- 4262811
46619 l_acc_rev_flag := NULL; -- 4262811
46620 l_accrual_line_num := NULL; -- 4262811
46621 l_tmp_amt := NULL; -- 4262811
46622 --
46623
46624 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
46625 l_balance_type_code <> 'B' THEN
46626 IF NVL(p_source_34,'
46627 ') = 'E' AND
46628 NVL(p_source_69,'
46629 ') = 'PO' AND
46630 p_source_71 IS NULL AND
46631 NVL(p_source_72,'
46632 ') = 'Y'
46633 THEN
46634
46635 --
46636 XLA_AE_LINES_PKG.SetNewLine;
46637
46638 p_balance_type_code := l_balance_type_code;
46639 -- set the flag so later we will know whether the gain loss line needs to be created
46640
46641 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
46642 p_actual_flag :='A';
46643 END IF;
46644
46645 --
46646 -- bulk performance
46647 --
46648 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
46649 p_header_num => 0); -- 4262811
46650 --
46654 p_natural_side_code => 'C'
46651 -- set accounting line options
46652 --
46653 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
46655 , p_gain_or_loss_flag => 'N'
46656 , p_gl_transfer_mode_code => 'S'
46657 , p_acct_entry_type_code => 'E'
46658 , p_switch_side_flag => 'N'
46659 , p_merge_duplicate_code => 'N'
46660 );
46661 --
46662 l_acc_rev_natural_side_code := 'D'; -- 4262811
46663 --
46664 --
46665 -- set accounting line type info
46666 --
46667 xla_ae_lines_pkg.SetAcctLineType
46668 (p_component_type => l_component_type
46669 ,p_event_type_code => l_event_type_code
46670 ,p_line_definition_owner_code => l_line_definition_owner_code
46671 ,p_line_definition_code => l_line_definition_code
46672 ,p_accounting_line_code => l_component_code
46673 ,p_accounting_line_type_code => l_component_type_code
46674 ,p_accounting_line_appl_id => l_component_appl_id
46675 ,p_amb_context_code => l_amb_context_code
46676 ,p_entity_code => l_entity_code
46677 ,p_event_class_code => l_event_class_code);
46678 --
46679 -- set accounting class
46680 --
46681 xla_ae_lines_pkg.SetAcctClass(
46682 p_accounting_class_code => 'PO_PA_BURDENED'
46683 , p_ae_header_id => l_ae_header_id
46684 );
46685
46686 --
46687 -- set rounding class
46688 --
46689 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
46690 'PO_PA_BURDENED';
46691
46692 --
46693 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
46694 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
46695 --
46696 -- bulk performance
46697 --
46698 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
46699
46700 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
46701 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
46702
46703 -- 4955764
46704 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
46705 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
46706
46707 -- 4458381 Public Sector Enh
46708 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
46709 --
46710 -- set accounting attributes for the line type
46711 --
46712 l_entered_amt_idx := 40;
46713 l_accted_amt_idx := 46;
46714 l_bflow_applied_to_amt_idx := 19; -- 5132302
46715 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
46716 l_rec_acct_attrs.array_char_value(1) := p_source_22;
46717 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
46718 l_rec_acct_attrs.array_char_value(2) := p_source_23;
46719 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
46720 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
46721 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
46722 l_rec_acct_attrs.array_num_value(4) := p_source_44;
46723 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
46724 l_rec_acct_attrs.array_char_value(5) := p_source_25;
46725 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
46726 l_rec_acct_attrs.array_num_value(6) := p_source_45;
46727 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
46728 l_rec_acct_attrs.array_date_value(7) := p_source_27;
46729 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
46730 l_rec_acct_attrs.array_num_value(8) := p_source_28;
46731 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
46732 l_rec_acct_attrs.array_char_value(9) := p_source_29;
46733 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
46734 l_rec_acct_attrs.array_char_value(10) := p_source_30;
46735 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
46736 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
46737 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
46738 l_rec_acct_attrs.array_num_value(12) := p_source_44;
46739 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
46740 l_rec_acct_attrs.array_char_value(13) := p_source_25;
46741 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
46742 l_rec_acct_attrs.array_num_value(14) := p_source_45;
46743 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
46744 l_rec_acct_attrs.array_date_value(15) := p_source_27;
46745 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
46746 l_rec_acct_attrs.array_num_value(16) := p_source_28;
46747 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
46748 l_rec_acct_attrs.array_char_value(17) := p_source_29;
46749 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
46750 l_rec_acct_attrs.array_char_value(18) := p_source_31;
46751 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
46752 l_rec_acct_attrs.array_num_value(19) := p_source_46;
46753 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
46757 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
46754 l_rec_acct_attrs.array_num_value(20) := p_source_47;
46755 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
46756 l_rec_acct_attrs.array_char_value(21) := p_source_48;
46758 l_rec_acct_attrs.array_char_value(22) := p_source_49;
46759 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
46760 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
46761 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
46762 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
46763 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
46764 l_rec_acct_attrs.array_char_value(25) := p_source_52;
46765 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
46766 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
46767 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
46768 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
46769 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
46770 l_rec_acct_attrs.array_char_value(28) := p_source_34;
46771 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
46772 l_rec_acct_attrs.array_char_value(29) := p_source_53;
46773 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
46774 l_rec_acct_attrs.array_num_value(30) := p_source_2;
46775 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
46776 l_rec_acct_attrs.array_num_value(31) := p_source_46;
46777 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
46778 l_rec_acct_attrs.array_char_value(32) :=
46779 xla_ae_sources_pkg.GetSystemSourceChar(
46780 p_source_code => 'XLA_CURRENCY_CODE'
46781 , p_source_type_code => 'Y'
46782 , p_source_application_id => 602
46783 );
46784 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
46785 l_rec_acct_attrs.array_num_value(33) := p_source_46;
46786 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
46787 l_rec_acct_attrs.array_char_value(34) := p_source_54;
46788 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
46789 l_rec_acct_attrs.array_num_value(35) := p_source_2;
46790 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
46791 l_rec_acct_attrs.array_num_value(36) := p_source_46;
46792 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
46793 l_rec_acct_attrs.array_char_value(37) :=
46794 xla_ae_sources_pkg.GetSystemSourceChar(
46795 p_source_code => 'XLA_CURRENCY_CODE'
46796 , p_source_type_code => 'Y'
46797 , p_source_application_id => 602
46798 );
46799 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
46800 l_rec_acct_attrs.array_num_value(38) := p_source_46;
46801 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
46802 l_rec_acct_attrs.array_char_value(39) := p_source_55;
46803 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
46804 l_rec_acct_attrs.array_num_value(40) := p_source_46;
46805 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
46806 l_rec_acct_attrs.array_char_value(41) := p_source_25;
46807 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
46808 l_rec_acct_attrs.array_date_value(42) := p_source_27;
46809 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
46810 l_rec_acct_attrs.array_num_value(43) := p_source_28;
46811 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
46812 l_rec_acct_attrs.array_char_value(44) := p_source_29;
46813 l_rec_acct_attrs.array_acct_attr_code(45) := 'GAIN_LOSS_REFERENCE';
46814 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_32);
46815 l_rec_acct_attrs.array_acct_attr_code(46) := 'LEDGER_AMOUNT';
46816 l_rec_acct_attrs.array_num_value(46) := p_source_46;
46817 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID1';
46818 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_32);
46819 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_ID2';
46820 l_rec_acct_attrs.array_num_value(48) := to_char(p_source_35);
46821 l_rec_acct_attrs.array_acct_attr_code(49) := 'REVERSED_DISTRIBUTION_TYPE';
46822 l_rec_acct_attrs.array_char_value(49) := p_source_34;
46823 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_CR_ENC_TYPE_ID';
46824 l_rec_acct_attrs.array_num_value(50) := p_source_56;
46825 l_rec_acct_attrs.array_acct_attr_code(51) := 'UPG_DR_ENC_TYPE_ID';
46826 l_rec_acct_attrs.array_num_value(51) := p_source_57;
46827
46828 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
46829 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
46830
46831 ---------------------------------------------------------------------------------------------------------------
46832 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
46833 ---------------------------------------------------------------------------------------------------------------
46834 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
46835
46836 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46837 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
46838
46839 IF xla_accounting_cache_pkg.GetValueChar
46843 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
46840 (p_source_code => 'LEDGER_CATEGORY_CODE'
46841 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
46842 AND l_bflow_method_code = 'PRIOR_ENTRY'
46844 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
46845 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
46846 )
46847 THEN
46848 xla_ae_lines_pkg.BflowUpgEntry
46849 (p_business_method_code => l_bflow_method_code
46850 ,p_business_class_code => l_bflow_class_code
46851 ,p_balance_type => l_balance_type_code);
46852 ELSE
46853 NULL;
46854 -- No business flow processing for business flow method of NONE.
46855 END IF;
46856
46857 --
46858 -- call analytical criteria
46859 --
46860
46861 --
46862 -- call description
46863 --
46864 -- No description or it is inherited.
46865 --
46866 -- call ADRs
46867 -- Bug 4922099
46868 --
46869 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
46870 (NVL(l_actual_upg_option, 'N') = 'O') OR
46871 (NVL(l_enc_upg_option, 'N') = 'O')
46872 )
46873 THEN
46874 NULL;
46875 --
46876 --
46877
46878 l_ccid := AcctDerRule_2(
46879 p_application_id => p_application_id
46880 , p_ae_header_id => l_ae_header_id
46881 , p_source_2 => p_source_2
46882 , x_transaction_coa_id => l_adr_transaction_coa_id
46883 , x_accounting_coa_id => l_adr_accounting_coa_id
46884 , x_value_type_code => l_adr_value_type_code
46885 , p_side => 'NA'
46886 );
46887
46888 xla_ae_lines_pkg.set_ccid(
46889 p_code_combination_id => l_ccid
46890 , p_value_type_code => l_adr_value_type_code
46891 , p_transaction_coa_id => l_adr_transaction_coa_id
46892 , p_accounting_coa_id => l_adr_accounting_coa_id
46893 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
46894 , p_adr_type_code => 'S'
46895 , p_component_type => l_component_type
46896 , p_component_code => l_component_code
46897 , p_component_type_code => l_component_type_code
46898 , p_component_appl_id => l_component_appl_id
46899 , p_amb_context_code => l_amb_context_code
46900 , p_side => 'NA'
46901 );
46902
46903
46904 --
46905 --
46906 END IF;
46907 --
46908 -- Bug 4922099
46909 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
46910 (NVL(l_enc_upg_option, 'N') = 'O')
46911 ) AND
46912 (l_bflow_method_code = 'PRIOR_ENTRY')
46913 )
46914 THEN
46915 IF
46916 --
46917 1 = 2
46918 --
46919 THEN
46920 xla_accounting_err_pkg.build_message
46921 (p_appli_s_name => 'XLA'
46922 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46923 ,p_token_1 => 'LINE_NUMBER'
46924 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
46925 ,p_token_2 => 'LINE_TYPE_NAME'
46926 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
46927 l_component_type
46928 ,l_component_code
46929 ,l_component_type_code
46930 ,l_component_appl_id
46931 ,l_amb_context_code
46932 ,l_entity_code
46933 ,l_event_class_code
46934 )
46935 ,p_token_3 => 'OWNER'
46936 ,p_value_3 => xla_lookups_pkg.get_meaning(
46937 p_lookup_type => 'XLA_OWNER_TYPE'
46938 ,p_lookup_code => l_component_type_code
46939 )
46940 ,p_token_4 => 'PRODUCT_NAME'
46941 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
46942 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
46943 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
46944 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
46945 ,p_ae_header_id => NULL
46946 );
46947
46948 IF (C_LEVEL_ERROR>= g_log_level) THEN
46949 trace
46953 END IF;
46950 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
46951 ,p_level => C_LEVEL_ERROR
46952 ,p_module => l_log_module);
46954 END IF;
46955 END IF;
46956 --
46957 --
46958 ------------------------------------------------------------------------------------------------
46959 -- 4219869 Business Flow
46960 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
46961 -- Prior Entry. Currently, the following code is always generated.
46962 ------------------------------------------------------------------------------------------------
46963 XLA_AE_LINES_PKG.ValidateCurrentLine;
46964
46965 ------------------------------------------------------------------------------------
46966 -- 4219869 Business Flow
46967 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
46968 ------------------------------------------------------------------------------------
46969 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
46970
46971 ----------------------------------------------------------------------------------
46972 -- 4219869 Business Flow
46973 -- Update journal entry status -- Need to generate this within IF <condition>
46974 ----------------------------------------------------------------------------------
46975 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
46976 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
46977 ,p_balance_type_code => l_balance_type_code
46978 );
46979
46980 -------------------------------------------------------------------------------------------
46981 -- 4262811 - Generate the Accrual Reversal lines
46982 -------------------------------------------------------------------------------------------
46983 BEGIN
46984 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
46985 (g_array_event(p_event_id).array_value_num('header_index'));
46986 IF l_acc_rev_flag IS NULL THEN
46987 l_acc_rev_flag := 'N';
46988 END IF;
46989 EXCEPTION
46990 WHEN OTHERS THEN
46991 l_acc_rev_flag := 'N';
46992 END;
46993 --
46994 IF (l_acc_rev_flag = 'Y') THEN
46995
46996 -- 4645092 ------------------------------------------------------------------------------
46997 -- To allow MPA report to determine if it should generate report process
46998 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
46999 ------------------------------------------------------------------------------------------
47000
47001 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47002 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47003
47004 --
47005 -- Update the line information that should be overwritten
47006 --
47007 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47008 p_header_num => 1);
47009 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47010
47011 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47012
47013 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47014 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47015 END IF;
47016
47017 --
47018 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47019 --
47020 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47021 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47022 ELSE
47023 ---------------------------------------------------------------------------------------------------
47024 -- 4262811a Switch Sign
47025 ---------------------------------------------------------------------------------------------------
47026 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47027 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47028 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47029 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47030 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47031 -- 5132302
47032 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47033 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47034
47035 END IF;
47036
47037 -- 4955764
47038 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47039 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47040
47041
47042 XLA_AE_LINES_PKG.ValidateCurrentLine;
47043 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47044
47045 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47046 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47047 ,p_balance_type_code => l_balance_type_code);
47048
47049 END IF;
47050
47051 -----------------------------------------------------------------------------------------
47055
47052 -- 4262811 Multiperiod Accounting
47053 -----------------------------------------------------------------------------------------
47054 -- No MPA option is assigned.
47056
47057 END IF;
47058 END IF;
47059 --
47060
47061 --
47062 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47063 trace
47064 (p_msg => 'END of AcctLineType_96'
47065 ,p_level => C_LEVEL_PROCEDURE
47066 ,p_module => l_log_module);
47067 END IF;
47068 --
47069 EXCEPTION
47070 WHEN xla_exceptions_pkg.application_exception THEN
47071 RAISE;
47072 WHEN OTHERS THEN
47073 xla_exceptions_pkg.raise_message
47074 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_96');
47075 END AcctLineType_96;
47076 --
47077
47078 ---------------------------------------
47079 --
47080 -- PRIVATE FUNCTION
47081 -- AcctLineType_97
47082 --
47083 ---------------------------------------
47084 PROCEDURE AcctLineType_97 (
47085 p_application_id IN NUMBER
47086 ,p_event_id IN NUMBER
47087 ,p_calculate_acctd_flag IN VARCHAR2
47088 ,p_calculate_g_l_flag IN VARCHAR2
47089 ,p_actual_flag IN OUT VARCHAR2
47090 ,p_balance_type_code OUT VARCHAR2
47091 ,p_gain_or_loss_ref OUT VARCHAR2
47092
47093 --Budget Code Combination ID
47094 , p_source_2 IN NUMBER
47095 --Cost CCID
47096 , p_source_3 IN NUMBER
47097 --Cost Clearing CCID
47098 , p_source_6 IN NUMBER
47099 --Reversing Line Flag
47100 , p_source_22 IN VARCHAR2
47101 --Actual Upgrade Credit Accounting Class
47102 , p_source_23 IN VARCHAR2
47103 --Entered Currency Code
47104 , p_source_25 IN VARCHAR2
47105 --Exchange Rate Date
47106 , p_source_27 IN DATE
47107 --Exchange Rate
47108 , p_source_28 IN NUMBER
47109 --Exchange Rate Type
47110 , p_source_29 IN VARCHAR2
47111 --Actual Upgrade Debit Accounting Class
47112 , p_source_30 IN VARCHAR2
47113 --Use Actuals Upgrade Attributes Flag
47114 , p_source_31 IN VARCHAR2
47115 --Expenditure Item ID
47116 , p_source_32 IN NUMBER
47117 --Cost Distribution Line Number
47118 , p_source_33 IN NUMBER
47119 --Line Type
47120 , p_source_34 IN VARCHAR2
47121 , p_source_34_meaning IN VARCHAR2
47122 --Reversed Line Number
47123 , p_source_35 IN NUMBER
47124 --Entered Burdened Cost
47125 , p_source_44 IN NUMBER
47126 --Accounted Burdened Cost
47127 , p_source_45 IN NUMBER
47128 --Encumbrance Amount
47129 , p_source_46 IN NUMBER
47130 --Project Encumbrance Applied to Application Identifier
47131 , p_source_47 IN NUMBER
47132 --Project Encumbrance Applied to Distribution Type
47133 , p_source_48 IN VARCHAR2
47134 --Project Encumbrance Applied to Entity Code
47135 , p_source_49 IN VARCHAR2
47136 --Project Encumbrance Applied to First Distribution ID
47137 , p_source_50 IN NUMBER
47138 --Project Encumbrance Applied to First System Transaction ID
47139 , p_source_51 IN NUMBER
47140 --Project Encumbrance Applied to Second Distribution ID
47141 , p_source_52 IN VARCHAR2
47142 --Encumbrance Upgrade Credit Accounting Class
47143 , p_source_53 IN VARCHAR2
47144 --Encumbrance Upgrade Debit Accounting Class
47145 , p_source_54 IN VARCHAR2
47146 --Use Encumbrance Upgrade Attributes Flag
47147 , p_source_55 IN VARCHAR2
47148 --Encumbrance Type ID
47149 , p_source_56 IN NUMBER
47150 --Project Encumbrance Type ID
47151 , p_source_57 IN NUMBER
47152 --Document Type
47153 , p_source_69 IN VARCHAR2
47154 , p_source_69_meaning IN VARCHAR2
47155 --Release ID
47156 , p_source_71 IN NUMBER
47157 --Contingent Worker Timecard Flag
47158 , p_source_72 IN VARCHAR2
47159 )
47160 IS
47161
47162 l_component_type VARCHAR2(80);
47163 l_component_code VARCHAR2(30);
47164 l_component_type_code VARCHAR2(1);
47165 l_component_appl_id INTEGER;
47166 l_amb_context_code VARCHAR2(30);
47167 l_entity_code VARCHAR2(30);
47168 l_event_class_code VARCHAR2(30);
47169 l_ae_header_id NUMBER;
47170 l_event_type_code VARCHAR2(30);
47171 l_line_definition_code VARCHAR2(30);
47172 l_line_definition_owner_code VARCHAR2(1);
47173 --
47174 -- adr variables
47175 l_segment VARCHAR2(30);
47176 l_ccid NUMBER;
47177 l_adr_transaction_coa_id NUMBER;
47178 l_adr_accounting_coa_id NUMBER;
47179 l_adr_flexfield_segment_code VARCHAR2(30);
47180 l_adr_flex_value_set_id NUMBER;
47181 l_adr_value_type_code VARCHAR2(30);
47182 l_adr_value_combination_id NUMBER;
47183 l_adr_value_segment_code VARCHAR2(30);
47184
47185 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47186 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47187 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47188 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47189
47190 -- 4262811 Variables ------------------------------------------------------------------------------------------
47191 l_entered_amt_idx NUMBER;
47192 l_accted_amt_idx NUMBER;
47196 l_acc_rev_natural_side_code VARCHAR2(1);
47193 l_acc_rev_flag VARCHAR2(1);
47194 l_accrual_line_num NUMBER;
47195 l_tmp_amt NUMBER;
47197
47198 l_num_entries NUMBER;
47199 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47200 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47201 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47202 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47203 l_recog_line_1 NUMBER;
47204 l_recog_line_2 NUMBER;
47205
47206 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47207 l_bflow_applied_to_amt NUMBER; -- 5132302
47208 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47209
47210 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47211
47212 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47213 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47214
47215 ---------------------------------------------------------------------------------------------------------------
47216
47217
47218 --
47219 -- bulk performance
47220 --
47221 l_balance_type_code VARCHAR2(1);
47222 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47223 l_log_module VARCHAR2(240);
47224
47225 --
47226 -- Upgrade strategy
47227 --
47228 l_actual_upg_option VARCHAR2(1);
47229 l_enc_upg_option VARCHAR2(1);
47230
47231 --
47232 BEGIN
47233 --
47234 IF g_log_enabled THEN
47235 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_97';
47236 END IF;
47237 --
47238 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47239
47240 trace
47241 (p_msg => 'BEGIN of AcctLineType_97'
47242 ,p_level => C_LEVEL_PROCEDURE
47243 ,p_module => l_log_module);
47244
47245 END IF;
47246 --
47247 l_component_type := 'AMB_JLT';
47248 l_component_code := 'REL_CWK_PO_BURDEN_ENC';
47249 l_component_type_code := 'S';
47250 l_component_appl_id := 275;
47251 l_amb_context_code := 'DEFAULT';
47252 l_entity_code := 'EXPENDITURES';
47253 l_event_class_code := 'BURDEN_COST';
47254 l_event_type_code := 'BURDEN_COST_ALL';
47255 l_line_definition_owner_code := 'S';
47256 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
47257 --
47258 l_balance_type_code := 'E';
47259 l_segment := NULL;
47260 l_ccid := NULL;
47261 l_adr_transaction_coa_id := NULL;
47262 l_adr_accounting_coa_id := NULL;
47263 l_adr_flexfield_segment_code := NULL;
47264 l_adr_flex_value_set_id := NULL;
47265 l_adr_value_type_code := NULL;
47266 l_adr_value_combination_id := NULL;
47267 l_adr_value_segment_code := NULL;
47268
47269 l_bflow_method_code := 'NONE'; -- 4219869 Business Flow
47270 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
47271 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47272 l_budgetary_control_flag := 'N';
47273
47274 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47275 l_bflow_applied_to_amt := NULL; -- 5132302
47276 l_entered_amt_idx := NULL; -- 4262811
47277 l_accted_amt_idx := NULL; -- 4262811
47278 l_acc_rev_flag := NULL; -- 4262811
47279 l_accrual_line_num := NULL; -- 4262811
47280 l_tmp_amt := NULL; -- 4262811
47281 --
47282
47283 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47284 l_balance_type_code <> 'B' THEN
47285 IF NVL(p_source_34,'
47286 ') = 'E' AND
47287 NVL(p_source_69,'
47288 ') = 'PO' AND
47289 p_source_71 IS NULL AND
47290 NVL(p_source_72,'
47291 ') = 'Y'
47292 THEN
47293
47294 --
47295 XLA_AE_LINES_PKG.SetNewLine;
47296
47297 p_balance_type_code := l_balance_type_code;
47298 -- set the flag so later we will know whether the gain loss line needs to be created
47299
47300 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47301 p_actual_flag :='A';
47302 END IF;
47303
47304 --
47305 -- bulk performance
47306 --
47307 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47308 p_header_num => 0); -- 4262811
47309 --
47310 -- set accounting line options
47311 --
47312 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47313 p_natural_side_code => 'C'
47314 , p_gain_or_loss_flag => 'N'
47315 , p_gl_transfer_mode_code => 'S'
47316 , p_acct_entry_type_code => 'E'
47317 , p_switch_side_flag => 'N'
47318 , p_merge_duplicate_code => 'N'
47319 );
47320 --
47321 l_acc_rev_natural_side_code := 'D'; -- 4262811
47322 --
47323 --
47324 -- set accounting line type info
47325 --
47326 xla_ae_lines_pkg.SetAcctLineType
47330 ,p_line_definition_code => l_line_definition_code
47327 (p_component_type => l_component_type
47328 ,p_event_type_code => l_event_type_code
47329 ,p_line_definition_owner_code => l_line_definition_owner_code
47331 ,p_accounting_line_code => l_component_code
47332 ,p_accounting_line_type_code => l_component_type_code
47333 ,p_accounting_line_appl_id => l_component_appl_id
47334 ,p_amb_context_code => l_amb_context_code
47335 ,p_entity_code => l_entity_code
47336 ,p_event_class_code => l_event_class_code);
47337 --
47338 -- set accounting class
47339 --
47340 xla_ae_lines_pkg.SetAcctClass(
47341 p_accounting_class_code => 'PO_PA_BURDEN'
47342 , p_ae_header_id => l_ae_header_id
47343 );
47344
47345 --
47346 -- set rounding class
47347 --
47348 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47349 'PO_PA_BURDEN';
47350
47351 --
47352 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47353 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47354 --
47355 -- bulk performance
47356 --
47357 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
47358
47359 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
47360 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
47361
47362 -- 4955764
47363 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47364 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
47365
47366 -- 4458381 Public Sector Enh
47367 XLA_AE_LINES_PKG.g_rec_lines.array_encumbrance_type_id(XLA_AE_LINES_PKG.g_LineNumber) := 1001;
47368 --
47369 -- set accounting attributes for the line type
47370 --
47371 l_entered_amt_idx := 40;
47372 l_accted_amt_idx := 45;
47373 l_bflow_applied_to_amt_idx := 19; -- 5132302
47374 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
47375 l_rec_acct_attrs.array_char_value(1) := p_source_22;
47376 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
47377 l_rec_acct_attrs.array_char_value(2) := p_source_23;
47378 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
47379 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
47380 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
47381 l_rec_acct_attrs.array_num_value(4) := p_source_44;
47382 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
47383 l_rec_acct_attrs.array_char_value(5) := p_source_25;
47384 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
47385 l_rec_acct_attrs.array_num_value(6) := p_source_45;
47386 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
47387 l_rec_acct_attrs.array_date_value(7) := p_source_27;
47388 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
47389 l_rec_acct_attrs.array_num_value(8) := p_source_28;
47390 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
47391 l_rec_acct_attrs.array_char_value(9) := p_source_29;
47392 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
47393 l_rec_acct_attrs.array_char_value(10) := p_source_30;
47394 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
47395 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
47396 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
47397 l_rec_acct_attrs.array_num_value(12) := p_source_44;
47398 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
47399 l_rec_acct_attrs.array_char_value(13) := p_source_25;
47400 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
47401 l_rec_acct_attrs.array_num_value(14) := p_source_45;
47402 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
47403 l_rec_acct_attrs.array_date_value(15) := p_source_27;
47404 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
47405 l_rec_acct_attrs.array_num_value(16) := p_source_28;
47406 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
47407 l_rec_acct_attrs.array_char_value(17) := p_source_29;
47408 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
47409 l_rec_acct_attrs.array_char_value(18) := p_source_31;
47410 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
47411 l_rec_acct_attrs.array_num_value(19) := p_source_46;
47412 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
47413 l_rec_acct_attrs.array_num_value(20) := p_source_47;
47414 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
47415 l_rec_acct_attrs.array_char_value(21) := p_source_48;
47416 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
47417 l_rec_acct_attrs.array_char_value(22) := p_source_49;
47418 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
47419 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
47420 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
47421 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
47425 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
47422 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
47423 l_rec_acct_attrs.array_char_value(25) := p_source_52;
47424 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
47426 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
47427 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
47428 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
47429 l_rec_acct_attrs.array_char_value(28) := p_source_34;
47430 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
47431 l_rec_acct_attrs.array_char_value(29) := p_source_53;
47432 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
47433 l_rec_acct_attrs.array_num_value(30) := p_source_2;
47434 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
47435 l_rec_acct_attrs.array_num_value(31) := p_source_46;
47436 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
47437 l_rec_acct_attrs.array_char_value(32) := p_source_25;
47438 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
47439 l_rec_acct_attrs.array_num_value(33) := p_source_46;
47440 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
47441 l_rec_acct_attrs.array_char_value(34) := p_source_54;
47442 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
47443 l_rec_acct_attrs.array_num_value(35) := p_source_2;
47444 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
47445 l_rec_acct_attrs.array_num_value(36) := p_source_46;
47446 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
47447 l_rec_acct_attrs.array_char_value(37) := p_source_25;
47448 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
47449 l_rec_acct_attrs.array_num_value(38) := p_source_46;
47450 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
47451 l_rec_acct_attrs.array_char_value(39) := p_source_55;
47452 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
47453 l_rec_acct_attrs.array_num_value(40) := p_source_46;
47454 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
47455 l_rec_acct_attrs.array_char_value(41) := p_source_25;
47456 l_rec_acct_attrs.array_acct_attr_code(42) := 'EXCHANGE_DATE';
47457 l_rec_acct_attrs.array_date_value(42) := p_source_27;
47458 l_rec_acct_attrs.array_acct_attr_code(43) := 'EXCHANGE_RATE';
47459 l_rec_acct_attrs.array_num_value(43) := p_source_28;
47460 l_rec_acct_attrs.array_acct_attr_code(44) := 'EXCHANGE_RATE_TYPE';
47461 l_rec_acct_attrs.array_char_value(44) := p_source_29;
47462 l_rec_acct_attrs.array_acct_attr_code(45) := 'LEDGER_AMOUNT';
47463 l_rec_acct_attrs.array_num_value(45) := p_source_46;
47464 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_ID1';
47465 l_rec_acct_attrs.array_num_value(46) := to_char(p_source_32);
47466 l_rec_acct_attrs.array_acct_attr_code(47) := 'REVERSED_DISTRIBUTION_ID2';
47467 l_rec_acct_attrs.array_num_value(47) := to_char(p_source_35);
47468 l_rec_acct_attrs.array_acct_attr_code(48) := 'REVERSED_DISTRIBUTION_TYPE';
47469 l_rec_acct_attrs.array_char_value(48) := p_source_34;
47470 l_rec_acct_attrs.array_acct_attr_code(49) := 'UPG_CR_ENC_TYPE_ID';
47471 l_rec_acct_attrs.array_num_value(49) := p_source_56;
47472 l_rec_acct_attrs.array_acct_attr_code(50) := 'UPG_DR_ENC_TYPE_ID';
47473 l_rec_acct_attrs.array_num_value(50) := p_source_57;
47474
47475 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
47476 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
47477
47478 ---------------------------------------------------------------------------------------------------------------
47479 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
47480 ---------------------------------------------------------------------------------------------------------------
47481 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
47482
47483 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47484 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
47485
47486 IF xla_accounting_cache_pkg.GetValueChar
47487 (p_source_code => 'LEDGER_CATEGORY_CODE'
47488 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
47489 AND l_bflow_method_code = 'PRIOR_ENTRY'
47490 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
47491 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
47492 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
47493 )
47494 THEN
47495 xla_ae_lines_pkg.BflowUpgEntry
47496 (p_business_method_code => l_bflow_method_code
47497 ,p_business_class_code => l_bflow_class_code
47498 ,p_balance_type => l_balance_type_code);
47499 ELSE
47500 NULL;
47501 -- No business flow processing for business flow method of NONE.
47502 END IF;
47503
47504 --
47505 -- call analytical criteria
47506 --
47507
47508 --
47509 -- call description
47510 --
47511 -- No description or it is inherited.
47512 --
47513 -- call ADRs
47514 -- Bug 4922099
47515 --
47516 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
47517 (NVL(l_actual_upg_option, 'N') = 'O') OR
47521 NULL;
47518 (NVL(l_enc_upg_option, 'N') = 'O')
47519 )
47520 THEN
47522 --
47523 --
47524
47525 l_ccid := AcctDerRule_2(
47526 p_application_id => p_application_id
47527 , p_ae_header_id => l_ae_header_id
47528 , p_source_2 => p_source_2
47529 , x_transaction_coa_id => l_adr_transaction_coa_id
47530 , x_accounting_coa_id => l_adr_accounting_coa_id
47531 , x_value_type_code => l_adr_value_type_code
47532 , p_side => 'NA'
47533 );
47534
47535 xla_ae_lines_pkg.set_ccid(
47536 p_code_combination_id => l_ccid
47537 , p_value_type_code => l_adr_value_type_code
47538 , p_transaction_coa_id => l_adr_transaction_coa_id
47539 , p_accounting_coa_id => l_adr_accounting_coa_id
47540 , p_adr_code => 'PA_BUDGET_ACCT_RULE'
47541 , p_adr_type_code => 'S'
47542 , p_component_type => l_component_type
47543 , p_component_code => l_component_code
47544 , p_component_type_code => l_component_type_code
47545 , p_component_appl_id => l_component_appl_id
47546 , p_amb_context_code => l_amb_context_code
47547 , p_side => 'NA'
47548 );
47549
47550
47551 --
47552 --
47553 END IF;
47554 --
47555 -- Bug 4922099
47556 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
47557 (NVL(l_enc_upg_option, 'N') = 'O')
47558 ) AND
47559 (l_bflow_method_code = 'PRIOR_ENTRY')
47560 )
47561 THEN
47562 IF
47563 --
47564 1 = 2
47565 --
47566 THEN
47567 xla_accounting_err_pkg.build_message
47568 (p_appli_s_name => 'XLA'
47569 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47570 ,p_token_1 => 'LINE_NUMBER'
47571 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
47572 ,p_token_2 => 'LINE_TYPE_NAME'
47573 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
47574 l_component_type
47575 ,l_component_code
47576 ,l_component_type_code
47577 ,l_component_appl_id
47578 ,l_amb_context_code
47579 ,l_entity_code
47580 ,l_event_class_code
47581 )
47582 ,p_token_3 => 'OWNER'
47583 ,p_value_3 => xla_lookups_pkg.get_meaning(
47584 p_lookup_type => 'XLA_OWNER_TYPE'
47585 ,p_lookup_code => l_component_type_code
47586 )
47587 ,p_token_4 => 'PRODUCT_NAME'
47588 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
47589 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
47590 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
47591 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
47592 ,p_ae_header_id => NULL
47593 );
47594
47595 IF (C_LEVEL_ERROR>= g_log_level) THEN
47596 trace
47597 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
47598 ,p_level => C_LEVEL_ERROR
47599 ,p_module => l_log_module);
47600 END IF;
47601 END IF;
47602 END IF;
47603 --
47604 --
47605 ------------------------------------------------------------------------------------------------
47606 -- 4219869 Business Flow
47607 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
47608 -- Prior Entry. Currently, the following code is always generated.
47609 ------------------------------------------------------------------------------------------------
47610 XLA_AE_LINES_PKG.ValidateCurrentLine;
47611
47612 ------------------------------------------------------------------------------------
47613 -- 4219869 Business Flow
47614 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
47615 ------------------------------------------------------------------------------------
47616 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47617
47618 ----------------------------------------------------------------------------------
47619 -- 4219869 Business Flow
47623 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
47620 -- Update journal entry status -- Need to generate this within IF <condition>
47621 ----------------------------------------------------------------------------------
47622 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47624 ,p_balance_type_code => l_balance_type_code
47625 );
47626
47627 -------------------------------------------------------------------------------------------
47628 -- 4262811 - Generate the Accrual Reversal lines
47629 -------------------------------------------------------------------------------------------
47630 BEGIN
47631 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
47632 (g_array_event(p_event_id).array_value_num('header_index'));
47633 IF l_acc_rev_flag IS NULL THEN
47634 l_acc_rev_flag := 'N';
47635 END IF;
47636 EXCEPTION
47637 WHEN OTHERS THEN
47638 l_acc_rev_flag := 'N';
47639 END;
47640 --
47641 IF (l_acc_rev_flag = 'Y') THEN
47642
47643 -- 4645092 ------------------------------------------------------------------------------
47644 -- To allow MPA report to determine if it should generate report process
47645 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
47646 ------------------------------------------------------------------------------------------
47647
47648 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
47649 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
47650
47651 --
47652 -- Update the line information that should be overwritten
47653 --
47654 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
47655 p_header_num => 1);
47656 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
47657
47658 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
47659
47660 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
47661 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
47662 END IF;
47663
47664 --
47665 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
47666 --
47667 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
47668 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
47669 ELSE
47670 ---------------------------------------------------------------------------------------------------
47671 -- 4262811a Switch Sign
47672 ---------------------------------------------------------------------------------------------------
47673 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
47674 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47675 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47676 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
47677 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47678 -- 5132302
47679 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
47680 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
47681
47682 END IF;
47683
47684 -- 4955764
47685 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
47686 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
47687
47688
47689 XLA_AE_LINES_PKG.ValidateCurrentLine;
47690 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
47691
47692 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
47693 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
47694 ,p_balance_type_code => l_balance_type_code);
47695
47696 END IF;
47697
47698 -----------------------------------------------------------------------------------------
47699 -- 4262811 Multiperiod Accounting
47700 -----------------------------------------------------------------------------------------
47701 -- No MPA option is assigned.
47702
47703
47704 END IF;
47705 END IF;
47706 --
47707
47708 --
47709 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47710 trace
47711 (p_msg => 'END of AcctLineType_97'
47712 ,p_level => C_LEVEL_PROCEDURE
47713 ,p_module => l_log_module);
47714 END IF;
47715 --
47716 EXCEPTION
47717 WHEN xla_exceptions_pkg.application_exception THEN
47718 RAISE;
47719 WHEN OTHERS THEN
47720 xla_exceptions_pkg.raise_message
47721 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_97');
47722 END AcctLineType_97;
47723 --
47724
47725 ---------------------------------------
47726 --
47727 -- PRIVATE FUNCTION
47728 -- AcctLineType_98
47729 --
47730 ---------------------------------------
47731 PROCEDURE AcctLineType_98 (
47732 p_application_id IN NUMBER
47733 ,p_event_id IN NUMBER
47734 ,p_calculate_acctd_flag IN VARCHAR2
47735 ,p_calculate_g_l_flag IN VARCHAR2
47739
47736 ,p_actual_flag IN OUT VARCHAR2
47737 ,p_balance_type_code OUT VARCHAR2
47738 ,p_gain_or_loss_ref OUT VARCHAR2
47740 --Budget Code Combination ID
47741 , p_source_2 IN NUMBER
47742 --Cost CCID
47743 , p_source_3 IN NUMBER
47744 --Cost Clearing CCID
47745 , p_source_6 IN NUMBER
47746 --Reversing Line Flag
47747 , p_source_22 IN VARCHAR2
47748 --Actual Upgrade Credit Accounting Class
47749 , p_source_23 IN VARCHAR2
47750 --Entered Currency Code
47751 , p_source_25 IN VARCHAR2
47752 --Exchange Rate Date
47753 , p_source_27 IN DATE
47754 --Exchange Rate
47755 , p_source_28 IN NUMBER
47756 --Exchange Rate Type
47757 , p_source_29 IN VARCHAR2
47758 --Actual Upgrade Debit Accounting Class
47759 , p_source_30 IN VARCHAR2
47760 --Use Actuals Upgrade Attributes Flag
47761 , p_source_31 IN VARCHAR2
47762 --Expenditure Item ID
47763 , p_source_32 IN NUMBER
47764 --Cost Distribution Line Number
47765 , p_source_33 IN NUMBER
47766 --Line Type
47767 , p_source_34 IN VARCHAR2
47768 , p_source_34_meaning IN VARCHAR2
47769 --Reversed Line Number
47770 , p_source_35 IN NUMBER
47771 --Entered Burdened Cost
47772 , p_source_44 IN NUMBER
47773 --Accounted Burdened Cost
47774 , p_source_45 IN NUMBER
47775 --Encumbrance Amount
47776 , p_source_46 IN NUMBER
47777 --Encumbrance Upgrade Credit Accounting Class
47778 , p_source_53 IN VARCHAR2
47779 --Encumbrance Upgrade Debit Accounting Class
47780 , p_source_54 IN VARCHAR2
47781 --Use Encumbrance Upgrade Attributes Flag
47782 , p_source_55 IN VARCHAR2
47783 --Encumbrance Type ID
47784 , p_source_56 IN NUMBER
47785 --Project Encumbrance Type ID
47786 , p_source_57 IN NUMBER
47787 --Document Type
47788 , p_source_69 IN VARCHAR2
47789 , p_source_69_meaning IN VARCHAR2
47790 --Encumbrance Journal Lines Reversed Flag
47791 , p_source_70 IN VARCHAR2
47792 --Invoice Burden Applied to Application Identifier
47793 , p_source_73 IN NUMBER
47794 --Invoice Burden Applied to Distribution Type
47795 , p_source_74 IN VARCHAR2
47796 --Invoice Burden Applied to Entity Code
47797 , p_source_75 IN VARCHAR2
47798 --Invoice Burden Applied to First Distribution Identifier
47799 , p_source_76 IN NUMBER
47800 --Invoice Burden Applied to First System Transaction Identifier
47801 , p_source_77 IN NUMBER
47802 --Invoice Burden Applied to Second Distribution Identifier
47803 , p_source_78 IN VARCHAR2
47804 )
47805 IS
47806
47807 l_component_type VARCHAR2(80);
47808 l_component_code VARCHAR2(30);
47809 l_component_type_code VARCHAR2(1);
47810 l_component_appl_id INTEGER;
47811 l_amb_context_code VARCHAR2(30);
47812 l_entity_code VARCHAR2(30);
47813 l_event_class_code VARCHAR2(30);
47814 l_ae_header_id NUMBER;
47815 l_event_type_code VARCHAR2(30);
47816 l_line_definition_code VARCHAR2(30);
47817 l_line_definition_owner_code VARCHAR2(1);
47818 --
47819 -- adr variables
47820 l_segment VARCHAR2(30);
47821 l_ccid NUMBER;
47822 l_adr_transaction_coa_id NUMBER;
47823 l_adr_accounting_coa_id NUMBER;
47824 l_adr_flexfield_segment_code VARCHAR2(30);
47825 l_adr_flex_value_set_id NUMBER;
47826 l_adr_value_type_code VARCHAR2(30);
47827 l_adr_value_combination_id NUMBER;
47828 l_adr_value_segment_code VARCHAR2(30);
47829
47830 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
47831 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
47832 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
47833 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
47834
47835 -- 4262811 Variables ------------------------------------------------------------------------------------------
47836 l_entered_amt_idx NUMBER;
47837 l_accted_amt_idx NUMBER;
47838 l_acc_rev_flag VARCHAR2(1);
47839 l_accrual_line_num NUMBER;
47840 l_tmp_amt NUMBER;
47841 l_acc_rev_natural_side_code VARCHAR2(1);
47842
47843 l_num_entries NUMBER;
47844 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
47845 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
47846 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
47847 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
47848 l_recog_line_1 NUMBER;
47849 l_recog_line_2 NUMBER;
47850
47851 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
47852 l_bflow_applied_to_amt NUMBER; -- 5132302
47853 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
47854
47855 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
47856
47857 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
47858 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
47859
47863 --
47860 ---------------------------------------------------------------------------------------------------------------
47861
47862
47864 -- bulk performance
47865 --
47866 l_balance_type_code VARCHAR2(1);
47867 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
47868 l_log_module VARCHAR2(240);
47869
47870 --
47871 -- Upgrade strategy
47872 --
47873 l_actual_upg_option VARCHAR2(1);
47874 l_enc_upg_option VARCHAR2(1);
47875
47876 --
47877 BEGIN
47878 --
47879 IF g_log_enabled THEN
47880 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_98';
47881 END IF;
47882 --
47883 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
47884
47885 trace
47886 (p_msg => 'BEGIN of AcctLineType_98'
47887 ,p_level => C_LEVEL_PROCEDURE
47888 ,p_module => l_log_module);
47889
47890 END IF;
47891 --
47892 l_component_type := 'AMB_JLT';
47893 l_component_code := 'REL_INV_BURDENED_ENC';
47894 l_component_type_code := 'S';
47895 l_component_appl_id := 275;
47896 l_amb_context_code := 'DEFAULT';
47897 l_entity_code := 'EXPENDITURES';
47898 l_event_class_code := 'TOT_BURDENED_COST';
47899 l_event_type_code := 'TOT_BURDENED_COST_ALL';
47900 l_line_definition_owner_code := 'S';
47901 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
47902 --
47903 l_balance_type_code := 'E';
47904 l_segment := NULL;
47905 l_ccid := NULL;
47906 l_adr_transaction_coa_id := NULL;
47907 l_adr_accounting_coa_id := NULL;
47908 l_adr_flexfield_segment_code := NULL;
47909 l_adr_flex_value_set_id := NULL;
47910 l_adr_value_type_code := NULL;
47911 l_adr_value_combination_id := NULL;
47912 l_adr_value_segment_code := NULL;
47913
47914 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
47915 l_bflow_class_code := 'AP_INV_PA_BURDENED_ENC'; -- 4219869 Business Flow
47916 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
47917 l_budgetary_control_flag := 'N';
47918
47919 l_bflow_applied_to_amt_idx := NULL; -- 5132302
47920 l_bflow_applied_to_amt := NULL; -- 5132302
47921 l_entered_amt_idx := NULL; -- 4262811
47922 l_accted_amt_idx := NULL; -- 4262811
47923 l_acc_rev_flag := NULL; -- 4262811
47924 l_accrual_line_num := NULL; -- 4262811
47925 l_tmp_amt := NULL; -- 4262811
47926 --
47927
47928 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
47929 l_balance_type_code <> 'B' THEN
47930 IF NVL(p_source_34,'
47931 ') = 'E' AND
47932 NVL(p_source_69,'
47933 ') = 'AP' AND
47934 NVL(p_source_70,'
47935 ') <> 'Y'
47936 THEN
47937
47938 --
47939 XLA_AE_LINES_PKG.SetNewLine;
47940
47941 p_balance_type_code := l_balance_type_code;
47942 -- set the flag so later we will know whether the gain loss line needs to be created
47943
47944 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
47945 p_actual_flag :='A';
47946 END IF;
47947
47948 --
47949 -- bulk performance
47950 --
47951 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
47952 p_header_num => 0); -- 4262811
47953 --
47954 -- set accounting line options
47955 --
47956 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
47957 p_natural_side_code => 'C'
47958 , p_gain_or_loss_flag => 'N'
47959 , p_gl_transfer_mode_code => 'S'
47960 , p_acct_entry_type_code => 'E'
47961 , p_switch_side_flag => 'N'
47962 , p_merge_duplicate_code => 'N'
47963 );
47964 --
47965 l_acc_rev_natural_side_code := 'D'; -- 4262811
47966 --
47967 --
47968 -- set accounting line type info
47969 --
47970 xla_ae_lines_pkg.SetAcctLineType
47971 (p_component_type => l_component_type
47972 ,p_event_type_code => l_event_type_code
47973 ,p_line_definition_owner_code => l_line_definition_owner_code
47974 ,p_line_definition_code => l_line_definition_code
47975 ,p_accounting_line_code => l_component_code
47976 ,p_accounting_line_type_code => l_component_type_code
47977 ,p_accounting_line_appl_id => l_component_appl_id
47978 ,p_amb_context_code => l_amb_context_code
47979 ,p_entity_code => l_entity_code
47980 ,p_event_class_code => l_event_class_code);
47981 --
47982 -- set accounting class
47983 --
47984 xla_ae_lines_pkg.SetAcctClass(
47985 p_accounting_class_code => 'AP_INV_PA_BURDENED'
47986 , p_ae_header_id => l_ae_header_id
47987 );
47988
47989 --
47990 -- set rounding class
47991 --
47992 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
47993 'AP_INV_PA_BURDENED';
47994
47995 --
47999 -- bulk performance
47996 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
47997 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
47998 --
48000 --
48001 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48002
48003 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48004 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48005
48006 -- 4955764
48007 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48008 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48009
48010 -- 4458381 Public Sector Enh
48011
48012 --
48013 -- set accounting attributes for the line type
48014 --
48015 l_entered_amt_idx := 40;
48016 l_accted_amt_idx := 43;
48017 l_bflow_applied_to_amt_idx := 19; -- 5132302
48018 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48019 l_rec_acct_attrs.array_char_value(1) := p_source_22;
48020 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
48021 l_rec_acct_attrs.array_char_value(2) := p_source_23;
48022 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
48023 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
48024 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
48025 l_rec_acct_attrs.array_num_value(4) := p_source_44;
48026 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
48027 l_rec_acct_attrs.array_char_value(5) := p_source_25;
48028 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
48029 l_rec_acct_attrs.array_num_value(6) := p_source_45;
48030 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
48031 l_rec_acct_attrs.array_date_value(7) := p_source_27;
48032 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
48033 l_rec_acct_attrs.array_num_value(8) := p_source_28;
48034 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
48035 l_rec_acct_attrs.array_char_value(9) := p_source_29;
48036 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
48037 l_rec_acct_attrs.array_char_value(10) := p_source_30;
48038 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
48039 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
48040 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
48041 l_rec_acct_attrs.array_num_value(12) := p_source_44;
48042 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
48043 l_rec_acct_attrs.array_char_value(13) := p_source_25;
48044 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
48045 l_rec_acct_attrs.array_num_value(14) := p_source_45;
48046 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
48047 l_rec_acct_attrs.array_date_value(15) := p_source_27;
48048 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
48049 l_rec_acct_attrs.array_num_value(16) := p_source_28;
48050 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
48051 l_rec_acct_attrs.array_char_value(17) := p_source_29;
48052 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
48053 l_rec_acct_attrs.array_char_value(18) := p_source_31;
48054 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
48055 l_rec_acct_attrs.array_num_value(19) := p_source_46;
48056 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
48057 l_rec_acct_attrs.array_num_value(20) := p_source_73;
48058 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48059 l_rec_acct_attrs.array_char_value(21) := p_source_74;
48060 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
48061 l_rec_acct_attrs.array_char_value(22) := p_source_75;
48062 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
48063 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_76);
48064 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48065 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_77);
48066 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
48067 l_rec_acct_attrs.array_char_value(25) := p_source_78;
48068 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
48069 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
48070 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
48071 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
48072 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
48073 l_rec_acct_attrs.array_char_value(28) := p_source_34;
48074 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
48075 l_rec_acct_attrs.array_char_value(29) := p_source_53;
48076 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
48077 l_rec_acct_attrs.array_num_value(30) := p_source_2;
48078 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
48079 l_rec_acct_attrs.array_num_value(31) := p_source_46;
48080 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
48081 l_rec_acct_attrs.array_char_value(32) :=
48082 xla_ae_sources_pkg.GetSystemSourceChar(
48083 p_source_code => 'XLA_CURRENCY_CODE'
48084 , p_source_type_code => 'Y'
48085 , p_source_application_id => 602
48086 );
48087 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
48091 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
48088 l_rec_acct_attrs.array_num_value(33) := p_source_46;
48089 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
48090 l_rec_acct_attrs.array_char_value(34) := p_source_54;
48092 l_rec_acct_attrs.array_num_value(35) := p_source_2;
48093 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
48094 l_rec_acct_attrs.array_num_value(36) := p_source_46;
48095 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
48096 l_rec_acct_attrs.array_char_value(37) :=
48097 xla_ae_sources_pkg.GetSystemSourceChar(
48098 p_source_code => 'XLA_CURRENCY_CODE'
48099 , p_source_type_code => 'Y'
48100 , p_source_application_id => 602
48101 );
48102 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
48103 l_rec_acct_attrs.array_num_value(38) := p_source_46;
48104 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
48105 l_rec_acct_attrs.array_char_value(39) := p_source_55;
48106 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
48107 l_rec_acct_attrs.array_num_value(40) := p_source_46;
48108 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
48109 l_rec_acct_attrs.array_char_value(41) := p_source_25;
48110 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
48111 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
48112 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
48113 l_rec_acct_attrs.array_num_value(43) := p_source_46;
48114 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
48115 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
48116 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
48117 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
48118 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
48119 l_rec_acct_attrs.array_char_value(46) := p_source_34;
48120 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
48121 l_rec_acct_attrs.array_num_value(47) := p_source_56;
48122 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
48123 l_rec_acct_attrs.array_num_value(48) := p_source_57;
48124
48125 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48126 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48127
48128 ---------------------------------------------------------------------------------------------------------------
48129 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48130 ---------------------------------------------------------------------------------------------------------------
48131 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48132
48133 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48134 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48135
48136 IF xla_accounting_cache_pkg.GetValueChar
48137 (p_source_code => 'LEDGER_CATEGORY_CODE'
48138 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48139 AND l_bflow_method_code = 'PRIOR_ENTRY'
48140 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48141 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48142 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48143 )
48144 THEN
48145 xla_ae_lines_pkg.BflowUpgEntry
48146 (p_business_method_code => l_bflow_method_code
48147 ,p_business_class_code => l_bflow_class_code
48148 ,p_balance_type => l_balance_type_code);
48149 ELSE
48150 NULL;
48151 XLA_AE_LINES_PKG.business_flow_validation(
48152 p_business_method_code => l_bflow_method_code
48153 ,p_business_class_code => l_bflow_class_code
48154 ,p_inherit_description_flag => l_inherit_desc_flag);
48155 END IF;
48156
48157 --
48158 -- call analytical criteria
48159 --
48160 -- Inherited Analytical Criteria for business flow method of Prior Entry.
48161 --
48162 -- call description
48163 --
48164 -- No description or it is inherited.
48165 --
48166 -- call ADRs
48167 -- Bug 4922099
48168 --
48169 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48170 (NVL(l_actual_upg_option, 'N') = 'O') OR
48171 (NVL(l_enc_upg_option, 'N') = 'O')
48172 )
48173 THEN
48174 NULL;
48175 --
48176 --
48177
48178 --
48179 --
48180 END IF;
48181 --
48182 -- Bug 4922099
48183 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48184 (NVL(l_enc_upg_option, 'N') = 'O')
48185 ) AND
48186 (l_bflow_method_code = 'PRIOR_ENTRY')
48187 )
48188 THEN
48189 IF
48190 --
48191 1 = 1
48192 --
48193 THEN
48194 xla_accounting_err_pkg.build_message
48195 (p_appli_s_name => 'XLA'
48196 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48197 ,p_token_1 => 'LINE_NUMBER'
48201 l_component_type
48198 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48199 ,p_token_2 => 'LINE_TYPE_NAME'
48200 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48202 ,l_component_code
48203 ,l_component_type_code
48204 ,l_component_appl_id
48205 ,l_amb_context_code
48206 ,l_entity_code
48207 ,l_event_class_code
48208 )
48209 ,p_token_3 => 'OWNER'
48210 ,p_value_3 => xla_lookups_pkg.get_meaning(
48211 p_lookup_type => 'XLA_OWNER_TYPE'
48212 ,p_lookup_code => l_component_type_code
48213 )
48214 ,p_token_4 => 'PRODUCT_NAME'
48215 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48216 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48217 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48218 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48219 ,p_ae_header_id => NULL
48220 );
48221
48222 IF (C_LEVEL_ERROR>= g_log_level) THEN
48223 trace
48224 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48225 ,p_level => C_LEVEL_ERROR
48226 ,p_module => l_log_module);
48227 END IF;
48228 END IF;
48229 END IF;
48230 --
48231 --
48232 ------------------------------------------------------------------------------------------------
48233 -- 4219869 Business Flow
48234 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48235 -- Prior Entry. Currently, the following code is always generated.
48236 ------------------------------------------------------------------------------------------------
48237 -- No ValidateCurrentLine for business flow method of Prior Entry
48238
48239 ------------------------------------------------------------------------------------
48240 -- 4219869 Business Flow
48241 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48242 ------------------------------------------------------------------------------------
48243 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48244
48245 ----------------------------------------------------------------------------------
48246 -- 4219869 Business Flow
48247 -- Update journal entry status -- Need to generate this within IF <condition>
48248 ----------------------------------------------------------------------------------
48249 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48250 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48251 ,p_balance_type_code => l_balance_type_code
48252 );
48253
48254 -------------------------------------------------------------------------------------------
48255 -- 4262811 - Generate the Accrual Reversal lines
48256 -------------------------------------------------------------------------------------------
48257 BEGIN
48258 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48259 (g_array_event(p_event_id).array_value_num('header_index'));
48260 IF l_acc_rev_flag IS NULL THEN
48261 l_acc_rev_flag := 'N';
48262 END IF;
48263 EXCEPTION
48264 WHEN OTHERS THEN
48265 l_acc_rev_flag := 'N';
48266 END;
48267 --
48268 IF (l_acc_rev_flag = 'Y') THEN
48269
48270 -- 4645092 ------------------------------------------------------------------------------
48271 -- To allow MPA report to determine if it should generate report process
48272 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48273 ------------------------------------------------------------------------------------------
48274
48275 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48276 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48277
48278 --
48279 -- Update the line information that should be overwritten
48280 --
48281 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48282 p_header_num => 1);
48283 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48284
48285 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48286
48287 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48291 --
48288 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48289 END IF;
48290
48292 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48293 --
48294 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48295 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48296 ELSE
48297 ---------------------------------------------------------------------------------------------------
48298 -- 4262811a Switch Sign
48299 ---------------------------------------------------------------------------------------------------
48300 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48301 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48302 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48303 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48304 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48305 -- 5132302
48306 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48307 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48308
48309 END IF;
48310
48311 -- 4955764
48312 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48313 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48314
48315
48316 XLA_AE_LINES_PKG.ValidateCurrentLine;
48317 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48318
48319 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48320 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48321 ,p_balance_type_code => l_balance_type_code);
48322
48323 END IF;
48324
48325 -----------------------------------------------------------------------------------------
48326 -- 4262811 Multiperiod Accounting
48327 -----------------------------------------------------------------------------------------
48328 -- No MPA option is assigned.
48329
48330
48331 END IF;
48332 END IF;
48333 --
48334
48335 --
48336 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48337 trace
48338 (p_msg => 'END of AcctLineType_98'
48339 ,p_level => C_LEVEL_PROCEDURE
48340 ,p_module => l_log_module);
48341 END IF;
48342 --
48343 EXCEPTION
48344 WHEN xla_exceptions_pkg.application_exception THEN
48345 RAISE;
48346 WHEN OTHERS THEN
48347 xla_exceptions_pkg.raise_message
48348 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_98');
48349 END AcctLineType_98;
48350 --
48351
48352 ---------------------------------------
48353 --
48354 -- PRIVATE FUNCTION
48355 -- AcctLineType_99
48356 --
48357 ---------------------------------------
48358 PROCEDURE AcctLineType_99 (
48359 p_application_id IN NUMBER
48360 ,p_event_id IN NUMBER
48361 ,p_calculate_acctd_flag IN VARCHAR2
48362 ,p_calculate_g_l_flag IN VARCHAR2
48363 ,p_actual_flag IN OUT VARCHAR2
48364 ,p_balance_type_code OUT VARCHAR2
48365 ,p_gain_or_loss_ref OUT VARCHAR2
48366
48367 --Budget Code Combination ID
48368 , p_source_2 IN NUMBER
48369 --Cost CCID
48370 , p_source_3 IN NUMBER
48371 --Cost Clearing CCID
48372 , p_source_6 IN NUMBER
48373 --Reversing Line Flag
48374 , p_source_22 IN VARCHAR2
48375 --Actual Upgrade Credit Accounting Class
48376 , p_source_23 IN VARCHAR2
48377 --Entered Currency Code
48378 , p_source_25 IN VARCHAR2
48379 --Exchange Rate Date
48380 , p_source_27 IN DATE
48381 --Exchange Rate
48382 , p_source_28 IN NUMBER
48383 --Exchange Rate Type
48384 , p_source_29 IN VARCHAR2
48385 --Actual Upgrade Debit Accounting Class
48386 , p_source_30 IN VARCHAR2
48387 --Use Actuals Upgrade Attributes Flag
48388 , p_source_31 IN VARCHAR2
48389 --Expenditure Item ID
48390 , p_source_32 IN NUMBER
48391 --Cost Distribution Line Number
48392 , p_source_33 IN NUMBER
48393 --Line Type
48394 , p_source_34 IN VARCHAR2
48395 , p_source_34_meaning IN VARCHAR2
48396 --Reversed Line Number
48397 , p_source_35 IN NUMBER
48398 --Entered Burdened Cost
48399 , p_source_44 IN NUMBER
48400 --Accounted Burdened Cost
48401 , p_source_45 IN NUMBER
48402 --Encumbrance Amount
48403 , p_source_46 IN NUMBER
48404 --Encumbrance Upgrade Debit Accounting Class
48405 , p_source_54 IN VARCHAR2
48406 --Use Encumbrance Upgrade Attributes Flag
48407 , p_source_55 IN VARCHAR2
48408 --Encumbrance Type ID
48409 , p_source_56 IN NUMBER
48410 --Project Encumbrance Type ID
48411 , p_source_57 IN NUMBER
48412 --Document Type
48413 , p_source_69 IN VARCHAR2
48417 --Invoice Burden Applied to Application Identifier
48414 , p_source_69_meaning IN VARCHAR2
48415 --Encumbrance Journal Lines Reversed Flag
48416 , p_source_70 IN VARCHAR2
48418 , p_source_73 IN NUMBER
48419 --Invoice Burden Applied to Distribution Type
48420 , p_source_74 IN VARCHAR2
48421 --Invoice Burden Applied to Entity Code
48422 , p_source_75 IN VARCHAR2
48423 --Invoice Burden Applied to First Distribution Identifier
48424 , p_source_76 IN NUMBER
48425 --Invoice Burden Applied to First System Transaction Identifier
48426 , p_source_77 IN NUMBER
48427 --Invoice Burden Applied to Second Distribution Identifier
48428 , p_source_78 IN VARCHAR2
48429 )
48430 IS
48431
48432 l_component_type VARCHAR2(80);
48433 l_component_code VARCHAR2(30);
48434 l_component_type_code VARCHAR2(1);
48435 l_component_appl_id INTEGER;
48436 l_amb_context_code VARCHAR2(30);
48437 l_entity_code VARCHAR2(30);
48438 l_event_class_code VARCHAR2(30);
48439 l_ae_header_id NUMBER;
48440 l_event_type_code VARCHAR2(30);
48441 l_line_definition_code VARCHAR2(30);
48442 l_line_definition_owner_code VARCHAR2(1);
48443 --
48444 -- adr variables
48445 l_segment VARCHAR2(30);
48446 l_ccid NUMBER;
48447 l_adr_transaction_coa_id NUMBER;
48448 l_adr_accounting_coa_id NUMBER;
48449 l_adr_flexfield_segment_code VARCHAR2(30);
48450 l_adr_flex_value_set_id NUMBER;
48451 l_adr_value_type_code VARCHAR2(30);
48452 l_adr_value_combination_id NUMBER;
48453 l_adr_value_segment_code VARCHAR2(30);
48454
48455 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
48456 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
48457 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
48458 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
48459
48460 -- 4262811 Variables ------------------------------------------------------------------------------------------
48461 l_entered_amt_idx NUMBER;
48462 l_accted_amt_idx NUMBER;
48463 l_acc_rev_flag VARCHAR2(1);
48464 l_accrual_line_num NUMBER;
48465 l_tmp_amt NUMBER;
48466 l_acc_rev_natural_side_code VARCHAR2(1);
48467
48468 l_num_entries NUMBER;
48469 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
48470 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
48471 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
48472 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
48473 l_recog_line_1 NUMBER;
48474 l_recog_line_2 NUMBER;
48475
48476 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
48477 l_bflow_applied_to_amt NUMBER; -- 5132302
48478 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
48479
48480 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
48481
48482 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
48483 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
48484
48485 ---------------------------------------------------------------------------------------------------------------
48486
48487
48488 --
48489 -- bulk performance
48490 --
48491 l_balance_type_code VARCHAR2(1);
48492 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
48493 l_log_module VARCHAR2(240);
48494
48495 --
48496 -- Upgrade strategy
48497 --
48498 l_actual_upg_option VARCHAR2(1);
48499 l_enc_upg_option VARCHAR2(1);
48500
48501 --
48502 BEGIN
48503 --
48504 IF g_log_enabled THEN
48505 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_99';
48506 END IF;
48507 --
48508 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48509
48510 trace
48511 (p_msg => 'BEGIN of AcctLineType_99'
48512 ,p_level => C_LEVEL_PROCEDURE
48513 ,p_module => l_log_module);
48514
48515 END IF;
48516 --
48517 l_component_type := 'AMB_JLT';
48518 l_component_code := 'REL_INV_BURDENED_ENC';
48519 l_component_type_code := 'S';
48520 l_component_appl_id := 275;
48521 l_amb_context_code := 'DEFAULT';
48522 l_entity_code := 'EXPENDITURES';
48523 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
48524 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
48525 l_line_definition_owner_code := 'S';
48526 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
48527 --
48528 l_balance_type_code := 'E';
48529 l_segment := NULL;
48530 l_ccid := NULL;
48531 l_adr_transaction_coa_id := NULL;
48532 l_adr_accounting_coa_id := NULL;
48533 l_adr_flexfield_segment_code := NULL;
48534 l_adr_flex_value_set_id := NULL;
48535 l_adr_value_type_code := NULL;
48536 l_adr_value_combination_id := NULL;
48537 l_adr_value_segment_code := NULL;
48538
48539 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
48543
48540 l_bflow_class_code := 'AP_INV_PA_BURDENED_ENC'; -- 4219869 Business Flow
48541 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
48542 l_budgetary_control_flag := 'N';
48544 l_bflow_applied_to_amt_idx := NULL; -- 5132302
48545 l_bflow_applied_to_amt := NULL; -- 5132302
48546 l_entered_amt_idx := NULL; -- 4262811
48547 l_accted_amt_idx := NULL; -- 4262811
48548 l_acc_rev_flag := NULL; -- 4262811
48549 l_accrual_line_num := NULL; -- 4262811
48550 l_tmp_amt := NULL; -- 4262811
48551 --
48552
48553 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
48554 l_balance_type_code <> 'B' THEN
48555 IF NVL(p_source_34,'
48556 ') = 'E' AND
48557 NVL(p_source_69,'
48558 ') = 'AP' AND
48559 NVL(p_source_70,'
48560 ') <> 'Y'
48561 THEN
48562
48563 --
48564 XLA_AE_LINES_PKG.SetNewLine;
48565
48566 p_balance_type_code := l_balance_type_code;
48567 -- set the flag so later we will know whether the gain loss line needs to be created
48568
48569 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
48570 p_actual_flag :='A';
48571 END IF;
48572
48573 --
48574 -- bulk performance
48575 --
48576 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
48577 p_header_num => 0); -- 4262811
48578 --
48579 -- set accounting line options
48580 --
48581 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
48582 p_natural_side_code => 'C'
48583 , p_gain_or_loss_flag => 'N'
48584 , p_gl_transfer_mode_code => 'S'
48585 , p_acct_entry_type_code => 'E'
48586 , p_switch_side_flag => 'N'
48587 , p_merge_duplicate_code => 'N'
48588 );
48589 --
48590 l_acc_rev_natural_side_code := 'D'; -- 4262811
48591 --
48592 --
48593 -- set accounting line type info
48594 --
48595 xla_ae_lines_pkg.SetAcctLineType
48596 (p_component_type => l_component_type
48597 ,p_event_type_code => l_event_type_code
48598 ,p_line_definition_owner_code => l_line_definition_owner_code
48599 ,p_line_definition_code => l_line_definition_code
48600 ,p_accounting_line_code => l_component_code
48601 ,p_accounting_line_type_code => l_component_type_code
48602 ,p_accounting_line_appl_id => l_component_appl_id
48603 ,p_amb_context_code => l_amb_context_code
48604 ,p_entity_code => l_entity_code
48605 ,p_event_class_code => l_event_class_code);
48606 --
48607 -- set accounting class
48608 --
48609 xla_ae_lines_pkg.SetAcctClass(
48610 p_accounting_class_code => 'AP_INV_PA_BURDENED'
48611 , p_ae_header_id => l_ae_header_id
48612 );
48613
48614 --
48615 -- set rounding class
48616 --
48617 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
48618 'AP_INV_PA_BURDENED';
48619
48620 --
48621 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
48622 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
48623 --
48624 -- bulk performance
48625 --
48626 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
48627
48628 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
48629 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
48630
48631 -- 4955764
48632 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48633 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
48634
48635 -- 4458381 Public Sector Enh
48636
48637 --
48638 -- set accounting attributes for the line type
48639 --
48640 l_entered_amt_idx := 35;
48641 l_accted_amt_idx := 37;
48642 l_bflow_applied_to_amt_idx := 19; -- 5132302
48643 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
48644 l_rec_acct_attrs.array_char_value(1) := p_source_22;
48645 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
48646 l_rec_acct_attrs.array_char_value(2) := p_source_23;
48647 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
48648 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
48649 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
48650 l_rec_acct_attrs.array_num_value(4) := p_source_44;
48651 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
48652 l_rec_acct_attrs.array_char_value(5) := p_source_25;
48653 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
48654 l_rec_acct_attrs.array_num_value(6) := p_source_45;
48655 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
48656 l_rec_acct_attrs.array_date_value(7) := p_source_27;
48657 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
48658 l_rec_acct_attrs.array_num_value(8) := p_source_28;
48659 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
48663 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
48660 l_rec_acct_attrs.array_char_value(9) := p_source_29;
48661 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
48662 l_rec_acct_attrs.array_char_value(10) := p_source_30;
48664 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
48665 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
48666 l_rec_acct_attrs.array_num_value(12) := p_source_44;
48667 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
48668 l_rec_acct_attrs.array_char_value(13) := p_source_25;
48669 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
48670 l_rec_acct_attrs.array_num_value(14) := p_source_45;
48671 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
48672 l_rec_acct_attrs.array_date_value(15) := p_source_27;
48673 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
48674 l_rec_acct_attrs.array_num_value(16) := p_source_28;
48675 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
48676 l_rec_acct_attrs.array_char_value(17) := p_source_29;
48677 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
48678 l_rec_acct_attrs.array_char_value(18) := p_source_31;
48679 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
48680 l_rec_acct_attrs.array_num_value(19) := p_source_46;
48681 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
48682 l_rec_acct_attrs.array_num_value(20) := p_source_73;
48683 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
48684 l_rec_acct_attrs.array_char_value(21) := p_source_74;
48685 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
48686 l_rec_acct_attrs.array_char_value(22) := p_source_75;
48687 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
48688 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_76);
48689 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
48690 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_77);
48691 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
48692 l_rec_acct_attrs.array_char_value(25) := p_source_78;
48693 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
48694 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
48695 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
48696 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
48697 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
48698 l_rec_acct_attrs.array_char_value(28) := p_source_34;
48699 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
48700 l_rec_acct_attrs.array_char_value(29) := p_source_54;
48701 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
48702 l_rec_acct_attrs.array_num_value(30) := p_source_2;
48703 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
48704 l_rec_acct_attrs.array_num_value(31) := p_source_46;
48705 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
48706 l_rec_acct_attrs.array_char_value(32) :=
48707 xla_ae_sources_pkg.GetSystemSourceChar(
48708 p_source_code => 'XLA_CURRENCY_CODE'
48709 , p_source_type_code => 'Y'
48710 , p_source_application_id => 602
48711 );
48712 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
48713 l_rec_acct_attrs.array_num_value(33) := p_source_46;
48714 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
48715 l_rec_acct_attrs.array_char_value(34) := p_source_55;
48716 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
48717 l_rec_acct_attrs.array_num_value(35) := p_source_46;
48718 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
48719 l_rec_acct_attrs.array_char_value(36) := p_source_25;
48720 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
48721 l_rec_acct_attrs.array_num_value(37) := p_source_46;
48722 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
48723 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
48724 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
48725 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
48726 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
48727 l_rec_acct_attrs.array_char_value(40) := p_source_34;
48728 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
48729 l_rec_acct_attrs.array_num_value(41) := p_source_56;
48730 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
48731 l_rec_acct_attrs.array_num_value(42) := p_source_57;
48732
48733 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
48734 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
48735
48736 ---------------------------------------------------------------------------------------------------------------
48737 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
48738 ---------------------------------------------------------------------------------------------------------------
48739 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
48740
48741 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48742 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
48743
48744 IF xla_accounting_cache_pkg.GetValueChar
48748 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
48745 (p_source_code => 'LEDGER_CATEGORY_CODE'
48746 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
48747 AND l_bflow_method_code = 'PRIOR_ENTRY'
48749 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
48750 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
48751 )
48752 THEN
48753 xla_ae_lines_pkg.BflowUpgEntry
48754 (p_business_method_code => l_bflow_method_code
48755 ,p_business_class_code => l_bflow_class_code
48756 ,p_balance_type => l_balance_type_code);
48757 ELSE
48758 NULL;
48759 XLA_AE_LINES_PKG.business_flow_validation(
48760 p_business_method_code => l_bflow_method_code
48761 ,p_business_class_code => l_bflow_class_code
48762 ,p_inherit_description_flag => l_inherit_desc_flag);
48763 END IF;
48764
48765 --
48766 -- call analytical criteria
48767 --
48768 -- Inherited Analytical Criteria for business flow method of Prior Entry.
48769 --
48770 -- call description
48771 --
48772 -- No description or it is inherited.
48773 --
48774 -- call ADRs
48775 -- Bug 4922099
48776 --
48777 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
48778 (NVL(l_actual_upg_option, 'N') = 'O') OR
48779 (NVL(l_enc_upg_option, 'N') = 'O')
48780 )
48781 THEN
48782 NULL;
48783 --
48784 --
48785
48786 --
48787 --
48788 END IF;
48789 --
48790 -- Bug 4922099
48791 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
48792 (NVL(l_enc_upg_option, 'N') = 'O')
48793 ) AND
48794 (l_bflow_method_code = 'PRIOR_ENTRY')
48795 )
48796 THEN
48797 IF
48798 --
48799 1 = 1
48800 --
48801 THEN
48802 xla_accounting_err_pkg.build_message
48803 (p_appli_s_name => 'XLA'
48804 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48805 ,p_token_1 => 'LINE_NUMBER'
48806 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
48807 ,p_token_2 => 'LINE_TYPE_NAME'
48808 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
48809 l_component_type
48810 ,l_component_code
48811 ,l_component_type_code
48812 ,l_component_appl_id
48813 ,l_amb_context_code
48814 ,l_entity_code
48815 ,l_event_class_code
48816 )
48817 ,p_token_3 => 'OWNER'
48818 ,p_value_3 => xla_lookups_pkg.get_meaning(
48819 p_lookup_type => 'XLA_OWNER_TYPE'
48820 ,p_lookup_code => l_component_type_code
48821 )
48822 ,p_token_4 => 'PRODUCT_NAME'
48823 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
48824 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
48825 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
48826 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
48827 ,p_ae_header_id => NULL
48828 );
48829
48830 IF (C_LEVEL_ERROR>= g_log_level) THEN
48831 trace
48832 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
48833 ,p_level => C_LEVEL_ERROR
48834 ,p_module => l_log_module);
48835 END IF;
48836 END IF;
48837 END IF;
48838 --
48839 --
48840 ------------------------------------------------------------------------------------------------
48841 -- 4219869 Business Flow
48842 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
48843 -- Prior Entry. Currently, the following code is always generated.
48844 ------------------------------------------------------------------------------------------------
48845 -- No ValidateCurrentLine for business flow method of Prior Entry
48846
48847 ------------------------------------------------------------------------------------
48848 -- 4219869 Business Flow
48852
48849 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
48850 ------------------------------------------------------------------------------------
48851 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48853 ----------------------------------------------------------------------------------
48854 -- 4219869 Business Flow
48855 -- Update journal entry status -- Need to generate this within IF <condition>
48856 ----------------------------------------------------------------------------------
48857 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48858 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
48859 ,p_balance_type_code => l_balance_type_code
48860 );
48861
48862 -------------------------------------------------------------------------------------------
48863 -- 4262811 - Generate the Accrual Reversal lines
48864 -------------------------------------------------------------------------------------------
48865 BEGIN
48866 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
48867 (g_array_event(p_event_id).array_value_num('header_index'));
48868 IF l_acc_rev_flag IS NULL THEN
48869 l_acc_rev_flag := 'N';
48870 END IF;
48871 EXCEPTION
48872 WHEN OTHERS THEN
48873 l_acc_rev_flag := 'N';
48874 END;
48875 --
48876 IF (l_acc_rev_flag = 'Y') THEN
48877
48878 -- 4645092 ------------------------------------------------------------------------------
48879 -- To allow MPA report to determine if it should generate report process
48880 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
48881 ------------------------------------------------------------------------------------------
48882
48883 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
48884 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
48885
48886 --
48887 -- Update the line information that should be overwritten
48888 --
48889 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
48890 p_header_num => 1);
48891 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
48892
48893 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
48894
48895 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
48896 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
48897 END IF;
48898
48899 --
48900 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
48901 --
48902 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
48903 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
48904 ELSE
48905 ---------------------------------------------------------------------------------------------------
48906 -- 4262811a Switch Sign
48907 ---------------------------------------------------------------------------------------------------
48908 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
48909 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48910 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48911 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
48912 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48913 -- 5132302
48914 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
48915 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
48916
48917 END IF;
48918
48919 -- 4955764
48920 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
48921 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
48922
48923
48924 XLA_AE_LINES_PKG.ValidateCurrentLine;
48925 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
48926
48927 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
48928 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
48929 ,p_balance_type_code => l_balance_type_code);
48930
48931 END IF;
48932
48933 -----------------------------------------------------------------------------------------
48934 -- 4262811 Multiperiod Accounting
48935 -----------------------------------------------------------------------------------------
48936 -- No MPA option is assigned.
48937
48938
48939 END IF;
48940 END IF;
48941 --
48942
48943 --
48944 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
48945 trace
48946 (p_msg => 'END of AcctLineType_99'
48947 ,p_level => C_LEVEL_PROCEDURE
48948 ,p_module => l_log_module);
48949 END IF;
48950 --
48951 EXCEPTION
48952 WHEN xla_exceptions_pkg.application_exception THEN
48953 RAISE;
48954 WHEN OTHERS THEN
48955 xla_exceptions_pkg.raise_message
48959
48956 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_99');
48957 END AcctLineType_99;
48958 --
48960 ---------------------------------------
48961 --
48962 -- PRIVATE FUNCTION
48963 -- AcctLineType_100
48964 --
48965 ---------------------------------------
48966 PROCEDURE AcctLineType_100 (
48967 p_application_id IN NUMBER
48968 ,p_event_id IN NUMBER
48969 ,p_calculate_acctd_flag IN VARCHAR2
48970 ,p_calculate_g_l_flag IN VARCHAR2
48971 ,p_actual_flag IN OUT VARCHAR2
48972 ,p_balance_type_code OUT VARCHAR2
48973 ,p_gain_or_loss_ref OUT VARCHAR2
48974
48975 --Budget Code Combination ID
48976 , p_source_2 IN NUMBER
48977 --Cost CCID
48978 , p_source_3 IN NUMBER
48979 --Cost Clearing CCID
48980 , p_source_6 IN NUMBER
48981 --Reversing Line Flag
48982 , p_source_22 IN VARCHAR2
48983 --Actual Upgrade Credit Accounting Class
48984 , p_source_23 IN VARCHAR2
48985 --Entered Currency Code
48986 , p_source_25 IN VARCHAR2
48987 --Exchange Rate Date
48988 , p_source_27 IN DATE
48989 --Exchange Rate
48990 , p_source_28 IN NUMBER
48991 --Exchange Rate Type
48992 , p_source_29 IN VARCHAR2
48993 --Actual Upgrade Debit Accounting Class
48994 , p_source_30 IN VARCHAR2
48995 --Use Actuals Upgrade Attributes Flag
48996 , p_source_31 IN VARCHAR2
48997 --Expenditure Item ID
48998 , p_source_32 IN NUMBER
48999 --Cost Distribution Line Number
49000 , p_source_33 IN NUMBER
49001 --Line Type
49002 , p_source_34 IN VARCHAR2
49003 , p_source_34_meaning IN VARCHAR2
49004 --Reversed Line Number
49005 , p_source_35 IN NUMBER
49006 --Entered Burdened Cost
49007 , p_source_44 IN NUMBER
49008 --Accounted Burdened Cost
49009 , p_source_45 IN NUMBER
49010 --Encumbrance Amount
49011 , p_source_46 IN NUMBER
49012 --Encumbrance Upgrade Credit Accounting Class
49013 , p_source_53 IN VARCHAR2
49014 --Encumbrance Upgrade Debit Accounting Class
49015 , p_source_54 IN VARCHAR2
49016 --Use Encumbrance Upgrade Attributes Flag
49017 , p_source_55 IN VARCHAR2
49018 --Encumbrance Type ID
49019 , p_source_56 IN NUMBER
49020 --Project Encumbrance Type ID
49021 , p_source_57 IN NUMBER
49022 --Document Type
49023 , p_source_69 IN VARCHAR2
49024 , p_source_69_meaning IN VARCHAR2
49025 --Encumbrance Journal Lines Reversed Flag
49026 , p_source_70 IN VARCHAR2
49027 --Invoice Burden Applied to Application Identifier
49028 , p_source_73 IN NUMBER
49029 --Invoice Burden Applied to Distribution Type
49030 , p_source_74 IN VARCHAR2
49031 --Invoice Burden Applied to Entity Code
49032 , p_source_75 IN VARCHAR2
49033 --Invoice Burden Applied to First Distribution Identifier
49034 , p_source_76 IN NUMBER
49035 --Invoice Burden Applied to First System Transaction Identifier
49036 , p_source_77 IN NUMBER
49037 --Invoice Burden Applied to Second Distribution Identifier
49038 , p_source_78 IN VARCHAR2
49039 )
49040 IS
49041
49042 l_component_type VARCHAR2(80);
49043 l_component_code VARCHAR2(30);
49044 l_component_type_code VARCHAR2(1);
49045 l_component_appl_id INTEGER;
49046 l_amb_context_code VARCHAR2(30);
49047 l_entity_code VARCHAR2(30);
49048 l_event_class_code VARCHAR2(30);
49049 l_ae_header_id NUMBER;
49050 l_event_type_code VARCHAR2(30);
49051 l_line_definition_code VARCHAR2(30);
49052 l_line_definition_owner_code VARCHAR2(1);
49053 --
49054 -- adr variables
49055 l_segment VARCHAR2(30);
49056 l_ccid NUMBER;
49057 l_adr_transaction_coa_id NUMBER;
49058 l_adr_accounting_coa_id NUMBER;
49059 l_adr_flexfield_segment_code VARCHAR2(30);
49060 l_adr_flex_value_set_id NUMBER;
49061 l_adr_value_type_code VARCHAR2(30);
49062 l_adr_value_combination_id NUMBER;
49063 l_adr_value_segment_code VARCHAR2(30);
49064
49065 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49066 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49067 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49068 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49069
49070 -- 4262811 Variables ------------------------------------------------------------------------------------------
49071 l_entered_amt_idx NUMBER;
49072 l_accted_amt_idx NUMBER;
49073 l_acc_rev_flag VARCHAR2(1);
49074 l_accrual_line_num NUMBER;
49075 l_tmp_amt NUMBER;
49076 l_acc_rev_natural_side_code VARCHAR2(1);
49077
49078 l_num_entries NUMBER;
49079 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49080 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49081 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49082 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49083 l_recog_line_1 NUMBER;
49084 l_recog_line_2 NUMBER;
49085
49086 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49090 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49087 l_bflow_applied_to_amt NUMBER; -- 5132302
49088 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49089
49091
49092 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49093 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49094
49095 ---------------------------------------------------------------------------------------------------------------
49096
49097
49098 --
49099 -- bulk performance
49100 --
49101 l_balance_type_code VARCHAR2(1);
49102 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49103 l_log_module VARCHAR2(240);
49104
49105 --
49106 -- Upgrade strategy
49107 --
49108 l_actual_upg_option VARCHAR2(1);
49109 l_enc_upg_option VARCHAR2(1);
49110
49111 --
49112 BEGIN
49113 --
49114 IF g_log_enabled THEN
49115 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_100';
49116 END IF;
49117 --
49118 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49119
49120 trace
49121 (p_msg => 'BEGIN of AcctLineType_100'
49122 ,p_level => C_LEVEL_PROCEDURE
49123 ,p_module => l_log_module);
49124
49125 END IF;
49126 --
49127 l_component_type := 'AMB_JLT';
49128 l_component_code := 'REL_INV_BURDEN_ENC';
49129 l_component_type_code := 'S';
49130 l_component_appl_id := 275;
49131 l_amb_context_code := 'DEFAULT';
49132 l_entity_code := 'EXPENDITURES';
49133 l_event_class_code := 'BURDEN_COST';
49134 l_event_type_code := 'BURDEN_COST_ALL';
49135 l_line_definition_owner_code := 'S';
49136 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
49137 --
49138 l_balance_type_code := 'E';
49139 l_segment := NULL;
49140 l_ccid := NULL;
49141 l_adr_transaction_coa_id := NULL;
49142 l_adr_accounting_coa_id := NULL;
49143 l_adr_flexfield_segment_code := NULL;
49144 l_adr_flex_value_set_id := NULL;
49145 l_adr_value_type_code := NULL;
49146 l_adr_value_combination_id := NULL;
49147 l_adr_value_segment_code := NULL;
49148
49149 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
49150 l_bflow_class_code := 'AP_INV_PA_BURDEN_ENC'; -- 4219869 Business Flow
49151 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49152 l_budgetary_control_flag := 'N';
49153
49154 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49155 l_bflow_applied_to_amt := NULL; -- 5132302
49156 l_entered_amt_idx := NULL; -- 4262811
49157 l_accted_amt_idx := NULL; -- 4262811
49158 l_acc_rev_flag := NULL; -- 4262811
49159 l_accrual_line_num := NULL; -- 4262811
49160 l_tmp_amt := NULL; -- 4262811
49161 --
49162
49163 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49164 l_balance_type_code <> 'B' THEN
49165 IF NVL(p_source_34,'
49166 ') = 'E' AND
49167 NVL(p_source_69,'
49168 ') = 'AP' AND
49169 NVL(p_source_70,'
49170 ') <> 'Y'
49171 THEN
49172
49173 --
49174 XLA_AE_LINES_PKG.SetNewLine;
49175
49176 p_balance_type_code := l_balance_type_code;
49177 -- set the flag so later we will know whether the gain loss line needs to be created
49178
49179 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49180 p_actual_flag :='A';
49181 END IF;
49182
49183 --
49184 -- bulk performance
49185 --
49186 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49187 p_header_num => 0); -- 4262811
49188 --
49189 -- set accounting line options
49190 --
49191 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49192 p_natural_side_code => 'C'
49193 , p_gain_or_loss_flag => 'N'
49194 , p_gl_transfer_mode_code => 'S'
49195 , p_acct_entry_type_code => 'E'
49196 , p_switch_side_flag => 'N'
49197 , p_merge_duplicate_code => 'N'
49198 );
49199 --
49200 l_acc_rev_natural_side_code := 'D'; -- 4262811
49201 --
49202 --
49203 -- set accounting line type info
49204 --
49205 xla_ae_lines_pkg.SetAcctLineType
49206 (p_component_type => l_component_type
49207 ,p_event_type_code => l_event_type_code
49208 ,p_line_definition_owner_code => l_line_definition_owner_code
49209 ,p_line_definition_code => l_line_definition_code
49210 ,p_accounting_line_code => l_component_code
49211 ,p_accounting_line_type_code => l_component_type_code
49212 ,p_accounting_line_appl_id => l_component_appl_id
49213 ,p_amb_context_code => l_amb_context_code
49214 ,p_entity_code => l_entity_code
49215 ,p_event_class_code => l_event_class_code);
49216 --
49217 -- set accounting class
49218 --
49219 xla_ae_lines_pkg.SetAcctClass(
49220 p_accounting_class_code => 'AP_INV_PA_BURDEN'
49224 --
49221 , p_ae_header_id => l_ae_header_id
49222 );
49223
49225 -- set rounding class
49226 --
49227 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49228 'AP_INV_PA_BURDEN';
49229
49230 --
49231 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49232 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49233 --
49234 -- bulk performance
49235 --
49236 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49237
49238 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49239 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49240
49241 -- 4955764
49242 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49243 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49244
49245 -- 4458381 Public Sector Enh
49246
49247 --
49248 -- set accounting attributes for the line type
49249 --
49250 l_entered_amt_idx := 40;
49251 l_accted_amt_idx := 42;
49252 l_bflow_applied_to_amt_idx := 19; -- 5132302
49253 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49254 l_rec_acct_attrs.array_char_value(1) := p_source_22;
49255 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
49256 l_rec_acct_attrs.array_char_value(2) := p_source_23;
49257 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
49258 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
49259 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
49260 l_rec_acct_attrs.array_num_value(4) := p_source_44;
49261 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
49262 l_rec_acct_attrs.array_char_value(5) := p_source_25;
49263 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
49264 l_rec_acct_attrs.array_num_value(6) := p_source_45;
49265 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
49266 l_rec_acct_attrs.array_date_value(7) := p_source_27;
49267 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
49268 l_rec_acct_attrs.array_num_value(8) := p_source_28;
49269 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
49270 l_rec_acct_attrs.array_char_value(9) := p_source_29;
49271 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
49272 l_rec_acct_attrs.array_char_value(10) := p_source_30;
49273 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
49274 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
49275 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
49276 l_rec_acct_attrs.array_num_value(12) := p_source_44;
49277 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
49278 l_rec_acct_attrs.array_char_value(13) := p_source_25;
49279 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
49280 l_rec_acct_attrs.array_num_value(14) := p_source_45;
49281 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
49282 l_rec_acct_attrs.array_date_value(15) := p_source_27;
49283 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
49284 l_rec_acct_attrs.array_num_value(16) := p_source_28;
49285 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
49286 l_rec_acct_attrs.array_char_value(17) := p_source_29;
49287 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
49288 l_rec_acct_attrs.array_char_value(18) := p_source_31;
49289 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
49290 l_rec_acct_attrs.array_num_value(19) := p_source_46;
49291 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
49292 l_rec_acct_attrs.array_num_value(20) := p_source_73;
49293 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49294 l_rec_acct_attrs.array_char_value(21) := p_source_74;
49295 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
49296 l_rec_acct_attrs.array_char_value(22) := p_source_75;
49297 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
49298 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_76);
49299 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49300 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_77);
49301 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
49302 l_rec_acct_attrs.array_char_value(25) := p_source_78;
49303 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
49304 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
49305 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
49306 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
49307 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
49308 l_rec_acct_attrs.array_char_value(28) := p_source_34;
49309 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
49310 l_rec_acct_attrs.array_char_value(29) := p_source_53;
49311 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
49312 l_rec_acct_attrs.array_num_value(30) := p_source_2;
49313 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
49314 l_rec_acct_attrs.array_num_value(31) := p_source_46;
49318 l_rec_acct_attrs.array_num_value(33) := p_source_46;
49315 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
49316 l_rec_acct_attrs.array_char_value(32) := p_source_25;
49317 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
49319 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
49320 l_rec_acct_attrs.array_char_value(34) := p_source_54;
49321 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
49322 l_rec_acct_attrs.array_num_value(35) := p_source_2;
49323 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
49324 l_rec_acct_attrs.array_num_value(36) := p_source_46;
49325 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
49326 l_rec_acct_attrs.array_char_value(37) := p_source_25;
49327 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
49328 l_rec_acct_attrs.array_num_value(38) := p_source_46;
49329 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
49330 l_rec_acct_attrs.array_char_value(39) := p_source_55;
49331 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
49332 l_rec_acct_attrs.array_num_value(40) := p_source_46;
49333 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
49334 l_rec_acct_attrs.array_char_value(41) := p_source_25;
49335 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
49336 l_rec_acct_attrs.array_num_value(42) := p_source_46;
49337 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
49338 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
49339 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
49340 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
49341 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
49342 l_rec_acct_attrs.array_char_value(45) := p_source_34;
49343 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
49344 l_rec_acct_attrs.array_num_value(46) := p_source_56;
49345 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
49346 l_rec_acct_attrs.array_num_value(47) := p_source_57;
49347
49348 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49349 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49350
49351 ---------------------------------------------------------------------------------------------------------------
49352 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49353 ---------------------------------------------------------------------------------------------------------------
49354 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49355
49356 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49357 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49358
49359 IF xla_accounting_cache_pkg.GetValueChar
49360 (p_source_code => 'LEDGER_CATEGORY_CODE'
49361 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49362 AND l_bflow_method_code = 'PRIOR_ENTRY'
49363 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49364 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49365 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49366 )
49367 THEN
49368 xla_ae_lines_pkg.BflowUpgEntry
49369 (p_business_method_code => l_bflow_method_code
49370 ,p_business_class_code => l_bflow_class_code
49371 ,p_balance_type => l_balance_type_code);
49372 ELSE
49373 NULL;
49374 XLA_AE_LINES_PKG.business_flow_validation(
49375 p_business_method_code => l_bflow_method_code
49376 ,p_business_class_code => l_bflow_class_code
49377 ,p_inherit_description_flag => l_inherit_desc_flag);
49378 END IF;
49379
49380 --
49381 -- call analytical criteria
49382 --
49383 -- Inherited Analytical Criteria for business flow method of Prior Entry.
49384 --
49385 -- call description
49386 --
49387 -- No description or it is inherited.
49388 --
49389 -- call ADRs
49390 -- Bug 4922099
49391 --
49392 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
49393 (NVL(l_actual_upg_option, 'N') = 'O') OR
49394 (NVL(l_enc_upg_option, 'N') = 'O')
49395 )
49396 THEN
49397 NULL;
49398 --
49399 --
49400
49401 --
49402 --
49403 END IF;
49404 --
49405 -- Bug 4922099
49406 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
49407 (NVL(l_enc_upg_option, 'N') = 'O')
49408 ) AND
49409 (l_bflow_method_code = 'PRIOR_ENTRY')
49410 )
49411 THEN
49412 IF
49413 --
49414 1 = 1
49415 --
49416 THEN
49417 xla_accounting_err_pkg.build_message
49418 (p_appli_s_name => 'XLA'
49419 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49420 ,p_token_1 => 'LINE_NUMBER'
49421 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
49425 ,l_component_code
49422 ,p_token_2 => 'LINE_TYPE_NAME'
49423 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
49424 l_component_type
49426 ,l_component_type_code
49427 ,l_component_appl_id
49428 ,l_amb_context_code
49429 ,l_entity_code
49430 ,l_event_class_code
49431 )
49432 ,p_token_3 => 'OWNER'
49433 ,p_value_3 => xla_lookups_pkg.get_meaning(
49434 p_lookup_type => 'XLA_OWNER_TYPE'
49435 ,p_lookup_code => l_component_type_code
49436 )
49437 ,p_token_4 => 'PRODUCT_NAME'
49438 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
49439 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
49440 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
49441 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
49442 ,p_ae_header_id => NULL
49443 );
49444
49445 IF (C_LEVEL_ERROR>= g_log_level) THEN
49446 trace
49447 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
49448 ,p_level => C_LEVEL_ERROR
49449 ,p_module => l_log_module);
49450 END IF;
49451 END IF;
49452 END IF;
49453 --
49454 --
49455 ------------------------------------------------------------------------------------------------
49456 -- 4219869 Business Flow
49457 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
49458 -- Prior Entry. Currently, the following code is always generated.
49459 ------------------------------------------------------------------------------------------------
49460 -- No ValidateCurrentLine for business flow method of Prior Entry
49461
49462 ------------------------------------------------------------------------------------
49463 -- 4219869 Business Flow
49464 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
49465 ------------------------------------------------------------------------------------
49466 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49467
49468 ----------------------------------------------------------------------------------
49469 -- 4219869 Business Flow
49470 -- Update journal entry status -- Need to generate this within IF <condition>
49471 ----------------------------------------------------------------------------------
49472 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49473 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
49474 ,p_balance_type_code => l_balance_type_code
49475 );
49476
49477 -------------------------------------------------------------------------------------------
49478 -- 4262811 - Generate the Accrual Reversal lines
49479 -------------------------------------------------------------------------------------------
49480 BEGIN
49481 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
49482 (g_array_event(p_event_id).array_value_num('header_index'));
49483 IF l_acc_rev_flag IS NULL THEN
49484 l_acc_rev_flag := 'N';
49485 END IF;
49486 EXCEPTION
49487 WHEN OTHERS THEN
49488 l_acc_rev_flag := 'N';
49489 END;
49490 --
49491 IF (l_acc_rev_flag = 'Y') THEN
49492
49493 -- 4645092 ------------------------------------------------------------------------------
49494 -- To allow MPA report to determine if it should generate report process
49495 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
49496 ------------------------------------------------------------------------------------------
49497
49498 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
49499 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
49500
49501 --
49502 -- Update the line information that should be overwritten
49503 --
49504 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
49505 p_header_num => 1);
49506 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
49507
49508 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
49509
49510 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
49514 --
49511 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
49512 END IF;
49513
49515 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
49516 --
49517 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
49518 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
49519 ELSE
49520 ---------------------------------------------------------------------------------------------------
49521 -- 4262811a Switch Sign
49522 ---------------------------------------------------------------------------------------------------
49523 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
49524 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49525 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49526 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
49527 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49528 -- 5132302
49529 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
49530 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
49531
49532 END IF;
49533
49534 -- 4955764
49535 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49536 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
49537
49538
49539 XLA_AE_LINES_PKG.ValidateCurrentLine;
49540 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
49541
49542 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
49543 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
49544 ,p_balance_type_code => l_balance_type_code);
49545
49546 END IF;
49547
49548 -----------------------------------------------------------------------------------------
49549 -- 4262811 Multiperiod Accounting
49550 -----------------------------------------------------------------------------------------
49551 -- No MPA option is assigned.
49552
49553
49554 END IF;
49555 END IF;
49556 --
49557
49558 --
49559 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49560 trace
49561 (p_msg => 'END of AcctLineType_100'
49562 ,p_level => C_LEVEL_PROCEDURE
49563 ,p_module => l_log_module);
49564 END IF;
49565 --
49566 EXCEPTION
49567 WHEN xla_exceptions_pkg.application_exception THEN
49568 RAISE;
49569 WHEN OTHERS THEN
49570 xla_exceptions_pkg.raise_message
49571 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_100');
49572 END AcctLineType_100;
49573 --
49574
49575 ---------------------------------------
49576 --
49577 -- PRIVATE FUNCTION
49578 -- AcctLineType_101
49579 --
49580 ---------------------------------------
49581 PROCEDURE AcctLineType_101 (
49582 p_application_id IN NUMBER
49583 ,p_event_id IN NUMBER
49584 ,p_calculate_acctd_flag IN VARCHAR2
49585 ,p_calculate_g_l_flag IN VARCHAR2
49586 ,p_actual_flag IN OUT VARCHAR2
49587 ,p_balance_type_code OUT VARCHAR2
49588 ,p_gain_or_loss_ref OUT VARCHAR2
49589
49590 --Budget Code Combination ID
49591 , p_source_2 IN NUMBER
49592 --Cost CCID
49593 , p_source_3 IN NUMBER
49594 --Cost Clearing CCID
49595 , p_source_6 IN NUMBER
49596 --Reversing Line Flag
49597 , p_source_22 IN VARCHAR2
49598 --Actual Upgrade Credit Accounting Class
49599 , p_source_23 IN VARCHAR2
49600 --Entered Currency Code
49601 , p_source_25 IN VARCHAR2
49602 --Exchange Rate Date
49603 , p_source_27 IN DATE
49604 --Exchange Rate
49605 , p_source_28 IN NUMBER
49606 --Exchange Rate Type
49607 , p_source_29 IN VARCHAR2
49608 --Actual Upgrade Debit Accounting Class
49609 , p_source_30 IN VARCHAR2
49610 --Use Actuals Upgrade Attributes Flag
49611 , p_source_31 IN VARCHAR2
49612 --Expenditure Item ID
49613 , p_source_32 IN NUMBER
49614 --Cost Distribution Line Number
49615 , p_source_33 IN NUMBER
49616 --Line Type
49617 , p_source_34 IN VARCHAR2
49618 , p_source_34_meaning IN VARCHAR2
49619 --Reversed Line Number
49620 , p_source_35 IN NUMBER
49621 --Entered Burdened Cost
49622 , p_source_44 IN NUMBER
49623 --Accounted Burdened Cost
49624 , p_source_45 IN NUMBER
49625 --Encumbrance Amount
49626 , p_source_46 IN NUMBER
49627 --Encumbrance Upgrade Debit Accounting Class
49628 , p_source_54 IN VARCHAR2
49629 --Use Encumbrance Upgrade Attributes Flag
49630 , p_source_55 IN VARCHAR2
49631 --Encumbrance Type ID
49632 , p_source_56 IN NUMBER
49633 --Project Encumbrance Type ID
49634 , p_source_57 IN NUMBER
49635 --Document Type
49636 , p_source_69 IN VARCHAR2
49637 , p_source_69_meaning IN VARCHAR2
49638 --Release ID
49639 , p_source_71 IN NUMBER
49640 --Contingent Worker Timecard Flag
49644 --Purchase Order Burden Applied to Distribution Type
49641 , p_source_72 IN VARCHAR2
49642 --Purchase Order Burden Applied to Application Identifier
49643 , p_source_79 IN NUMBER
49645 , p_source_80 IN VARCHAR2
49646 --Purchase Order Burden Applied to Entity Code
49647 , p_source_81 IN VARCHAR2
49648 --Purchase Order Burden Applied to First Distribution Identifier
49649 , p_source_82 IN NUMBER
49650 --Purchase Order Burden Applied to First System Transaction Identifier
49651 , p_source_83 IN NUMBER
49652 --Purchase Order Burden Applied to Second Distribution Identifier
49653 , p_source_84 IN VARCHAR2
49654 )
49655 IS
49656
49657 l_component_type VARCHAR2(80);
49658 l_component_code VARCHAR2(30);
49659 l_component_type_code VARCHAR2(1);
49660 l_component_appl_id INTEGER;
49661 l_amb_context_code VARCHAR2(30);
49662 l_entity_code VARCHAR2(30);
49663 l_event_class_code VARCHAR2(30);
49664 l_ae_header_id NUMBER;
49665 l_event_type_code VARCHAR2(30);
49666 l_line_definition_code VARCHAR2(30);
49667 l_line_definition_owner_code VARCHAR2(1);
49668 --
49669 -- adr variables
49670 l_segment VARCHAR2(30);
49671 l_ccid NUMBER;
49672 l_adr_transaction_coa_id NUMBER;
49673 l_adr_accounting_coa_id NUMBER;
49674 l_adr_flexfield_segment_code VARCHAR2(30);
49675 l_adr_flex_value_set_id NUMBER;
49676 l_adr_value_type_code VARCHAR2(30);
49677 l_adr_value_combination_id NUMBER;
49678 l_adr_value_segment_code VARCHAR2(30);
49679
49680 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
49681 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
49682 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
49683 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
49684
49685 -- 4262811 Variables ------------------------------------------------------------------------------------------
49686 l_entered_amt_idx NUMBER;
49687 l_accted_amt_idx NUMBER;
49688 l_acc_rev_flag VARCHAR2(1);
49689 l_accrual_line_num NUMBER;
49690 l_tmp_amt NUMBER;
49691 l_acc_rev_natural_side_code VARCHAR2(1);
49692
49693 l_num_entries NUMBER;
49694 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
49695 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
49696 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
49697 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
49698 l_recog_line_1 NUMBER;
49699 l_recog_line_2 NUMBER;
49700
49701 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
49702 l_bflow_applied_to_amt NUMBER; -- 5132302
49703 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
49704
49705 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
49706
49707 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
49708 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
49709
49710 ---------------------------------------------------------------------------------------------------------------
49711
49712
49713 --
49714 -- bulk performance
49715 --
49716 l_balance_type_code VARCHAR2(1);
49717 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
49718 l_log_module VARCHAR2(240);
49719
49720 --
49721 -- Upgrade strategy
49722 --
49723 l_actual_upg_option VARCHAR2(1);
49724 l_enc_upg_option VARCHAR2(1);
49725
49726 --
49727 BEGIN
49728 --
49729 IF g_log_enabled THEN
49730 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_101';
49731 END IF;
49732 --
49733 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
49734
49735 trace
49736 (p_msg => 'BEGIN of AcctLineType_101'
49737 ,p_level => C_LEVEL_PROCEDURE
49738 ,p_module => l_log_module);
49739
49740 END IF;
49741 --
49742 l_component_type := 'AMB_JLT';
49743 l_component_code := 'REL_PO_BURDENED_ENC';
49744 l_component_type_code := 'S';
49745 l_component_appl_id := 275;
49746 l_amb_context_code := 'DEFAULT';
49747 l_entity_code := 'EXPENDITURES';
49748 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
49749 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
49750 l_line_definition_owner_code := 'S';
49751 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
49752 --
49753 l_balance_type_code := 'E';
49754 l_segment := NULL;
49755 l_ccid := NULL;
49756 l_adr_transaction_coa_id := NULL;
49757 l_adr_accounting_coa_id := NULL;
49758 l_adr_flexfield_segment_code := NULL;
49759 l_adr_flex_value_set_id := NULL;
49760 l_adr_value_type_code := NULL;
49761 l_adr_value_combination_id := NULL;
49762 l_adr_value_segment_code := NULL;
49763
49764 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
49765 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
49769 l_bflow_applied_to_amt_idx := NULL; -- 5132302
49766 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
49767 l_budgetary_control_flag := 'N';
49768
49770 l_bflow_applied_to_amt := NULL; -- 5132302
49771 l_entered_amt_idx := NULL; -- 4262811
49772 l_accted_amt_idx := NULL; -- 4262811
49773 l_acc_rev_flag := NULL; -- 4262811
49774 l_accrual_line_num := NULL; -- 4262811
49775 l_tmp_amt := NULL; -- 4262811
49776 --
49777
49778 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
49779 l_balance_type_code <> 'B' THEN
49780 IF NVL(p_source_34,'
49781 ') = 'E' AND
49782 NVL(p_source_69,'
49783 ') = 'PO' AND
49784 p_source_71 IS NULL AND
49785 NVL(p_source_72,'
49786 ') = 'N'
49787 THEN
49788
49789 --
49790 XLA_AE_LINES_PKG.SetNewLine;
49791
49792 p_balance_type_code := l_balance_type_code;
49793 -- set the flag so later we will know whether the gain loss line needs to be created
49794
49795 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
49796 p_actual_flag :='A';
49797 END IF;
49798
49799 --
49800 -- bulk performance
49801 --
49802 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
49803 p_header_num => 0); -- 4262811
49804 --
49805 -- set accounting line options
49806 --
49807 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
49808 p_natural_side_code => 'C'
49809 , p_gain_or_loss_flag => 'N'
49810 , p_gl_transfer_mode_code => 'S'
49811 , p_acct_entry_type_code => 'E'
49812 , p_switch_side_flag => 'N'
49813 , p_merge_duplicate_code => 'N'
49814 );
49815 --
49816 l_acc_rev_natural_side_code := 'D'; -- 4262811
49817 --
49818 --
49819 -- set accounting line type info
49820 --
49821 xla_ae_lines_pkg.SetAcctLineType
49822 (p_component_type => l_component_type
49823 ,p_event_type_code => l_event_type_code
49824 ,p_line_definition_owner_code => l_line_definition_owner_code
49825 ,p_line_definition_code => l_line_definition_code
49826 ,p_accounting_line_code => l_component_code
49827 ,p_accounting_line_type_code => l_component_type_code
49828 ,p_accounting_line_appl_id => l_component_appl_id
49829 ,p_amb_context_code => l_amb_context_code
49830 ,p_entity_code => l_entity_code
49831 ,p_event_class_code => l_event_class_code);
49832 --
49833 -- set accounting class
49834 --
49835 xla_ae_lines_pkg.SetAcctClass(
49836 p_accounting_class_code => 'PO_PA_BURDENED'
49837 , p_ae_header_id => l_ae_header_id
49838 );
49839
49840 --
49841 -- set rounding class
49842 --
49843 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
49844 'PO_PA_BURDENED';
49845
49846 --
49847 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
49848 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
49849 --
49850 -- bulk performance
49851 --
49852 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
49853
49854 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
49855 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
49856
49857 -- 4955764
49858 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
49859 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
49860
49861 -- 4458381 Public Sector Enh
49862
49863 --
49864 -- set accounting attributes for the line type
49865 --
49866 l_entered_amt_idx := 35;
49867 l_accted_amt_idx := 37;
49868 l_bflow_applied_to_amt_idx := 19; -- 5132302
49869 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
49870 l_rec_acct_attrs.array_char_value(1) := p_source_22;
49871 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
49872 l_rec_acct_attrs.array_char_value(2) := p_source_23;
49873 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
49874 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
49875 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
49876 l_rec_acct_attrs.array_num_value(4) := p_source_44;
49877 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
49878 l_rec_acct_attrs.array_char_value(5) := p_source_25;
49879 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
49880 l_rec_acct_attrs.array_num_value(6) := p_source_45;
49881 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
49882 l_rec_acct_attrs.array_date_value(7) := p_source_27;
49883 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
49884 l_rec_acct_attrs.array_num_value(8) := p_source_28;
49885 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
49886 l_rec_acct_attrs.array_char_value(9) := p_source_29;
49890 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
49887 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
49888 l_rec_acct_attrs.array_char_value(10) := p_source_30;
49889 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
49891 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
49892 l_rec_acct_attrs.array_num_value(12) := p_source_44;
49893 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
49894 l_rec_acct_attrs.array_char_value(13) := p_source_25;
49895 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
49896 l_rec_acct_attrs.array_num_value(14) := p_source_45;
49897 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
49898 l_rec_acct_attrs.array_date_value(15) := p_source_27;
49899 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
49900 l_rec_acct_attrs.array_num_value(16) := p_source_28;
49901 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
49902 l_rec_acct_attrs.array_char_value(17) := p_source_29;
49903 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
49904 l_rec_acct_attrs.array_char_value(18) := p_source_31;
49905 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
49906 l_rec_acct_attrs.array_num_value(19) := p_source_46;
49907 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
49908 l_rec_acct_attrs.array_num_value(20) := p_source_79;
49909 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
49910 l_rec_acct_attrs.array_char_value(21) := p_source_80;
49911 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
49912 l_rec_acct_attrs.array_char_value(22) := p_source_81;
49913 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
49914 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_82);
49915 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
49916 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_83);
49917 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
49918 l_rec_acct_attrs.array_char_value(25) := p_source_84;
49919 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
49920 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
49921 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
49922 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
49923 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
49924 l_rec_acct_attrs.array_char_value(28) := p_source_34;
49925 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
49926 l_rec_acct_attrs.array_char_value(29) := p_source_54;
49927 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
49928 l_rec_acct_attrs.array_num_value(30) := p_source_2;
49929 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
49930 l_rec_acct_attrs.array_num_value(31) := p_source_46;
49931 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
49932 l_rec_acct_attrs.array_char_value(32) :=
49933 xla_ae_sources_pkg.GetSystemSourceChar(
49934 p_source_code => 'XLA_CURRENCY_CODE'
49935 , p_source_type_code => 'Y'
49936 , p_source_application_id => 602
49937 );
49938 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
49939 l_rec_acct_attrs.array_num_value(33) := p_source_46;
49940 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
49941 l_rec_acct_attrs.array_char_value(34) := p_source_55;
49942 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
49943 l_rec_acct_attrs.array_num_value(35) := p_source_46;
49944 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
49945 l_rec_acct_attrs.array_char_value(36) := p_source_25;
49946 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
49947 l_rec_acct_attrs.array_num_value(37) := p_source_46;
49948 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
49949 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
49950 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
49951 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
49952 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
49953 l_rec_acct_attrs.array_char_value(40) := p_source_34;
49954 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
49955 l_rec_acct_attrs.array_num_value(41) := p_source_56;
49956 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
49957 l_rec_acct_attrs.array_num_value(42) := p_source_57;
49958
49959 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
49960 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
49961
49962 ---------------------------------------------------------------------------------------------------------------
49963 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
49964 ---------------------------------------------------------------------------------------------------------------
49965 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
49966
49967 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49968 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
49969
49973 AND l_bflow_method_code = 'PRIOR_ENTRY'
49970 IF xla_accounting_cache_pkg.GetValueChar
49971 (p_source_code => 'LEDGER_CATEGORY_CODE'
49972 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
49974 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
49975 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
49976 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
49977 )
49978 THEN
49979 xla_ae_lines_pkg.BflowUpgEntry
49980 (p_business_method_code => l_bflow_method_code
49981 ,p_business_class_code => l_bflow_class_code
49982 ,p_balance_type => l_balance_type_code);
49983 ELSE
49984 NULL;
49985 XLA_AE_LINES_PKG.business_flow_validation(
49986 p_business_method_code => l_bflow_method_code
49987 ,p_business_class_code => l_bflow_class_code
49988 ,p_inherit_description_flag => l_inherit_desc_flag);
49989 END IF;
49990
49991 --
49992 -- call analytical criteria
49993 --
49994 -- Inherited Analytical Criteria for business flow method of Prior Entry.
49995 --
49996 -- call description
49997 --
49998 -- No description or it is inherited.
49999 --
50000 -- call ADRs
50001 -- Bug 4922099
50002 --
50003 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50004 (NVL(l_actual_upg_option, 'N') = 'O') OR
50005 (NVL(l_enc_upg_option, 'N') = 'O')
50006 )
50007 THEN
50008 NULL;
50009 --
50010 --
50011
50012 --
50013 --
50014 END IF;
50015 --
50016 -- Bug 4922099
50017 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50018 (NVL(l_enc_upg_option, 'N') = 'O')
50019 ) AND
50020 (l_bflow_method_code = 'PRIOR_ENTRY')
50021 )
50022 THEN
50023 IF
50024 --
50025 1 = 1
50026 --
50027 THEN
50028 xla_accounting_err_pkg.build_message
50029 (p_appli_s_name => 'XLA'
50030 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50031 ,p_token_1 => 'LINE_NUMBER'
50032 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50033 ,p_token_2 => 'LINE_TYPE_NAME'
50034 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50035 l_component_type
50036 ,l_component_code
50037 ,l_component_type_code
50038 ,l_component_appl_id
50039 ,l_amb_context_code
50040 ,l_entity_code
50041 ,l_event_class_code
50042 )
50043 ,p_token_3 => 'OWNER'
50044 ,p_value_3 => xla_lookups_pkg.get_meaning(
50045 p_lookup_type => 'XLA_OWNER_TYPE'
50046 ,p_lookup_code => l_component_type_code
50047 )
50048 ,p_token_4 => 'PRODUCT_NAME'
50049 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50050 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50051 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50052 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50053 ,p_ae_header_id => NULL
50054 );
50055
50056 IF (C_LEVEL_ERROR>= g_log_level) THEN
50057 trace
50058 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50059 ,p_level => C_LEVEL_ERROR
50060 ,p_module => l_log_module);
50061 END IF;
50062 END IF;
50063 END IF;
50064 --
50065 --
50066 ------------------------------------------------------------------------------------------------
50067 -- 4219869 Business Flow
50068 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50069 -- Prior Entry. Currently, the following code is always generated.
50070 ------------------------------------------------------------------------------------------------
50071 -- No ValidateCurrentLine for business flow method of Prior Entry
50072
50073 ------------------------------------------------------------------------------------
50074 -- 4219869 Business Flow
50078
50075 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50076 ------------------------------------------------------------------------------------
50077 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50079 ----------------------------------------------------------------------------------
50080 -- 4219869 Business Flow
50081 -- Update journal entry status -- Need to generate this within IF <condition>
50082 ----------------------------------------------------------------------------------
50083 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50084 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50085 ,p_balance_type_code => l_balance_type_code
50086 );
50087
50088 -------------------------------------------------------------------------------------------
50089 -- 4262811 - Generate the Accrual Reversal lines
50090 -------------------------------------------------------------------------------------------
50091 BEGIN
50092 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50093 (g_array_event(p_event_id).array_value_num('header_index'));
50094 IF l_acc_rev_flag IS NULL THEN
50095 l_acc_rev_flag := 'N';
50096 END IF;
50097 EXCEPTION
50098 WHEN OTHERS THEN
50099 l_acc_rev_flag := 'N';
50100 END;
50101 --
50102 IF (l_acc_rev_flag = 'Y') THEN
50103
50104 -- 4645092 ------------------------------------------------------------------------------
50105 -- To allow MPA report to determine if it should generate report process
50106 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50107 ------------------------------------------------------------------------------------------
50108
50109 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50110 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50111
50112 --
50113 -- Update the line information that should be overwritten
50114 --
50115 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50116 p_header_num => 1);
50117 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50118
50119 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50120
50121 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50122 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50123 END IF;
50124
50125 --
50126 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50127 --
50128 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50129 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50130 ELSE
50131 ---------------------------------------------------------------------------------------------------
50132 -- 4262811a Switch Sign
50133 ---------------------------------------------------------------------------------------------------
50134 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50135 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50136 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50137 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50138 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50139 -- 5132302
50140 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50141 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50142
50143 END IF;
50144
50145 -- 4955764
50146 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50147 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50148
50149
50150 XLA_AE_LINES_PKG.ValidateCurrentLine;
50151 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50152
50153 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50154 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50155 ,p_balance_type_code => l_balance_type_code);
50156
50157 END IF;
50158
50159 -----------------------------------------------------------------------------------------
50160 -- 4262811 Multiperiod Accounting
50161 -----------------------------------------------------------------------------------------
50162 -- No MPA option is assigned.
50163
50164
50165 END IF;
50166 END IF;
50167 --
50168
50169 --
50170 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50171 trace
50172 (p_msg => 'END of AcctLineType_101'
50173 ,p_level => C_LEVEL_PROCEDURE
50174 ,p_module => l_log_module);
50175 END IF;
50176 --
50177 EXCEPTION
50178 WHEN xla_exceptions_pkg.application_exception THEN
50179 RAISE;
50180 WHEN OTHERS THEN
50181 xla_exceptions_pkg.raise_message
50182 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_101');
50183 END AcctLineType_101;
50184 --
50185
50189 -- AcctLineType_102
50186 ---------------------------------------
50187 --
50188 -- PRIVATE FUNCTION
50190 --
50191 ---------------------------------------
50192 PROCEDURE AcctLineType_102 (
50193 p_application_id IN NUMBER
50194 ,p_event_id IN NUMBER
50195 ,p_calculate_acctd_flag IN VARCHAR2
50196 ,p_calculate_g_l_flag IN VARCHAR2
50197 ,p_actual_flag IN OUT VARCHAR2
50198 ,p_balance_type_code OUT VARCHAR2
50199 ,p_gain_or_loss_ref OUT VARCHAR2
50200
50201 --Budget Code Combination ID
50202 , p_source_2 IN NUMBER
50203 --Cost CCID
50204 , p_source_3 IN NUMBER
50205 --Cost Clearing CCID
50206 , p_source_6 IN NUMBER
50207 --Reversing Line Flag
50208 , p_source_22 IN VARCHAR2
50209 --Actual Upgrade Credit Accounting Class
50210 , p_source_23 IN VARCHAR2
50211 --Entered Currency Code
50212 , p_source_25 IN VARCHAR2
50213 --Exchange Rate Date
50214 , p_source_27 IN DATE
50215 --Exchange Rate
50216 , p_source_28 IN NUMBER
50217 --Exchange Rate Type
50218 , p_source_29 IN VARCHAR2
50219 --Actual Upgrade Debit Accounting Class
50220 , p_source_30 IN VARCHAR2
50221 --Use Actuals Upgrade Attributes Flag
50222 , p_source_31 IN VARCHAR2
50223 --Expenditure Item ID
50224 , p_source_32 IN NUMBER
50225 --Cost Distribution Line Number
50226 , p_source_33 IN NUMBER
50227 --Line Type
50228 , p_source_34 IN VARCHAR2
50229 , p_source_34_meaning IN VARCHAR2
50230 --Reversed Line Number
50231 , p_source_35 IN NUMBER
50232 --Entered Burdened Cost
50233 , p_source_44 IN NUMBER
50234 --Accounted Burdened Cost
50235 , p_source_45 IN NUMBER
50236 --Encumbrance Amount
50237 , p_source_46 IN NUMBER
50238 --Encumbrance Upgrade Credit Accounting Class
50239 , p_source_53 IN VARCHAR2
50240 --Encumbrance Upgrade Debit Accounting Class
50241 , p_source_54 IN VARCHAR2
50242 --Use Encumbrance Upgrade Attributes Flag
50243 , p_source_55 IN VARCHAR2
50244 --Encumbrance Type ID
50245 , p_source_56 IN NUMBER
50246 --Project Encumbrance Type ID
50247 , p_source_57 IN NUMBER
50248 --Document Type
50249 , p_source_69 IN VARCHAR2
50250 , p_source_69_meaning IN VARCHAR2
50251 --Release ID
50252 , p_source_71 IN NUMBER
50253 --Contingent Worker Timecard Flag
50254 , p_source_72 IN VARCHAR2
50255 --Purchase Order Burden Applied to Application Identifier
50256 , p_source_79 IN NUMBER
50257 --Purchase Order Burden Applied to Distribution Type
50258 , p_source_80 IN VARCHAR2
50259 --Purchase Order Burden Applied to Entity Code
50260 , p_source_81 IN VARCHAR2
50261 --Purchase Order Burden Applied to First Distribution Identifier
50262 , p_source_82 IN NUMBER
50263 --Purchase Order Burden Applied to First System Transaction Identifier
50264 , p_source_83 IN NUMBER
50265 --Purchase Order Burden Applied to Second Distribution Identifier
50266 , p_source_84 IN VARCHAR2
50267 )
50268 IS
50269
50270 l_component_type VARCHAR2(80);
50271 l_component_code VARCHAR2(30);
50272 l_component_type_code VARCHAR2(1);
50273 l_component_appl_id INTEGER;
50274 l_amb_context_code VARCHAR2(30);
50275 l_entity_code VARCHAR2(30);
50276 l_event_class_code VARCHAR2(30);
50277 l_ae_header_id NUMBER;
50278 l_event_type_code VARCHAR2(30);
50279 l_line_definition_code VARCHAR2(30);
50280 l_line_definition_owner_code VARCHAR2(1);
50281 --
50282 -- adr variables
50283 l_segment VARCHAR2(30);
50284 l_ccid NUMBER;
50285 l_adr_transaction_coa_id NUMBER;
50286 l_adr_accounting_coa_id NUMBER;
50287 l_adr_flexfield_segment_code VARCHAR2(30);
50288 l_adr_flex_value_set_id NUMBER;
50289 l_adr_value_type_code VARCHAR2(30);
50290 l_adr_value_combination_id NUMBER;
50291 l_adr_value_segment_code VARCHAR2(30);
50292
50293 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50294 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50295 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50296 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50297
50298 -- 4262811 Variables ------------------------------------------------------------------------------------------
50299 l_entered_amt_idx NUMBER;
50300 l_accted_amt_idx NUMBER;
50301 l_acc_rev_flag VARCHAR2(1);
50302 l_accrual_line_num NUMBER;
50303 l_tmp_amt NUMBER;
50304 l_acc_rev_natural_side_code VARCHAR2(1);
50305
50306 l_num_entries NUMBER;
50307 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50308 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50309 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50310 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50311 l_recog_line_1 NUMBER;
50312 l_recog_line_2 NUMBER;
50313
50314 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50318 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50315 l_bflow_applied_to_amt NUMBER; -- 5132302
50316 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50317
50319
50320 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50321 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50322
50323 ---------------------------------------------------------------------------------------------------------------
50324
50325
50326 --
50327 -- bulk performance
50328 --
50329 l_balance_type_code VARCHAR2(1);
50330 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50331 l_log_module VARCHAR2(240);
50332
50333 --
50334 -- Upgrade strategy
50335 --
50336 l_actual_upg_option VARCHAR2(1);
50337 l_enc_upg_option VARCHAR2(1);
50338
50339 --
50340 BEGIN
50341 --
50342 IF g_log_enabled THEN
50343 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_102';
50344 END IF;
50345 --
50346 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50347
50348 trace
50349 (p_msg => 'BEGIN of AcctLineType_102'
50350 ,p_level => C_LEVEL_PROCEDURE
50351 ,p_module => l_log_module);
50352
50353 END IF;
50354 --
50355 l_component_type := 'AMB_JLT';
50356 l_component_code := 'REL_PO_BURDENED_ENC';
50357 l_component_type_code := 'S';
50358 l_component_appl_id := 275;
50359 l_amb_context_code := 'DEFAULT';
50360 l_entity_code := 'EXPENDITURES';
50361 l_event_class_code := 'TOT_BURDENED_COST';
50362 l_event_type_code := 'TOT_BURDENED_COST_ALL';
50363 l_line_definition_owner_code := 'S';
50364 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
50365 --
50366 l_balance_type_code := 'E';
50367 l_segment := NULL;
50368 l_ccid := NULL;
50369 l_adr_transaction_coa_id := NULL;
50370 l_adr_accounting_coa_id := NULL;
50371 l_adr_flexfield_segment_code := NULL;
50372 l_adr_flex_value_set_id := NULL;
50373 l_adr_value_type_code := NULL;
50374 l_adr_value_combination_id := NULL;
50375 l_adr_value_segment_code := NULL;
50376
50377 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
50378 l_bflow_class_code := 'PO_PA_BURDENED_ENC'; -- 4219869 Business Flow
50379 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
50380 l_budgetary_control_flag := 'N';
50381
50382 l_bflow_applied_to_amt_idx := NULL; -- 5132302
50383 l_bflow_applied_to_amt := NULL; -- 5132302
50384 l_entered_amt_idx := NULL; -- 4262811
50385 l_accted_amt_idx := NULL; -- 4262811
50386 l_acc_rev_flag := NULL; -- 4262811
50387 l_accrual_line_num := NULL; -- 4262811
50388 l_tmp_amt := NULL; -- 4262811
50389 --
50390
50391 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
50392 l_balance_type_code <> 'B' THEN
50393 IF NVL(p_source_34,'
50394 ') = 'E' AND
50395 NVL(p_source_69,'
50396 ') = 'PO' AND
50397 p_source_71 IS NULL AND
50398 NVL(p_source_72,'
50399 ') = 'N'
50400 THEN
50401
50402 --
50403 XLA_AE_LINES_PKG.SetNewLine;
50404
50405 p_balance_type_code := l_balance_type_code;
50406 -- set the flag so later we will know whether the gain loss line needs to be created
50407
50408 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
50409 p_actual_flag :='A';
50410 END IF;
50411
50412 --
50413 -- bulk performance
50414 --
50415 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
50416 p_header_num => 0); -- 4262811
50417 --
50418 -- set accounting line options
50419 --
50420 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
50421 p_natural_side_code => 'C'
50422 , p_gain_or_loss_flag => 'N'
50423 , p_gl_transfer_mode_code => 'S'
50424 , p_acct_entry_type_code => 'E'
50425 , p_switch_side_flag => 'N'
50426 , p_merge_duplicate_code => 'N'
50427 );
50428 --
50429 l_acc_rev_natural_side_code := 'D'; -- 4262811
50430 --
50431 --
50432 -- set accounting line type info
50433 --
50434 xla_ae_lines_pkg.SetAcctLineType
50435 (p_component_type => l_component_type
50436 ,p_event_type_code => l_event_type_code
50437 ,p_line_definition_owner_code => l_line_definition_owner_code
50438 ,p_line_definition_code => l_line_definition_code
50439 ,p_accounting_line_code => l_component_code
50440 ,p_accounting_line_type_code => l_component_type_code
50441 ,p_accounting_line_appl_id => l_component_appl_id
50442 ,p_amb_context_code => l_amb_context_code
50443 ,p_entity_code => l_entity_code
50444 ,p_event_class_code => l_event_class_code);
50445 --
50446 -- set accounting class
50447 --
50448 xla_ae_lines_pkg.SetAcctClass(
50452
50449 p_accounting_class_code => 'PO_PA_BURDENED'
50450 , p_ae_header_id => l_ae_header_id
50451 );
50453 --
50454 -- set rounding class
50455 --
50456 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
50457 'PO_PA_BURDENED';
50458
50459 --
50460 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
50461 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
50462 --
50463 -- bulk performance
50464 --
50465 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
50466
50467 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
50468 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
50469
50470 -- 4955764
50471 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50472 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
50473
50474 -- 4458381 Public Sector Enh
50475
50476 --
50477 -- set accounting attributes for the line type
50478 --
50479 l_entered_amt_idx := 40;
50480 l_accted_amt_idx := 43;
50481 l_bflow_applied_to_amt_idx := 19; -- 5132302
50482 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
50483 l_rec_acct_attrs.array_char_value(1) := p_source_22;
50484 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
50485 l_rec_acct_attrs.array_char_value(2) := p_source_23;
50486 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
50487 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
50488 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
50489 l_rec_acct_attrs.array_num_value(4) := p_source_44;
50490 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
50491 l_rec_acct_attrs.array_char_value(5) := p_source_25;
50492 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
50493 l_rec_acct_attrs.array_num_value(6) := p_source_45;
50494 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
50495 l_rec_acct_attrs.array_date_value(7) := p_source_27;
50496 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
50497 l_rec_acct_attrs.array_num_value(8) := p_source_28;
50498 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
50499 l_rec_acct_attrs.array_char_value(9) := p_source_29;
50500 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
50501 l_rec_acct_attrs.array_char_value(10) := p_source_30;
50502 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
50503 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
50504 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
50505 l_rec_acct_attrs.array_num_value(12) := p_source_44;
50506 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
50507 l_rec_acct_attrs.array_char_value(13) := p_source_25;
50508 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
50509 l_rec_acct_attrs.array_num_value(14) := p_source_45;
50510 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
50511 l_rec_acct_attrs.array_date_value(15) := p_source_27;
50512 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
50513 l_rec_acct_attrs.array_num_value(16) := p_source_28;
50514 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
50515 l_rec_acct_attrs.array_char_value(17) := p_source_29;
50516 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
50517 l_rec_acct_attrs.array_char_value(18) := p_source_31;
50518 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
50519 l_rec_acct_attrs.array_num_value(19) := p_source_46;
50520 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
50521 l_rec_acct_attrs.array_num_value(20) := p_source_79;
50522 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
50523 l_rec_acct_attrs.array_char_value(21) := p_source_80;
50524 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
50525 l_rec_acct_attrs.array_char_value(22) := p_source_81;
50526 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
50527 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_82);
50528 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
50529 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_83);
50530 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
50531 l_rec_acct_attrs.array_char_value(25) := p_source_84;
50532 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
50533 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
50534 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
50535 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
50536 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
50537 l_rec_acct_attrs.array_char_value(28) := p_source_34;
50538 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
50539 l_rec_acct_attrs.array_char_value(29) := p_source_53;
50540 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
50541 l_rec_acct_attrs.array_num_value(30) := p_source_2;
50545 l_rec_acct_attrs.array_char_value(32) :=
50542 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
50543 l_rec_acct_attrs.array_num_value(31) := p_source_46;
50544 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
50546 xla_ae_sources_pkg.GetSystemSourceChar(
50547 p_source_code => 'XLA_CURRENCY_CODE'
50548 , p_source_type_code => 'Y'
50549 , p_source_application_id => 602
50550 );
50551 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
50552 l_rec_acct_attrs.array_num_value(33) := p_source_46;
50553 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
50554 l_rec_acct_attrs.array_char_value(34) := p_source_54;
50555 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
50556 l_rec_acct_attrs.array_num_value(35) := p_source_2;
50557 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
50558 l_rec_acct_attrs.array_num_value(36) := p_source_46;
50559 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
50560 l_rec_acct_attrs.array_char_value(37) :=
50561 xla_ae_sources_pkg.GetSystemSourceChar(
50562 p_source_code => 'XLA_CURRENCY_CODE'
50563 , p_source_type_code => 'Y'
50564 , p_source_application_id => 602
50565 );
50566 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
50567 l_rec_acct_attrs.array_num_value(38) := p_source_46;
50568 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
50569 l_rec_acct_attrs.array_char_value(39) := p_source_55;
50570 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
50571 l_rec_acct_attrs.array_num_value(40) := p_source_46;
50572 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
50573 l_rec_acct_attrs.array_char_value(41) := p_source_25;
50574 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
50575 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
50576 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
50577 l_rec_acct_attrs.array_num_value(43) := p_source_46;
50578 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
50579 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
50580 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
50581 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
50582 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
50583 l_rec_acct_attrs.array_char_value(46) := p_source_34;
50584 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
50585 l_rec_acct_attrs.array_num_value(47) := p_source_56;
50586 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
50587 l_rec_acct_attrs.array_num_value(48) := p_source_57;
50588
50589 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
50590 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
50591
50592 ---------------------------------------------------------------------------------------------------------------
50593 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
50594 ---------------------------------------------------------------------------------------------------------------
50595 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
50596
50597 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50598 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
50599
50600 IF xla_accounting_cache_pkg.GetValueChar
50601 (p_source_code => 'LEDGER_CATEGORY_CODE'
50602 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
50603 AND l_bflow_method_code = 'PRIOR_ENTRY'
50604 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
50605 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
50606 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
50607 )
50608 THEN
50609 xla_ae_lines_pkg.BflowUpgEntry
50610 (p_business_method_code => l_bflow_method_code
50611 ,p_business_class_code => l_bflow_class_code
50612 ,p_balance_type => l_balance_type_code);
50613 ELSE
50614 NULL;
50615 XLA_AE_LINES_PKG.business_flow_validation(
50616 p_business_method_code => l_bflow_method_code
50617 ,p_business_class_code => l_bflow_class_code
50618 ,p_inherit_description_flag => l_inherit_desc_flag);
50619 END IF;
50620
50621 --
50622 -- call analytical criteria
50623 --
50624 -- Inherited Analytical Criteria for business flow method of Prior Entry.
50625 --
50626 -- call description
50627 --
50628 -- No description or it is inherited.
50629 --
50630 -- call ADRs
50631 -- Bug 4922099
50632 --
50633 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
50634 (NVL(l_actual_upg_option, 'N') = 'O') OR
50635 (NVL(l_enc_upg_option, 'N') = 'O')
50636 )
50637 THEN
50638 NULL;
50639 --
50640 --
50641
50642 --
50643 --
50644 END IF;
50645 --
50646 -- Bug 4922099
50647 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
50648 (NVL(l_enc_upg_option, 'N') = 'O')
50652 THEN
50649 ) AND
50650 (l_bflow_method_code = 'PRIOR_ENTRY')
50651 )
50653 IF
50654 --
50655 1 = 1
50656 --
50657 THEN
50658 xla_accounting_err_pkg.build_message
50659 (p_appli_s_name => 'XLA'
50660 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50661 ,p_token_1 => 'LINE_NUMBER'
50662 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
50663 ,p_token_2 => 'LINE_TYPE_NAME'
50664 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
50665 l_component_type
50666 ,l_component_code
50667 ,l_component_type_code
50668 ,l_component_appl_id
50669 ,l_amb_context_code
50670 ,l_entity_code
50671 ,l_event_class_code
50672 )
50673 ,p_token_3 => 'OWNER'
50674 ,p_value_3 => xla_lookups_pkg.get_meaning(
50675 p_lookup_type => 'XLA_OWNER_TYPE'
50676 ,p_lookup_code => l_component_type_code
50677 )
50678 ,p_token_4 => 'PRODUCT_NAME'
50679 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
50680 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
50681 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
50682 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
50683 ,p_ae_header_id => NULL
50684 );
50685
50686 IF (C_LEVEL_ERROR>= g_log_level) THEN
50687 trace
50688 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
50689 ,p_level => C_LEVEL_ERROR
50690 ,p_module => l_log_module);
50691 END IF;
50692 END IF;
50693 END IF;
50694 --
50695 --
50696 ------------------------------------------------------------------------------------------------
50697 -- 4219869 Business Flow
50698 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
50699 -- Prior Entry. Currently, the following code is always generated.
50700 ------------------------------------------------------------------------------------------------
50701 -- No ValidateCurrentLine for business flow method of Prior Entry
50702
50703 ------------------------------------------------------------------------------------
50704 -- 4219869 Business Flow
50705 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
50706 ------------------------------------------------------------------------------------
50707 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50708
50709 ----------------------------------------------------------------------------------
50710 -- 4219869 Business Flow
50711 -- Update journal entry status -- Need to generate this within IF <condition>
50712 ----------------------------------------------------------------------------------
50713 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50714 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
50715 ,p_balance_type_code => l_balance_type_code
50716 );
50717
50718 -------------------------------------------------------------------------------------------
50719 -- 4262811 - Generate the Accrual Reversal lines
50720 -------------------------------------------------------------------------------------------
50721 BEGIN
50722 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
50723 (g_array_event(p_event_id).array_value_num('header_index'));
50724 IF l_acc_rev_flag IS NULL THEN
50725 l_acc_rev_flag := 'N';
50726 END IF;
50727 EXCEPTION
50728 WHEN OTHERS THEN
50729 l_acc_rev_flag := 'N';
50730 END;
50731 --
50732 IF (l_acc_rev_flag = 'Y') THEN
50733
50734 -- 4645092 ------------------------------------------------------------------------------
50735 -- To allow MPA report to determine if it should generate report process
50736 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
50737 ------------------------------------------------------------------------------------------
50738
50739 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
50740 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
50741
50742 --
50743 -- Update the line information that should be overwritten
50747 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
50744 --
50745 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
50746 p_header_num => 1);
50748
50749 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
50750
50751 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
50752 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
50753 END IF;
50754
50755 --
50756 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
50757 --
50758 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
50759 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
50760 ELSE
50761 ---------------------------------------------------------------------------------------------------
50762 -- 4262811a Switch Sign
50763 ---------------------------------------------------------------------------------------------------
50764 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
50765 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50766 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50767 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
50768 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50769 -- 5132302
50770 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
50771 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
50772
50773 END IF;
50774
50775 -- 4955764
50776 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
50777 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
50778
50779
50780 XLA_AE_LINES_PKG.ValidateCurrentLine;
50781 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
50782
50783 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
50784 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
50785 ,p_balance_type_code => l_balance_type_code);
50786
50787 END IF;
50788
50789 -----------------------------------------------------------------------------------------
50790 -- 4262811 Multiperiod Accounting
50791 -----------------------------------------------------------------------------------------
50792 -- No MPA option is assigned.
50793
50794
50795 END IF;
50796 END IF;
50797 --
50798
50799 --
50800 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50801 trace
50802 (p_msg => 'END of AcctLineType_102'
50803 ,p_level => C_LEVEL_PROCEDURE
50804 ,p_module => l_log_module);
50805 END IF;
50806 --
50807 EXCEPTION
50808 WHEN xla_exceptions_pkg.application_exception THEN
50809 RAISE;
50810 WHEN OTHERS THEN
50811 xla_exceptions_pkg.raise_message
50812 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_102');
50813 END AcctLineType_102;
50814 --
50815
50816 ---------------------------------------
50817 --
50818 -- PRIVATE FUNCTION
50819 -- AcctLineType_103
50820 --
50821 ---------------------------------------
50822 PROCEDURE AcctLineType_103 (
50823 p_application_id IN NUMBER
50824 ,p_event_id IN NUMBER
50825 ,p_calculate_acctd_flag IN VARCHAR2
50826 ,p_calculate_g_l_flag IN VARCHAR2
50827 ,p_actual_flag IN OUT VARCHAR2
50828 ,p_balance_type_code OUT VARCHAR2
50829 ,p_gain_or_loss_ref OUT VARCHAR2
50830
50831 --Budget Code Combination ID
50832 , p_source_2 IN NUMBER
50833 --Cost CCID
50834 , p_source_3 IN NUMBER
50835 --Cost Clearing CCID
50836 , p_source_6 IN NUMBER
50837 --Reversing Line Flag
50838 , p_source_22 IN VARCHAR2
50839 --Actual Upgrade Credit Accounting Class
50840 , p_source_23 IN VARCHAR2
50841 --Entered Currency Code
50842 , p_source_25 IN VARCHAR2
50843 --Exchange Rate Date
50844 , p_source_27 IN DATE
50845 --Exchange Rate
50846 , p_source_28 IN NUMBER
50847 --Exchange Rate Type
50848 , p_source_29 IN VARCHAR2
50849 --Actual Upgrade Debit Accounting Class
50850 , p_source_30 IN VARCHAR2
50851 --Use Actuals Upgrade Attributes Flag
50852 , p_source_31 IN VARCHAR2
50853 --Expenditure Item ID
50854 , p_source_32 IN NUMBER
50855 --Cost Distribution Line Number
50856 , p_source_33 IN NUMBER
50857 --Line Type
50858 , p_source_34 IN VARCHAR2
50859 , p_source_34_meaning IN VARCHAR2
50860 --Reversed Line Number
50861 , p_source_35 IN NUMBER
50862 --Entered Burdened Cost
50863 , p_source_44 IN NUMBER
50864 --Accounted Burdened Cost
50865 , p_source_45 IN NUMBER
50866 --Encumbrance Amount
50867 , p_source_46 IN NUMBER
50868 --Encumbrance Upgrade Credit Accounting Class
50869 , p_source_53 IN VARCHAR2
50870 --Encumbrance Upgrade Debit Accounting Class
50874 --Encumbrance Type ID
50871 , p_source_54 IN VARCHAR2
50872 --Use Encumbrance Upgrade Attributes Flag
50873 , p_source_55 IN VARCHAR2
50875 , p_source_56 IN NUMBER
50876 --Project Encumbrance Type ID
50877 , p_source_57 IN NUMBER
50878 --Document Type
50879 , p_source_69 IN VARCHAR2
50880 , p_source_69_meaning IN VARCHAR2
50881 --Release ID
50882 , p_source_71 IN NUMBER
50883 --Contingent Worker Timecard Flag
50884 , p_source_72 IN VARCHAR2
50885 --Purchase Order Burden Applied to Application Identifier
50886 , p_source_79 IN NUMBER
50887 --Purchase Order Burden Applied to Distribution Type
50888 , p_source_80 IN VARCHAR2
50889 --Purchase Order Burden Applied to Entity Code
50890 , p_source_81 IN VARCHAR2
50891 --Purchase Order Burden Applied to First Distribution Identifier
50892 , p_source_82 IN NUMBER
50893 --Purchase Order Burden Applied to First System Transaction Identifier
50894 , p_source_83 IN NUMBER
50895 --Purchase Order Burden Applied to Second Distribution Identifier
50896 , p_source_84 IN VARCHAR2
50897 )
50898 IS
50899
50900 l_component_type VARCHAR2(80);
50901 l_component_code VARCHAR2(30);
50902 l_component_type_code VARCHAR2(1);
50903 l_component_appl_id INTEGER;
50904 l_amb_context_code VARCHAR2(30);
50905 l_entity_code VARCHAR2(30);
50906 l_event_class_code VARCHAR2(30);
50907 l_ae_header_id NUMBER;
50908 l_event_type_code VARCHAR2(30);
50909 l_line_definition_code VARCHAR2(30);
50910 l_line_definition_owner_code VARCHAR2(1);
50911 --
50912 -- adr variables
50913 l_segment VARCHAR2(30);
50914 l_ccid NUMBER;
50915 l_adr_transaction_coa_id NUMBER;
50916 l_adr_accounting_coa_id NUMBER;
50917 l_adr_flexfield_segment_code VARCHAR2(30);
50918 l_adr_flex_value_set_id NUMBER;
50919 l_adr_value_type_code VARCHAR2(30);
50920 l_adr_value_combination_id NUMBER;
50921 l_adr_value_segment_code VARCHAR2(30);
50922
50923 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
50924 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
50925 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
50926 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
50927
50928 -- 4262811 Variables ------------------------------------------------------------------------------------------
50929 l_entered_amt_idx NUMBER;
50930 l_accted_amt_idx NUMBER;
50931 l_acc_rev_flag VARCHAR2(1);
50932 l_accrual_line_num NUMBER;
50933 l_tmp_amt NUMBER;
50934 l_acc_rev_natural_side_code VARCHAR2(1);
50935
50936 l_num_entries NUMBER;
50937 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
50938 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
50939 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
50940 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
50941 l_recog_line_1 NUMBER;
50942 l_recog_line_2 NUMBER;
50943
50944 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
50945 l_bflow_applied_to_amt NUMBER; -- 5132302
50946 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
50947
50948 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
50949
50950 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
50951 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
50952
50953 ---------------------------------------------------------------------------------------------------------------
50954
50955
50956 --
50957 -- bulk performance
50958 --
50959 l_balance_type_code VARCHAR2(1);
50960 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
50961 l_log_module VARCHAR2(240);
50962
50963 --
50964 -- Upgrade strategy
50965 --
50966 l_actual_upg_option VARCHAR2(1);
50967 l_enc_upg_option VARCHAR2(1);
50968
50969 --
50970 BEGIN
50971 --
50972 IF g_log_enabled THEN
50973 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_103';
50974 END IF;
50975 --
50976 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
50977
50978 trace
50979 (p_msg => 'BEGIN of AcctLineType_103'
50980 ,p_level => C_LEVEL_PROCEDURE
50981 ,p_module => l_log_module);
50982
50983 END IF;
50984 --
50985 l_component_type := 'AMB_JLT';
50986 l_component_code := 'REL_PO_BURDEN_ENC';
50987 l_component_type_code := 'S';
50988 l_component_appl_id := 275;
50989 l_amb_context_code := 'DEFAULT';
50990 l_entity_code := 'EXPENDITURES';
50991 l_event_class_code := 'BURDEN_COST';
50992 l_event_type_code := 'BURDEN_COST_ALL';
50993 l_line_definition_owner_code := 'S';
50994 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
50995 --
50996 l_balance_type_code := 'E';
51000 l_adr_accounting_coa_id := NULL;
50997 l_segment := NULL;
50998 l_ccid := NULL;
50999 l_adr_transaction_coa_id := NULL;
51001 l_adr_flexfield_segment_code := NULL;
51002 l_adr_flex_value_set_id := NULL;
51003 l_adr_value_type_code := NULL;
51004 l_adr_value_combination_id := NULL;
51005 l_adr_value_segment_code := NULL;
51006
51007 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
51008 l_bflow_class_code := 'PO_PA_BURDEN_ENC'; -- 4219869 Business Flow
51009 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51010 l_budgetary_control_flag := 'N';
51011
51012 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51013 l_bflow_applied_to_amt := NULL; -- 5132302
51014 l_entered_amt_idx := NULL; -- 4262811
51015 l_accted_amt_idx := NULL; -- 4262811
51016 l_acc_rev_flag := NULL; -- 4262811
51017 l_accrual_line_num := NULL; -- 4262811
51018 l_tmp_amt := NULL; -- 4262811
51019 --
51020
51021 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51022 l_balance_type_code <> 'B' THEN
51023 IF NVL(p_source_34,'
51024 ') = 'E' AND
51025 NVL(p_source_69,'
51026 ') = 'PO' AND
51027 p_source_71 IS NULL AND
51028 NVL(p_source_72,'
51029 ') = 'N'
51030 THEN
51031
51032 --
51033 XLA_AE_LINES_PKG.SetNewLine;
51034
51035 p_balance_type_code := l_balance_type_code;
51036 -- set the flag so later we will know whether the gain loss line needs to be created
51037
51038 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51039 p_actual_flag :='A';
51040 END IF;
51041
51042 --
51043 -- bulk performance
51044 --
51045 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51046 p_header_num => 0); -- 4262811
51047 --
51048 -- set accounting line options
51049 --
51050 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51051 p_natural_side_code => 'C'
51052 , p_gain_or_loss_flag => 'N'
51053 , p_gl_transfer_mode_code => 'S'
51054 , p_acct_entry_type_code => 'E'
51055 , p_switch_side_flag => 'N'
51056 , p_merge_duplicate_code => 'N'
51057 );
51058 --
51059 l_acc_rev_natural_side_code := 'D'; -- 4262811
51060 --
51061 --
51062 -- set accounting line type info
51063 --
51064 xla_ae_lines_pkg.SetAcctLineType
51065 (p_component_type => l_component_type
51066 ,p_event_type_code => l_event_type_code
51067 ,p_line_definition_owner_code => l_line_definition_owner_code
51068 ,p_line_definition_code => l_line_definition_code
51069 ,p_accounting_line_code => l_component_code
51070 ,p_accounting_line_type_code => l_component_type_code
51071 ,p_accounting_line_appl_id => l_component_appl_id
51072 ,p_amb_context_code => l_amb_context_code
51073 ,p_entity_code => l_entity_code
51074 ,p_event_class_code => l_event_class_code);
51075 --
51076 -- set accounting class
51077 --
51078 xla_ae_lines_pkg.SetAcctClass(
51079 p_accounting_class_code => 'PO_PA_BURDEN'
51080 , p_ae_header_id => l_ae_header_id
51081 );
51082
51083 --
51084 -- set rounding class
51085 --
51086 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51087 'PO_PA_BURDEN';
51088
51089 --
51090 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51091 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51092 --
51093 -- bulk performance
51094 --
51095 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51096
51097 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51098 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51099
51100 -- 4955764
51101 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51102 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51103
51104 -- 4458381 Public Sector Enh
51105
51106 --
51107 -- set accounting attributes for the line type
51108 --
51109 l_entered_amt_idx := 40;
51110 l_accted_amt_idx := 42;
51111 l_bflow_applied_to_amt_idx := 19; -- 5132302
51112 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51113 l_rec_acct_attrs.array_char_value(1) := p_source_22;
51114 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
51115 l_rec_acct_attrs.array_char_value(2) := p_source_23;
51116 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
51117 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
51118 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
51119 l_rec_acct_attrs.array_num_value(4) := p_source_44;
51123 l_rec_acct_attrs.array_num_value(6) := p_source_45;
51120 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
51121 l_rec_acct_attrs.array_char_value(5) := p_source_25;
51122 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
51124 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
51125 l_rec_acct_attrs.array_date_value(7) := p_source_27;
51126 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
51127 l_rec_acct_attrs.array_num_value(8) := p_source_28;
51128 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
51129 l_rec_acct_attrs.array_char_value(9) := p_source_29;
51130 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
51131 l_rec_acct_attrs.array_char_value(10) := p_source_30;
51132 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
51133 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
51134 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
51135 l_rec_acct_attrs.array_num_value(12) := p_source_44;
51136 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
51137 l_rec_acct_attrs.array_char_value(13) := p_source_25;
51138 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
51139 l_rec_acct_attrs.array_num_value(14) := p_source_45;
51140 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
51141 l_rec_acct_attrs.array_date_value(15) := p_source_27;
51142 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
51143 l_rec_acct_attrs.array_num_value(16) := p_source_28;
51144 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
51145 l_rec_acct_attrs.array_char_value(17) := p_source_29;
51146 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
51147 l_rec_acct_attrs.array_char_value(18) := p_source_31;
51148 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
51149 l_rec_acct_attrs.array_num_value(19) := p_source_46;
51150 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
51151 l_rec_acct_attrs.array_num_value(20) := p_source_79;
51152 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51153 l_rec_acct_attrs.array_char_value(21) := p_source_80;
51154 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
51155 l_rec_acct_attrs.array_char_value(22) := p_source_81;
51156 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
51157 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_82);
51158 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51159 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_83);
51160 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
51161 l_rec_acct_attrs.array_char_value(25) := p_source_84;
51162 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
51163 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
51164 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
51165 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
51166 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
51167 l_rec_acct_attrs.array_char_value(28) := p_source_34;
51168 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
51169 l_rec_acct_attrs.array_char_value(29) := p_source_53;
51170 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
51171 l_rec_acct_attrs.array_num_value(30) := p_source_2;
51172 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
51173 l_rec_acct_attrs.array_num_value(31) := p_source_46;
51174 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
51175 l_rec_acct_attrs.array_char_value(32) := p_source_25;
51176 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
51177 l_rec_acct_attrs.array_num_value(33) := p_source_46;
51178 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
51179 l_rec_acct_attrs.array_char_value(34) := p_source_54;
51180 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
51181 l_rec_acct_attrs.array_num_value(35) := p_source_2;
51182 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
51183 l_rec_acct_attrs.array_num_value(36) := p_source_46;
51184 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
51185 l_rec_acct_attrs.array_char_value(37) := p_source_25;
51186 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
51187 l_rec_acct_attrs.array_num_value(38) := p_source_46;
51188 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
51189 l_rec_acct_attrs.array_char_value(39) := p_source_55;
51190 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
51191 l_rec_acct_attrs.array_num_value(40) := p_source_46;
51192 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
51193 l_rec_acct_attrs.array_char_value(41) := p_source_25;
51194 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
51195 l_rec_acct_attrs.array_num_value(42) := p_source_46;
51196 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
51197 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
51198 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
51199 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
51200 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
51201 l_rec_acct_attrs.array_char_value(45) := p_source_34;
51202 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
51206
51203 l_rec_acct_attrs.array_num_value(46) := p_source_56;
51204 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
51205 l_rec_acct_attrs.array_num_value(47) := p_source_57;
51207 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51208 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51209
51210 ---------------------------------------------------------------------------------------------------------------
51211 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51212 ---------------------------------------------------------------------------------------------------------------
51213 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51214
51215 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51216 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51217
51218 IF xla_accounting_cache_pkg.GetValueChar
51219 (p_source_code => 'LEDGER_CATEGORY_CODE'
51220 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51221 AND l_bflow_method_code = 'PRIOR_ENTRY'
51222 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51223 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51224 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51225 )
51226 THEN
51227 xla_ae_lines_pkg.BflowUpgEntry
51228 (p_business_method_code => l_bflow_method_code
51229 ,p_business_class_code => l_bflow_class_code
51230 ,p_balance_type => l_balance_type_code);
51231 ELSE
51232 NULL;
51233 XLA_AE_LINES_PKG.business_flow_validation(
51234 p_business_method_code => l_bflow_method_code
51235 ,p_business_class_code => l_bflow_class_code
51236 ,p_inherit_description_flag => l_inherit_desc_flag);
51237 END IF;
51238
51239 --
51240 -- call analytical criteria
51241 --
51242 -- Inherited Analytical Criteria for business flow method of Prior Entry.
51243 --
51244 -- call description
51245 --
51246 -- No description or it is inherited.
51247 --
51248 -- call ADRs
51249 -- Bug 4922099
51250 --
51251 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51252 (NVL(l_actual_upg_option, 'N') = 'O') OR
51253 (NVL(l_enc_upg_option, 'N') = 'O')
51254 )
51255 THEN
51256 NULL;
51257 --
51258 --
51259
51260 --
51261 --
51262 END IF;
51263 --
51264 -- Bug 4922099
51265 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51266 (NVL(l_enc_upg_option, 'N') = 'O')
51267 ) AND
51268 (l_bflow_method_code = 'PRIOR_ENTRY')
51269 )
51270 THEN
51271 IF
51272 --
51273 1 = 1
51274 --
51275 THEN
51276 xla_accounting_err_pkg.build_message
51277 (p_appli_s_name => 'XLA'
51278 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51279 ,p_token_1 => 'LINE_NUMBER'
51280 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51281 ,p_token_2 => 'LINE_TYPE_NAME'
51282 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51283 l_component_type
51284 ,l_component_code
51285 ,l_component_type_code
51286 ,l_component_appl_id
51287 ,l_amb_context_code
51288 ,l_entity_code
51289 ,l_event_class_code
51290 )
51291 ,p_token_3 => 'OWNER'
51292 ,p_value_3 => xla_lookups_pkg.get_meaning(
51293 p_lookup_type => 'XLA_OWNER_TYPE'
51294 ,p_lookup_code => l_component_type_code
51295 )
51296 ,p_token_4 => 'PRODUCT_NAME'
51297 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51298 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51299 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51300 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51301 ,p_ae_header_id => NULL
51302 );
51303
51307 ,p_level => C_LEVEL_ERROR
51304 IF (C_LEVEL_ERROR>= g_log_level) THEN
51305 trace
51306 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51308 ,p_module => l_log_module);
51309 END IF;
51310 END IF;
51311 END IF;
51312 --
51313 --
51314 ------------------------------------------------------------------------------------------------
51315 -- 4219869 Business Flow
51316 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51317 -- Prior Entry. Currently, the following code is always generated.
51318 ------------------------------------------------------------------------------------------------
51319 -- No ValidateCurrentLine for business flow method of Prior Entry
51320
51321 ------------------------------------------------------------------------------------
51322 -- 4219869 Business Flow
51323 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51324 ------------------------------------------------------------------------------------
51325 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51326
51327 ----------------------------------------------------------------------------------
51328 -- 4219869 Business Flow
51329 -- Update journal entry status -- Need to generate this within IF <condition>
51330 ----------------------------------------------------------------------------------
51331 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51332 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51333 ,p_balance_type_code => l_balance_type_code
51334 );
51335
51336 -------------------------------------------------------------------------------------------
51337 -- 4262811 - Generate the Accrual Reversal lines
51338 -------------------------------------------------------------------------------------------
51339 BEGIN
51340 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51341 (g_array_event(p_event_id).array_value_num('header_index'));
51342 IF l_acc_rev_flag IS NULL THEN
51343 l_acc_rev_flag := 'N';
51344 END IF;
51345 EXCEPTION
51346 WHEN OTHERS THEN
51347 l_acc_rev_flag := 'N';
51348 END;
51349 --
51350 IF (l_acc_rev_flag = 'Y') THEN
51351
51352 -- 4645092 ------------------------------------------------------------------------------
51353 -- To allow MPA report to determine if it should generate report process
51354 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51355 ------------------------------------------------------------------------------------------
51356
51357 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51358 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51359
51360 --
51361 -- Update the line information that should be overwritten
51362 --
51363 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51364 p_header_num => 1);
51365 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
51366
51367 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51368
51369 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
51370 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51371 END IF;
51372
51373 --
51374 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51375 --
51376 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51377 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
51378 ELSE
51379 ---------------------------------------------------------------------------------------------------
51380 -- 4262811a Switch Sign
51381 ---------------------------------------------------------------------------------------------------
51382 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
51383 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51384 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51385 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
51386 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51387 -- 5132302
51388 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
51389 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
51390
51391 END IF;
51392
51393 -- 4955764
51394 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51395 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
51396
51397
51398 XLA_AE_LINES_PKG.ValidateCurrentLine;
51399 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51400
51401 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51402 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
51406
51403 ,p_balance_type_code => l_balance_type_code);
51404
51405 END IF;
51407 -----------------------------------------------------------------------------------------
51408 -- 4262811 Multiperiod Accounting
51409 -----------------------------------------------------------------------------------------
51410 -- No MPA option is assigned.
51411
51412
51413 END IF;
51414 END IF;
51415 --
51416
51417 --
51418 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51419 trace
51420 (p_msg => 'END of AcctLineType_103'
51421 ,p_level => C_LEVEL_PROCEDURE
51422 ,p_module => l_log_module);
51423 END IF;
51424 --
51425 EXCEPTION
51426 WHEN xla_exceptions_pkg.application_exception THEN
51427 RAISE;
51428 WHEN OTHERS THEN
51429 xla_exceptions_pkg.raise_message
51430 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_103');
51431 END AcctLineType_103;
51432 --
51433
51434 ---------------------------------------
51435 --
51436 -- PRIVATE FUNCTION
51437 -- AcctLineType_104
51438 --
51439 ---------------------------------------
51440 PROCEDURE AcctLineType_104 (
51441 p_application_id IN NUMBER
51442 ,p_event_id IN NUMBER
51443 ,p_calculate_acctd_flag IN VARCHAR2
51444 ,p_calculate_g_l_flag IN VARCHAR2
51445 ,p_actual_flag IN OUT VARCHAR2
51446 ,p_balance_type_code OUT VARCHAR2
51447 ,p_gain_or_loss_ref OUT VARCHAR2
51448
51449 --Budget Code Combination ID
51450 , p_source_2 IN NUMBER
51451 --Cost CCID
51452 , p_source_3 IN NUMBER
51453 --Cost Clearing CCID
51454 , p_source_6 IN NUMBER
51455 --Reversing Line Flag
51456 , p_source_22 IN VARCHAR2
51457 --Actual Upgrade Credit Accounting Class
51458 , p_source_23 IN VARCHAR2
51459 --Entered Currency Code
51460 , p_source_25 IN VARCHAR2
51461 --Exchange Rate Date
51462 , p_source_27 IN DATE
51463 --Exchange Rate
51464 , p_source_28 IN NUMBER
51465 --Exchange Rate Type
51466 , p_source_29 IN VARCHAR2
51467 --Actual Upgrade Debit Accounting Class
51468 , p_source_30 IN VARCHAR2
51469 --Use Actuals Upgrade Attributes Flag
51470 , p_source_31 IN VARCHAR2
51471 --Expenditure Item ID
51472 , p_source_32 IN NUMBER
51473 --Cost Distribution Line Number
51474 , p_source_33 IN NUMBER
51475 --Line Type
51476 , p_source_34 IN VARCHAR2
51477 , p_source_34_meaning IN VARCHAR2
51478 --Reversed Line Number
51479 , p_source_35 IN NUMBER
51480 --System Linkage Function
51481 , p_source_37 IN VARCHAR2
51482 --Entered Burdened Cost
51483 , p_source_44 IN NUMBER
51484 --Accounted Burdened Cost
51485 , p_source_45 IN NUMBER
51486 --Encumbrance Amount
51487 , p_source_46 IN NUMBER
51488 --Project Encumbrance Applied to Application Identifier
51489 , p_source_47 IN NUMBER
51490 --Project Encumbrance Applied to Distribution Type
51491 , p_source_48 IN VARCHAR2
51492 --Project Encumbrance Applied to Entity Code
51493 , p_source_49 IN VARCHAR2
51494 --Project Encumbrance Applied to First Distribution ID
51495 , p_source_50 IN NUMBER
51496 --Project Encumbrance Applied to First System Transaction ID
51497 , p_source_51 IN NUMBER
51498 --Project Encumbrance Applied to Second Distribution ID
51499 , p_source_52 IN VARCHAR2
51500 --Encumbrance Upgrade Debit Accounting Class
51501 , p_source_54 IN VARCHAR2
51502 --Use Encumbrance Upgrade Attributes Flag
51503 , p_source_55 IN VARCHAR2
51504 --Encumbrance Type ID
51505 , p_source_56 IN NUMBER
51506 --Project Encumbrance Type ID
51507 , p_source_57 IN NUMBER
51508 --Contingent Worker Timecard Flag
51509 , p_source_72 IN VARCHAR2
51510 --Encumbrance Accounting Enabled Flag
51511 , p_source_85 IN VARCHAR2
51512 --Liquidate Encumbrance Flag
51513 , p_source_86 IN VARCHAR2
51514 )
51515 IS
51516
51517 l_component_type VARCHAR2(80);
51518 l_component_code VARCHAR2(30);
51519 l_component_type_code VARCHAR2(1);
51520 l_component_appl_id INTEGER;
51521 l_amb_context_code VARCHAR2(30);
51522 l_entity_code VARCHAR2(30);
51523 l_event_class_code VARCHAR2(30);
51524 l_ae_header_id NUMBER;
51525 l_event_type_code VARCHAR2(30);
51526 l_line_definition_code VARCHAR2(30);
51527 l_line_definition_owner_code VARCHAR2(1);
51528 --
51529 -- adr variables
51530 l_segment VARCHAR2(30);
51531 l_ccid NUMBER;
51532 l_adr_transaction_coa_id NUMBER;
51533 l_adr_accounting_coa_id NUMBER;
51534 l_adr_flexfield_segment_code VARCHAR2(30);
51535 l_adr_flex_value_set_id NUMBER;
51536 l_adr_value_type_code VARCHAR2(30);
51537 l_adr_value_combination_id NUMBER;
51538 l_adr_value_segment_code VARCHAR2(30);
51539
51540 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
51541 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
51545 -- 4262811 Variables ------------------------------------------------------------------------------------------
51542 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
51543 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
51544
51546 l_entered_amt_idx NUMBER;
51547 l_accted_amt_idx NUMBER;
51548 l_acc_rev_flag VARCHAR2(1);
51549 l_accrual_line_num NUMBER;
51550 l_tmp_amt NUMBER;
51551 l_acc_rev_natural_side_code VARCHAR2(1);
51552
51553 l_num_entries NUMBER;
51554 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
51555 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
51556 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
51557 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
51558 l_recog_line_1 NUMBER;
51559 l_recog_line_2 NUMBER;
51560
51561 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
51562 l_bflow_applied_to_amt NUMBER; -- 5132302
51563 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
51564
51565 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
51566
51567 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
51568 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
51569
51570 ---------------------------------------------------------------------------------------------------------------
51571
51572
51573 --
51574 -- bulk performance
51575 --
51576 l_balance_type_code VARCHAR2(1);
51577 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
51578 l_log_module VARCHAR2(240);
51579
51580 --
51581 -- Upgrade strategy
51582 --
51583 l_actual_upg_option VARCHAR2(1);
51584 l_enc_upg_option VARCHAR2(1);
51585
51586 --
51587 BEGIN
51588 --
51589 IF g_log_enabled THEN
51590 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_104';
51591 END IF;
51592 --
51593 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
51594
51595 trace
51596 (p_msg => 'BEGIN of AcctLineType_104'
51597 ,p_level => C_LEVEL_PROCEDURE
51598 ,p_module => l_log_module);
51599
51600 END IF;
51601 --
51602 l_component_type := 'AMB_JLT';
51603 l_component_code := 'REL_PROJ_ENC';
51604 l_component_type_code := 'S';
51605 l_component_appl_id := 275;
51606 l_amb_context_code := 'DEFAULT';
51607 l_entity_code := 'EXPENDITURES';
51608 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
51609 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
51610 l_line_definition_owner_code := 'S';
51611 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
51612 --
51613 l_balance_type_code := 'E';
51614 l_segment := NULL;
51615 l_ccid := NULL;
51616 l_adr_transaction_coa_id := NULL;
51617 l_adr_accounting_coa_id := NULL;
51618 l_adr_flexfield_segment_code := NULL;
51619 l_adr_flex_value_set_id := NULL;
51620 l_adr_value_type_code := NULL;
51621 l_adr_value_combination_id := NULL;
51622 l_adr_value_segment_code := NULL;
51623
51624 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
51625 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
51626 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
51627 l_budgetary_control_flag := 'N';
51628
51629 l_bflow_applied_to_amt_idx := NULL; -- 5132302
51630 l_bflow_applied_to_amt := NULL; -- 5132302
51631 l_entered_amt_idx := NULL; -- 4262811
51632 l_accted_amt_idx := NULL; -- 4262811
51633 l_acc_rev_flag := NULL; -- 4262811
51634 l_accrual_line_num := NULL; -- 4262811
51635 l_tmp_amt := NULL; -- 4262811
51636 --
51637
51638 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
51639 l_balance_type_code <> 'B' THEN
51640 IF NVL(p_source_34,'
51641 ') = 'D' AND
51642 NVL(p_source_85,'
51643 ') = 'Y' AND
51644 ((NVL(p_source_37,'
51645 ') = 'ST' OR
51646 NVL(p_source_37,'
51647 ') = 'OT' AND
51648 NVL(p_source_72,'
51649 ') = 'Y') OR
51650 NVL(p_source_37,'
51651 ') = 'VI') AND
51652 NVL(p_source_86,'
51653 ') = 'Y'
51654 THEN
51655
51656 --
51657 XLA_AE_LINES_PKG.SetNewLine;
51658
51659 p_balance_type_code := l_balance_type_code;
51660 -- set the flag so later we will know whether the gain loss line needs to be created
51661
51662 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
51663 p_actual_flag :='A';
51664 END IF;
51665
51666 --
51667 -- bulk performance
51668 --
51669 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
51670 p_header_num => 0); -- 4262811
51671 --
51672 -- set accounting line options
51673 --
51674 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
51675 p_natural_side_code => 'C'
51676 , p_gain_or_loss_flag => 'N'
51680 , p_merge_duplicate_code => 'N'
51677 , p_gl_transfer_mode_code => 'S'
51678 , p_acct_entry_type_code => 'E'
51679 , p_switch_side_flag => 'N'
51681 );
51682 --
51683 l_acc_rev_natural_side_code := 'D'; -- 4262811
51684 --
51685 --
51686 -- set accounting line type info
51687 --
51688 xla_ae_lines_pkg.SetAcctLineType
51689 (p_component_type => l_component_type
51690 ,p_event_type_code => l_event_type_code
51691 ,p_line_definition_owner_code => l_line_definition_owner_code
51692 ,p_line_definition_code => l_line_definition_code
51693 ,p_accounting_line_code => l_component_code
51694 ,p_accounting_line_type_code => l_component_type_code
51695 ,p_accounting_line_appl_id => l_component_appl_id
51696 ,p_amb_context_code => l_amb_context_code
51697 ,p_entity_code => l_entity_code
51698 ,p_event_class_code => l_event_class_code);
51699 --
51700 -- set accounting class
51701 --
51702 xla_ae_lines_pkg.SetAcctClass(
51703 p_accounting_class_code => 'PA_BUDGET_ENC'
51704 , p_ae_header_id => l_ae_header_id
51705 );
51706
51707 --
51708 -- set rounding class
51709 --
51710 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
51711 'PA_BUDGET_ENC';
51712
51713 --
51714 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
51715 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
51716 --
51717 -- bulk performance
51718 --
51719 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
51720
51721 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
51722 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
51723
51724 -- 4955764
51725 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
51726 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
51727
51728 -- 4458381 Public Sector Enh
51729
51730 --
51731 -- set accounting attributes for the line type
51732 --
51733 l_entered_amt_idx := 35;
51734 l_accted_amt_idx := 37;
51735 l_bflow_applied_to_amt_idx := 19; -- 5132302
51736 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
51737 l_rec_acct_attrs.array_char_value(1) := p_source_22;
51738 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
51739 l_rec_acct_attrs.array_char_value(2) := p_source_23;
51740 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
51741 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
51742 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
51743 l_rec_acct_attrs.array_num_value(4) := p_source_44;
51744 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
51745 l_rec_acct_attrs.array_char_value(5) := p_source_25;
51746 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
51747 l_rec_acct_attrs.array_num_value(6) := p_source_45;
51748 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
51749 l_rec_acct_attrs.array_date_value(7) := p_source_27;
51750 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
51751 l_rec_acct_attrs.array_num_value(8) := p_source_28;
51752 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
51753 l_rec_acct_attrs.array_char_value(9) := p_source_29;
51754 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
51755 l_rec_acct_attrs.array_char_value(10) := p_source_30;
51756 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
51757 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
51758 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
51759 l_rec_acct_attrs.array_num_value(12) := p_source_44;
51760 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
51761 l_rec_acct_attrs.array_char_value(13) := p_source_25;
51762 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
51763 l_rec_acct_attrs.array_num_value(14) := p_source_45;
51764 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
51765 l_rec_acct_attrs.array_date_value(15) := p_source_27;
51766 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
51767 l_rec_acct_attrs.array_num_value(16) := p_source_28;
51768 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
51769 l_rec_acct_attrs.array_char_value(17) := p_source_29;
51770 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
51771 l_rec_acct_attrs.array_char_value(18) := p_source_31;
51772 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
51773 l_rec_acct_attrs.array_num_value(19) := p_source_46;
51774 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
51775 l_rec_acct_attrs.array_num_value(20) := p_source_47;
51776 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
51777 l_rec_acct_attrs.array_char_value(21) := p_source_48;
51778 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
51779 l_rec_acct_attrs.array_char_value(22) := p_source_49;
51783 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
51780 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
51781 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
51782 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
51784 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
51785 l_rec_acct_attrs.array_char_value(25) := p_source_52;
51786 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
51787 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
51788 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
51789 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
51790 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
51791 l_rec_acct_attrs.array_char_value(28) := p_source_34;
51792 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
51793 l_rec_acct_attrs.array_char_value(29) := p_source_54;
51794 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
51795 l_rec_acct_attrs.array_num_value(30) := p_source_2;
51796 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
51797 l_rec_acct_attrs.array_num_value(31) := p_source_46;
51798 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
51799 l_rec_acct_attrs.array_char_value(32) :=
51800 xla_ae_sources_pkg.GetSystemSourceChar(
51801 p_source_code => 'XLA_CURRENCY_CODE'
51802 , p_source_type_code => 'Y'
51803 , p_source_application_id => 602
51804 );
51805 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
51806 l_rec_acct_attrs.array_num_value(33) := p_source_46;
51807 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
51808 l_rec_acct_attrs.array_char_value(34) := p_source_55;
51809 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
51810 l_rec_acct_attrs.array_num_value(35) := p_source_46;
51811 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
51812 l_rec_acct_attrs.array_char_value(36) := p_source_25;
51813 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
51814 l_rec_acct_attrs.array_num_value(37) := p_source_46;
51815 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
51816 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
51817 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
51818 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
51819 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
51820 l_rec_acct_attrs.array_char_value(40) := p_source_34;
51821 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
51822 l_rec_acct_attrs.array_num_value(41) := p_source_56;
51823 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
51824 l_rec_acct_attrs.array_num_value(42) := p_source_57;
51825
51826 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
51827 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
51828
51829 ---------------------------------------------------------------------------------------------------------------
51830 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
51831 ---------------------------------------------------------------------------------------------------------------
51832 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
51833
51834 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51835 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
51836
51837 IF xla_accounting_cache_pkg.GetValueChar
51838 (p_source_code => 'LEDGER_CATEGORY_CODE'
51839 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
51840 AND l_bflow_method_code = 'PRIOR_ENTRY'
51841 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
51842 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
51843 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
51844 )
51845 THEN
51846 xla_ae_lines_pkg.BflowUpgEntry
51847 (p_business_method_code => l_bflow_method_code
51848 ,p_business_class_code => l_bflow_class_code
51849 ,p_balance_type => l_balance_type_code);
51850 ELSE
51851 NULL;
51852 XLA_AE_LINES_PKG.business_flow_validation(
51853 p_business_method_code => l_bflow_method_code
51854 ,p_business_class_code => l_bflow_class_code
51855 ,p_inherit_description_flag => l_inherit_desc_flag);
51856 END IF;
51857
51858 --
51859 -- call analytical criteria
51860 --
51861 -- Inherited Analytical Criteria for business flow method of Prior Entry.
51862 --
51863 -- call description
51864 --
51865 -- No description or it is inherited.
51866 --
51867 -- call ADRs
51868 -- Bug 4922099
51869 --
51870 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
51871 (NVL(l_actual_upg_option, 'N') = 'O') OR
51872 (NVL(l_enc_upg_option, 'N') = 'O')
51873 )
51874 THEN
51875 NULL;
51876 --
51877 --
51878
51879 --
51880 --
51881 END IF;
51882 --
51883 -- Bug 4922099
51884 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
51888 )
51885 (NVL(l_enc_upg_option, 'N') = 'O')
51886 ) AND
51887 (l_bflow_method_code = 'PRIOR_ENTRY')
51889 THEN
51890 IF
51891 --
51892 1 = 1
51893 --
51894 THEN
51895 xla_accounting_err_pkg.build_message
51896 (p_appli_s_name => 'XLA'
51897 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51898 ,p_token_1 => 'LINE_NUMBER'
51899 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
51900 ,p_token_2 => 'LINE_TYPE_NAME'
51901 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
51902 l_component_type
51903 ,l_component_code
51904 ,l_component_type_code
51905 ,l_component_appl_id
51906 ,l_amb_context_code
51907 ,l_entity_code
51908 ,l_event_class_code
51909 )
51910 ,p_token_3 => 'OWNER'
51911 ,p_value_3 => xla_lookups_pkg.get_meaning(
51912 p_lookup_type => 'XLA_OWNER_TYPE'
51913 ,p_lookup_code => l_component_type_code
51914 )
51915 ,p_token_4 => 'PRODUCT_NAME'
51916 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
51917 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
51918 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
51919 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
51920 ,p_ae_header_id => NULL
51921 );
51922
51923 IF (C_LEVEL_ERROR>= g_log_level) THEN
51924 trace
51925 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
51926 ,p_level => C_LEVEL_ERROR
51927 ,p_module => l_log_module);
51928 END IF;
51929 END IF;
51930 END IF;
51931 --
51932 --
51933 ------------------------------------------------------------------------------------------------
51934 -- 4219869 Business Flow
51935 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
51936 -- Prior Entry. Currently, the following code is always generated.
51937 ------------------------------------------------------------------------------------------------
51938 -- No ValidateCurrentLine for business flow method of Prior Entry
51939
51940 ------------------------------------------------------------------------------------
51941 -- 4219869 Business Flow
51942 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
51943 ------------------------------------------------------------------------------------
51944 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
51945
51946 ----------------------------------------------------------------------------------
51947 -- 4219869 Business Flow
51948 -- Update journal entry status -- Need to generate this within IF <condition>
51949 ----------------------------------------------------------------------------------
51950 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
51951 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
51952 ,p_balance_type_code => l_balance_type_code
51953 );
51954
51955 -------------------------------------------------------------------------------------------
51956 -- 4262811 - Generate the Accrual Reversal lines
51957 -------------------------------------------------------------------------------------------
51958 BEGIN
51959 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
51960 (g_array_event(p_event_id).array_value_num('header_index'));
51961 IF l_acc_rev_flag IS NULL THEN
51962 l_acc_rev_flag := 'N';
51963 END IF;
51964 EXCEPTION
51965 WHEN OTHERS THEN
51966 l_acc_rev_flag := 'N';
51967 END;
51968 --
51969 IF (l_acc_rev_flag = 'Y') THEN
51970
51971 -- 4645092 ------------------------------------------------------------------------------
51972 -- To allow MPA report to determine if it should generate report process
51973 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
51974 ------------------------------------------------------------------------------------------
51975
51976 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
51980 -- Update the line information that should be overwritten
51977 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
51978
51979 --
51981 --
51982 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
51983 p_header_num => 1);
51984 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
51985
51986 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
51987
51988 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
51989 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
51990 END IF;
51991
51992 --
51993 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
51994 --
51995 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
51996 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
51997 ELSE
51998 ---------------------------------------------------------------------------------------------------
51999 -- 4262811a Switch Sign
52000 ---------------------------------------------------------------------------------------------------
52001 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52002 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52003 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52004 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52005 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52006 -- 5132302
52007 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52008 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52009
52010 END IF;
52011
52012 -- 4955764
52013 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52014 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52015
52016
52017 XLA_AE_LINES_PKG.ValidateCurrentLine;
52018 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52019
52020 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52021 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52022 ,p_balance_type_code => l_balance_type_code);
52023
52024 END IF;
52025
52026 -----------------------------------------------------------------------------------------
52027 -- 4262811 Multiperiod Accounting
52028 -----------------------------------------------------------------------------------------
52029 -- No MPA option is assigned.
52030
52031
52032 END IF;
52033 END IF;
52034 --
52035
52036 --
52037 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52038 trace
52039 (p_msg => 'END of AcctLineType_104'
52040 ,p_level => C_LEVEL_PROCEDURE
52041 ,p_module => l_log_module);
52042 END IF;
52043 --
52044 EXCEPTION
52045 WHEN xla_exceptions_pkg.application_exception THEN
52046 RAISE;
52047 WHEN OTHERS THEN
52048 xla_exceptions_pkg.raise_message
52049 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_104');
52050 END AcctLineType_104;
52051 --
52052
52053 ---------------------------------------
52054 --
52055 -- PRIVATE FUNCTION
52056 -- AcctLineType_105
52057 --
52058 ---------------------------------------
52059 PROCEDURE AcctLineType_105 (
52060 p_application_id IN NUMBER
52061 ,p_event_id IN NUMBER
52062 ,p_calculate_acctd_flag IN VARCHAR2
52063 ,p_calculate_g_l_flag IN VARCHAR2
52064 ,p_actual_flag IN OUT VARCHAR2
52065 ,p_balance_type_code OUT VARCHAR2
52066 ,p_gain_or_loss_ref OUT VARCHAR2
52067
52068 --Budget Code Combination ID
52069 , p_source_2 IN NUMBER
52070 --Cost CCID
52071 , p_source_3 IN NUMBER
52072 --Cost Clearing CCID
52073 , p_source_6 IN NUMBER
52074 --Reversing Line Flag
52075 , p_source_22 IN VARCHAR2
52076 --Actual Upgrade Credit Accounting Class
52077 , p_source_23 IN VARCHAR2
52078 --Entered Currency Code
52079 , p_source_25 IN VARCHAR2
52080 --Exchange Rate Date
52081 , p_source_27 IN DATE
52082 --Exchange Rate
52083 , p_source_28 IN NUMBER
52084 --Exchange Rate Type
52085 , p_source_29 IN VARCHAR2
52086 --Actual Upgrade Debit Accounting Class
52087 , p_source_30 IN VARCHAR2
52088 --Use Actuals Upgrade Attributes Flag
52089 , p_source_31 IN VARCHAR2
52090 --Expenditure Item ID
52091 , p_source_32 IN NUMBER
52092 --Cost Distribution Line Number
52093 , p_source_33 IN NUMBER
52094 --Line Type
52095 , p_source_34 IN VARCHAR2
52096 , p_source_34_meaning IN VARCHAR2
52097 --Reversed Line Number
52098 , p_source_35 IN NUMBER
52099 --System Linkage Function
52103 --Accounted Burdened Cost
52100 , p_source_37 IN VARCHAR2
52101 --Entered Burdened Cost
52102 , p_source_44 IN NUMBER
52104 , p_source_45 IN NUMBER
52105 --Encumbrance Amount
52106 , p_source_46 IN NUMBER
52107 --Project Encumbrance Applied to Application Identifier
52108 , p_source_47 IN NUMBER
52109 --Project Encumbrance Applied to Distribution Type
52110 , p_source_48 IN VARCHAR2
52111 --Project Encumbrance Applied to Entity Code
52112 , p_source_49 IN VARCHAR2
52113 --Project Encumbrance Applied to First Distribution ID
52114 , p_source_50 IN NUMBER
52115 --Project Encumbrance Applied to First System Transaction ID
52116 , p_source_51 IN NUMBER
52117 --Project Encumbrance Applied to Second Distribution ID
52118 , p_source_52 IN VARCHAR2
52119 --Encumbrance Upgrade Credit Accounting Class
52120 , p_source_53 IN VARCHAR2
52121 --Encumbrance Upgrade Debit Accounting Class
52122 , p_source_54 IN VARCHAR2
52123 --Use Encumbrance Upgrade Attributes Flag
52124 , p_source_55 IN VARCHAR2
52125 --Encumbrance Type ID
52126 , p_source_56 IN NUMBER
52127 --Project Encumbrance Type ID
52128 , p_source_57 IN NUMBER
52129 --Encumbrance Accounting Enabled Flag
52130 , p_source_85 IN VARCHAR2
52131 --Liquidate Encumbrance Flag
52132 , p_source_86 IN VARCHAR2
52133 )
52134 IS
52135
52136 l_component_type VARCHAR2(80);
52137 l_component_code VARCHAR2(30);
52138 l_component_type_code VARCHAR2(1);
52139 l_component_appl_id INTEGER;
52140 l_amb_context_code VARCHAR2(30);
52141 l_entity_code VARCHAR2(30);
52142 l_event_class_code VARCHAR2(30);
52143 l_ae_header_id NUMBER;
52144 l_event_type_code VARCHAR2(30);
52145 l_line_definition_code VARCHAR2(30);
52146 l_line_definition_owner_code VARCHAR2(1);
52147 --
52148 -- adr variables
52149 l_segment VARCHAR2(30);
52150 l_ccid NUMBER;
52151 l_adr_transaction_coa_id NUMBER;
52152 l_adr_accounting_coa_id NUMBER;
52153 l_adr_flexfield_segment_code VARCHAR2(30);
52154 l_adr_flex_value_set_id NUMBER;
52155 l_adr_value_type_code VARCHAR2(30);
52156 l_adr_value_combination_id NUMBER;
52157 l_adr_value_segment_code VARCHAR2(30);
52158
52159 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52160 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52161 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52162 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52163
52164 -- 4262811 Variables ------------------------------------------------------------------------------------------
52165 l_entered_amt_idx NUMBER;
52166 l_accted_amt_idx NUMBER;
52167 l_acc_rev_flag VARCHAR2(1);
52168 l_accrual_line_num NUMBER;
52169 l_tmp_amt NUMBER;
52170 l_acc_rev_natural_side_code VARCHAR2(1);
52171
52172 l_num_entries NUMBER;
52173 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52174 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52175 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52176 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52177 l_recog_line_1 NUMBER;
52178 l_recog_line_2 NUMBER;
52179
52180 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52181 l_bflow_applied_to_amt NUMBER; -- 5132302
52182 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52183
52184 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52185
52186 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52187 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52188
52189 ---------------------------------------------------------------------------------------------------------------
52190
52191
52192 --
52193 -- bulk performance
52194 --
52195 l_balance_type_code VARCHAR2(1);
52196 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52197 l_log_module VARCHAR2(240);
52198
52199 --
52200 -- Upgrade strategy
52201 --
52202 l_actual_upg_option VARCHAR2(1);
52203 l_enc_upg_option VARCHAR2(1);
52204
52205 --
52206 BEGIN
52207 --
52208 IF g_log_enabled THEN
52209 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_105';
52210 END IF;
52211 --
52212 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52213
52214 trace
52215 (p_msg => 'BEGIN of AcctLineType_105'
52216 ,p_level => C_LEVEL_PROCEDURE
52217 ,p_module => l_log_module);
52218
52219 END IF;
52220 --
52221 l_component_type := 'AMB_JLT';
52222 l_component_code := 'REL_PROJ_ENC';
52223 l_component_type_code := 'S';
52224 l_component_appl_id := 275;
52225 l_amb_context_code := 'DEFAULT';
52226 l_entity_code := 'EXPENDITURES';
52227 l_event_class_code := 'BURDEN_COST';
52228 l_event_type_code := 'BURDEN_COST_ALL';
52229 l_line_definition_owner_code := 'S';
52233 l_segment := NULL;
52230 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
52231 --
52232 l_balance_type_code := 'E';
52234 l_ccid := NULL;
52235 l_adr_transaction_coa_id := NULL;
52236 l_adr_accounting_coa_id := NULL;
52237 l_adr_flexfield_segment_code := NULL;
52238 l_adr_flex_value_set_id := NULL;
52239 l_adr_value_type_code := NULL;
52240 l_adr_value_combination_id := NULL;
52241 l_adr_value_segment_code := NULL;
52242
52243 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
52244 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
52245 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52246 l_budgetary_control_flag := 'N';
52247
52248 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52249 l_bflow_applied_to_amt := NULL; -- 5132302
52250 l_entered_amt_idx := NULL; -- 4262811
52251 l_accted_amt_idx := NULL; -- 4262811
52252 l_acc_rev_flag := NULL; -- 4262811
52253 l_accrual_line_num := NULL; -- 4262811
52254 l_tmp_amt := NULL; -- 4262811
52255 --
52256
52257 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52258 l_balance_type_code <> 'B' THEN
52259 IF NVL(p_source_34,'
52260 ') = 'R' AND
52261 NVL(p_source_85,'
52262 ') = 'Y' AND
52263 NVL(p_source_37,'
52264 ') = 'BTC' AND
52265 NVL(p_source_86,'
52266 ') = 'Y'
52267 THEN
52268
52269 --
52270 XLA_AE_LINES_PKG.SetNewLine;
52271
52272 p_balance_type_code := l_balance_type_code;
52273 -- set the flag so later we will know whether the gain loss line needs to be created
52274
52275 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52276 p_actual_flag :='A';
52277 END IF;
52278
52279 --
52280 -- bulk performance
52281 --
52282 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52283 p_header_num => 0); -- 4262811
52284 --
52285 -- set accounting line options
52286 --
52287 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52288 p_natural_side_code => 'C'
52289 , p_gain_or_loss_flag => 'N'
52290 , p_gl_transfer_mode_code => 'S'
52291 , p_acct_entry_type_code => 'E'
52292 , p_switch_side_flag => 'N'
52293 , p_merge_duplicate_code => 'N'
52294 );
52295 --
52296 l_acc_rev_natural_side_code := 'D'; -- 4262811
52297 --
52298 --
52299 -- set accounting line type info
52300 --
52301 xla_ae_lines_pkg.SetAcctLineType
52302 (p_component_type => l_component_type
52303 ,p_event_type_code => l_event_type_code
52304 ,p_line_definition_owner_code => l_line_definition_owner_code
52305 ,p_line_definition_code => l_line_definition_code
52306 ,p_accounting_line_code => l_component_code
52307 ,p_accounting_line_type_code => l_component_type_code
52308 ,p_accounting_line_appl_id => l_component_appl_id
52309 ,p_amb_context_code => l_amb_context_code
52310 ,p_entity_code => l_entity_code
52311 ,p_event_class_code => l_event_class_code);
52312 --
52313 -- set accounting class
52314 --
52315 xla_ae_lines_pkg.SetAcctClass(
52316 p_accounting_class_code => 'PA_BUDGET_ENC'
52317 , p_ae_header_id => l_ae_header_id
52318 );
52319
52320 --
52321 -- set rounding class
52322 --
52323 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52324 'PA_BUDGET_ENC';
52325
52326 --
52327 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52328 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52329 --
52330 -- bulk performance
52331 --
52332 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52333
52334 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52335 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52336
52337 -- 4955764
52338 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52339 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52340
52341 -- 4458381 Public Sector Enh
52342
52343 --
52344 -- set accounting attributes for the line type
52345 --
52346 l_entered_amt_idx := 40;
52347 l_accted_amt_idx := 42;
52348 l_bflow_applied_to_amt_idx := 19; -- 5132302
52349 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52350 l_rec_acct_attrs.array_char_value(1) := p_source_22;
52351 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
52352 l_rec_acct_attrs.array_char_value(2) := p_source_23;
52353 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
52354 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
52355 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
52359 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
52356 l_rec_acct_attrs.array_num_value(4) := p_source_44;
52357 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
52358 l_rec_acct_attrs.array_char_value(5) := p_source_25;
52360 l_rec_acct_attrs.array_num_value(6) := p_source_45;
52361 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
52362 l_rec_acct_attrs.array_date_value(7) := p_source_27;
52363 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
52364 l_rec_acct_attrs.array_num_value(8) := p_source_28;
52365 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
52366 l_rec_acct_attrs.array_char_value(9) := p_source_29;
52367 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
52368 l_rec_acct_attrs.array_char_value(10) := p_source_30;
52369 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
52370 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
52371 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
52372 l_rec_acct_attrs.array_num_value(12) := p_source_44;
52373 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
52374 l_rec_acct_attrs.array_char_value(13) := p_source_25;
52375 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
52376 l_rec_acct_attrs.array_num_value(14) := p_source_45;
52377 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
52378 l_rec_acct_attrs.array_date_value(15) := p_source_27;
52379 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
52380 l_rec_acct_attrs.array_num_value(16) := p_source_28;
52381 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
52382 l_rec_acct_attrs.array_char_value(17) := p_source_29;
52383 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
52384 l_rec_acct_attrs.array_char_value(18) := p_source_31;
52385 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
52386 l_rec_acct_attrs.array_num_value(19) := p_source_46;
52387 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
52388 l_rec_acct_attrs.array_num_value(20) := p_source_47;
52389 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
52390 l_rec_acct_attrs.array_char_value(21) := p_source_48;
52391 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
52392 l_rec_acct_attrs.array_char_value(22) := p_source_49;
52393 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
52394 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
52395 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
52396 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
52397 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
52398 l_rec_acct_attrs.array_char_value(25) := p_source_52;
52399 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
52400 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
52401 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
52402 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
52403 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
52404 l_rec_acct_attrs.array_char_value(28) := p_source_34;
52405 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
52406 l_rec_acct_attrs.array_char_value(29) := p_source_53;
52407 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
52408 l_rec_acct_attrs.array_num_value(30) := p_source_2;
52409 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
52410 l_rec_acct_attrs.array_num_value(31) := p_source_46;
52411 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
52412 l_rec_acct_attrs.array_char_value(32) := p_source_25;
52413 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
52414 l_rec_acct_attrs.array_num_value(33) := p_source_46;
52415 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
52416 l_rec_acct_attrs.array_char_value(34) := p_source_54;
52417 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
52418 l_rec_acct_attrs.array_num_value(35) := p_source_2;
52419 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
52420 l_rec_acct_attrs.array_num_value(36) := p_source_46;
52421 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
52422 l_rec_acct_attrs.array_char_value(37) := p_source_25;
52423 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
52424 l_rec_acct_attrs.array_num_value(38) := p_source_46;
52425 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
52426 l_rec_acct_attrs.array_char_value(39) := p_source_55;
52427 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
52428 l_rec_acct_attrs.array_num_value(40) := p_source_46;
52429 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
52430 l_rec_acct_attrs.array_char_value(41) := p_source_25;
52431 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
52432 l_rec_acct_attrs.array_num_value(42) := p_source_46;
52433 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
52434 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
52435 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
52436 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
52440 l_rec_acct_attrs.array_num_value(46) := p_source_56;
52437 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
52438 l_rec_acct_attrs.array_char_value(45) := p_source_34;
52439 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
52441 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
52442 l_rec_acct_attrs.array_num_value(47) := p_source_57;
52443
52444 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
52445 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
52446
52447 ---------------------------------------------------------------------------------------------------------------
52448 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
52449 ---------------------------------------------------------------------------------------------------------------
52450 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
52451
52452 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52453 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
52454
52455 IF xla_accounting_cache_pkg.GetValueChar
52456 (p_source_code => 'LEDGER_CATEGORY_CODE'
52457 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
52458 AND l_bflow_method_code = 'PRIOR_ENTRY'
52459 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
52460 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
52461 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
52462 )
52463 THEN
52464 xla_ae_lines_pkg.BflowUpgEntry
52465 (p_business_method_code => l_bflow_method_code
52466 ,p_business_class_code => l_bflow_class_code
52467 ,p_balance_type => l_balance_type_code);
52468 ELSE
52469 NULL;
52470 XLA_AE_LINES_PKG.business_flow_validation(
52471 p_business_method_code => l_bflow_method_code
52472 ,p_business_class_code => l_bflow_class_code
52473 ,p_inherit_description_flag => l_inherit_desc_flag);
52474 END IF;
52475
52476 --
52477 -- call analytical criteria
52478 --
52479 -- Inherited Analytical Criteria for business flow method of Prior Entry.
52480 --
52481 -- call description
52482 --
52483 -- No description or it is inherited.
52484 --
52485 -- call ADRs
52486 -- Bug 4922099
52487 --
52488 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
52489 (NVL(l_actual_upg_option, 'N') = 'O') OR
52490 (NVL(l_enc_upg_option, 'N') = 'O')
52491 )
52492 THEN
52493 NULL;
52494 --
52495 --
52496
52497 --
52498 --
52499 END IF;
52500 --
52501 -- Bug 4922099
52502 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
52503 (NVL(l_enc_upg_option, 'N') = 'O')
52504 ) AND
52505 (l_bflow_method_code = 'PRIOR_ENTRY')
52506 )
52507 THEN
52508 IF
52509 --
52510 1 = 1
52511 --
52512 THEN
52513 xla_accounting_err_pkg.build_message
52514 (p_appli_s_name => 'XLA'
52515 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52516 ,p_token_1 => 'LINE_NUMBER'
52517 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
52518 ,p_token_2 => 'LINE_TYPE_NAME'
52519 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
52520 l_component_type
52521 ,l_component_code
52522 ,l_component_type_code
52523 ,l_component_appl_id
52524 ,l_amb_context_code
52525 ,l_entity_code
52526 ,l_event_class_code
52527 )
52528 ,p_token_3 => 'OWNER'
52529 ,p_value_3 => xla_lookups_pkg.get_meaning(
52530 p_lookup_type => 'XLA_OWNER_TYPE'
52531 ,p_lookup_code => l_component_type_code
52532 )
52533 ,p_token_4 => 'PRODUCT_NAME'
52534 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
52535 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
52539 );
52536 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
52537 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
52538 ,p_ae_header_id => NULL
52540
52541 IF (C_LEVEL_ERROR>= g_log_level) THEN
52542 trace
52543 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
52544 ,p_level => C_LEVEL_ERROR
52545 ,p_module => l_log_module);
52546 END IF;
52547 END IF;
52548 END IF;
52549 --
52550 --
52551 ------------------------------------------------------------------------------------------------
52552 -- 4219869 Business Flow
52553 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
52554 -- Prior Entry. Currently, the following code is always generated.
52555 ------------------------------------------------------------------------------------------------
52556 -- No ValidateCurrentLine for business flow method of Prior Entry
52557
52558 ------------------------------------------------------------------------------------
52559 -- 4219869 Business Flow
52560 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
52561 ------------------------------------------------------------------------------------
52562 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52563
52564 ----------------------------------------------------------------------------------
52565 -- 4219869 Business Flow
52566 -- Update journal entry status -- Need to generate this within IF <condition>
52567 ----------------------------------------------------------------------------------
52568 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52569 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
52570 ,p_balance_type_code => l_balance_type_code
52571 );
52572
52573 -------------------------------------------------------------------------------------------
52574 -- 4262811 - Generate the Accrual Reversal lines
52575 -------------------------------------------------------------------------------------------
52576 BEGIN
52577 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
52578 (g_array_event(p_event_id).array_value_num('header_index'));
52579 IF l_acc_rev_flag IS NULL THEN
52580 l_acc_rev_flag := 'N';
52581 END IF;
52582 EXCEPTION
52583 WHEN OTHERS THEN
52584 l_acc_rev_flag := 'N';
52585 END;
52586 --
52587 IF (l_acc_rev_flag = 'Y') THEN
52588
52589 -- 4645092 ------------------------------------------------------------------------------
52590 -- To allow MPA report to determine if it should generate report process
52591 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
52592 ------------------------------------------------------------------------------------------
52593
52594 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
52595 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
52596
52597 --
52598 -- Update the line information that should be overwritten
52599 --
52600 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
52601 p_header_num => 1);
52602 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
52603
52604 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
52605
52606 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
52607 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
52608 END IF;
52609
52610 --
52611 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
52612 --
52613 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
52614 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
52615 ELSE
52616 ---------------------------------------------------------------------------------------------------
52617 -- 4262811a Switch Sign
52618 ---------------------------------------------------------------------------------------------------
52619 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
52620 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52621 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52622 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
52623 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52624 -- 5132302
52625 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
52626 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
52627
52628 END IF;
52629
52630 -- 4955764
52631 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52632 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
52633
52634
52635 XLA_AE_LINES_PKG.ValidateCurrentLine;
52639 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
52636 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
52637
52638 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
52640 ,p_balance_type_code => l_balance_type_code);
52641
52642 END IF;
52643
52644 -----------------------------------------------------------------------------------------
52645 -- 4262811 Multiperiod Accounting
52646 -----------------------------------------------------------------------------------------
52647 -- No MPA option is assigned.
52648
52649
52650 END IF;
52651 END IF;
52652 --
52653
52654 --
52655 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52656 trace
52657 (p_msg => 'END of AcctLineType_105'
52658 ,p_level => C_LEVEL_PROCEDURE
52659 ,p_module => l_log_module);
52660 END IF;
52661 --
52662 EXCEPTION
52663 WHEN xla_exceptions_pkg.application_exception THEN
52664 RAISE;
52665 WHEN OTHERS THEN
52666 xla_exceptions_pkg.raise_message
52667 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_105');
52668 END AcctLineType_105;
52669 --
52670
52671 ---------------------------------------
52672 --
52673 -- PRIVATE FUNCTION
52674 -- AcctLineType_106
52675 --
52676 ---------------------------------------
52677 PROCEDURE AcctLineType_106 (
52678 p_application_id IN NUMBER
52679 ,p_event_id IN NUMBER
52680 ,p_calculate_acctd_flag IN VARCHAR2
52681 ,p_calculate_g_l_flag IN VARCHAR2
52682 ,p_actual_flag IN OUT VARCHAR2
52683 ,p_balance_type_code OUT VARCHAR2
52684 ,p_gain_or_loss_ref OUT VARCHAR2
52685
52686 --Budget Code Combination ID
52687 , p_source_2 IN NUMBER
52688 --Cost CCID
52689 , p_source_3 IN NUMBER
52690 --Cost Clearing CCID
52691 , p_source_6 IN NUMBER
52692 --Reversing Line Flag
52693 , p_source_22 IN VARCHAR2
52694 --Actual Upgrade Credit Accounting Class
52695 , p_source_23 IN VARCHAR2
52696 --Entered Currency Code
52697 , p_source_25 IN VARCHAR2
52698 --Exchange Rate Date
52699 , p_source_27 IN DATE
52700 --Exchange Rate
52701 , p_source_28 IN NUMBER
52702 --Exchange Rate Type
52703 , p_source_29 IN VARCHAR2
52704 --Actual Upgrade Debit Accounting Class
52705 , p_source_30 IN VARCHAR2
52706 --Use Actuals Upgrade Attributes Flag
52707 , p_source_31 IN VARCHAR2
52708 --Expenditure Item ID
52709 , p_source_32 IN NUMBER
52710 --Cost Distribution Line Number
52711 , p_source_33 IN NUMBER
52712 --Line Type
52713 , p_source_34 IN VARCHAR2
52714 , p_source_34_meaning IN VARCHAR2
52715 --Reversed Line Number
52716 , p_source_35 IN NUMBER
52717 --System Linkage Function
52718 , p_source_37 IN VARCHAR2
52719 --Entered Burdened Cost
52720 , p_source_44 IN NUMBER
52721 --Accounted Burdened Cost
52722 , p_source_45 IN NUMBER
52723 --Encumbrance Amount
52724 , p_source_46 IN NUMBER
52725 --Project Encumbrance Applied to Application Identifier
52726 , p_source_47 IN NUMBER
52727 --Project Encumbrance Applied to Distribution Type
52728 , p_source_48 IN VARCHAR2
52729 --Project Encumbrance Applied to Entity Code
52730 , p_source_49 IN VARCHAR2
52731 --Project Encumbrance Applied to First Distribution ID
52732 , p_source_50 IN NUMBER
52733 --Project Encumbrance Applied to First System Transaction ID
52734 , p_source_51 IN NUMBER
52735 --Project Encumbrance Applied to Second Distribution ID
52736 , p_source_52 IN VARCHAR2
52737 --Encumbrance Upgrade Credit Accounting Class
52738 , p_source_53 IN VARCHAR2
52739 --Encumbrance Upgrade Debit Accounting Class
52740 , p_source_54 IN VARCHAR2
52741 --Use Encumbrance Upgrade Attributes Flag
52742 , p_source_55 IN VARCHAR2
52743 --Encumbrance Type ID
52744 , p_source_56 IN NUMBER
52745 --Project Encumbrance Type ID
52746 , p_source_57 IN NUMBER
52747 --Contingent Worker Timecard Flag
52748 , p_source_72 IN VARCHAR2
52749 --Encumbrance Accounting Enabled Flag
52750 , p_source_85 IN VARCHAR2
52751 --Liquidate Encumbrance Flag
52752 , p_source_86 IN VARCHAR2
52753 )
52754 IS
52755
52756 l_component_type VARCHAR2(80);
52757 l_component_code VARCHAR2(30);
52758 l_component_type_code VARCHAR2(1);
52759 l_component_appl_id INTEGER;
52760 l_amb_context_code VARCHAR2(30);
52761 l_entity_code VARCHAR2(30);
52762 l_event_class_code VARCHAR2(30);
52763 l_ae_header_id NUMBER;
52764 l_event_type_code VARCHAR2(30);
52765 l_line_definition_code VARCHAR2(30);
52766 l_line_definition_owner_code VARCHAR2(1);
52767 --
52768 -- adr variables
52769 l_segment VARCHAR2(30);
52770 l_ccid NUMBER;
52771 l_adr_transaction_coa_id NUMBER;
52772 l_adr_accounting_coa_id NUMBER;
52773 l_adr_flexfield_segment_code VARCHAR2(30);
52774 l_adr_flex_value_set_id NUMBER;
52775 l_adr_value_type_code VARCHAR2(30);
52779 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
52776 l_adr_value_combination_id NUMBER;
52777 l_adr_value_segment_code VARCHAR2(30);
52778
52780 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
52781 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
52782 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
52783
52784 -- 4262811 Variables ------------------------------------------------------------------------------------------
52785 l_entered_amt_idx NUMBER;
52786 l_accted_amt_idx NUMBER;
52787 l_acc_rev_flag VARCHAR2(1);
52788 l_accrual_line_num NUMBER;
52789 l_tmp_amt NUMBER;
52790 l_acc_rev_natural_side_code VARCHAR2(1);
52791
52792 l_num_entries NUMBER;
52793 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
52794 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
52795 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
52796 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
52797 l_recog_line_1 NUMBER;
52798 l_recog_line_2 NUMBER;
52799
52800 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
52801 l_bflow_applied_to_amt NUMBER; -- 5132302
52802 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
52803
52804 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
52805
52806 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
52807 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
52808
52809 ---------------------------------------------------------------------------------------------------------------
52810
52811
52812 --
52813 -- bulk performance
52814 --
52815 l_balance_type_code VARCHAR2(1);
52816 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
52817 l_log_module VARCHAR2(240);
52818
52819 --
52820 -- Upgrade strategy
52821 --
52822 l_actual_upg_option VARCHAR2(1);
52823 l_enc_upg_option VARCHAR2(1);
52824
52825 --
52826 BEGIN
52827 --
52828 IF g_log_enabled THEN
52829 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_106';
52830 END IF;
52831 --
52832 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
52833
52834 trace
52835 (p_msg => 'BEGIN of AcctLineType_106'
52836 ,p_level => C_LEVEL_PROCEDURE
52837 ,p_module => l_log_module);
52838
52839 END IF;
52840 --
52841 l_component_type := 'AMB_JLT';
52842 l_component_code := 'REL_PROJ_ENC';
52843 l_component_type_code := 'S';
52844 l_component_appl_id := 275;
52845 l_amb_context_code := 'DEFAULT';
52846 l_entity_code := 'EXPENDITURES';
52847 l_event_class_code := 'TOT_BURDENED_COST';
52848 l_event_type_code := 'TOT_BURDENED_COST_ALL';
52849 l_line_definition_owner_code := 'S';
52850 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
52851 --
52852 l_balance_type_code := 'E';
52853 l_segment := NULL;
52854 l_ccid := NULL;
52855 l_adr_transaction_coa_id := NULL;
52856 l_adr_accounting_coa_id := NULL;
52857 l_adr_flexfield_segment_code := NULL;
52858 l_adr_flex_value_set_id := NULL;
52859 l_adr_value_type_code := NULL;
52860 l_adr_value_combination_id := NULL;
52861 l_adr_value_segment_code := NULL;
52862
52863 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
52864 l_bflow_class_code := 'PA_BUDGET_ENC'; -- 4219869 Business Flow
52865 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
52866 l_budgetary_control_flag := 'N';
52867
52868 l_bflow_applied_to_amt_idx := NULL; -- 5132302
52869 l_bflow_applied_to_amt := NULL; -- 5132302
52870 l_entered_amt_idx := NULL; -- 4262811
52871 l_accted_amt_idx := NULL; -- 4262811
52872 l_acc_rev_flag := NULL; -- 4262811
52873 l_accrual_line_num := NULL; -- 4262811
52874 l_tmp_amt := NULL; -- 4262811
52875 --
52876
52877 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
52878 l_balance_type_code <> 'B' THEN
52879 IF NVL(p_source_34,'
52880 ') = 'D' AND
52881 NVL(p_source_85,'
52882 ') = 'Y' AND
52883 ((NVL(p_source_37,'
52884 ') = 'ST' OR
52885 NVL(p_source_37,'
52886 ') = 'OT' AND
52887 NVL(p_source_72,'
52888 ') = 'Y') OR
52889 NVL(p_source_37,'
52890 ') = 'VI') AND
52891 NVL(p_source_86,'
52892 ') = 'Y'
52893 THEN
52894
52895 --
52896 XLA_AE_LINES_PKG.SetNewLine;
52897
52898 p_balance_type_code := l_balance_type_code;
52899 -- set the flag so later we will know whether the gain loss line needs to be created
52900
52901 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
52902 p_actual_flag :='A';
52903 END IF;
52904
52905 --
52906 -- bulk performance
52907 --
52908 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
52909 p_header_num => 0); -- 4262811
52913 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
52910 --
52911 -- set accounting line options
52912 --
52914 p_natural_side_code => 'C'
52915 , p_gain_or_loss_flag => 'N'
52916 , p_gl_transfer_mode_code => 'S'
52917 , p_acct_entry_type_code => 'E'
52918 , p_switch_side_flag => 'N'
52919 , p_merge_duplicate_code => 'N'
52920 );
52921 --
52922 l_acc_rev_natural_side_code := 'D'; -- 4262811
52923 --
52924 --
52925 -- set accounting line type info
52926 --
52927 xla_ae_lines_pkg.SetAcctLineType
52928 (p_component_type => l_component_type
52929 ,p_event_type_code => l_event_type_code
52930 ,p_line_definition_owner_code => l_line_definition_owner_code
52931 ,p_line_definition_code => l_line_definition_code
52932 ,p_accounting_line_code => l_component_code
52933 ,p_accounting_line_type_code => l_component_type_code
52934 ,p_accounting_line_appl_id => l_component_appl_id
52935 ,p_amb_context_code => l_amb_context_code
52936 ,p_entity_code => l_entity_code
52937 ,p_event_class_code => l_event_class_code);
52938 --
52939 -- set accounting class
52940 --
52941 xla_ae_lines_pkg.SetAcctClass(
52942 p_accounting_class_code => 'PA_BUDGET_ENC'
52943 , p_ae_header_id => l_ae_header_id
52944 );
52945
52946 --
52947 -- set rounding class
52948 --
52949 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
52950 'PA_BUDGET_ENC';
52951
52952 --
52953 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
52954 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
52955 --
52956 -- bulk performance
52957 --
52958 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
52959
52960 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
52961 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
52962
52963 -- 4955764
52964 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
52965 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
52966
52967 -- 4458381 Public Sector Enh
52968
52969 --
52970 -- set accounting attributes for the line type
52971 --
52972 l_entered_amt_idx := 40;
52973 l_accted_amt_idx := 43;
52974 l_bflow_applied_to_amt_idx := 19; -- 5132302
52975 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
52976 l_rec_acct_attrs.array_char_value(1) := p_source_22;
52977 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
52978 l_rec_acct_attrs.array_char_value(2) := p_source_23;
52979 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
52980 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
52981 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
52982 l_rec_acct_attrs.array_num_value(4) := p_source_44;
52983 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
52984 l_rec_acct_attrs.array_char_value(5) := p_source_25;
52985 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
52986 l_rec_acct_attrs.array_num_value(6) := p_source_45;
52987 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
52988 l_rec_acct_attrs.array_date_value(7) := p_source_27;
52989 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
52990 l_rec_acct_attrs.array_num_value(8) := p_source_28;
52991 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
52992 l_rec_acct_attrs.array_char_value(9) := p_source_29;
52993 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
52994 l_rec_acct_attrs.array_char_value(10) := p_source_30;
52995 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
52996 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
52997 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
52998 l_rec_acct_attrs.array_num_value(12) := p_source_44;
52999 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
53000 l_rec_acct_attrs.array_char_value(13) := p_source_25;
53001 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
53002 l_rec_acct_attrs.array_num_value(14) := p_source_45;
53003 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
53004 l_rec_acct_attrs.array_date_value(15) := p_source_27;
53005 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
53006 l_rec_acct_attrs.array_num_value(16) := p_source_28;
53007 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
53008 l_rec_acct_attrs.array_char_value(17) := p_source_29;
53009 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
53010 l_rec_acct_attrs.array_char_value(18) := p_source_31;
53011 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
53012 l_rec_acct_attrs.array_num_value(19) := p_source_46;
53013 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
53017 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
53014 l_rec_acct_attrs.array_num_value(20) := p_source_47;
53015 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53016 l_rec_acct_attrs.array_char_value(21) := p_source_48;
53018 l_rec_acct_attrs.array_char_value(22) := p_source_49;
53019 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
53020 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_50);
53021 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53022 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_51);
53023 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
53024 l_rec_acct_attrs.array_char_value(25) := p_source_52;
53025 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
53026 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
53027 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
53028 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
53029 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
53030 l_rec_acct_attrs.array_char_value(28) := p_source_34;
53031 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
53032 l_rec_acct_attrs.array_char_value(29) := p_source_53;
53033 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
53034 l_rec_acct_attrs.array_num_value(30) := p_source_2;
53035 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
53036 l_rec_acct_attrs.array_num_value(31) := p_source_46;
53037 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
53038 l_rec_acct_attrs.array_char_value(32) :=
53039 xla_ae_sources_pkg.GetSystemSourceChar(
53040 p_source_code => 'XLA_CURRENCY_CODE'
53041 , p_source_type_code => 'Y'
53042 , p_source_application_id => 602
53043 );
53044 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
53045 l_rec_acct_attrs.array_num_value(33) := p_source_46;
53046 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
53047 l_rec_acct_attrs.array_char_value(34) := p_source_54;
53048 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
53049 l_rec_acct_attrs.array_num_value(35) := p_source_2;
53050 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
53051 l_rec_acct_attrs.array_num_value(36) := p_source_46;
53052 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
53053 l_rec_acct_attrs.array_char_value(37) :=
53054 xla_ae_sources_pkg.GetSystemSourceChar(
53055 p_source_code => 'XLA_CURRENCY_CODE'
53056 , p_source_type_code => 'Y'
53057 , p_source_application_id => 602
53058 );
53059 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
53060 l_rec_acct_attrs.array_num_value(38) := p_source_46;
53061 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
53062 l_rec_acct_attrs.array_char_value(39) := p_source_55;
53063 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
53064 l_rec_acct_attrs.array_num_value(40) := p_source_46;
53065 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
53066 l_rec_acct_attrs.array_char_value(41) := p_source_25;
53067 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
53068 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
53069 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
53070 l_rec_acct_attrs.array_num_value(43) := p_source_46;
53071 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
53072 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
53073 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
53074 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
53075 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
53076 l_rec_acct_attrs.array_char_value(46) := p_source_34;
53077 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
53078 l_rec_acct_attrs.array_num_value(47) := p_source_56;
53079 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
53080 l_rec_acct_attrs.array_num_value(48) := p_source_57;
53081
53082 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53083 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53084
53085 ---------------------------------------------------------------------------------------------------------------
53086 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53087 ---------------------------------------------------------------------------------------------------------------
53088 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53089
53090 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53091 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53092
53093 IF xla_accounting_cache_pkg.GetValueChar
53094 (p_source_code => 'LEDGER_CATEGORY_CODE'
53095 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53096 AND l_bflow_method_code = 'PRIOR_ENTRY'
53097 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53098 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53099 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53103 (p_business_method_code => l_bflow_method_code
53100 )
53101 THEN
53102 xla_ae_lines_pkg.BflowUpgEntry
53104 ,p_business_class_code => l_bflow_class_code
53105 ,p_balance_type => l_balance_type_code);
53106 ELSE
53107 NULL;
53108 XLA_AE_LINES_PKG.business_flow_validation(
53109 p_business_method_code => l_bflow_method_code
53110 ,p_business_class_code => l_bflow_class_code
53111 ,p_inherit_description_flag => l_inherit_desc_flag);
53112 END IF;
53113
53114 --
53115 -- call analytical criteria
53116 --
53117 -- Inherited Analytical Criteria for business flow method of Prior Entry.
53118 --
53119 -- call description
53120 --
53121 -- No description or it is inherited.
53122 --
53123 -- call ADRs
53124 -- Bug 4922099
53125 --
53126 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53127 (NVL(l_actual_upg_option, 'N') = 'O') OR
53128 (NVL(l_enc_upg_option, 'N') = 'O')
53129 )
53130 THEN
53131 NULL;
53132 --
53133 --
53134
53135 --
53136 --
53137 END IF;
53138 --
53139 -- Bug 4922099
53140 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53141 (NVL(l_enc_upg_option, 'N') = 'O')
53142 ) AND
53143 (l_bflow_method_code = 'PRIOR_ENTRY')
53144 )
53145 THEN
53146 IF
53147 --
53148 1 = 1
53149 --
53150 THEN
53151 xla_accounting_err_pkg.build_message
53152 (p_appli_s_name => 'XLA'
53153 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53154 ,p_token_1 => 'LINE_NUMBER'
53155 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53156 ,p_token_2 => 'LINE_TYPE_NAME'
53157 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53158 l_component_type
53159 ,l_component_code
53160 ,l_component_type_code
53161 ,l_component_appl_id
53162 ,l_amb_context_code
53163 ,l_entity_code
53164 ,l_event_class_code
53165 )
53166 ,p_token_3 => 'OWNER'
53167 ,p_value_3 => xla_lookups_pkg.get_meaning(
53168 p_lookup_type => 'XLA_OWNER_TYPE'
53169 ,p_lookup_code => l_component_type_code
53170 )
53171 ,p_token_4 => 'PRODUCT_NAME'
53172 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53173 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53174 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53175 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53176 ,p_ae_header_id => NULL
53177 );
53178
53179 IF (C_LEVEL_ERROR>= g_log_level) THEN
53180 trace
53181 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53182 ,p_level => C_LEVEL_ERROR
53183 ,p_module => l_log_module);
53184 END IF;
53185 END IF;
53186 END IF;
53187 --
53188 --
53189 ------------------------------------------------------------------------------------------------
53190 -- 4219869 Business Flow
53191 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53192 -- Prior Entry. Currently, the following code is always generated.
53193 ------------------------------------------------------------------------------------------------
53194 -- No ValidateCurrentLine for business flow method of Prior Entry
53195
53196 ------------------------------------------------------------------------------------
53197 -- 4219869 Business Flow
53198 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53199 ------------------------------------------------------------------------------------
53200 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53201
53202 ----------------------------------------------------------------------------------
53203 -- 4219869 Business Flow
53204 -- Update journal entry status -- Need to generate this within IF <condition>
53205 ----------------------------------------------------------------------------------
53209 );
53206 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53207 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53208 ,p_balance_type_code => l_balance_type_code
53210
53211 -------------------------------------------------------------------------------------------
53212 -- 4262811 - Generate the Accrual Reversal lines
53213 -------------------------------------------------------------------------------------------
53214 BEGIN
53215 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53216 (g_array_event(p_event_id).array_value_num('header_index'));
53217 IF l_acc_rev_flag IS NULL THEN
53218 l_acc_rev_flag := 'N';
53219 END IF;
53220 EXCEPTION
53221 WHEN OTHERS THEN
53222 l_acc_rev_flag := 'N';
53223 END;
53224 --
53225 IF (l_acc_rev_flag = 'Y') THEN
53226
53227 -- 4645092 ------------------------------------------------------------------------------
53228 -- To allow MPA report to determine if it should generate report process
53229 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53230 ------------------------------------------------------------------------------------------
53231
53232 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53233 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53234
53235 --
53236 -- Update the line information that should be overwritten
53237 --
53238 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53239 p_header_num => 1);
53240 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53241
53242 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53243
53244 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53245 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53246 END IF;
53247
53248 --
53249 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53250 --
53251 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53252 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53253 ELSE
53254 ---------------------------------------------------------------------------------------------------
53255 -- 4262811a Switch Sign
53256 ---------------------------------------------------------------------------------------------------
53257 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53258 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53259 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53260 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53261 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53262 -- 5132302
53263 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53264 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53265
53266 END IF;
53267
53268 -- 4955764
53269 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53270 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53271
53272
53273 XLA_AE_LINES_PKG.ValidateCurrentLine;
53274 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53275
53276 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53277 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53278 ,p_balance_type_code => l_balance_type_code);
53279
53280 END IF;
53281
53282 -----------------------------------------------------------------------------------------
53283 -- 4262811 Multiperiod Accounting
53284 -----------------------------------------------------------------------------------------
53285 -- No MPA option is assigned.
53286
53287
53288 END IF;
53289 END IF;
53290 --
53291
53292 --
53293 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53294 trace
53295 (p_msg => 'END of AcctLineType_106'
53296 ,p_level => C_LEVEL_PROCEDURE
53297 ,p_module => l_log_module);
53298 END IF;
53299 --
53300 EXCEPTION
53301 WHEN xla_exceptions_pkg.application_exception THEN
53302 RAISE;
53303 WHEN OTHERS THEN
53304 xla_exceptions_pkg.raise_message
53305 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_106');
53306 END AcctLineType_106;
53307 --
53308
53309 ---------------------------------------
53310 --
53311 -- PRIVATE FUNCTION
53312 -- AcctLineType_107
53313 --
53314 ---------------------------------------
53315 PROCEDURE AcctLineType_107 (
53316 p_application_id IN NUMBER
53317 ,p_event_id IN NUMBER
53318 ,p_calculate_acctd_flag IN VARCHAR2
53319 ,p_calculate_g_l_flag IN VARCHAR2
53320 ,p_actual_flag IN OUT VARCHAR2
53321 ,p_balance_type_code OUT VARCHAR2
53322 ,p_gain_or_loss_ref OUT VARCHAR2
53323
53327 , p_source_3 IN NUMBER
53324 --Budget Code Combination ID
53325 , p_source_2 IN NUMBER
53326 --Cost CCID
53328 --Cost Clearing CCID
53329 , p_source_6 IN NUMBER
53330 --Reversing Line Flag
53331 , p_source_22 IN VARCHAR2
53332 --Actual Upgrade Credit Accounting Class
53333 , p_source_23 IN VARCHAR2
53334 --Entered Currency Code
53335 , p_source_25 IN VARCHAR2
53336 --Exchange Rate Date
53337 , p_source_27 IN DATE
53338 --Exchange Rate
53339 , p_source_28 IN NUMBER
53340 --Exchange Rate Type
53341 , p_source_29 IN VARCHAR2
53342 --Actual Upgrade Debit Accounting Class
53343 , p_source_30 IN VARCHAR2
53344 --Use Actuals Upgrade Attributes Flag
53345 , p_source_31 IN VARCHAR2
53346 --Expenditure Item ID
53347 , p_source_32 IN NUMBER
53348 --Cost Distribution Line Number
53349 , p_source_33 IN NUMBER
53350 --Line Type
53351 , p_source_34 IN VARCHAR2
53352 , p_source_34_meaning IN VARCHAR2
53353 --Reversed Line Number
53354 , p_source_35 IN NUMBER
53355 --Entered Burdened Cost
53356 , p_source_44 IN NUMBER
53357 --Accounted Burdened Cost
53358 , p_source_45 IN NUMBER
53359 --Encumbrance Amount
53360 , p_source_46 IN NUMBER
53361 --Encumbrance Upgrade Credit Accounting Class
53362 , p_source_53 IN VARCHAR2
53363 --Encumbrance Upgrade Debit Accounting Class
53364 , p_source_54 IN VARCHAR2
53365 --Use Encumbrance Upgrade Attributes Flag
53366 , p_source_55 IN VARCHAR2
53367 --Encumbrance Type ID
53368 , p_source_56 IN NUMBER
53369 --Project Encumbrance Type ID
53370 , p_source_57 IN NUMBER
53371 --Document Type
53372 , p_source_69 IN VARCHAR2
53373 , p_source_69_meaning IN VARCHAR2
53374 --Release ID
53375 , p_source_71 IN NUMBER
53376 --Contingent Worker Timecard Flag
53377 , p_source_72 IN VARCHAR2
53378 --Purchase Order Burden Applied to Application Identifier
53379 , p_source_79 IN NUMBER
53380 --Purchase Order Burden Applied to Distribution Type
53381 , p_source_80 IN VARCHAR2
53382 --Purchase Order Burden Applied to Entity Code
53383 , p_source_81 IN VARCHAR2
53384 --Purchase Order Burden Applied to First Distribution Identifier
53385 , p_source_82 IN NUMBER
53386 --Purchase Order Burden Applied to First System Transaction Identifier
53387 , p_source_83 IN NUMBER
53388 --Purchase Order Burden Applied to Second Distribution Identifier
53389 , p_source_84 IN VARCHAR2
53390 )
53391 IS
53392
53393 l_component_type VARCHAR2(80);
53394 l_component_code VARCHAR2(30);
53395 l_component_type_code VARCHAR2(1);
53396 l_component_appl_id INTEGER;
53397 l_amb_context_code VARCHAR2(30);
53398 l_entity_code VARCHAR2(30);
53399 l_event_class_code VARCHAR2(30);
53400 l_ae_header_id NUMBER;
53401 l_event_type_code VARCHAR2(30);
53402 l_line_definition_code VARCHAR2(30);
53403 l_line_definition_owner_code VARCHAR2(1);
53404 --
53405 -- adr variables
53406 l_segment VARCHAR2(30);
53407 l_ccid NUMBER;
53408 l_adr_transaction_coa_id NUMBER;
53409 l_adr_accounting_coa_id NUMBER;
53410 l_adr_flexfield_segment_code VARCHAR2(30);
53411 l_adr_flex_value_set_id NUMBER;
53412 l_adr_value_type_code VARCHAR2(30);
53413 l_adr_value_combination_id NUMBER;
53414 l_adr_value_segment_code VARCHAR2(30);
53415
53416 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
53417 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
53418 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
53419 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
53420
53421 -- 4262811 Variables ------------------------------------------------------------------------------------------
53422 l_entered_amt_idx NUMBER;
53423 l_accted_amt_idx NUMBER;
53424 l_acc_rev_flag VARCHAR2(1);
53425 l_accrual_line_num NUMBER;
53426 l_tmp_amt NUMBER;
53427 l_acc_rev_natural_side_code VARCHAR2(1);
53428
53429 l_num_entries NUMBER;
53430 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
53431 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
53432 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
53433 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
53434 l_recog_line_1 NUMBER;
53435 l_recog_line_2 NUMBER;
53436
53437 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
53438 l_bflow_applied_to_amt NUMBER; -- 5132302
53439 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
53440
53441 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
53442
53443 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
53444 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
53445
53449 --
53446 ---------------------------------------------------------------------------------------------------------------
53447
53448
53450 -- bulk performance
53451 --
53452 l_balance_type_code VARCHAR2(1);
53453 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
53454 l_log_module VARCHAR2(240);
53455
53456 --
53457 -- Upgrade strategy
53458 --
53459 l_actual_upg_option VARCHAR2(1);
53460 l_enc_upg_option VARCHAR2(1);
53461
53462 --
53463 BEGIN
53464 --
53465 IF g_log_enabled THEN
53466 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_107';
53467 END IF;
53468 --
53469 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53470
53471 trace
53472 (p_msg => 'BEGIN of AcctLineType_107'
53473 ,p_level => C_LEVEL_PROCEDURE
53474 ,p_module => l_log_module);
53475
53476 END IF;
53477 --
53478 l_component_type := 'AMB_JLT';
53479 l_component_code := 'REL_RELEASE_BURDENED_ENC';
53480 l_component_type_code := 'S';
53481 l_component_appl_id := 275;
53482 l_amb_context_code := 'DEFAULT';
53483 l_entity_code := 'EXPENDITURES';
53484 l_event_class_code := 'TOT_BURDENED_COST';
53485 l_event_type_code := 'TOT_BURDENED_COST_ALL';
53486 l_line_definition_owner_code := 'S';
53487 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
53488 --
53489 l_balance_type_code := 'E';
53490 l_segment := NULL;
53491 l_ccid := NULL;
53492 l_adr_transaction_coa_id := NULL;
53493 l_adr_accounting_coa_id := NULL;
53494 l_adr_flexfield_segment_code := NULL;
53495 l_adr_flex_value_set_id := NULL;
53496 l_adr_value_type_code := NULL;
53497 l_adr_value_combination_id := NULL;
53498 l_adr_value_segment_code := NULL;
53499
53500 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
53501 l_bflow_class_code := 'REL_PA_BURDENED_ENC'; -- 4219869 Business Flow
53502 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
53503 l_budgetary_control_flag := 'N';
53504
53505 l_bflow_applied_to_amt_idx := NULL; -- 5132302
53506 l_bflow_applied_to_amt := NULL; -- 5132302
53507 l_entered_amt_idx := NULL; -- 4262811
53508 l_accted_amt_idx := NULL; -- 4262811
53509 l_acc_rev_flag := NULL; -- 4262811
53510 l_accrual_line_num := NULL; -- 4262811
53511 l_tmp_amt := NULL; -- 4262811
53512 --
53513
53514 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
53515 l_balance_type_code <> 'B' THEN
53516 IF NVL(p_source_34,'
53517 ') = 'E' AND
53518 NVL(p_source_69,'
53519 ') = 'PO' AND
53520 p_source_71 IS NOT NULL AND
53521 NVL(p_source_72,'
53522 ') = 'N'
53523 THEN
53524
53525 --
53526 XLA_AE_LINES_PKG.SetNewLine;
53527
53528 p_balance_type_code := l_balance_type_code;
53529 -- set the flag so later we will know whether the gain loss line needs to be created
53530
53531 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
53532 p_actual_flag :='A';
53533 END IF;
53534
53535 --
53536 -- bulk performance
53537 --
53538 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
53539 p_header_num => 0); -- 4262811
53540 --
53541 -- set accounting line options
53542 --
53543 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
53544 p_natural_side_code => 'C'
53545 , p_gain_or_loss_flag => 'N'
53546 , p_gl_transfer_mode_code => 'S'
53547 , p_acct_entry_type_code => 'E'
53548 , p_switch_side_flag => 'N'
53549 , p_merge_duplicate_code => 'N'
53550 );
53551 --
53552 l_acc_rev_natural_side_code := 'D'; -- 4262811
53553 --
53554 --
53555 -- set accounting line type info
53556 --
53557 xla_ae_lines_pkg.SetAcctLineType
53558 (p_component_type => l_component_type
53559 ,p_event_type_code => l_event_type_code
53560 ,p_line_definition_owner_code => l_line_definition_owner_code
53561 ,p_line_definition_code => l_line_definition_code
53562 ,p_accounting_line_code => l_component_code
53563 ,p_accounting_line_type_code => l_component_type_code
53564 ,p_accounting_line_appl_id => l_component_appl_id
53565 ,p_amb_context_code => l_amb_context_code
53566 ,p_entity_code => l_entity_code
53567 ,p_event_class_code => l_event_class_code);
53568 --
53569 -- set accounting class
53570 --
53571 xla_ae_lines_pkg.SetAcctClass(
53572 p_accounting_class_code => 'PO_PA_BURDENED'
53573 , p_ae_header_id => l_ae_header_id
53574 );
53575
53576 --
53577 -- set rounding class
53578 --
53579 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
53580 'PO_PA_BURDENED';
53581
53582 --
53586 -- bulk performance
53583 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
53584 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
53585 --
53587 --
53588 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
53589
53590 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
53591 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
53592
53593 -- 4955764
53594 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53595 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
53596
53597 -- 4458381 Public Sector Enh
53598
53599 --
53600 -- set accounting attributes for the line type
53601 --
53602 l_entered_amt_idx := 40;
53603 l_accted_amt_idx := 43;
53604 l_bflow_applied_to_amt_idx := 19; -- 5132302
53605 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
53606 l_rec_acct_attrs.array_char_value(1) := p_source_22;
53607 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
53608 l_rec_acct_attrs.array_char_value(2) := p_source_23;
53609 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
53610 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
53611 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
53612 l_rec_acct_attrs.array_num_value(4) := p_source_44;
53613 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
53614 l_rec_acct_attrs.array_char_value(5) := p_source_25;
53615 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
53616 l_rec_acct_attrs.array_num_value(6) := p_source_45;
53617 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
53618 l_rec_acct_attrs.array_date_value(7) := p_source_27;
53619 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
53620 l_rec_acct_attrs.array_num_value(8) := p_source_28;
53621 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
53622 l_rec_acct_attrs.array_char_value(9) := p_source_29;
53623 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
53624 l_rec_acct_attrs.array_char_value(10) := p_source_30;
53625 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
53626 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
53627 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
53628 l_rec_acct_attrs.array_num_value(12) := p_source_44;
53629 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
53630 l_rec_acct_attrs.array_char_value(13) := p_source_25;
53631 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
53632 l_rec_acct_attrs.array_num_value(14) := p_source_45;
53633 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
53634 l_rec_acct_attrs.array_date_value(15) := p_source_27;
53635 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
53636 l_rec_acct_attrs.array_num_value(16) := p_source_28;
53637 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
53638 l_rec_acct_attrs.array_char_value(17) := p_source_29;
53639 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
53640 l_rec_acct_attrs.array_char_value(18) := p_source_31;
53641 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
53642 l_rec_acct_attrs.array_num_value(19) := p_source_46;
53643 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
53644 l_rec_acct_attrs.array_num_value(20) := p_source_79;
53645 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
53646 l_rec_acct_attrs.array_char_value(21) := p_source_80;
53647 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
53648 l_rec_acct_attrs.array_char_value(22) := p_source_81;
53649 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
53650 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_82);
53651 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
53652 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_83);
53653 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
53654 l_rec_acct_attrs.array_char_value(25) := p_source_84;
53655 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
53656 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
53657 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
53658 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
53659 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
53660 l_rec_acct_attrs.array_char_value(28) := p_source_34;
53661 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
53662 l_rec_acct_attrs.array_char_value(29) := p_source_53;
53663 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
53664 l_rec_acct_attrs.array_num_value(30) := p_source_2;
53665 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
53666 l_rec_acct_attrs.array_num_value(31) := p_source_46;
53667 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
53668 l_rec_acct_attrs.array_char_value(32) :=
53669 xla_ae_sources_pkg.GetSystemSourceChar(
53670 p_source_code => 'XLA_CURRENCY_CODE'
53671 , p_source_type_code => 'Y'
53672 , p_source_application_id => 602
53673 );
53677 l_rec_acct_attrs.array_char_value(34) := p_source_54;
53674 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
53675 l_rec_acct_attrs.array_num_value(33) := p_source_46;
53676 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
53678 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
53679 l_rec_acct_attrs.array_num_value(35) := p_source_2;
53680 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
53681 l_rec_acct_attrs.array_num_value(36) := p_source_46;
53682 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
53683 l_rec_acct_attrs.array_char_value(37) :=
53684 xla_ae_sources_pkg.GetSystemSourceChar(
53685 p_source_code => 'XLA_CURRENCY_CODE'
53686 , p_source_type_code => 'Y'
53687 , p_source_application_id => 602
53688 );
53689 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
53690 l_rec_acct_attrs.array_num_value(38) := p_source_46;
53691 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
53692 l_rec_acct_attrs.array_char_value(39) := p_source_55;
53693 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
53694 l_rec_acct_attrs.array_num_value(40) := p_source_46;
53695 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
53696 l_rec_acct_attrs.array_char_value(41) := p_source_25;
53697 l_rec_acct_attrs.array_acct_attr_code(42) := 'GAIN_LOSS_REFERENCE';
53698 l_rec_acct_attrs.array_num_value(42) := to_char(p_source_32);
53699 l_rec_acct_attrs.array_acct_attr_code(43) := 'LEDGER_AMOUNT';
53700 l_rec_acct_attrs.array_num_value(43) := p_source_46;
53701 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID1';
53702 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_32);
53703 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_ID2';
53704 l_rec_acct_attrs.array_num_value(45) := to_char(p_source_35);
53705 l_rec_acct_attrs.array_acct_attr_code(46) := 'REVERSED_DISTRIBUTION_TYPE';
53706 l_rec_acct_attrs.array_char_value(46) := p_source_34;
53707 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_CR_ENC_TYPE_ID';
53708 l_rec_acct_attrs.array_num_value(47) := p_source_56;
53709 l_rec_acct_attrs.array_acct_attr_code(48) := 'UPG_DR_ENC_TYPE_ID';
53710 l_rec_acct_attrs.array_num_value(48) := p_source_57;
53711
53712 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
53713 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
53714
53715 ---------------------------------------------------------------------------------------------------------------
53716 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
53717 ---------------------------------------------------------------------------------------------------------------
53718 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
53719
53720 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53721 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
53722
53723 IF xla_accounting_cache_pkg.GetValueChar
53724 (p_source_code => 'LEDGER_CATEGORY_CODE'
53725 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
53726 AND l_bflow_method_code = 'PRIOR_ENTRY'
53727 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
53728 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
53729 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
53730 )
53731 THEN
53732 xla_ae_lines_pkg.BflowUpgEntry
53733 (p_business_method_code => l_bflow_method_code
53734 ,p_business_class_code => l_bflow_class_code
53735 ,p_balance_type => l_balance_type_code);
53736 ELSE
53737 NULL;
53738 XLA_AE_LINES_PKG.business_flow_validation(
53739 p_business_method_code => l_bflow_method_code
53740 ,p_business_class_code => l_bflow_class_code
53741 ,p_inherit_description_flag => l_inherit_desc_flag);
53742 END IF;
53743
53744 --
53745 -- call analytical criteria
53746 --
53747 -- Inherited Analytical Criteria for business flow method of Prior Entry.
53748 --
53749 -- call description
53750 --
53751 -- No description or it is inherited.
53752 --
53753 -- call ADRs
53754 -- Bug 4922099
53755 --
53756 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
53757 (NVL(l_actual_upg_option, 'N') = 'O') OR
53758 (NVL(l_enc_upg_option, 'N') = 'O')
53759 )
53760 THEN
53761 NULL;
53762 --
53763 --
53764
53765 --
53766 --
53767 END IF;
53768 --
53769 -- Bug 4922099
53770 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
53771 (NVL(l_enc_upg_option, 'N') = 'O')
53772 ) AND
53773 (l_bflow_method_code = 'PRIOR_ENTRY')
53774 )
53775 THEN
53776 IF
53777 --
53778 1 = 1
53779 --
53780 THEN
53781 xla_accounting_err_pkg.build_message
53782 (p_appli_s_name => 'XLA'
53783 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53787 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
53784 ,p_token_1 => 'LINE_NUMBER'
53785 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
53786 ,p_token_2 => 'LINE_TYPE_NAME'
53788 l_component_type
53789 ,l_component_code
53790 ,l_component_type_code
53791 ,l_component_appl_id
53792 ,l_amb_context_code
53793 ,l_entity_code
53794 ,l_event_class_code
53795 )
53796 ,p_token_3 => 'OWNER'
53797 ,p_value_3 => xla_lookups_pkg.get_meaning(
53798 p_lookup_type => 'XLA_OWNER_TYPE'
53799 ,p_lookup_code => l_component_type_code
53800 )
53801 ,p_token_4 => 'PRODUCT_NAME'
53802 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
53803 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
53804 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
53805 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
53806 ,p_ae_header_id => NULL
53807 );
53808
53809 IF (C_LEVEL_ERROR>= g_log_level) THEN
53810 trace
53811 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
53812 ,p_level => C_LEVEL_ERROR
53813 ,p_module => l_log_module);
53814 END IF;
53815 END IF;
53816 END IF;
53817 --
53818 --
53819 ------------------------------------------------------------------------------------------------
53820 -- 4219869 Business Flow
53821 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
53822 -- Prior Entry. Currently, the following code is always generated.
53823 ------------------------------------------------------------------------------------------------
53824 -- No ValidateCurrentLine for business flow method of Prior Entry
53825
53826 ------------------------------------------------------------------------------------
53827 -- 4219869 Business Flow
53828 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
53829 ------------------------------------------------------------------------------------
53830 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53831
53832 ----------------------------------------------------------------------------------
53833 -- 4219869 Business Flow
53834 -- Update journal entry status -- Need to generate this within IF <condition>
53835 ----------------------------------------------------------------------------------
53836 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53837 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
53838 ,p_balance_type_code => l_balance_type_code
53839 );
53840
53841 -------------------------------------------------------------------------------------------
53842 -- 4262811 - Generate the Accrual Reversal lines
53843 -------------------------------------------------------------------------------------------
53844 BEGIN
53845 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
53846 (g_array_event(p_event_id).array_value_num('header_index'));
53847 IF l_acc_rev_flag IS NULL THEN
53848 l_acc_rev_flag := 'N';
53849 END IF;
53850 EXCEPTION
53851 WHEN OTHERS THEN
53852 l_acc_rev_flag := 'N';
53853 END;
53854 --
53855 IF (l_acc_rev_flag = 'Y') THEN
53856
53857 -- 4645092 ------------------------------------------------------------------------------
53858 -- To allow MPA report to determine if it should generate report process
53859 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
53860 ------------------------------------------------------------------------------------------
53861
53862 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
53863 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
53864
53865 --
53866 -- Update the line information that should be overwritten
53867 --
53868 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
53869 p_header_num => 1);
53870 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
53871
53872 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
53873
53874 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
53878 --
53875 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
53876 END IF;
53877
53879 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
53880 --
53881 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
53882 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
53883 ELSE
53884 ---------------------------------------------------------------------------------------------------
53885 -- 4262811a Switch Sign
53886 ---------------------------------------------------------------------------------------------------
53887 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
53888 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53889 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53890 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
53891 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53892 -- 5132302
53893 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
53894 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
53895
53896 END IF;
53897
53898 -- 4955764
53899 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
53900 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
53901
53902
53903 XLA_AE_LINES_PKG.ValidateCurrentLine;
53904 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
53905
53906 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
53907 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
53908 ,p_balance_type_code => l_balance_type_code);
53909
53910 END IF;
53911
53912 -----------------------------------------------------------------------------------------
53913 -- 4262811 Multiperiod Accounting
53914 -----------------------------------------------------------------------------------------
53915 -- No MPA option is assigned.
53916
53917
53918 END IF;
53919 END IF;
53920 --
53921
53922 --
53923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
53924 trace
53925 (p_msg => 'END of AcctLineType_107'
53926 ,p_level => C_LEVEL_PROCEDURE
53927 ,p_module => l_log_module);
53928 END IF;
53929 --
53930 EXCEPTION
53931 WHEN xla_exceptions_pkg.application_exception THEN
53932 RAISE;
53933 WHEN OTHERS THEN
53934 xla_exceptions_pkg.raise_message
53935 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_107');
53936 END AcctLineType_107;
53937 --
53938
53939 ---------------------------------------
53940 --
53941 -- PRIVATE FUNCTION
53942 -- AcctLineType_108
53943 --
53944 ---------------------------------------
53945 PROCEDURE AcctLineType_108 (
53946 p_application_id IN NUMBER
53947 ,p_event_id IN NUMBER
53948 ,p_calculate_acctd_flag IN VARCHAR2
53949 ,p_calculate_g_l_flag IN VARCHAR2
53950 ,p_actual_flag IN OUT VARCHAR2
53951 ,p_balance_type_code OUT VARCHAR2
53952 ,p_gain_or_loss_ref OUT VARCHAR2
53953
53954 --Budget Code Combination ID
53955 , p_source_2 IN NUMBER
53956 --Cost CCID
53957 , p_source_3 IN NUMBER
53958 --Cost Clearing CCID
53959 , p_source_6 IN NUMBER
53960 --Reversing Line Flag
53961 , p_source_22 IN VARCHAR2
53962 --Actual Upgrade Credit Accounting Class
53963 , p_source_23 IN VARCHAR2
53964 --Entered Currency Code
53965 , p_source_25 IN VARCHAR2
53966 --Exchange Rate Date
53967 , p_source_27 IN DATE
53968 --Exchange Rate
53969 , p_source_28 IN NUMBER
53970 --Exchange Rate Type
53971 , p_source_29 IN VARCHAR2
53972 --Actual Upgrade Debit Accounting Class
53973 , p_source_30 IN VARCHAR2
53974 --Use Actuals Upgrade Attributes Flag
53975 , p_source_31 IN VARCHAR2
53976 --Expenditure Item ID
53977 , p_source_32 IN NUMBER
53978 --Cost Distribution Line Number
53979 , p_source_33 IN NUMBER
53980 --Line Type
53981 , p_source_34 IN VARCHAR2
53982 , p_source_34_meaning IN VARCHAR2
53983 --Reversed Line Number
53984 , p_source_35 IN NUMBER
53985 --Entered Burdened Cost
53986 , p_source_44 IN NUMBER
53987 --Accounted Burdened Cost
53988 , p_source_45 IN NUMBER
53989 --Encumbrance Amount
53990 , p_source_46 IN NUMBER
53991 --Encumbrance Upgrade Debit Accounting Class
53992 , p_source_54 IN VARCHAR2
53993 --Use Encumbrance Upgrade Attributes Flag
53994 , p_source_55 IN VARCHAR2
53995 --Encumbrance Type ID
53996 , p_source_56 IN NUMBER
53997 --Project Encumbrance Type ID
53998 , p_source_57 IN NUMBER
53999 --Document Type
54000 , p_source_69 IN VARCHAR2
54004 --Contingent Worker Timecard Flag
54001 , p_source_69_meaning IN VARCHAR2
54002 --Release ID
54003 , p_source_71 IN NUMBER
54005 , p_source_72 IN VARCHAR2
54006 --Purchase Order Burden Applied to Application Identifier
54007 , p_source_79 IN NUMBER
54008 --Purchase Order Burden Applied to Distribution Type
54009 , p_source_80 IN VARCHAR2
54010 --Purchase Order Burden Applied to Entity Code
54011 , p_source_81 IN VARCHAR2
54012 --Purchase Order Burden Applied to First Distribution Identifier
54013 , p_source_82 IN NUMBER
54014 --Purchase Order Burden Applied to First System Transaction Identifier
54015 , p_source_83 IN NUMBER
54016 --Purchase Order Burden Applied to Second Distribution Identifier
54017 , p_source_84 IN VARCHAR2
54018 )
54019 IS
54020
54021 l_component_type VARCHAR2(80);
54022 l_component_code VARCHAR2(30);
54023 l_component_type_code VARCHAR2(1);
54024 l_component_appl_id INTEGER;
54025 l_amb_context_code VARCHAR2(30);
54026 l_entity_code VARCHAR2(30);
54027 l_event_class_code VARCHAR2(30);
54028 l_ae_header_id NUMBER;
54029 l_event_type_code VARCHAR2(30);
54030 l_line_definition_code VARCHAR2(30);
54031 l_line_definition_owner_code VARCHAR2(1);
54032 --
54033 -- adr variables
54034 l_segment VARCHAR2(30);
54035 l_ccid NUMBER;
54036 l_adr_transaction_coa_id NUMBER;
54037 l_adr_accounting_coa_id NUMBER;
54038 l_adr_flexfield_segment_code VARCHAR2(30);
54039 l_adr_flex_value_set_id NUMBER;
54040 l_adr_value_type_code VARCHAR2(30);
54041 l_adr_value_combination_id NUMBER;
54042 l_adr_value_segment_code VARCHAR2(30);
54043
54044 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54045 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54046 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54047 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54048
54049 -- 4262811 Variables ------------------------------------------------------------------------------------------
54050 l_entered_amt_idx NUMBER;
54051 l_accted_amt_idx NUMBER;
54052 l_acc_rev_flag VARCHAR2(1);
54053 l_accrual_line_num NUMBER;
54054 l_tmp_amt NUMBER;
54055 l_acc_rev_natural_side_code VARCHAR2(1);
54056
54057 l_num_entries NUMBER;
54058 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54059 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54060 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54061 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54062 l_recog_line_1 NUMBER;
54063 l_recog_line_2 NUMBER;
54064
54065 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54066 l_bflow_applied_to_amt NUMBER; -- 5132302
54067 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54068
54069 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54070
54071 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54072 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54073
54074 ---------------------------------------------------------------------------------------------------------------
54075
54076
54077 --
54078 -- bulk performance
54079 --
54080 l_balance_type_code VARCHAR2(1);
54081 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54082 l_log_module VARCHAR2(240);
54083
54084 --
54085 -- Upgrade strategy
54086 --
54087 l_actual_upg_option VARCHAR2(1);
54088 l_enc_upg_option VARCHAR2(1);
54089
54090 --
54091 BEGIN
54092 --
54093 IF g_log_enabled THEN
54094 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_108';
54095 END IF;
54096 --
54097 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54098
54099 trace
54100 (p_msg => 'BEGIN of AcctLineType_108'
54101 ,p_level => C_LEVEL_PROCEDURE
54102 ,p_module => l_log_module);
54103
54104 END IF;
54105 --
54106 l_component_type := 'AMB_JLT';
54107 l_component_code := 'REL_RELEASE_BURDENED_ENC';
54108 l_component_type_code := 'S';
54109 l_component_appl_id := 275;
54110 l_amb_context_code := 'DEFAULT';
54111 l_entity_code := 'EXPENDITURES';
54112 l_event_class_code := 'TOT_BURDENED_COST_ADJ';
54113 l_event_type_code := 'TOT_BURDENED_COST_ADJ_ALL';
54114 l_line_definition_owner_code := 'S';
54115 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
54116 --
54117 l_balance_type_code := 'E';
54118 l_segment := NULL;
54119 l_ccid := NULL;
54120 l_adr_transaction_coa_id := NULL;
54121 l_adr_accounting_coa_id := NULL;
54122 l_adr_flexfield_segment_code := NULL;
54123 l_adr_flex_value_set_id := NULL;
54124 l_adr_value_type_code := NULL;
54125 l_adr_value_combination_id := NULL;
54129 l_bflow_class_code := 'REL_PA_BURDENED_ENC'; -- 4219869 Business Flow
54126 l_adr_value_segment_code := NULL;
54127
54128 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
54130 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54131 l_budgetary_control_flag := 'N';
54132
54133 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54134 l_bflow_applied_to_amt := NULL; -- 5132302
54135 l_entered_amt_idx := NULL; -- 4262811
54136 l_accted_amt_idx := NULL; -- 4262811
54137 l_acc_rev_flag := NULL; -- 4262811
54138 l_accrual_line_num := NULL; -- 4262811
54139 l_tmp_amt := NULL; -- 4262811
54140 --
54141
54142 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54143 l_balance_type_code <> 'B' THEN
54144 IF NVL(p_source_34,'
54145 ') = 'E' AND
54146 NVL(p_source_69,'
54147 ') = 'PO' AND
54148 p_source_71 IS NOT NULL AND
54149 NVL(p_source_72,'
54150 ') = 'N'
54151 THEN
54152
54153 --
54154 XLA_AE_LINES_PKG.SetNewLine;
54155
54156 p_balance_type_code := l_balance_type_code;
54157 -- set the flag so later we will know whether the gain loss line needs to be created
54158
54159 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54160 p_actual_flag :='A';
54161 END IF;
54162
54163 --
54164 -- bulk performance
54165 --
54166 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54167 p_header_num => 0); -- 4262811
54168 --
54169 -- set accounting line options
54170 --
54171 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54172 p_natural_side_code => 'C'
54173 , p_gain_or_loss_flag => 'N'
54174 , p_gl_transfer_mode_code => 'S'
54175 , p_acct_entry_type_code => 'E'
54176 , p_switch_side_flag => 'N'
54177 , p_merge_duplicate_code => 'N'
54178 );
54179 --
54180 l_acc_rev_natural_side_code := 'D'; -- 4262811
54181 --
54182 --
54183 -- set accounting line type info
54184 --
54185 xla_ae_lines_pkg.SetAcctLineType
54186 (p_component_type => l_component_type
54187 ,p_event_type_code => l_event_type_code
54188 ,p_line_definition_owner_code => l_line_definition_owner_code
54189 ,p_line_definition_code => l_line_definition_code
54190 ,p_accounting_line_code => l_component_code
54191 ,p_accounting_line_type_code => l_component_type_code
54192 ,p_accounting_line_appl_id => l_component_appl_id
54193 ,p_amb_context_code => l_amb_context_code
54194 ,p_entity_code => l_entity_code
54195 ,p_event_class_code => l_event_class_code);
54196 --
54197 -- set accounting class
54198 --
54199 xla_ae_lines_pkg.SetAcctClass(
54200 p_accounting_class_code => 'PO_PA_BURDENED'
54201 , p_ae_header_id => l_ae_header_id
54202 );
54203
54204 --
54205 -- set rounding class
54206 --
54207 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54208 'PO_PA_BURDENED';
54209
54210 --
54211 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54212 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54213 --
54214 -- bulk performance
54215 --
54216 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54217
54218 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54219 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54220
54221 -- 4955764
54222 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54223 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54224
54225 -- 4458381 Public Sector Enh
54226
54227 --
54228 -- set accounting attributes for the line type
54229 --
54230 l_entered_amt_idx := 35;
54231 l_accted_amt_idx := 37;
54232 l_bflow_applied_to_amt_idx := 19; -- 5132302
54233 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54234 l_rec_acct_attrs.array_char_value(1) := p_source_22;
54235 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
54236 l_rec_acct_attrs.array_char_value(2) := p_source_23;
54237 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
54238 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
54239 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
54240 l_rec_acct_attrs.array_num_value(4) := p_source_44;
54241 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
54242 l_rec_acct_attrs.array_char_value(5) := p_source_25;
54243 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
54244 l_rec_acct_attrs.array_num_value(6) := p_source_45;
54245 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
54246 l_rec_acct_attrs.array_date_value(7) := p_source_27;
54247 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
54248 l_rec_acct_attrs.array_num_value(8) := p_source_28;
54252 l_rec_acct_attrs.array_char_value(10) := p_source_30;
54249 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
54250 l_rec_acct_attrs.array_char_value(9) := p_source_29;
54251 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
54253 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
54254 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
54255 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
54256 l_rec_acct_attrs.array_num_value(12) := p_source_44;
54257 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
54258 l_rec_acct_attrs.array_char_value(13) := p_source_25;
54259 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
54260 l_rec_acct_attrs.array_num_value(14) := p_source_45;
54261 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
54262 l_rec_acct_attrs.array_date_value(15) := p_source_27;
54263 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
54264 l_rec_acct_attrs.array_num_value(16) := p_source_28;
54265 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
54266 l_rec_acct_attrs.array_char_value(17) := p_source_29;
54267 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
54268 l_rec_acct_attrs.array_char_value(18) := p_source_31;
54269 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
54270 l_rec_acct_attrs.array_num_value(19) := p_source_46;
54271 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
54272 l_rec_acct_attrs.array_num_value(20) := p_source_79;
54273 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54274 l_rec_acct_attrs.array_char_value(21) := p_source_80;
54275 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
54276 l_rec_acct_attrs.array_char_value(22) := p_source_81;
54277 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
54278 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_82);
54279 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54280 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_83);
54281 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
54282 l_rec_acct_attrs.array_char_value(25) := p_source_84;
54283 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
54284 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
54285 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
54286 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
54287 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
54288 l_rec_acct_attrs.array_char_value(28) := p_source_34;
54289 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_ACCT_CLASS';
54290 l_rec_acct_attrs.array_char_value(29) := p_source_54;
54291 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_CCID';
54292 l_rec_acct_attrs.array_num_value(30) := p_source_2;
54293 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_AMT';
54294 l_rec_acct_attrs.array_num_value(31) := p_source_46;
54295 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_ENTERED_CURR';
54296 l_rec_acct_attrs.array_char_value(32) :=
54297 xla_ae_sources_pkg.GetSystemSourceChar(
54298 p_source_code => 'XLA_CURRENCY_CODE'
54299 , p_source_type_code => 'Y'
54300 , p_source_application_id => 602
54301 );
54302 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_DR_LEDGER_AMT';
54303 l_rec_acct_attrs.array_num_value(33) := p_source_46;
54304 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_OPTION';
54305 l_rec_acct_attrs.array_char_value(34) := p_source_55;
54306 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENTERED_CURRENCY_AMOUNT';
54307 l_rec_acct_attrs.array_num_value(35) := p_source_46;
54308 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENTERED_CURRENCY_CODE';
54309 l_rec_acct_attrs.array_char_value(36) := p_source_25;
54310 l_rec_acct_attrs.array_acct_attr_code(37) := 'LEDGER_AMOUNT';
54311 l_rec_acct_attrs.array_num_value(37) := p_source_46;
54312 l_rec_acct_attrs.array_acct_attr_code(38) := 'REVERSED_DISTRIBUTION_ID1';
54313 l_rec_acct_attrs.array_num_value(38) := to_char(p_source_32);
54314 l_rec_acct_attrs.array_acct_attr_code(39) := 'REVERSED_DISTRIBUTION_ID2';
54315 l_rec_acct_attrs.array_num_value(39) := to_char(p_source_35);
54316 l_rec_acct_attrs.array_acct_attr_code(40) := 'REVERSED_DISTRIBUTION_TYPE';
54317 l_rec_acct_attrs.array_char_value(40) := p_source_34;
54318 l_rec_acct_attrs.array_acct_attr_code(41) := 'UPG_CR_ENC_TYPE_ID';
54319 l_rec_acct_attrs.array_num_value(41) := p_source_56;
54320 l_rec_acct_attrs.array_acct_attr_code(42) := 'UPG_DR_ENC_TYPE_ID';
54321 l_rec_acct_attrs.array_num_value(42) := p_source_57;
54322
54323 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54324 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54325
54326 ---------------------------------------------------------------------------------------------------------------
54327 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54328 ---------------------------------------------------------------------------------------------------------------
54329 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54330
54331 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54335 (p_source_code => 'LEDGER_CATEGORY_CODE'
54332 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54333
54334 IF xla_accounting_cache_pkg.GetValueChar
54336 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54337 AND l_bflow_method_code = 'PRIOR_ENTRY'
54338 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54339 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54340 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54341 )
54342 THEN
54343 xla_ae_lines_pkg.BflowUpgEntry
54344 (p_business_method_code => l_bflow_method_code
54345 ,p_business_class_code => l_bflow_class_code
54346 ,p_balance_type => l_balance_type_code);
54347 ELSE
54348 NULL;
54349 XLA_AE_LINES_PKG.business_flow_validation(
54350 p_business_method_code => l_bflow_method_code
54351 ,p_business_class_code => l_bflow_class_code
54352 ,p_inherit_description_flag => l_inherit_desc_flag);
54353 END IF;
54354
54355 --
54356 -- call analytical criteria
54357 --
54358 -- Inherited Analytical Criteria for business flow method of Prior Entry.
54359 --
54360 -- call description
54361 --
54362 -- No description or it is inherited.
54363 --
54364 -- call ADRs
54365 -- Bug 4922099
54366 --
54367 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54368 (NVL(l_actual_upg_option, 'N') = 'O') OR
54369 (NVL(l_enc_upg_option, 'N') = 'O')
54370 )
54371 THEN
54372 NULL;
54373 --
54374 --
54375
54376 --
54377 --
54378 END IF;
54379 --
54380 -- Bug 4922099
54381 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
54382 (NVL(l_enc_upg_option, 'N') = 'O')
54383 ) AND
54384 (l_bflow_method_code = 'PRIOR_ENTRY')
54385 )
54386 THEN
54387 IF
54388 --
54389 1 = 1
54390 --
54391 THEN
54392 xla_accounting_err_pkg.build_message
54393 (p_appli_s_name => 'XLA'
54394 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54395 ,p_token_1 => 'LINE_NUMBER'
54396 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
54397 ,p_token_2 => 'LINE_TYPE_NAME'
54398 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
54399 l_component_type
54400 ,l_component_code
54401 ,l_component_type_code
54402 ,l_component_appl_id
54403 ,l_amb_context_code
54404 ,l_entity_code
54405 ,l_event_class_code
54406 )
54407 ,p_token_3 => 'OWNER'
54408 ,p_value_3 => xla_lookups_pkg.get_meaning(
54409 p_lookup_type => 'XLA_OWNER_TYPE'
54410 ,p_lookup_code => l_component_type_code
54411 )
54412 ,p_token_4 => 'PRODUCT_NAME'
54413 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
54414 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
54415 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
54416 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
54417 ,p_ae_header_id => NULL
54418 );
54419
54420 IF (C_LEVEL_ERROR>= g_log_level) THEN
54421 trace
54422 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
54423 ,p_level => C_LEVEL_ERROR
54424 ,p_module => l_log_module);
54425 END IF;
54426 END IF;
54427 END IF;
54428 --
54429 --
54430 ------------------------------------------------------------------------------------------------
54431 -- 4219869 Business Flow
54432 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
54433 -- Prior Entry. Currently, the following code is always generated.
54434 ------------------------------------------------------------------------------------------------
54435 -- No ValidateCurrentLine for business flow method of Prior Entry
54436
54437 ------------------------------------------------------------------------------------
54441 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54438 -- 4219869 Business Flow
54439 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
54440 ------------------------------------------------------------------------------------
54442
54443 ----------------------------------------------------------------------------------
54444 -- 4219869 Business Flow
54445 -- Update journal entry status -- Need to generate this within IF <condition>
54446 ----------------------------------------------------------------------------------
54447 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54448 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
54449 ,p_balance_type_code => l_balance_type_code
54450 );
54451
54452 -------------------------------------------------------------------------------------------
54453 -- 4262811 - Generate the Accrual Reversal lines
54454 -------------------------------------------------------------------------------------------
54455 BEGIN
54456 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
54457 (g_array_event(p_event_id).array_value_num('header_index'));
54458 IF l_acc_rev_flag IS NULL THEN
54459 l_acc_rev_flag := 'N';
54460 END IF;
54461 EXCEPTION
54462 WHEN OTHERS THEN
54463 l_acc_rev_flag := 'N';
54464 END;
54465 --
54466 IF (l_acc_rev_flag = 'Y') THEN
54467
54468 -- 4645092 ------------------------------------------------------------------------------
54469 -- To allow MPA report to determine if it should generate report process
54470 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
54471 ------------------------------------------------------------------------------------------
54472
54473 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
54474 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
54475
54476 --
54477 -- Update the line information that should be overwritten
54478 --
54479 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
54480 p_header_num => 1);
54481 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
54482
54483 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
54484
54485 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
54486 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
54487 END IF;
54488
54489 --
54490 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
54491 --
54492 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
54493 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
54494 ELSE
54495 ---------------------------------------------------------------------------------------------------
54496 -- 4262811a Switch Sign
54497 ---------------------------------------------------------------------------------------------------
54498 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
54499 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54500 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54501 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
54502 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54503 -- 5132302
54504 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
54505 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
54506
54507 END IF;
54508
54509 -- 4955764
54510 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54511 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
54512
54513
54514 XLA_AE_LINES_PKG.ValidateCurrentLine;
54515 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
54516
54517 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
54518 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
54519 ,p_balance_type_code => l_balance_type_code);
54520
54521 END IF;
54522
54523 -----------------------------------------------------------------------------------------
54524 -- 4262811 Multiperiod Accounting
54525 -----------------------------------------------------------------------------------------
54526 -- No MPA option is assigned.
54527
54528
54529 END IF;
54530 END IF;
54531 --
54532
54533 --
54534 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54535 trace
54536 (p_msg => 'END of AcctLineType_108'
54537 ,p_level => C_LEVEL_PROCEDURE
54538 ,p_module => l_log_module);
54539 END IF;
54540 --
54541 EXCEPTION
54542 WHEN xla_exceptions_pkg.application_exception THEN
54543 RAISE;
54544 WHEN OTHERS THEN
54545 xla_exceptions_pkg.raise_message
54549
54546 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_108');
54547 END AcctLineType_108;
54548 --
54550 ---------------------------------------
54551 --
54552 -- PRIVATE FUNCTION
54553 -- AcctLineType_109
54554 --
54555 ---------------------------------------
54556 PROCEDURE AcctLineType_109 (
54557 p_application_id IN NUMBER
54558 ,p_event_id IN NUMBER
54559 ,p_calculate_acctd_flag IN VARCHAR2
54560 ,p_calculate_g_l_flag IN VARCHAR2
54561 ,p_actual_flag IN OUT VARCHAR2
54562 ,p_balance_type_code OUT VARCHAR2
54563 ,p_gain_or_loss_ref OUT VARCHAR2
54564
54565 --Budget Code Combination ID
54566 , p_source_2 IN NUMBER
54567 --Cost CCID
54568 , p_source_3 IN NUMBER
54569 --Cost Clearing CCID
54570 , p_source_6 IN NUMBER
54571 --Reversing Line Flag
54572 , p_source_22 IN VARCHAR2
54573 --Actual Upgrade Credit Accounting Class
54574 , p_source_23 IN VARCHAR2
54575 --Entered Currency Code
54576 , p_source_25 IN VARCHAR2
54577 --Exchange Rate Date
54578 , p_source_27 IN DATE
54579 --Exchange Rate
54580 , p_source_28 IN NUMBER
54581 --Exchange Rate Type
54582 , p_source_29 IN VARCHAR2
54583 --Actual Upgrade Debit Accounting Class
54584 , p_source_30 IN VARCHAR2
54585 --Use Actuals Upgrade Attributes Flag
54586 , p_source_31 IN VARCHAR2
54587 --Expenditure Item ID
54588 , p_source_32 IN NUMBER
54589 --Cost Distribution Line Number
54590 , p_source_33 IN NUMBER
54591 --Line Type
54592 , p_source_34 IN VARCHAR2
54593 , p_source_34_meaning IN VARCHAR2
54594 --Reversed Line Number
54595 , p_source_35 IN NUMBER
54596 --Entered Burdened Cost
54597 , p_source_44 IN NUMBER
54598 --Accounted Burdened Cost
54599 , p_source_45 IN NUMBER
54600 --Encumbrance Amount
54601 , p_source_46 IN NUMBER
54602 --Encumbrance Upgrade Credit Accounting Class
54603 , p_source_53 IN VARCHAR2
54604 --Encumbrance Upgrade Debit Accounting Class
54605 , p_source_54 IN VARCHAR2
54606 --Use Encumbrance Upgrade Attributes Flag
54607 , p_source_55 IN VARCHAR2
54608 --Encumbrance Type ID
54609 , p_source_56 IN NUMBER
54610 --Project Encumbrance Type ID
54611 , p_source_57 IN NUMBER
54612 --Document Type
54613 , p_source_69 IN VARCHAR2
54614 , p_source_69_meaning IN VARCHAR2
54615 --Release ID
54616 , p_source_71 IN NUMBER
54617 --Contingent Worker Timecard Flag
54618 , p_source_72 IN VARCHAR2
54619 --Purchase Order Burden Applied to Application Identifier
54620 , p_source_79 IN NUMBER
54621 --Purchase Order Burden Applied to Distribution Type
54622 , p_source_80 IN VARCHAR2
54623 --Purchase Order Burden Applied to Entity Code
54624 , p_source_81 IN VARCHAR2
54625 --Purchase Order Burden Applied to First Distribution Identifier
54626 , p_source_82 IN NUMBER
54627 --Purchase Order Burden Applied to First System Transaction Identifier
54628 , p_source_83 IN NUMBER
54629 --Purchase Order Burden Applied to Second Distribution Identifier
54630 , p_source_84 IN VARCHAR2
54631 )
54632 IS
54633
54634 l_component_type VARCHAR2(80);
54635 l_component_code VARCHAR2(30);
54636 l_component_type_code VARCHAR2(1);
54637 l_component_appl_id INTEGER;
54638 l_amb_context_code VARCHAR2(30);
54639 l_entity_code VARCHAR2(30);
54640 l_event_class_code VARCHAR2(30);
54641 l_ae_header_id NUMBER;
54642 l_event_type_code VARCHAR2(30);
54643 l_line_definition_code VARCHAR2(30);
54644 l_line_definition_owner_code VARCHAR2(1);
54645 --
54646 -- adr variables
54647 l_segment VARCHAR2(30);
54648 l_ccid NUMBER;
54649 l_adr_transaction_coa_id NUMBER;
54650 l_adr_accounting_coa_id NUMBER;
54651 l_adr_flexfield_segment_code VARCHAR2(30);
54652 l_adr_flex_value_set_id NUMBER;
54653 l_adr_value_type_code VARCHAR2(30);
54654 l_adr_value_combination_id NUMBER;
54655 l_adr_value_segment_code VARCHAR2(30);
54656
54657 l_bflow_method_code VARCHAR2(30); -- 4219869 Business Flow
54658 l_bflow_class_code VARCHAR2(30); -- 4219869 Business Flow
54659 l_inherit_desc_flag VARCHAR2(1); -- 4219869 Business Flow
54660 l_budgetary_control_flag VARCHAR2(1); -- 4458381 Public Sector Enh
54661
54662 -- 4262811 Variables ------------------------------------------------------------------------------------------
54663 l_entered_amt_idx NUMBER;
54664 l_accted_amt_idx NUMBER;
54665 l_acc_rev_flag VARCHAR2(1);
54666 l_accrual_line_num NUMBER;
54667 l_tmp_amt NUMBER;
54668 l_acc_rev_natural_side_code VARCHAR2(1);
54669
54670 l_num_entries NUMBER;
54671 l_gl_dates xla_ae_journal_entry_pkg.t_array_date;
54672 l_accted_amts xla_ae_journal_entry_pkg.t_array_num;
54673 l_entered_amts xla_ae_journal_entry_pkg.t_array_num;
54674 l_period_names xla_ae_journal_entry_pkg.t_array_V15L;
54678 l_bflow_applied_to_amt_idx NUMBER; -- 5132302
54675 l_recog_line_1 NUMBER;
54676 l_recog_line_2 NUMBER;
54677
54679 l_bflow_applied_to_amt NUMBER; -- 5132302
54680 l_bflow_applied_to_amts xla_ae_journal_entry_pkg.t_array_num; -- 5132302
54681
54682 l_event_id NUMBER; -- To handle MPA header Description: xla_ae_header_pkg.SetHdrDescription
54683
54684 --l_rounding_ccy VARCHAR2(15); -- To handle MPA rounding 4262811b
54685 l_same_currency BOOLEAN; -- To handle MPA rounding 4262811b
54686
54687 ---------------------------------------------------------------------------------------------------------------
54688
54689
54690 --
54691 -- bulk performance
54692 --
54693 l_balance_type_code VARCHAR2(1);
54694 l_rec_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
54695 l_log_module VARCHAR2(240);
54696
54697 --
54698 -- Upgrade strategy
54699 --
54700 l_actual_upg_option VARCHAR2(1);
54701 l_enc_upg_option VARCHAR2(1);
54702
54703 --
54704 BEGIN
54705 --
54706 IF g_log_enabled THEN
54707 l_log_module := C_DEFAULT_MODULE||'.AcctLineType_109';
54708 END IF;
54709 --
54710 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
54711
54712 trace
54713 (p_msg => 'BEGIN of AcctLineType_109'
54714 ,p_level => C_LEVEL_PROCEDURE
54715 ,p_module => l_log_module);
54716
54717 END IF;
54718 --
54719 l_component_type := 'AMB_JLT';
54720 l_component_code := 'REL_RELEASE_BURDEN_ENC';
54721 l_component_type_code := 'S';
54722 l_component_appl_id := 275;
54723 l_amb_context_code := 'DEFAULT';
54724 l_entity_code := 'EXPENDITURES';
54725 l_event_class_code := 'BURDEN_COST';
54726 l_event_type_code := 'BURDEN_COST_ALL';
54727 l_line_definition_owner_code := 'S';
54728 l_line_definition_code := 'PA_PROJ_ENC_REV_ACCTING';
54729 --
54730 l_balance_type_code := 'E';
54731 l_segment := NULL;
54732 l_ccid := NULL;
54733 l_adr_transaction_coa_id := NULL;
54734 l_adr_accounting_coa_id := NULL;
54735 l_adr_flexfield_segment_code := NULL;
54736 l_adr_flex_value_set_id := NULL;
54737 l_adr_value_type_code := NULL;
54738 l_adr_value_combination_id := NULL;
54739 l_adr_value_segment_code := NULL;
54740
54741 l_bflow_method_code := 'PRIOR_ENTRY'; -- 4219869 Business Flow
54742 l_bflow_class_code := 'REL_PA_BURDEN_ENC'; -- 4219869 Business Flow
54743 l_inherit_desc_flag := 'N'; -- 4219869 Business Flow
54744 l_budgetary_control_flag := 'N';
54745
54746 l_bflow_applied_to_amt_idx := NULL; -- 5132302
54747 l_bflow_applied_to_amt := NULL; -- 5132302
54748 l_entered_amt_idx := NULL; -- 4262811
54749 l_accted_amt_idx := NULL; -- 4262811
54750 l_acc_rev_flag := NULL; -- 4262811
54751 l_accrual_line_num := NULL; -- 4262811
54752 l_tmp_amt := NULL; -- 4262811
54753 --
54754
54755 IF XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id = XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id OR
54756 l_balance_type_code <> 'B' THEN
54757 IF NVL(p_source_34,'
54758 ') = 'E' AND
54759 NVL(p_source_69,'
54760 ') = 'PO' AND
54761 p_source_71 IS NOT NULL AND
54762 NVL(p_source_72,'
54763 ') = 'N'
54764 THEN
54765
54766 --
54767 XLA_AE_LINES_PKG.SetNewLine;
54768
54769 p_balance_type_code := l_balance_type_code;
54770 -- set the flag so later we will know whether the gain loss line needs to be created
54771
54772 IF(l_balance_type_code = 'A' and p_actual_flag is null) THEN
54773 p_actual_flag :='A';
54774 END IF;
54775
54776 --
54777 -- bulk performance
54778 --
54779 XLA_AE_LINES_PKG.set_ae_header_id (p_ae_header_id => p_event_id ,
54780 p_header_num => 0); -- 4262811
54781 --
54782 -- set accounting line options
54783 --
54784 l_ae_header_id:= xla_ae_lines_pkg.SetAcctLineOption(
54785 p_natural_side_code => 'C'
54786 , p_gain_or_loss_flag => 'N'
54787 , p_gl_transfer_mode_code => 'S'
54788 , p_acct_entry_type_code => 'E'
54789 , p_switch_side_flag => 'N'
54790 , p_merge_duplicate_code => 'N'
54791 );
54792 --
54793 l_acc_rev_natural_side_code := 'D'; -- 4262811
54794 --
54795 --
54796 -- set accounting line type info
54797 --
54798 xla_ae_lines_pkg.SetAcctLineType
54799 (p_component_type => l_component_type
54800 ,p_event_type_code => l_event_type_code
54801 ,p_line_definition_owner_code => l_line_definition_owner_code
54802 ,p_line_definition_code => l_line_definition_code
54803 ,p_accounting_line_code => l_component_code
54804 ,p_accounting_line_type_code => l_component_type_code
54805 ,p_accounting_line_appl_id => l_component_appl_id
54806 ,p_amb_context_code => l_amb_context_code
54807 ,p_entity_code => l_entity_code
54808 ,p_event_class_code => l_event_class_code);
54809 --
54813 p_accounting_class_code => 'PO_PA_BURDEN'
54810 -- set accounting class
54811 --
54812 xla_ae_lines_pkg.SetAcctClass(
54814 , p_ae_header_id => l_ae_header_id
54815 );
54816
54817 --
54818 -- set rounding class
54819 --
54820 XLA_AE_LINES_PKG.g_rec_lines.array_rounding_class(XLA_AE_LINES_PKG.g_LineNumber) :=
54821 'PO_PA_BURDEN';
54822
54823 --
54824 xla_ae_lines_pkg.g_rec_lines.array_calculate_acctd_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_acctd_flag;
54825 xla_ae_lines_pkg.g_rec_lines.array_calculate_g_l_flag(xla_ae_lines_pkg.g_LineNumber) := p_calculate_g_l_flag;
54826 --
54827 -- bulk performance
54828 --
54829 XLA_AE_LINES_PKG.g_rec_lines.array_balance_type_code(XLA_AE_LINES_PKG.g_LineNumber) := l_balance_type_code;
54830
54831 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_id(XLA_AE_LINES_PKG.g_LineNumber) :=
54832 XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id;
54833
54834 -- 4955764
54835 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
54836 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('header_index'));
54837
54838 -- 4458381 Public Sector Enh
54839
54840 --
54841 -- set accounting attributes for the line type
54842 --
54843 l_entered_amt_idx := 40;
54844 l_accted_amt_idx := 42;
54845 l_bflow_applied_to_amt_idx := 19; -- 5132302
54846 l_rec_acct_attrs.array_acct_attr_code(1) := 'ACCOUNTING_REVERSAL_OPTION';
54847 l_rec_acct_attrs.array_char_value(1) := p_source_22;
54848 l_rec_acct_attrs.array_acct_attr_code(2) := 'ACTUAL_UPG_CR_ACCT_CLASS';
54849 l_rec_acct_attrs.array_char_value(2) := p_source_23;
54850 l_rec_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_CCID';
54851 l_rec_acct_attrs.array_num_value(3) := TO_NUMBER(p_source_6);
54852 l_rec_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_ENTERED_AMT';
54853 l_rec_acct_attrs.array_num_value(4) := p_source_44;
54854 l_rec_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_CURR';
54855 l_rec_acct_attrs.array_char_value(5) := p_source_25;
54856 l_rec_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_LEDGER_AMT';
54857 l_rec_acct_attrs.array_num_value(6) := p_source_45;
54858 l_rec_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_XDATE';
54859 l_rec_acct_attrs.array_date_value(7) := p_source_27;
54860 l_rec_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XRATE';
54861 l_rec_acct_attrs.array_num_value(8) := p_source_28;
54862 l_rec_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE_TYPE';
54863 l_rec_acct_attrs.array_char_value(9) := p_source_29;
54864 l_rec_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_DR_ACCT_CLASS';
54865 l_rec_acct_attrs.array_char_value(10) := p_source_30;
54866 l_rec_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_CCID';
54867 l_rec_acct_attrs.array_num_value(11) := TO_NUMBER(p_source_3);
54868 l_rec_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_ENTERED_AMT';
54869 l_rec_acct_attrs.array_num_value(12) := p_source_44;
54870 l_rec_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_CURR';
54871 l_rec_acct_attrs.array_char_value(13) := p_source_25;
54872 l_rec_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_LEDGER_AMT';
54873 l_rec_acct_attrs.array_num_value(14) := p_source_45;
54874 l_rec_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_XDATE';
54875 l_rec_acct_attrs.array_date_value(15) := p_source_27;
54876 l_rec_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XRATE';
54877 l_rec_acct_attrs.array_num_value(16) := p_source_28;
54878 l_rec_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE_TYPE';
54879 l_rec_acct_attrs.array_char_value(17) := p_source_29;
54880 l_rec_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_OPTION';
54881 l_rec_acct_attrs.array_char_value(18) := p_source_31;
54882 l_rec_acct_attrs.array_acct_attr_code(19) := 'APPLIED_TO_AMOUNT';
54883 l_rec_acct_attrs.array_num_value(19) := p_source_46;
54884 l_rec_acct_attrs.array_acct_attr_code(20) := 'APPLIED_TO_APPLICATION_ID';
54885 l_rec_acct_attrs.array_num_value(20) := p_source_79;
54886 l_rec_acct_attrs.array_acct_attr_code(21) := 'APPLIED_TO_DISTRIBUTION_TYPE';
54887 l_rec_acct_attrs.array_char_value(21) := p_source_80;
54888 l_rec_acct_attrs.array_acct_attr_code(22) := 'APPLIED_TO_ENTITY_CODE';
54889 l_rec_acct_attrs.array_char_value(22) := p_source_81;
54890 l_rec_acct_attrs.array_acct_attr_code(23) := 'APPLIED_TO_FIRST_DIST_ID';
54891 l_rec_acct_attrs.array_num_value(23) := to_char(p_source_82);
54892 l_rec_acct_attrs.array_acct_attr_code(24) := 'APPLIED_TO_FIRST_SYS_TRAN_ID';
54893 l_rec_acct_attrs.array_num_value(24) := to_char(p_source_83);
54894 l_rec_acct_attrs.array_acct_attr_code(25) := 'APPLIED_TO_SECOND_DIST_ID';
54895 l_rec_acct_attrs.array_char_value(25) := p_source_84;
54896 l_rec_acct_attrs.array_acct_attr_code(26) := 'DISTRIBUTION_IDENTIFIER_1';
54897 l_rec_acct_attrs.array_num_value(26) := to_char(p_source_32);
54898 l_rec_acct_attrs.array_acct_attr_code(27) := 'DISTRIBUTION_IDENTIFIER_2';
54899 l_rec_acct_attrs.array_num_value(27) := to_char(p_source_33);
54900 l_rec_acct_attrs.array_acct_attr_code(28) := 'DISTRIBUTION_TYPE';
54901 l_rec_acct_attrs.array_char_value(28) := p_source_34;
54902 l_rec_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_CR_ACCT_CLASS';
54903 l_rec_acct_attrs.array_char_value(29) := p_source_53;
54904 l_rec_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_CR_CCID';
54905 l_rec_acct_attrs.array_num_value(30) := p_source_2;
54909 l_rec_acct_attrs.array_char_value(32) := p_source_25;
54906 l_rec_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_CR_ENTERED_AMT';
54907 l_rec_acct_attrs.array_num_value(31) := p_source_46;
54908 l_rec_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_CR_ENTERED_CURR';
54910 l_rec_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_CR_LEDGER_AMT';
54911 l_rec_acct_attrs.array_num_value(33) := p_source_46;
54912 l_rec_acct_attrs.array_acct_attr_code(34) := 'ENC_UPG_DR_ACCT_CLASS';
54913 l_rec_acct_attrs.array_char_value(34) := p_source_54;
54914 l_rec_acct_attrs.array_acct_attr_code(35) := 'ENC_UPG_DR_CCID';
54915 l_rec_acct_attrs.array_num_value(35) := p_source_2;
54916 l_rec_acct_attrs.array_acct_attr_code(36) := 'ENC_UPG_DR_ENTERED_AMT';
54917 l_rec_acct_attrs.array_num_value(36) := p_source_46;
54918 l_rec_acct_attrs.array_acct_attr_code(37) := 'ENC_UPG_DR_ENTERED_CURR';
54919 l_rec_acct_attrs.array_char_value(37) := p_source_25;
54920 l_rec_acct_attrs.array_acct_attr_code(38) := 'ENC_UPG_DR_LEDGER_AMT';
54921 l_rec_acct_attrs.array_num_value(38) := p_source_46;
54922 l_rec_acct_attrs.array_acct_attr_code(39) := 'ENC_UPG_OPTION';
54923 l_rec_acct_attrs.array_char_value(39) := p_source_55;
54924 l_rec_acct_attrs.array_acct_attr_code(40) := 'ENTERED_CURRENCY_AMOUNT';
54925 l_rec_acct_attrs.array_num_value(40) := p_source_46;
54926 l_rec_acct_attrs.array_acct_attr_code(41) := 'ENTERED_CURRENCY_CODE';
54927 l_rec_acct_attrs.array_char_value(41) := p_source_25;
54928 l_rec_acct_attrs.array_acct_attr_code(42) := 'LEDGER_AMOUNT';
54929 l_rec_acct_attrs.array_num_value(42) := p_source_46;
54930 l_rec_acct_attrs.array_acct_attr_code(43) := 'REVERSED_DISTRIBUTION_ID1';
54931 l_rec_acct_attrs.array_num_value(43) := to_char(p_source_32);
54932 l_rec_acct_attrs.array_acct_attr_code(44) := 'REVERSED_DISTRIBUTION_ID2';
54933 l_rec_acct_attrs.array_num_value(44) := to_char(p_source_35);
54934 l_rec_acct_attrs.array_acct_attr_code(45) := 'REVERSED_DISTRIBUTION_TYPE';
54935 l_rec_acct_attrs.array_char_value(45) := p_source_34;
54936 l_rec_acct_attrs.array_acct_attr_code(46) := 'UPG_CR_ENC_TYPE_ID';
54937 l_rec_acct_attrs.array_num_value(46) := p_source_56;
54938 l_rec_acct_attrs.array_acct_attr_code(47) := 'UPG_DR_ENC_TYPE_ID';
54939 l_rec_acct_attrs.array_num_value(47) := p_source_57;
54940
54941 XLA_AE_LINES_PKG.SetLineAcctAttrs(l_rec_acct_attrs);
54942 p_gain_or_loss_ref := XLA_AE_LINES_PKG.g_rec_lines.array_gain_or_loss_ref(XLA_AE_LINES_PKG.g_LineNumber);
54943
54944 ---------------------------------------------------------------------------------------------------------------
54945 -- 4336173 -- assign Business Flow Class (replace code in xla_ae_lines_pkg.Business_Flow_Validation)
54946 ---------------------------------------------------------------------------------------------------------------
54947 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := l_bflow_class_code;
54948
54949 l_actual_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_actual_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54950 l_enc_upg_option := XLA_AE_LINES_PKG.g_rec_lines.array_enc_upg_option(XLA_AE_LINES_PKG.g_LineNumber);
54951
54952 IF xla_accounting_cache_pkg.GetValueChar
54953 (p_source_code => 'LEDGER_CATEGORY_CODE'
54954 ,p_target_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id) IN ('PRIMARY','ALC')
54955 AND l_bflow_method_code = 'PRIOR_ENTRY'
54956 -- AND (l_actual_upg_option = 'Y' OR l_enc_upg_option = 'Y') Bug 4922099
54957 AND ( (NVL(l_actual_upg_option, 'N') IN ('Y', 'O')) OR
54958 (NVL(l_enc_upg_option, 'N') IN ('Y', 'O'))
54959 )
54960 THEN
54961 xla_ae_lines_pkg.BflowUpgEntry
54962 (p_business_method_code => l_bflow_method_code
54963 ,p_business_class_code => l_bflow_class_code
54964 ,p_balance_type => l_balance_type_code);
54965 ELSE
54966 NULL;
54967 XLA_AE_LINES_PKG.business_flow_validation(
54968 p_business_method_code => l_bflow_method_code
54969 ,p_business_class_code => l_bflow_class_code
54970 ,p_inherit_description_flag => l_inherit_desc_flag);
54971 END IF;
54972
54973 --
54974 -- call analytical criteria
54975 --
54976 -- Inherited Analytical Criteria for business flow method of Prior Entry.
54977 --
54978 -- call description
54979 --
54980 -- No description or it is inherited.
54981 --
54982 -- call ADRs
54983 -- Bug 4922099
54984 --
54985 IF ( (l_bflow_method_code <> 'PRIOR_ENTRY') OR
54986 (NVL(l_actual_upg_option, 'N') = 'O') OR
54987 (NVL(l_enc_upg_option, 'N') = 'O')
54988 )
54989 THEN
54990 NULL;
54991 --
54992 --
54993
54994 --
54995 --
54996 END IF;
54997 --
54998 -- Bug 4922099
54999 IF ( ( (NVL(l_actual_upg_option, 'N') = 'O') OR
55000 (NVL(l_enc_upg_option, 'N') = 'O')
55001 ) AND
55002 (l_bflow_method_code = 'PRIOR_ENTRY')
55003 )
55004 THEN
55005 IF
55006 --
55007 1 = 1
55008 --
55009 THEN
55010 xla_accounting_err_pkg.build_message
55011 (p_appli_s_name => 'XLA'
55012 ,p_msg_name => 'XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55013 ,p_token_1 => 'LINE_NUMBER'
55017 l_component_type
55014 ,p_value_1 => XLA_AE_LINES_PKG.g_LineNumber
55015 ,p_token_2 => 'LINE_TYPE_NAME'
55016 ,p_value_2 => XLA_AE_SOURCES_PKG.GetComponentName (
55018 ,l_component_code
55019 ,l_component_type_code
55020 ,l_component_appl_id
55021 ,l_amb_context_code
55022 ,l_entity_code
55023 ,l_event_class_code
55024 )
55025 ,p_token_3 => 'OWNER'
55026 ,p_value_3 => xla_lookups_pkg.get_meaning(
55027 p_lookup_type => 'XLA_OWNER_TYPE'
55028 ,p_lookup_code => l_component_type_code
55029 )
55030 ,p_token_4 => 'PRODUCT_NAME'
55031 ,p_value_4 => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.application_name
55032 ,p_entity_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.entity_id
55033 ,p_event_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.event_id
55034 ,p_ledger_id => XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id
55035 ,p_ae_header_id => NULL
55036 );
55037
55038 IF (C_LEVEL_ERROR>= g_log_level) THEN
55039 trace
55040 (p_msg => 'ERROR: XLA_UPG_OVERRIDE_ADR_UNDEFINED'
55041 ,p_level => C_LEVEL_ERROR
55042 ,p_module => l_log_module);
55043 END IF;
55044 END IF;
55045 END IF;
55046 --
55047 --
55048 ------------------------------------------------------------------------------------------------
55049 -- 4219869 Business Flow
55050 -- NOTE: XLA_AE_LINES_PKG.ValidateCurrentLine should NOT be generated if business flow method is
55051 -- Prior Entry. Currently, the following code is always generated.
55052 ------------------------------------------------------------------------------------------------
55053 -- No ValidateCurrentLine for business flow method of Prior Entry
55054
55055 ------------------------------------------------------------------------------------
55056 -- 4219869 Business Flow
55057 -- Populated credit and debit amounts -- Need to generate this within IF <condition>
55058 ------------------------------------------------------------------------------------
55059 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55060
55061 ----------------------------------------------------------------------------------
55062 -- 4219869 Business Flow
55063 -- Update journal entry status -- Need to generate this within IF <condition>
55064 ----------------------------------------------------------------------------------
55065 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55066 (p_hdr_idx => g_array_event(p_event_id).array_value_num('header_index')
55067 ,p_balance_type_code => l_balance_type_code
55068 );
55069
55070 -------------------------------------------------------------------------------------------
55071 -- 4262811 - Generate the Accrual Reversal lines
55072 -------------------------------------------------------------------------------------------
55073 BEGIN
55074 l_acc_rev_flag := XLA_AE_HEADER_PKG.g_rec_header_new.array_accrual_reversal_flag
55075 (g_array_event(p_event_id).array_value_num('header_index'));
55076 IF l_acc_rev_flag IS NULL THEN
55077 l_acc_rev_flag := 'N';
55078 END IF;
55079 EXCEPTION
55080 WHEN OTHERS THEN
55081 l_acc_rev_flag := 'N';
55082 END;
55083 --
55084 IF (l_acc_rev_flag = 'Y') THEN
55085
55086 -- 4645092 ------------------------------------------------------------------------------
55087 -- To allow MPA report to determine if it should generate report process
55088 XLA_ACCOUNTING_PKG.g_mpa_accrual_exists := 'Y';
55089 ------------------------------------------------------------------------------------------
55090
55091 l_accrual_line_num := XLA_AE_LINES_PKG.g_LineNumber;
55092 XLA_AE_LINES_PKG.CopyLineInfo(l_accrual_line_num);
55093
55094 --
55095 -- Update the line information that should be overwritten
55096 --
55097 XLA_AE_LINES_PKG.set_ae_header_id(p_ae_header_id => p_event_id ,
55098 p_header_num => 1);
55099 XLA_AE_LINES_PKG.g_rec_lines.array_header_num(XLA_AE_LINES_PKG.g_LineNumber) :=1;
55100
55101 XLA_AE_LINES_PKG.g_rec_lines.array_business_class_code(XLA_AE_LINES_PKG.g_LineNumber) := NULL; -- 4669271
55102
55106
55103 IF l_bflow_method_code <> 'NONE' THEN -- 4655713b
55104 XLA_AE_LINES_PKG.g_rec_lines.array_reversal_code(XLA_AE_LINES_PKG.g_LineNumber) := CONCAT('MPA_',l_bflow_method_code);
55105 END IF;
55107 --
55108 -- Depending on the Reversal Method setup, do a switch side or changes sign for the amounts
55109 --
55110 IF (XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_reversal_option = 'SIDE') THEN
55111 XLA_AE_LINES_PKG.g_rec_lines.array_natural_side_code(XLA_AE_LINES_PKG.g_LineNumber) := l_acc_rev_natural_side_code;
55112 ELSE
55113 ---------------------------------------------------------------------------------------------------
55114 -- 4262811a Switch Sign
55115 ---------------------------------------------------------------------------------------------------
55116 XLA_AE_LINES_PKG.g_rec_lines.array_switch_side_flag(XLA_AE_LINES_PKG.g_LineNumber) := 'N'; -- 5052518
55117 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55118 XLA_AE_LINES_PKG.g_rec_lines.array_ledger_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55119 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) :=
55120 XLA_AE_LINES_PKG.g_rec_lines.array_entered_amount(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55121 -- 5132302
55122 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) :=
55123 XLA_AE_LINES_PKG.g_rec_lines.array_bflow_applied_to_amt(XLA_AE_LINES_PKG.g_LineNumber) * -1;
55124
55125 END IF;
55126
55127 -- 4955764
55128 XLA_AE_LINES_PKG.g_rec_lines.array_gl_date(XLA_AE_LINES_PKG.g_LineNumber) :=
55129 XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(g_array_event(p_event_id).array_value_num('acc_rev_header_index'));
55130
55131
55132 XLA_AE_LINES_PKG.ValidateCurrentLine;
55133 XLA_AE_LINES_PKG.SetDebitCreditAmounts;
55134
55135 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus
55136 (p_hdr_idx => g_array_event(p_event_id).array_value_num('acc_rev_header_index')
55137 ,p_balance_type_code => l_balance_type_code);
55138
55139 END IF;
55140
55141 -----------------------------------------------------------------------------------------
55142 -- 4262811 Multiperiod Accounting
55143 -----------------------------------------------------------------------------------------
55144 -- No MPA option is assigned.
55145
55146
55147 END IF;
55148 END IF;
55149 --
55150
55151 --
55152 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55153 trace
55154 (p_msg => 'END of AcctLineType_109'
55155 ,p_level => C_LEVEL_PROCEDURE
55156 ,p_module => l_log_module);
55157 END IF;
55158 --
55159 EXCEPTION
55160 WHEN xla_exceptions_pkg.application_exception THEN
55161 RAISE;
55162 WHEN OTHERS THEN
55163 xla_exceptions_pkg.raise_message
55164 (p_location => 'XLA_00275_AAD_S_000004_PKG.AcctLineType_109');
55165 END AcctLineType_109;
55166 --
55167
55168 ---------------------------------------
55169 --
55170 -- PRIVATE PROCEDURE
55171 -- insert_sources_110
55172 --
55173 ----------------------------------------
55174 --
55175 PROCEDURE insert_sources_110(
55176 p_target_ledger_id IN NUMBER
55177 , p_language IN VARCHAR2
55178 , p_sla_ledger_id IN NUMBER
55179 , p_pad_start_date IN DATE
55180 , p_pad_end_date IN DATE
55181 )
55182 IS
55183
55184 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ_ALL';
55185 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ';
55186 p_apps_owner VARCHAR2(30);
55187 l_log_module VARCHAR2(240);
55188 BEGIN
55189 IF g_log_enabled THEN
55190 l_log_module := C_DEFAULT_MODULE||'.insert_sources_110';
55191 END IF;
55192 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55193
55194 trace
55195 (p_msg => 'BEGIN of insert_sources_110'
55196 ,p_level => C_LEVEL_PROCEDURE
55197 ,p_module => l_log_module);
55198
55199 END IF;
55200
55201 -- select APPS owner
55202 SELECT oracle_username
55203 INTO p_apps_owner
55204 FROM fnd_oracle_userid
55205 WHERE read_only_flag = 'U'
55206 ;
55207
55208 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55209 trace
55210 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
55211 ' - p_language = '||p_language||
55212 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
55213 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
55214 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
55215 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
55216 ,p_level => C_LEVEL_STATEMENT
55217 ,p_module => l_log_module);
55218 END IF;
55219
55220
55221 --
55222 INSERT INTO xla_diag_sources --hdr2
55223 (
55224 event_id
55225 , ledger_id
55226 , sla_ledger_id
55227 , description_language
55228 , object_name
55229 , object_type_code
55233 , source_code
55230 , line_number
55231 , source_application_id
55232 , source_type_code
55234 , source_value
55235 , source_meaning
55236 , created_by
55237 , creation_date
55238 , last_update_date
55239 , last_updated_by
55240 , last_update_login
55241 , program_update_date
55242 , program_application_id
55243 , program_id
55244 , request_id
55245 )
55246 SELECT
55247 event_id
55248 , p_target_ledger_id
55249 , p_sla_ledger_id
55250 , p_language
55251 , object_name
55252 , object_type_code
55253 , line_number
55254 , source_application_id
55255 , source_type_code
55256 , source_code
55257 , SUBSTR(source_value ,1,1996)
55258 , SUBSTR(source_meaning ,1,200)
55259 , xla_environment_pkg.g_Usr_Id
55260 , TRUNC(SYSDATE)
55261 , TRUNC(SYSDATE)
55262 , xla_environment_pkg.g_Usr_Id
55263 , xla_environment_pkg.g_Login_Id
55264 , TRUNC(SYSDATE)
55265 , xla_environment_pkg.g_Prog_Appl_Id
55266 , xla_environment_pkg.g_Prog_Id
55267 , xla_environment_pkg.g_Req_Id
55268 FROM (
55269 SELECT xet.event_id event_id
55270 , 0 line_number
55271 , CASE r
55272 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
55273 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
55274 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
55275
55276 ELSE null
55277 END object_name
55278 , CASE r
55279 WHEN 1 THEN 'HEADER'
55280 WHEN 2 THEN 'HEADER'
55281 WHEN 3 THEN 'HEADER'
55282
55283 ELSE null
55284 END object_type_code
55285 , CASE r
55286 WHEN 1 THEN '275'
55287 WHEN 2 THEN '275'
55288 WHEN 3 THEN '275'
55289
55290 ELSE null
55291 END source_application_id
55292 , 'S' source_type_code
55293 , CASE r
55294 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
55295 WHEN 2 THEN 'TP_AMT_TYPE_CODE'
55296 WHEN 3 THEN 'GL_DATE'
55297
55298 ELSE null
55299 END source_code
55300 , CASE r
55301 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
55302 WHEN 2 THEN TO_CHAR(h2.TP_AMT_TYPE_CODE)
55303 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
55304
55305 ELSE null
55306 END source_value
55307 , CASE r
55308 WHEN 2 THEN fvl67.meaning
55309
55310 ELSE null
55311 END source_meaning
55312 FROM xla_events_gt xet
55313 , PA_XLA_EXP_HEADER_V h2
55314 , fnd_lookup_values fvl67
55315 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
55316 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
55317 AND xet.event_class_code = C_EVENT_CLASS_CODE
55318 AND h2.event_id = xet.event_id
55319 AND fvl67.lookup_type(+) = 'TP_AMOUNT_TYPE'
55320 AND fvl67.lookup_code(+) = h2.TP_AMT_TYPE_CODE
55321 AND fvl67.view_application_id(+) = 275
55322 AND fvl67.language(+) = USERENV('LANG')
55323
55324 )
55325 ;
55326 --
55327 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55328
55329 trace
55330 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
55331 ,p_level => C_LEVEL_STATEMENT
55332 ,p_module => l_log_module);
55333
55334 END IF;
55335 --
55336
55337
55338
55339 --
55340 INSERT INTO xla_diag_sources --line2
55341 (
55342 event_id
55343 , ledger_id
55344 , sla_ledger_id
55345 , description_language
55346 , object_name
55347 , object_type_code
55348 , line_number
55349 , source_application_id
55350 , source_type_code
55351 , source_code
55352 , source_value
55353 , source_meaning
55354 , created_by
55355 , creation_date
55356 , last_update_date
55357 , last_updated_by
55358 , last_update_login
55359 , program_update_date
55360 , program_application_id
55361 , program_id
55362 , request_id
55363 )
55364 SELECT event_id
55365 , p_target_ledger_id
55366 , p_sla_ledger_id
55367 , p_language
55368 , object_name
55369 , object_type_code
55370 , line_number
55371 , source_application_id
55372 , source_type_code
55373 , source_code
55374 , SUBSTR(source_value,1,1996)
55375 , SUBSTR(source_meaning ,1,200)
55376 , xla_environment_pkg.g_Usr_Id
55377 , TRUNC(SYSDATE)
55378 , TRUNC(SYSDATE)
55379 , xla_environment_pkg.g_Usr_Id
55380 , xla_environment_pkg.g_Login_Id
55381 , TRUNC(SYSDATE)
55385 FROM (
55382 , xla_environment_pkg.g_Prog_Appl_Id
55383 , xla_environment_pkg.g_Prog_Id
55384 , xla_environment_pkg.g_Req_Id
55386 SELECT xet.event_id event_id
55387 , l1.line_number line_number
55388 , CASE r
55389 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
55390 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
55391 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
55392 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
55393 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
55394 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
55395 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
55396 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
55397 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
55398 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
55399 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
55400 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
55401 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
55402 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
55403 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
55404 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
55405 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
55406 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
55407
55408 ELSE null
55409 END object_name
55410 , CASE r
55411 WHEN 1 THEN 'LINE'
55412 WHEN 2 THEN 'LINE'
55413 WHEN 3 THEN 'LINE'
55414 WHEN 4 THEN 'LINE'
55415 WHEN 5 THEN 'LINE'
55416 WHEN 6 THEN 'LINE'
55417 WHEN 7 THEN 'LINE'
55418 WHEN 8 THEN 'LINE'
55419 WHEN 9 THEN 'LINE'
55420 WHEN 10 THEN 'LINE'
55421 WHEN 11 THEN 'LINE'
55422 WHEN 12 THEN 'LINE'
55423 WHEN 13 THEN 'LINE'
55424 WHEN 14 THEN 'LINE'
55425 WHEN 15 THEN 'LINE'
55426 WHEN 16 THEN 'LINE'
55427 WHEN 17 THEN 'LINE'
55428 WHEN 18 THEN 'LINE'
55429
55430 ELSE null
55431 END object_type_code
55432 , CASE r
55433 WHEN 1 THEN '275'
55434 WHEN 2 THEN '275'
55435 WHEN 3 THEN '275'
55436 WHEN 4 THEN '275'
55437 WHEN 5 THEN '275'
55438 WHEN 6 THEN '275'
55439 WHEN 7 THEN '275'
55440 WHEN 8 THEN '275'
55441 WHEN 9 THEN '275'
55442 WHEN 10 THEN '275'
55443 WHEN 11 THEN '275'
55444 WHEN 12 THEN '275'
55445 WHEN 13 THEN '275'
55446 WHEN 14 THEN '275'
55447 WHEN 15 THEN '275'
55448 WHEN 16 THEN '275'
55449 WHEN 17 THEN '275'
55450 WHEN 18 THEN '275'
55451
55452 ELSE null
55453 END source_application_id
55454 , 'S' source_type_code
55455 , CASE r
55456 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
55457 WHEN 2 THEN 'PROVIDER_CCID'
55458 WHEN 3 THEN 'ADJ_PROVIDER_CCID'
55459 WHEN 4 THEN 'ADJ_RECEIVER_CCID'
55460 WHEN 5 THEN 'RECEIVER_CCID'
55461 WHEN 6 THEN 'REVERSING_LINE_FLAG'
55462 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
55463 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
55464 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
55465 WHEN 10 THEN 'EXCHANGE_RATE'
55466 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
55467 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
55468 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
55469 WHEN 14 THEN 'LINE_NUMBER'
55470 WHEN 15 THEN 'LINE_TYPE'
55471 WHEN 16 THEN 'LINE_NUM_REVERSED'
55472 WHEN 17 THEN 'ENTERED_AMOUNT'
55473 WHEN 18 THEN 'ACCT_AMOUNT'
55474
55475 ELSE null
55476 END source_code
55477 , CASE r
55478 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
55479 WHEN 2 THEN TO_CHAR(l1.PROVIDER_CCID)
55480 WHEN 3 THEN TO_CHAR(l1.ADJ_PROVIDER_CCID)
55481 WHEN 4 THEN TO_CHAR(l1.ADJ_RECEIVER_CCID)
55482 WHEN 5 THEN TO_CHAR(l1.RECEIVER_CCID)
55483 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
55484 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
55485 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
55486 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
55487 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
55488 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
55489 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
55490 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
55491 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
55492 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
55493 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
55494 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
55495 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
55496
55497 ELSE null
55501 103371
55498 END source_value
55499 , CASE r
55500 WHEN 1 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
55502 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
55503 ,'ALLOW_OVERRIDE_CCID_FLAG'
55504 ,'S'
55505 ,275)
55506 WHEN 15 THEN fvl34.meaning
55507
55508 ELSE null
55509 END source_meaning
55510 FROM xla_events_gt xet
55511 , PA_XLA_CCDL_LINES_V l1
55512 , fnd_lookup_values fvl34
55513 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
55514 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
55515 AND xet.event_class_code = C_EVENT_CLASS_CODE
55516 AND l1.event_id = xet.event_id
55517 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
55518 AND fvl34.lookup_code(+) = l1.LINE_TYPE
55519 AND fvl34.view_application_id(+) = 275
55520 AND fvl34.language(+) = USERENV('LANG')
55521
55522 )
55523 ;
55524 --
55525 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55526
55527 trace
55528 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
55529 ,p_level => C_LEVEL_STATEMENT
55530 ,p_module => l_log_module);
55531
55532 END IF;
55533
55534
55535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55536 trace
55537 (p_msg => 'END of insert_sources_110'
55538 ,p_level => C_LEVEL_PROCEDURE
55539 ,p_module => l_log_module);
55540 END IF;
55541 EXCEPTION
55542 WHEN xla_exceptions_pkg.application_exception THEN
55543 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
55544 trace
55545 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
55546 ,p_level => C_LEVEL_EXCEPTION
55547 ,p_module => l_log_module);
55548 END IF;
55549 RAISE;
55550 WHEN OTHERS THEN
55551 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
55552 trace
55553 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
55554 ,p_level => C_LEVEL_EXCEPTION
55555 ,p_module => l_log_module);
55556 END IF;
55557 xla_exceptions_pkg.raise_message
55558 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_110');
55559 END insert_sources_110;
55560 --
55561
55562 ---------------------------------------
55563 --
55564 -- PRIVATE FUNCTION
55565 -- EventClass_110
55566 --
55567 ----------------------------------------
55568 --
55569 FUNCTION EventClass_110
55570 (p_application_id IN NUMBER
55571 ,p_base_ledger_id IN NUMBER
55572 ,p_target_ledger_id IN NUMBER
55573 ,p_language IN VARCHAR2
55574 ,p_currency_code IN VARCHAR2
55575 ,p_sla_ledger_id IN NUMBER
55576 ,p_pad_start_date IN DATE
55577 ,p_pad_end_date IN DATE
55578 ,p_primary_ledger_id IN NUMBER)
55579 RETURN BOOLEAN IS
55580 --
55581 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ_ALL';
55582 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ADJ';
55583
55584 l_calculate_acctd_flag VARCHAR2(1) :='N';
55585 l_calculate_g_l_flag VARCHAR2(1) :='N';
55586 --
55587 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55588 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55589 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
55590 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55591 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55592 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
55593 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
55594 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55595 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55596 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55597 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55598 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55599 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55600 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
55601 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55602 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55603 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55604 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
55605 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55606 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55607 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55608 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
55609 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
55613 l_previous_event_id NUMBER;
55610 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
55611
55612 l_event_id NUMBER;
55614 l_first_event_id NUMBER;
55615 l_last_event_id NUMBER;
55616
55617 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
55618 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
55619 --
55620 --
55621 l_result BOOLEAN := TRUE;
55622 l_rows NUMBER := 1000;
55623 l_event_type_name VARCHAR2(80) := 'All';
55624 l_event_class_name VARCHAR2(80) := 'Borrowed and Lent Adjustment';
55625 l_description VARCHAR2(4000);
55626 l_transaction_reversal NUMBER;
55627 l_ae_header_id NUMBER;
55628 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
55629 l_log_module VARCHAR2(240);
55630 --
55631 l_acct_reversal_source VARCHAR2(30);
55632 l_trx_reversal_source VARCHAR2(30);
55633
55634 l_continue_with_lines BOOLEAN := TRUE;
55635 --
55636 l_acc_rev_gl_date_source DATE; -- 4262811
55637 --
55638 type t_array_event_id is table of number index by binary_integer;
55639
55640 l_rec_array_event t_rec_array_event;
55641 l_null_rec_array_event t_rec_array_event;
55642 l_array_ae_header_id xla_number_array_type;
55643 l_actual_flag VARCHAR2(1) := NULL;
55644 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
55645 l_balance_type_code VARCHAR2(1) :=NULL;
55646 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
55647
55648 --
55649 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
55650 --
55651
55652 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
55653 TYPE t_array_source_67 IS TABLE OF PA_XLA_EXP_HEADER_V.TP_AMT_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
55654 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
55655
55656 TYPE t_array_source_4 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
55657 TYPE t_array_source_8 IS TABLE OF PA_XLA_CCDL_LINES_V.PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
55658 TYPE t_array_source_9 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
55659 TYPE t_array_source_10 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
55660 TYPE t_array_source_15 IS TABLE OF PA_XLA_CCDL_LINES_V.RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
55661 TYPE t_array_source_22 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
55662 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
55663 TYPE t_array_source_25 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
55664 TYPE t_array_source_27 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
55665 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
55666 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
55667 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
55668 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
55669 TYPE t_array_source_33 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
55670 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
55671 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
55672 TYPE t_array_source_41 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
55673 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
55674
55675 l_array_source_32 t_array_source_32;
55676 l_array_source_67 t_array_source_67;
55677 l_array_source_67_meaning t_array_lookup_meaning;
55678 l_array_source_87 t_array_source_87;
55679
55680 l_array_source_4 t_array_source_4;
55681 l_array_source_8 t_array_source_8;
55682 l_array_source_9 t_array_source_9;
55683 l_array_source_10 t_array_source_10;
55684 l_array_source_15 t_array_source_15;
55685 l_array_source_22 t_array_source_22;
55686 l_array_source_23 t_array_source_23;
55687 l_array_source_25 t_array_source_25;
55688 l_array_source_27 t_array_source_27;
55689 l_array_source_28 t_array_source_28;
55690 l_array_source_29 t_array_source_29;
55691 l_array_source_30 t_array_source_30;
55692 l_array_source_31 t_array_source_31;
55693 l_array_source_33 t_array_source_33;
55694 l_array_source_34 t_array_source_34;
55695 l_array_source_34_meaning t_array_lookup_meaning;
55696 l_array_source_35 t_array_source_35;
55697 l_array_source_41 t_array_source_41;
55698 l_array_source_43 t_array_source_43;
55699
55700 --
55701 CURSOR header_cur
55702 IS
55703 SELECT /*+ leading(xet) cardinality(xet,1) */
55704 -- Event Class Code: BORROWED_AND_LENT_ADJ
55705 xet.entity_id
55706 ,xet.legal_entity_id
55707 ,xet.entity_code
55708 ,xet.transaction_number
55709 ,xet.event_id
55710 ,xet.event_class_code
55711 ,xet.event_type_code
55715 ,xet.reference_num_1
55712 ,xet.event_number
55713 ,xet.event_date
55714 ,xet.transaction_date
55716 ,xet.reference_num_2
55717 ,xet.reference_num_3
55718 ,xet.reference_num_4
55719 ,xet.reference_char_1
55720 ,xet.reference_char_2
55721 ,xet.reference_char_3
55722 ,xet.reference_char_4
55723 ,xet.reference_date_1
55724 ,xet.reference_date_2
55725 ,xet.reference_date_3
55726 ,xet.reference_date_4
55727 ,xet.event_created_by
55728 ,xet.budgetary_control_flag
55729 , h2.EXPENDITURE_ITEM_ID source_32
55730 , h2.TP_AMT_TYPE_CODE source_67
55731 , fvl67.meaning source_67_meaning
55732 , h2.GL_DATE source_87
55733 FROM xla_events_gt xet
55734 , PA_XLA_EXP_HEADER_V h2
55735 , fnd_lookup_values fvl67
55736 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
55737 and xet.event_class_code = C_EVENT_CLASS_CODE
55738 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
55739 AND fvl67.lookup_type(+) = 'TP_AMOUNT_TYPE'
55740 AND fvl67.lookup_code(+) = h2.TP_AMT_TYPE_CODE
55741 AND fvl67.view_application_id(+) = 275
55742 AND fvl67.language(+) = USERENV('LANG')
55743
55744 ORDER BY event_id
55745 ;
55746
55747
55748 --
55749 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
55750 IS
55751 SELECT /*+ leading(xet) cardinality(xet,1) */
55752 -- Event Class Code: BORROWED_AND_LENT_ADJ
55753 xet.entity_id
55754 ,xet.legal_entity_id
55755 ,xet.entity_code
55756 ,xet.transaction_number
55757 ,xet.event_id
55758 ,xet.event_class_code
55759 ,xet.event_type_code
55760 ,xet.event_number
55761 ,xet.event_date
55762 ,xet.transaction_date
55763 ,xet.reference_num_1
55764 ,xet.reference_num_2
55765 ,xet.reference_num_3
55766 ,xet.reference_num_4
55767 ,xet.reference_char_1
55768 ,xet.reference_char_2
55769 ,xet.reference_char_3
55770 ,xet.reference_char_4
55771 ,xet.reference_date_1
55772 ,xet.reference_date_2
55773 ,xet.reference_date_3
55774 ,xet.reference_date_4
55775 ,xet.event_created_by
55776 ,xet.budgetary_control_flag
55777 , l1.LINE_NUMBER
55778 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
55779 , l1.PROVIDER_CCID source_8
55780 , l1.ADJ_PROVIDER_CCID source_9
55781 , l1.ADJ_RECEIVER_CCID source_10
55782 , l1.RECEIVER_CCID source_15
55783 , l1.REVERSING_LINE_FLAG source_22
55784 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
55785 , l1.ENTERED_CURRENCY_CODE source_25
55786 , l1.EXCHANGE_RATE_DATE source_27
55787 , l1.EXCHANGE_RATE source_28
55788 , l1.EXCHANGE_RATE_TYPE source_29
55789 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
55790 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
55791 , l1.LINE_NUMBER source_33
55792 , l1.LINE_TYPE source_34
55793 , fvl34.meaning source_34_meaning
55794 , l1.LINE_NUM_REVERSED source_35
55795 , l1.ENTERED_AMOUNT source_41
55796 , l1.ACCT_AMOUNT source_43
55797 FROM xla_events_gt xet
55798 , PA_XLA_CCDL_LINES_V l1
55799 , fnd_lookup_values fvl34
55800 WHERE xet.event_id between x_first_event_id and x_last_event_id
55801 and xet.event_date between p_pad_start_date and p_pad_end_date
55802 and xet.event_class_code = C_EVENT_CLASS_CODE
55803 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
55804 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
55805 AND fvl34.lookup_code(+) = l1.LINE_TYPE
55806 AND fvl34.view_application_id(+) = 275
55807 AND fvl34.language(+) = USERENV('LANG')
55808 ;
55809
55810 --
55811 BEGIN
55812 IF g_log_enabled THEN
55813 l_log_module := C_DEFAULT_MODULE||'.EventClass_110';
55814 END IF;
55815 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
55816 trace
55817 (p_msg => 'BEGIN of EventClass_110'
55818 ,p_level => C_LEVEL_PROCEDURE
55819 ,p_module => l_log_module);
55820 END IF;
55821
55822 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55823 trace
55824 (p_msg => 'p_application_id = '||p_application_id||
55825 ' - p_base_ledger_id = '||p_base_ledger_id||
55826 ' - p_target_ledger_id = '||p_target_ledger_id||
55827 ' - p_language = '||p_language||
55828 ' - p_currency_code = '||p_currency_code||
55829 ' - p_sla_ledger_id = '||p_sla_ledger_id
55830 ,p_level => C_LEVEL_STATEMENT
55831 ,p_module => l_log_module);
55832 END IF;
55833 --
55834 -- initialze arrays
55835 --
55836 g_array_event.DELETE;
55837 l_rec_array_event := l_null_rec_array_event;
55838 --
55839 --------------------------------------
55840 -- 4262811 Initialze MPA Line Number
55841 --------------------------------------
55842 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
55843
55844 --
55845
55846 --
55847 OPEN header_cur;
55848 --
55849 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
55850 trace
55851 (p_msg => 'SQL - FETCH header_cur'
55852 ,p_level => C_LEVEL_STATEMENT
55853 ,p_module => l_log_module);
55854 END IF;
55855 --
55856 LOOP
55857 FETCH header_cur BULK COLLECT INTO
55858 l_array_entity_id
55859 , l_array_legal_entity_id
55860 , l_array_entity_code
55864 , l_array_event_type
55861 , l_array_transaction_num
55862 , l_array_event_id
55863 , l_array_class_code
55865 , l_array_event_number
55866 , l_array_event_date
55867 , l_array_transaction_date
55868 , l_array_reference_num_1
55869 , l_array_reference_num_2
55870 , l_array_reference_num_3
55871 , l_array_reference_num_4
55872 , l_array_reference_char_1
55873 , l_array_reference_char_2
55874 , l_array_reference_char_3
55875 , l_array_reference_char_4
55876 , l_array_reference_date_1
55877 , l_array_reference_date_2
55878 , l_array_reference_date_3
55879 , l_array_reference_date_4
55880 , l_array_event_created_by
55881 , l_array_budgetary_control_flag
55882 , l_array_source_32
55883 , l_array_source_67
55884 , l_array_source_67_meaning
55885 , l_array_source_87
55886 LIMIT l_rows;
55887 --
55888 IF (C_LEVEL_EVENT >= g_log_level) THEN
55889 trace
55890 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
55891 ,p_level => C_LEVEL_EVENT
55892 ,p_module => l_log_module);
55893 END IF;
55894 --
55895 EXIT WHEN l_array_entity_id.COUNT = 0;
55896
55897 -- initialize arrays
55898 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
55899 XLA_AE_LINES_PKG.g_rec_lines := NULL;
55900
55901 --
55902 -- Bug 4458708
55903 --
55904 XLA_AE_LINES_PKG.g_LineNumber := 0;
55905
55906
55907 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
55908 g_last_hdr_idx := l_array_event_id.LAST;
55909 --
55910 -- loop for the headers. Each iteration is for each header extract row
55911 -- fetched in header cursor
55912 --
55913 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
55914
55915 --
55916 -- set event info as cache for other routines to refer event attributes
55917 --
55918 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
55919 (p_application_id => p_application_id
55920 ,p_primary_ledger_id => p_primary_ledger_id
55921 ,p_base_ledger_id => p_base_ledger_id
55922 ,p_target_ledger_id => p_target_ledger_id
55923 ,p_entity_id => l_array_entity_id(hdr_idx)
55924 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
55925 ,p_entity_code => l_array_entity_code(hdr_idx)
55926 ,p_transaction_num => l_array_transaction_num(hdr_idx)
55927 ,p_event_id => l_array_event_id(hdr_idx)
55928 ,p_event_class_code => l_array_class_code(hdr_idx)
55929 ,p_event_type_code => l_array_event_type(hdr_idx)
55930 ,p_event_number => l_array_event_number(hdr_idx)
55931 ,p_event_date => l_array_event_date(hdr_idx)
55932 ,p_transaction_date => l_array_transaction_date(hdr_idx)
55933 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
55934 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
55935 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
55936 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
55937 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
55938 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
55939 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
55940 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
55941 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
55942 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
55943 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
55944 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
55945 ,p_event_created_by => l_array_event_created_by(hdr_idx)
55946 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
55947
55948 --
55949 -- set the status of entry to C_VALID (0)
55950 --
55951 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
55952
55953 --
55954 -- initialize a row for ae header
55955 --
55956 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
55957
55958 l_event_id := l_array_event_id(hdr_idx);
55959
55960 --
55961 -- storing the hdr_idx for event. May be used by line cursor.
55962 --
55963 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
55964
55965 --
55966 -- store sources from header extract. This can be improved to
55967 -- store only those sources from header extract that may be used in lines
55968 --
55969
55970 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
55971 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
55972 g_array_event(l_event_id).array_value_char('source_67_meaning') := l_array_source_67_meaning(hdr_idx);
55973 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
55974
55975 --
55976 -- initilaize the status of ae headers for diffrent balance types
55977 -- the status is initialised to C_NOT_CREATED (2)
55978 --
55979 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
55980 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
55981 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
55982
55983 --
55987 ------------------------------------------------------------
55984 -- call api to validate and store accounting attributes for header
55985 --
55986
55988 -- Accrual Reversal : to get date for Standard Source (NONE)
55989 ------------------------------------------------------------
55990 l_acc_rev_gl_date_source := NULL;
55991
55992 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
55993 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
55994
55995
55996 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
55997
55998 XLA_AE_HEADER_PKG.SetJeCategoryName;
55999
56000 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
56001 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
56002 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
56003 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
56004 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
56005
56006
56007 -- No header level analytical criteria
56008
56009 --
56010 --accounting attribute enhancement, bug 3612931
56011 --
56012 l_trx_reversal_source := SUBSTR(NULL, 1,30);
56013
56014 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
56015 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
56016
56017 xla_accounting_err_pkg.build_message
56018 (p_appli_s_name => 'XLA'
56019 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
56020 ,p_token_1 => 'ACCT_ATTR_NAME'
56021 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
56022 ,p_token_2 => 'PRODUCT_NAME'
56023 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
56024 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
56025 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
56026 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
56027
56028 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
56029 --
56030 -- following sets the accounting attributes needed to reverse
56031 -- accounting for a distributeion
56032 --
56033 xla_ae_lines_pkg.SetTrxReversalAttrs
56034 (p_event_id => l_event_id
56035 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
56036 ,p_trx_reversal_source => l_trx_reversal_source);
56037
56038 END IF;
56039
56040
56041 ----------------------------------------------------------------
56042 -- 4262811 - update the header statuses to invalid in need be
56043 ----------------------------------------------------------------
56044 --
56045 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
56046
56047
56048 -----------------------------------------------
56049 -- No accrual reversal for the event class/type
56050 -----------------------------------------------
56051 ----------------------------------------------------------------
56052
56053 --
56054 -- this ends the header loop iteration for one bulk fetch
56055 --
56056 END LOOP;
56057
56058 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
56059 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
56060
56061 --
56062 -- insert dummy rows into lines gt table that were created due to
56063 -- transaction reversals
56064 --
56065 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
56066 l_result := XLA_AE_LINES_PKG.InsertLines;
56067 END IF;
56068
56069 --
56070 -- reset the temp_line_num for each set of events fetched from header
56071 -- cursor rather than doing it for each new event in line cursor
56072 -- Bug 3939231
56073 --
56074 xla_ae_lines_pkg.g_temp_line_num := 0;
56075
56076
56077
56078 --
56079 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
56080 --
56081 --
56082 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56083
56084 trace
56085 (p_msg => 'SQL - FETCH line_cur'
56086 ,p_level => C_LEVEL_STATEMENT
56087 ,p_module => l_log_module);
56088
56089 END IF;
56090 --
56091 --
56092 LOOP
56093 --
56094 FETCH line_cur BULK COLLECT INTO
56095 l_array_entity_id
56096 , l_array_legal_entity_id
56097 , l_array_entity_code
56098 , l_array_transaction_num
56099 , l_array_event_id
56100 , l_array_class_code
56101 , l_array_event_type
56102 , l_array_event_number
56103 , l_array_event_date
56104 , l_array_transaction_date
56105 , l_array_reference_num_1
56106 , l_array_reference_num_2
56107 , l_array_reference_num_3
56108 , l_array_reference_num_4
56109 , l_array_reference_char_1
56110 , l_array_reference_char_2
56111 , l_array_reference_char_3
56112 , l_array_reference_char_4
56113 , l_array_reference_date_1
56114 , l_array_reference_date_2
56115 , l_array_reference_date_3
56116 , l_array_reference_date_4
56117 , l_array_event_created_by
56118 , l_array_budgetary_control_flag
56119 , l_array_extract_line_num
56123 , l_array_source_10
56120 , l_array_source_4
56121 , l_array_source_8
56122 , l_array_source_9
56124 , l_array_source_15
56125 , l_array_source_22
56126 , l_array_source_23
56127 , l_array_source_25
56128 , l_array_source_27
56129 , l_array_source_28
56130 , l_array_source_29
56131 , l_array_source_30
56132 , l_array_source_31
56133 , l_array_source_33
56134 , l_array_source_34
56135 , l_array_source_34_meaning
56136 , l_array_source_35
56137 , l_array_source_41
56138 , l_array_source_43
56139 LIMIT l_rows;
56140
56141 --
56142 IF (C_LEVEL_EVENT >= g_log_level) THEN
56143 trace
56144 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
56145 ,p_level => C_LEVEL_EVENT
56146 ,p_module => l_log_module);
56147 END IF;
56148 --
56149 EXIT WHEN l_array_entity_id.count = 0;
56150
56151 XLA_AE_LINES_PKG.g_rec_lines := null;
56152
56153 --
56154 -- Bug 4458708
56155 --
56156 XLA_AE_LINES_PKG.g_LineNumber := 0;
56157 --
56158 --
56159
56160 FOR Idx IN 1..l_array_event_id.count LOOP
56161 --
56162 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
56163 --
56164 l_event_id := l_array_event_id(idx); -- 5648433
56165
56166 --
56167 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
56168 --
56169
56170 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
56171 (g_array_event(l_event_id).array_value_num('header_index'))
56172 ,'N'
56173 ) <> 'Y'
56174 THEN
56175 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56176 trace
56177 (p_msg => 'Trancaction revesal option is not Y '
56178 ,p_level => C_LEVEL_STATEMENT
56179 ,p_module => l_log_module);
56180 END IF;
56181
56182 --
56183 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
56184 --
56185 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
56186 --
56187 -- set event info as cache for other routines to refer event attributes
56188 --
56189
56190 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
56191 l_previous_event_id := l_event_id;
56192
56193 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
56194 (p_application_id => p_application_id
56195 ,p_primary_ledger_id => p_primary_ledger_id
56196 ,p_base_ledger_id => p_base_ledger_id
56197 ,p_target_ledger_id => p_target_ledger_id
56198 ,p_entity_id => l_array_entity_id(Idx)
56199 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
56200 ,p_entity_code => l_array_entity_code(Idx)
56201 ,p_transaction_num => l_array_transaction_num(Idx)
56202 ,p_event_id => l_array_event_id(Idx)
56203 ,p_event_class_code => l_array_class_code(Idx)
56204 ,p_event_type_code => l_array_event_type(Idx)
56205 ,p_event_number => l_array_event_number(Idx)
56206 ,p_event_date => l_array_event_date(Idx)
56207 ,p_transaction_date => l_array_transaction_date(Idx)
56208 ,p_reference_num_1 => l_array_reference_num_1(Idx)
56209 ,p_reference_num_2 => l_array_reference_num_2(Idx)
56210 ,p_reference_num_3 => l_array_reference_num_3(Idx)
56211 ,p_reference_num_4 => l_array_reference_num_4(Idx)
56212 ,p_reference_char_1 => l_array_reference_char_1(Idx)
56213 ,p_reference_char_2 => l_array_reference_char_2(Idx)
56214 ,p_reference_char_3 => l_array_reference_char_3(Idx)
56215 ,p_reference_char_4 => l_array_reference_char_4(Idx)
56216 ,p_reference_date_1 => l_array_reference_date_1(Idx)
56217 ,p_reference_date_2 => l_array_reference_date_2(Idx)
56218 ,p_reference_date_3 => l_array_reference_date_3(Idx)
56219 ,p_reference_date_4 => l_array_reference_date_4(Idx)
56220 ,p_event_created_by => l_array_event_created_by(Idx)
56221 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
56222 --
56223 END IF;
56224
56225
56226
56227 --
56228 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
56229
56230 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
56231
56232 IF l_continue_with_lines THEN
56233 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
56234 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
56235
56236 xla_accounting_err_pkg.build_message
56237 (p_appli_s_name => 'XLA'
56238 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
56239 ,p_token_1 => 'LINE_NUMBER'
56240 ,p_value_1 => l_array_extract_line_num(Idx)
56241 ,p_token_2 => 'PRODUCT_NAME'
56242 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
56243 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
56247 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
56244 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
56245 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
56246
56248 --
56249 -- following sets the accounting attributes needed to reverse
56250 -- accounting for a distributeion
56251 --
56252
56253 --
56254 -- 5217187
56255 --
56256 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
56257 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
56258 g_array_event(l_event_id).array_value_num('header_index'));
56259 --
56260 --
56261
56262 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
56263 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
56264 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
56265 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
56266 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
56267 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_8(Idx));
56268 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
56269 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_41(Idx);
56270 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
56271 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
56272 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
56273 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
56274 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
56275 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
56276 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
56277 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
56278 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
56279 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
56280 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
56281 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
56282 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
56283 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_15(Idx));
56284 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
56285 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_41(Idx);
56286 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
56287 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
56288 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
56289 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
56290 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
56291 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
56292 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
56293 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
56294 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
56295 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
56296 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
56297 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
56298 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
56299 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
56300 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
56301 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
56302 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
56303 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
56304 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
56305 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
56306 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
56307 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
56308 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
56309 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
56310
56311
56312 xla_ae_lines_pkg.SetAcctReversalAttrs
56313 (p_event_id => l_event_id
56314 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
56315 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56316 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
56317 END IF;
56318
56319 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
56320 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
56321
56322 --
56323 AcctLineType_38 (
56324 p_application_id => p_application_id
56325 ,p_event_id => l_event_id
56326 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56327 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56328 ,p_actual_flag => l_actual_flag
56329 ,p_balance_type_code => l_balance_type_code
56330 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56331
56332 , p_source_4 => l_array_source_4(Idx)
56336 , p_source_22 => l_array_source_22(Idx)
56333 , p_source_8 => l_array_source_8(Idx)
56334 , p_source_9 => l_array_source_9(Idx)
56335 , p_source_15 => l_array_source_15(Idx)
56337 , p_source_23 => l_array_source_23(Idx)
56338 , p_source_25 => l_array_source_25(Idx)
56339 , p_source_27 => l_array_source_27(Idx)
56340 , p_source_28 => l_array_source_28(Idx)
56341 , p_source_29 => l_array_source_29(Idx)
56342 , p_source_30 => l_array_source_30(Idx)
56343 , p_source_31 => l_array_source_31(Idx)
56344 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
56345 , p_source_33 => l_array_source_33(Idx)
56346 , p_source_34 => l_array_source_34(Idx)
56347 , p_source_34_meaning => l_array_source_34_meaning(Idx)
56348 , p_source_35 => l_array_source_35(Idx)
56349 , p_source_41 => l_array_source_41(Idx)
56350 , p_source_43 => l_array_source_43(Idx)
56351 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
56352 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
56353 );
56354 If(l_balance_type_code = 'A') THEN
56355 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56356 END IF;
56357
56358 --
56359
56360
56361 --
56362 AcctLineType_40 (
56363 p_application_id => p_application_id
56364 ,p_event_id => l_event_id
56365 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56366 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56367 ,p_actual_flag => l_actual_flag
56368 ,p_balance_type_code => l_balance_type_code
56369 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56370
56371 , p_source_4 => l_array_source_4(Idx)
56372 , p_source_8 => l_array_source_8(Idx)
56373 , p_source_9 => l_array_source_9(Idx)
56374 , p_source_15 => l_array_source_15(Idx)
56375 , p_source_22 => l_array_source_22(Idx)
56376 , p_source_23 => l_array_source_23(Idx)
56377 , p_source_25 => l_array_source_25(Idx)
56378 , p_source_27 => l_array_source_27(Idx)
56379 , p_source_28 => l_array_source_28(Idx)
56380 , p_source_29 => l_array_source_29(Idx)
56381 , p_source_30 => l_array_source_30(Idx)
56382 , p_source_31 => l_array_source_31(Idx)
56383 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
56384 , p_source_33 => l_array_source_33(Idx)
56385 , p_source_34 => l_array_source_34(Idx)
56386 , p_source_34_meaning => l_array_source_34_meaning(Idx)
56387 , p_source_35 => l_array_source_35(Idx)
56388 , p_source_41 => l_array_source_41(Idx)
56389 , p_source_43 => l_array_source_43(Idx)
56390 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
56391 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
56392 );
56393 If(l_balance_type_code = 'A') THEN
56394 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56395 END IF;
56396
56397 --
56398
56399
56400 --
56401 AcctLineType_70 (
56402 p_application_id => p_application_id
56403 ,p_event_id => l_event_id
56404 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56405 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56406 ,p_actual_flag => l_actual_flag
56407 ,p_balance_type_code => l_balance_type_code
56408 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56409
56410 , p_source_4 => l_array_source_4(Idx)
56411 , p_source_8 => l_array_source_8(Idx)
56412 , p_source_10 => l_array_source_10(Idx)
56413 , p_source_15 => l_array_source_15(Idx)
56414 , p_source_22 => l_array_source_22(Idx)
56415 , p_source_23 => l_array_source_23(Idx)
56416 , p_source_25 => l_array_source_25(Idx)
56417 , p_source_27 => l_array_source_27(Idx)
56418 , p_source_28 => l_array_source_28(Idx)
56419 , p_source_29 => l_array_source_29(Idx)
56420 , p_source_30 => l_array_source_30(Idx)
56421 , p_source_31 => l_array_source_31(Idx)
56422 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
56423 , p_source_33 => l_array_source_33(Idx)
56424 , p_source_34 => l_array_source_34(Idx)
56425 , p_source_34_meaning => l_array_source_34_meaning(Idx)
56426 , p_source_35 => l_array_source_35(Idx)
56427 , p_source_41 => l_array_source_41(Idx)
56428 , p_source_43 => l_array_source_43(Idx)
56429 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
56430 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
56431 );
56432 If(l_balance_type_code = 'A') THEN
56433 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56434 END IF;
56435
56436 --
56437
56438
56439 --
56440 AcctLineType_72 (
56441 p_application_id => p_application_id
56442 ,p_event_id => l_event_id
56443 ,p_calculate_acctd_flag => l_calculate_acctd_flag
56444 ,p_calculate_g_l_flag => l_calculate_g_l_flag
56445 ,p_actual_flag => l_actual_flag
56446 ,p_balance_type_code => l_balance_type_code
56447 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
56448
56449 , p_source_4 => l_array_source_4(Idx)
56450 , p_source_8 => l_array_source_8(Idx)
56451 , p_source_10 => l_array_source_10(Idx)
56452 , p_source_15 => l_array_source_15(Idx)
56453 , p_source_22 => l_array_source_22(Idx)
56454 , p_source_23 => l_array_source_23(Idx)
56455 , p_source_25 => l_array_source_25(Idx)
56456 , p_source_27 => l_array_source_27(Idx)
56457 , p_source_28 => l_array_source_28(Idx)
56458 , p_source_29 => l_array_source_29(Idx)
56459 , p_source_30 => l_array_source_30(Idx)
56460 , p_source_31 => l_array_source_31(Idx)
56461 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
56462 , p_source_33 => l_array_source_33(Idx)
56466 , p_source_41 => l_array_source_41(Idx)
56463 , p_source_34 => l_array_source_34(Idx)
56464 , p_source_34_meaning => l_array_source_34_meaning(Idx)
56465 , p_source_35 => l_array_source_35(Idx)
56467 , p_source_43 => l_array_source_43(Idx)
56468 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
56469 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
56470 );
56471 If(l_balance_type_code = 'A') THEN
56472 l_actual_gain_loss_ref := l_gain_or_loss_ref;
56473 END IF;
56474
56475 --
56476
56477 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
56478 -- or secondary ledger that has different currency with primary
56479 -- or alc that is calculated by sla
56480 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
56481 (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'))
56482
56483 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
56484 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
56485 AND (l_actual_flag = 'A')) THEN
56486 XLA_AE_LINES_PKG.CreateGainOrLossLines(
56487 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
56488 ,p_application_id => p_application_id
56489 ,p_amb_context_code => 'DEFAULT'
56490 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
56491 ,p_event_class_code => C_EVENT_CLASS_CODE
56492 ,p_event_type_code => C_EVENT_TYPE_CODE
56493
56494 ,p_gain_ccid => -1
56495 ,p_loss_ccid => -1
56496
56497 ,p_actual_flag => l_actual_flag
56498 ,p_enc_flag => null
56499 ,p_actual_g_l_ref => l_actual_gain_loss_ref
56500 ,p_enc_g_l_ref => null
56501 );
56502 END IF;
56503 END IF;
56504 END IF;
56505
56506 ELSE
56507 --
56508 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
56509 --
56510 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56511 trace
56512 (p_msg => 'Trancaction revesal option is Y'
56513 ,p_level => C_LEVEL_STATEMENT
56514 ,p_module => l_log_module);
56515 END IF;
56516 END IF;
56517
56518 END LOOP;
56519 l_result := XLA_AE_LINES_PKG.InsertLines ;
56520 end loop;
56521 close line_cur;
56522
56523
56524 --
56525 -- insert headers into xla_ae_headers_gt table
56526 --
56527 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
56528
56529 -- insert into errors table here.
56530
56531 END LOOP;
56532
56533 --
56534 -- 4865292
56535 --
56536 -- Compare g_hdr_extract_count with event count in
56537 -- CreateHeadersAndLines.
56538 --
56539 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
56540
56541 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56542 trace (p_msg => '# rows extracted from header extract objects '
56543 || ' (running total): '
56544 || g_hdr_extract_count
56545 ,p_level => C_LEVEL_STATEMENT
56546 ,p_module => l_log_module);
56547 END IF;
56548
56549 CLOSE header_cur;
56550 --
56551
56552 --
56553 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56554 trace
56555 (p_msg => 'END of EventClass_110'
56556 ,p_level => C_LEVEL_PROCEDURE
56557 ,p_module => l_log_module);
56558 END IF;
56559 --
56560 RETURN l_result;
56561 EXCEPTION
56562 WHEN xla_exceptions_pkg.application_exception THEN
56563
56564 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
56565
56566
56567 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
56568
56569 RAISE;
56570 WHEN OTHERS THEN
56571 xla_exceptions_pkg.raise_message
56572 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_110');
56573 END EventClass_110;
56574 --
56575
56576 ---------------------------------------
56577 --
56578 -- PRIVATE PROCEDURE
56579 -- insert_sources_111
56580 --
56581 ----------------------------------------
56582 --
56583 PROCEDURE insert_sources_111(
56584 p_target_ledger_id IN NUMBER
56585 , p_language IN VARCHAR2
56586 , p_sla_ledger_id IN NUMBER
56587 , p_pad_start_date IN DATE
56588 , p_pad_end_date IN DATE
56589 )
56590 IS
56591
56592 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ALL';
56593 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT';
56594 p_apps_owner VARCHAR2(30);
56595 l_log_module VARCHAR2(240);
56596 BEGIN
56597 IF g_log_enabled THEN
56598 l_log_module := C_DEFAULT_MODULE||'.insert_sources_111';
56599 END IF;
56600 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56601
56602 trace
56603 (p_msg => 'BEGIN of insert_sources_111'
56604 ,p_level => C_LEVEL_PROCEDURE
56605 ,p_module => l_log_module);
56609 -- select APPS owner
56606
56607 END IF;
56608
56610 SELECT oracle_username
56611 INTO p_apps_owner
56612 FROM fnd_oracle_userid
56613 WHERE read_only_flag = 'U'
56614 ;
56615
56616 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56617 trace
56618 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
56619 ' - p_language = '||p_language||
56620 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
56621 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
56622 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
56623 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
56624 ,p_level => C_LEVEL_STATEMENT
56625 ,p_module => l_log_module);
56626 END IF;
56627
56628
56629 --
56630 INSERT INTO xla_diag_sources --hdr2
56631 (
56632 event_id
56633 , ledger_id
56634 , sla_ledger_id
56635 , description_language
56636 , object_name
56637 , object_type_code
56638 , line_number
56639 , source_application_id
56640 , source_type_code
56641 , source_code
56642 , source_value
56643 , source_meaning
56644 , created_by
56645 , creation_date
56646 , last_update_date
56647 , last_updated_by
56648 , last_update_login
56649 , program_update_date
56650 , program_application_id
56651 , program_id
56652 , request_id
56653 )
56654 SELECT
56655 event_id
56656 , p_target_ledger_id
56657 , p_sla_ledger_id
56658 , p_language
56659 , object_name
56660 , object_type_code
56661 , line_number
56662 , source_application_id
56663 , source_type_code
56664 , source_code
56665 , SUBSTR(source_value ,1,1996)
56666 , SUBSTR(source_meaning ,1,200)
56667 , xla_environment_pkg.g_Usr_Id
56668 , TRUNC(SYSDATE)
56669 , TRUNC(SYSDATE)
56670 , xla_environment_pkg.g_Usr_Id
56671 , xla_environment_pkg.g_Login_Id
56672 , TRUNC(SYSDATE)
56673 , xla_environment_pkg.g_Prog_Appl_Id
56674 , xla_environment_pkg.g_Prog_Id
56675 , xla_environment_pkg.g_Req_Id
56676 FROM (
56677 SELECT xet.event_id event_id
56678 , 0 line_number
56679 , CASE r
56680 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
56681 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
56682 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
56683
56684 ELSE null
56685 END object_name
56686 , CASE r
56687 WHEN 1 THEN 'HEADER'
56688 WHEN 2 THEN 'HEADER'
56689 WHEN 3 THEN 'HEADER'
56690
56691 ELSE null
56692 END object_type_code
56693 , CASE r
56694 WHEN 1 THEN '275'
56695 WHEN 2 THEN '275'
56696 WHEN 3 THEN '275'
56697
56698 ELSE null
56699 END source_application_id
56700 , 'S' source_type_code
56701 , CASE r
56702 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
56703 WHEN 2 THEN 'TP_AMT_TYPE_CODE'
56704 WHEN 3 THEN 'GL_DATE'
56705
56706 ELSE null
56707 END source_code
56708 , CASE r
56709 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
56710 WHEN 2 THEN TO_CHAR(h2.TP_AMT_TYPE_CODE)
56711 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
56712
56713 ELSE null
56714 END source_value
56715 , CASE r
56716 WHEN 2 THEN fvl67.meaning
56717
56718 ELSE null
56719 END source_meaning
56720 FROM xla_events_gt xet
56721 , PA_XLA_EXP_HEADER_V h2
56722 , fnd_lookup_values fvl67
56723 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
56724 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
56725 AND xet.event_class_code = C_EVENT_CLASS_CODE
56726 AND h2.event_id = xet.event_id
56727 AND fvl67.lookup_type(+) = 'TP_AMOUNT_TYPE'
56728 AND fvl67.lookup_code(+) = h2.TP_AMT_TYPE_CODE
56729 AND fvl67.view_application_id(+) = 275
56730 AND fvl67.language(+) = USERENV('LANG')
56731
56732 )
56733 ;
56734 --
56735 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56736
56737 trace
56738 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
56739 ,p_level => C_LEVEL_STATEMENT
56740 ,p_module => l_log_module);
56741
56742 END IF;
56743 --
56744
56745
56746
56747 --
56748 INSERT INTO xla_diag_sources --line2
56749 (
56750 event_id
56751 , ledger_id
56752 , sla_ledger_id
56753 , description_language
56754 , object_name
56758 , source_type_code
56755 , object_type_code
56756 , line_number
56757 , source_application_id
56759 , source_code
56760 , source_value
56761 , source_meaning
56762 , created_by
56763 , creation_date
56764 , last_update_date
56765 , last_updated_by
56766 , last_update_login
56767 , program_update_date
56768 , program_application_id
56769 , program_id
56770 , request_id
56771 )
56772 SELECT event_id
56773 , p_target_ledger_id
56774 , p_sla_ledger_id
56775 , p_language
56776 , object_name
56777 , object_type_code
56778 , line_number
56779 , source_application_id
56780 , source_type_code
56781 , source_code
56782 , SUBSTR(source_value,1,1996)
56783 , SUBSTR(source_meaning ,1,200)
56784 , xla_environment_pkg.g_Usr_Id
56785 , TRUNC(SYSDATE)
56786 , TRUNC(SYSDATE)
56787 , xla_environment_pkg.g_Usr_Id
56788 , xla_environment_pkg.g_Login_Id
56789 , TRUNC(SYSDATE)
56790 , xla_environment_pkg.g_Prog_Appl_Id
56791 , xla_environment_pkg.g_Prog_Id
56792 , xla_environment_pkg.g_Req_Id
56793 FROM (
56794 SELECT xet.event_id event_id
56795 , l1.line_number line_number
56796 , CASE r
56797 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
56798 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
56799 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
56800 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
56801 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
56802 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
56803 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
56804 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
56805 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
56806 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
56807 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
56808 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
56809 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
56810 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
56811 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
56812 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
56813 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
56814 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
56815
56816 ELSE null
56817 END object_name
56818 , CASE r
56819 WHEN 1 THEN 'LINE'
56820 WHEN 2 THEN 'LINE'
56821 WHEN 3 THEN 'LINE'
56822 WHEN 4 THEN 'LINE'
56823 WHEN 5 THEN 'LINE'
56824 WHEN 6 THEN 'LINE'
56825 WHEN 7 THEN 'LINE'
56826 WHEN 8 THEN 'LINE'
56827 WHEN 9 THEN 'LINE'
56828 WHEN 10 THEN 'LINE'
56829 WHEN 11 THEN 'LINE'
56830 WHEN 12 THEN 'LINE'
56831 WHEN 13 THEN 'LINE'
56832 WHEN 14 THEN 'LINE'
56833 WHEN 15 THEN 'LINE'
56834 WHEN 16 THEN 'LINE'
56835 WHEN 17 THEN 'LINE'
56836 WHEN 18 THEN 'LINE'
56837
56838 ELSE null
56839 END object_type_code
56840 , CASE r
56841 WHEN 1 THEN '275'
56842 WHEN 2 THEN '275'
56843 WHEN 3 THEN '275'
56844 WHEN 4 THEN '275'
56845 WHEN 5 THEN '275'
56846 WHEN 6 THEN '275'
56847 WHEN 7 THEN '275'
56848 WHEN 8 THEN '275'
56849 WHEN 9 THEN '275'
56850 WHEN 10 THEN '275'
56851 WHEN 11 THEN '275'
56852 WHEN 12 THEN '275'
56853 WHEN 13 THEN '275'
56854 WHEN 14 THEN '275'
56855 WHEN 15 THEN '275'
56856 WHEN 16 THEN '275'
56857 WHEN 17 THEN '275'
56858 WHEN 18 THEN '275'
56859
56860 ELSE null
56861 END source_application_id
56862 , 'S' source_type_code
56863 , CASE r
56864 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
56865 WHEN 2 THEN 'PROVIDER_CCID'
56866 WHEN 3 THEN 'ADJ_PROVIDER_CCID'
56867 WHEN 4 THEN 'ADJ_RECEIVER_CCID'
56868 WHEN 5 THEN 'RECEIVER_CCID'
56869 WHEN 6 THEN 'REVERSING_LINE_FLAG'
56870 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
56871 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
56872 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
56873 WHEN 10 THEN 'EXCHANGE_RATE'
56874 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
56875 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
56876 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
56877 WHEN 14 THEN 'LINE_NUMBER'
56878 WHEN 15 THEN 'LINE_TYPE'
56879 WHEN 16 THEN 'LINE_NUM_REVERSED'
56880 WHEN 17 THEN 'ENTERED_AMOUNT'
56881 WHEN 18 THEN 'ACCT_AMOUNT'
56882
56886 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
56883 ELSE null
56884 END source_code
56885 , CASE r
56887 WHEN 2 THEN TO_CHAR(l1.PROVIDER_CCID)
56888 WHEN 3 THEN TO_CHAR(l1.ADJ_PROVIDER_CCID)
56889 WHEN 4 THEN TO_CHAR(l1.ADJ_RECEIVER_CCID)
56890 WHEN 5 THEN TO_CHAR(l1.RECEIVER_CCID)
56891 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
56892 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
56893 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
56894 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
56895 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
56896 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
56897 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
56898 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
56899 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
56900 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
56901 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
56902 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
56903 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
56904
56905 ELSE null
56906 END source_value
56907 , CASE r
56908 WHEN 1 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
56909 103371
56910 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
56911 ,'ALLOW_OVERRIDE_CCID_FLAG'
56912 ,'S'
56913 ,275)
56914 WHEN 15 THEN fvl34.meaning
56915
56916 ELSE null
56917 END source_meaning
56918 FROM xla_events_gt xet
56919 , PA_XLA_CCDL_LINES_V l1
56920 , fnd_lookup_values fvl34
56921 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
56922 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
56923 AND xet.event_class_code = C_EVENT_CLASS_CODE
56924 AND l1.event_id = xet.event_id
56925 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
56926 AND fvl34.lookup_code(+) = l1.LINE_TYPE
56927 AND fvl34.view_application_id(+) = 275
56928 AND fvl34.language(+) = USERENV('LANG')
56929
56930 )
56931 ;
56932 --
56933 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
56934
56935 trace
56936 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
56937 ,p_level => C_LEVEL_STATEMENT
56938 ,p_module => l_log_module);
56939
56940 END IF;
56941
56942
56943 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
56944 trace
56945 (p_msg => 'END of insert_sources_111'
56946 ,p_level => C_LEVEL_PROCEDURE
56947 ,p_module => l_log_module);
56948 END IF;
56949 EXCEPTION
56950 WHEN xla_exceptions_pkg.application_exception THEN
56951 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
56952 trace
56953 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
56954 ,p_level => C_LEVEL_EXCEPTION
56955 ,p_module => l_log_module);
56956 END IF;
56957 RAISE;
56958 WHEN OTHERS THEN
56959 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
56960 trace
56961 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
56962 ,p_level => C_LEVEL_EXCEPTION
56963 ,p_module => l_log_module);
56964 END IF;
56965 xla_exceptions_pkg.raise_message
56966 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_111');
56967 END insert_sources_111;
56968 --
56969
56970 ---------------------------------------
56971 --
56972 -- PRIVATE FUNCTION
56973 -- EventClass_111
56974 --
56975 ----------------------------------------
56976 --
56977 FUNCTION EventClass_111
56978 (p_application_id IN NUMBER
56979 ,p_base_ledger_id IN NUMBER
56980 ,p_target_ledger_id IN NUMBER
56981 ,p_language IN VARCHAR2
56982 ,p_currency_code IN VARCHAR2
56983 ,p_sla_ledger_id IN NUMBER
56984 ,p_pad_start_date IN DATE
56985 ,p_pad_end_date IN DATE
56986 ,p_primary_ledger_id IN NUMBER)
56987 RETURN BOOLEAN IS
56988 --
56989 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT_ALL';
56990 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BORROWED_AND_LENT';
56991
56992 l_calculate_acctd_flag VARCHAR2(1) :='N';
56993 l_calculate_g_l_flag VARCHAR2(1) :='N';
56994 --
56995 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
56996 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
56997 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
56998 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
56999 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57000 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57001 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57002 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57006 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57003 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57004 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57005 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57007 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57008 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
57009 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57010 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57011 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57012 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
57013 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57014 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57015 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57016 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
57017 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
57018 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
57019
57020 l_event_id NUMBER;
57021 l_previous_event_id NUMBER;
57022 l_first_event_id NUMBER;
57023 l_last_event_id NUMBER;
57024
57025 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
57026 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
57027 --
57028 --
57029 l_result BOOLEAN := TRUE;
57030 l_rows NUMBER := 1000;
57031 l_event_type_name VARCHAR2(80) := 'All';
57032 l_event_class_name VARCHAR2(80) := 'Borrowed and Lent';
57033 l_description VARCHAR2(4000);
57034 l_transaction_reversal NUMBER;
57035 l_ae_header_id NUMBER;
57036 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
57037 l_log_module VARCHAR2(240);
57038 --
57039 l_acct_reversal_source VARCHAR2(30);
57040 l_trx_reversal_source VARCHAR2(30);
57041
57042 l_continue_with_lines BOOLEAN := TRUE;
57043 --
57044 l_acc_rev_gl_date_source DATE; -- 4262811
57045 --
57046 type t_array_event_id is table of number index by binary_integer;
57047
57048 l_rec_array_event t_rec_array_event;
57049 l_null_rec_array_event t_rec_array_event;
57050 l_array_ae_header_id xla_number_array_type;
57051 l_actual_flag VARCHAR2(1) := NULL;
57052 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
57053 l_balance_type_code VARCHAR2(1) :=NULL;
57054 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
57055
57056 --
57057 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
57058 --
57059
57060 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
57061 TYPE t_array_source_67 IS TABLE OF PA_XLA_EXP_HEADER_V.TP_AMT_TYPE_CODE%TYPE INDEX BY BINARY_INTEGER;
57062 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
57063
57064 TYPE t_array_source_4 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
57065 TYPE t_array_source_8 IS TABLE OF PA_XLA_CCDL_LINES_V.PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
57066 TYPE t_array_source_9 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_PROVIDER_CCID%TYPE INDEX BY BINARY_INTEGER;
57067 TYPE t_array_source_10 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
57068 TYPE t_array_source_15 IS TABLE OF PA_XLA_CCDL_LINES_V.RECEIVER_CCID%TYPE INDEX BY BINARY_INTEGER;
57069 TYPE t_array_source_22 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
57070 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
57071 TYPE t_array_source_25 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
57072 TYPE t_array_source_27 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
57073 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
57074 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
57075 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
57076 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
57077 TYPE t_array_source_33 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
57078 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
57079 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
57080 TYPE t_array_source_41 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
57081 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
57082
57083 l_array_source_32 t_array_source_32;
57084 l_array_source_67 t_array_source_67;
57085 l_array_source_67_meaning t_array_lookup_meaning;
57086 l_array_source_87 t_array_source_87;
57087
57088 l_array_source_4 t_array_source_4;
57089 l_array_source_8 t_array_source_8;
57090 l_array_source_9 t_array_source_9;
57091 l_array_source_10 t_array_source_10;
57092 l_array_source_15 t_array_source_15;
57096 l_array_source_27 t_array_source_27;
57093 l_array_source_22 t_array_source_22;
57094 l_array_source_23 t_array_source_23;
57095 l_array_source_25 t_array_source_25;
57097 l_array_source_28 t_array_source_28;
57098 l_array_source_29 t_array_source_29;
57099 l_array_source_30 t_array_source_30;
57100 l_array_source_31 t_array_source_31;
57101 l_array_source_33 t_array_source_33;
57102 l_array_source_34 t_array_source_34;
57103 l_array_source_34_meaning t_array_lookup_meaning;
57104 l_array_source_35 t_array_source_35;
57105 l_array_source_41 t_array_source_41;
57106 l_array_source_43 t_array_source_43;
57107
57108 --
57109 CURSOR header_cur
57110 IS
57111 SELECT /*+ leading(xet) cardinality(xet,1) */
57112 -- Event Class Code: BORROWED_AND_LENT
57113 xet.entity_id
57114 ,xet.legal_entity_id
57115 ,xet.entity_code
57116 ,xet.transaction_number
57117 ,xet.event_id
57118 ,xet.event_class_code
57119 ,xet.event_type_code
57120 ,xet.event_number
57121 ,xet.event_date
57122 ,xet.transaction_date
57123 ,xet.reference_num_1
57124 ,xet.reference_num_2
57125 ,xet.reference_num_3
57126 ,xet.reference_num_4
57127 ,xet.reference_char_1
57128 ,xet.reference_char_2
57129 ,xet.reference_char_3
57130 ,xet.reference_char_4
57131 ,xet.reference_date_1
57132 ,xet.reference_date_2
57133 ,xet.reference_date_3
57134 ,xet.reference_date_4
57135 ,xet.event_created_by
57136 ,xet.budgetary_control_flag
57137 , h2.EXPENDITURE_ITEM_ID source_32
57138 , h2.TP_AMT_TYPE_CODE source_67
57139 , fvl67.meaning source_67_meaning
57140 , h2.GL_DATE source_87
57141 FROM xla_events_gt xet
57142 , PA_XLA_EXP_HEADER_V h2
57143 , fnd_lookup_values fvl67
57144 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
57145 and xet.event_class_code = C_EVENT_CLASS_CODE
57146 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
57147 AND fvl67.lookup_type(+) = 'TP_AMOUNT_TYPE'
57148 AND fvl67.lookup_code(+) = h2.TP_AMT_TYPE_CODE
57149 AND fvl67.view_application_id(+) = 275
57150 AND fvl67.language(+) = USERENV('LANG')
57151
57152 ORDER BY event_id
57153 ;
57154
57155
57156 --
57157 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
57158 IS
57159 SELECT /*+ leading(xet) cardinality(xet,1) */
57160 -- Event Class Code: BORROWED_AND_LENT
57161 xet.entity_id
57162 ,xet.legal_entity_id
57163 ,xet.entity_code
57164 ,xet.transaction_number
57165 ,xet.event_id
57166 ,xet.event_class_code
57167 ,xet.event_type_code
57168 ,xet.event_number
57169 ,xet.event_date
57170 ,xet.transaction_date
57171 ,xet.reference_num_1
57172 ,xet.reference_num_2
57173 ,xet.reference_num_3
57174 ,xet.reference_num_4
57175 ,xet.reference_char_1
57176 ,xet.reference_char_2
57177 ,xet.reference_char_3
57178 ,xet.reference_char_4
57179 ,xet.reference_date_1
57180 ,xet.reference_date_2
57181 ,xet.reference_date_3
57182 ,xet.reference_date_4
57183 ,xet.event_created_by
57184 ,xet.budgetary_control_flag
57185 , l1.LINE_NUMBER
57186 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
57187 , l1.PROVIDER_CCID source_8
57188 , l1.ADJ_PROVIDER_CCID source_9
57189 , l1.ADJ_RECEIVER_CCID source_10
57190 , l1.RECEIVER_CCID source_15
57191 , l1.REVERSING_LINE_FLAG source_22
57192 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
57193 , l1.ENTERED_CURRENCY_CODE source_25
57194 , l1.EXCHANGE_RATE_DATE source_27
57195 , l1.EXCHANGE_RATE source_28
57196 , l1.EXCHANGE_RATE_TYPE source_29
57197 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
57198 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
57199 , l1.LINE_NUMBER source_33
57200 , l1.LINE_TYPE source_34
57201 , fvl34.meaning source_34_meaning
57202 , l1.LINE_NUM_REVERSED source_35
57203 , l1.ENTERED_AMOUNT source_41
57204 , l1.ACCT_AMOUNT source_43
57205 FROM xla_events_gt xet
57206 , PA_XLA_CCDL_LINES_V l1
57207 , fnd_lookup_values fvl34
57208 WHERE xet.event_id between x_first_event_id and x_last_event_id
57209 and xet.event_date between p_pad_start_date and p_pad_end_date
57210 and xet.event_class_code = C_EVENT_CLASS_CODE
57211 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
57212 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
57213 AND fvl34.lookup_code(+) = l1.LINE_TYPE
57214 AND fvl34.view_application_id(+) = 275
57215 AND fvl34.language(+) = USERENV('LANG')
57216 ;
57217
57218 --
57219 BEGIN
57220 IF g_log_enabled THEN
57221 l_log_module := C_DEFAULT_MODULE||'.EventClass_111';
57222 END IF;
57223 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57224 trace
57225 (p_msg => 'BEGIN of EventClass_111'
57226 ,p_level => C_LEVEL_PROCEDURE
57227 ,p_module => l_log_module);
57228 END IF;
57229
57230 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57231 trace
57232 (p_msg => 'p_application_id = '||p_application_id||
57233 ' - p_base_ledger_id = '||p_base_ledger_id||
57234 ' - p_target_ledger_id = '||p_target_ledger_id||
57235 ' - p_language = '||p_language||
57239 ,p_module => l_log_module);
57236 ' - p_currency_code = '||p_currency_code||
57237 ' - p_sla_ledger_id = '||p_sla_ledger_id
57238 ,p_level => C_LEVEL_STATEMENT
57240 END IF;
57241 --
57242 -- initialze arrays
57243 --
57244 g_array_event.DELETE;
57245 l_rec_array_event := l_null_rec_array_event;
57246 --
57247 --------------------------------------
57248 -- 4262811 Initialze MPA Line Number
57249 --------------------------------------
57250 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
57251
57252 --
57253
57254 --
57255 OPEN header_cur;
57256 --
57257 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57258 trace
57259 (p_msg => 'SQL - FETCH header_cur'
57260 ,p_level => C_LEVEL_STATEMENT
57261 ,p_module => l_log_module);
57262 END IF;
57263 --
57264 LOOP
57265 FETCH header_cur BULK COLLECT INTO
57266 l_array_entity_id
57267 , l_array_legal_entity_id
57268 , l_array_entity_code
57269 , l_array_transaction_num
57270 , l_array_event_id
57271 , l_array_class_code
57272 , l_array_event_type
57273 , l_array_event_number
57274 , l_array_event_date
57275 , l_array_transaction_date
57276 , l_array_reference_num_1
57277 , l_array_reference_num_2
57278 , l_array_reference_num_3
57279 , l_array_reference_num_4
57280 , l_array_reference_char_1
57281 , l_array_reference_char_2
57282 , l_array_reference_char_3
57283 , l_array_reference_char_4
57284 , l_array_reference_date_1
57285 , l_array_reference_date_2
57286 , l_array_reference_date_3
57287 , l_array_reference_date_4
57288 , l_array_event_created_by
57289 , l_array_budgetary_control_flag
57290 , l_array_source_32
57291 , l_array_source_67
57292 , l_array_source_67_meaning
57293 , l_array_source_87
57294 LIMIT l_rows;
57295 --
57296 IF (C_LEVEL_EVENT >= g_log_level) THEN
57297 trace
57298 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
57299 ,p_level => C_LEVEL_EVENT
57300 ,p_module => l_log_module);
57301 END IF;
57302 --
57303 EXIT WHEN l_array_entity_id.COUNT = 0;
57304
57305 -- initialize arrays
57306 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
57307 XLA_AE_LINES_PKG.g_rec_lines := NULL;
57308
57309 --
57310 -- Bug 4458708
57311 --
57312 XLA_AE_LINES_PKG.g_LineNumber := 0;
57313
57314
57315 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
57316 g_last_hdr_idx := l_array_event_id.LAST;
57317 --
57318 -- loop for the headers. Each iteration is for each header extract row
57319 -- fetched in header cursor
57320 --
57321 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
57322
57323 --
57324 -- set event info as cache for other routines to refer event attributes
57325 --
57326 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
57327 (p_application_id => p_application_id
57328 ,p_primary_ledger_id => p_primary_ledger_id
57329 ,p_base_ledger_id => p_base_ledger_id
57330 ,p_target_ledger_id => p_target_ledger_id
57331 ,p_entity_id => l_array_entity_id(hdr_idx)
57332 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
57333 ,p_entity_code => l_array_entity_code(hdr_idx)
57334 ,p_transaction_num => l_array_transaction_num(hdr_idx)
57335 ,p_event_id => l_array_event_id(hdr_idx)
57336 ,p_event_class_code => l_array_class_code(hdr_idx)
57337 ,p_event_type_code => l_array_event_type(hdr_idx)
57338 ,p_event_number => l_array_event_number(hdr_idx)
57339 ,p_event_date => l_array_event_date(hdr_idx)
57340 ,p_transaction_date => l_array_transaction_date(hdr_idx)
57341 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
57342 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
57343 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
57344 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
57345 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
57346 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
57347 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
57348 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
57349 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
57350 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
57351 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
57352 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
57353 ,p_event_created_by => l_array_event_created_by(hdr_idx)
57354 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
57355
57356 --
57357 -- set the status of entry to C_VALID (0)
57358 --
57359 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
57360
57361 --
57362 -- initialize a row for ae header
57363 --
57364 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
57365
57366 l_event_id := l_array_event_id(hdr_idx);
57367
57368 --
57372
57369 -- storing the hdr_idx for event. May be used by line cursor.
57370 --
57371 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
57373 --
57374 -- store sources from header extract. This can be improved to
57375 -- store only those sources from header extract that may be used in lines
57376 --
57377
57378 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
57379 g_array_event(l_event_id).array_value_char('source_67') := l_array_source_67(hdr_idx);
57380 g_array_event(l_event_id).array_value_char('source_67_meaning') := l_array_source_67_meaning(hdr_idx);
57381 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
57382
57383 --
57384 -- initilaize the status of ae headers for diffrent balance types
57385 -- the status is initialised to C_NOT_CREATED (2)
57386 --
57387 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
57388 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
57389 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
57390
57391 --
57392 -- call api to validate and store accounting attributes for header
57393 --
57394
57395 ------------------------------------------------------------
57396 -- Accrual Reversal : to get date for Standard Source (NONE)
57397 ------------------------------------------------------------
57398 l_acc_rev_gl_date_source := NULL;
57399
57400 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
57401 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
57402
57403
57404 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
57405
57406 XLA_AE_HEADER_PKG.SetJeCategoryName;
57407
57408 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
57409 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
57410 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
57411 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
57412 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
57413
57414
57415 -- No header level analytical criteria
57416
57417 --
57418 --accounting attribute enhancement, bug 3612931
57419 --
57420 l_trx_reversal_source := SUBSTR(NULL, 1,30);
57421
57422 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
57423 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
57424
57425 xla_accounting_err_pkg.build_message
57426 (p_appli_s_name => 'XLA'
57427 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
57428 ,p_token_1 => 'ACCT_ATTR_NAME'
57429 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
57430 ,p_token_2 => 'PRODUCT_NAME'
57431 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
57432 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
57433 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
57434 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
57435
57436 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
57437 --
57438 -- following sets the accounting attributes needed to reverse
57439 -- accounting for a distributeion
57440 --
57441 xla_ae_lines_pkg.SetTrxReversalAttrs
57442 (p_event_id => l_event_id
57443 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
57444 ,p_trx_reversal_source => l_trx_reversal_source);
57445
57446 END IF;
57447
57448
57449 ----------------------------------------------------------------
57450 -- 4262811 - update the header statuses to invalid in need be
57451 ----------------------------------------------------------------
57452 --
57453 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
57454
57455
57456 -----------------------------------------------
57457 -- No accrual reversal for the event class/type
57458 -----------------------------------------------
57459 ----------------------------------------------------------------
57460
57461 --
57462 -- this ends the header loop iteration for one bulk fetch
57463 --
57464 END LOOP;
57465
57466 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
57467 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
57468
57469 --
57470 -- insert dummy rows into lines gt table that were created due to
57471 -- transaction reversals
57472 --
57473 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
57474 l_result := XLA_AE_LINES_PKG.InsertLines;
57475 END IF;
57476
57477 --
57478 -- reset the temp_line_num for each set of events fetched from header
57479 -- cursor rather than doing it for each new event in line cursor
57480 -- Bug 3939231
57481 --
57482 xla_ae_lines_pkg.g_temp_line_num := 0;
57483
57484
57485
57486 --
57487 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
57488 --
57489 --
57493 (p_msg => 'SQL - FETCH line_cur'
57490 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57491
57492 trace
57494 ,p_level => C_LEVEL_STATEMENT
57495 ,p_module => l_log_module);
57496
57497 END IF;
57498 --
57499 --
57500 LOOP
57501 --
57502 FETCH line_cur BULK COLLECT INTO
57503 l_array_entity_id
57504 , l_array_legal_entity_id
57505 , l_array_entity_code
57506 , l_array_transaction_num
57507 , l_array_event_id
57508 , l_array_class_code
57509 , l_array_event_type
57510 , l_array_event_number
57511 , l_array_event_date
57512 , l_array_transaction_date
57513 , l_array_reference_num_1
57514 , l_array_reference_num_2
57515 , l_array_reference_num_3
57516 , l_array_reference_num_4
57517 , l_array_reference_char_1
57518 , l_array_reference_char_2
57519 , l_array_reference_char_3
57520 , l_array_reference_char_4
57521 , l_array_reference_date_1
57522 , l_array_reference_date_2
57523 , l_array_reference_date_3
57524 , l_array_reference_date_4
57525 , l_array_event_created_by
57526 , l_array_budgetary_control_flag
57527 , l_array_extract_line_num
57528 , l_array_source_4
57529 , l_array_source_8
57530 , l_array_source_9
57531 , l_array_source_10
57532 , l_array_source_15
57533 , l_array_source_22
57534 , l_array_source_23
57535 , l_array_source_25
57536 , l_array_source_27
57537 , l_array_source_28
57538 , l_array_source_29
57539 , l_array_source_30
57540 , l_array_source_31
57541 , l_array_source_33
57542 , l_array_source_34
57543 , l_array_source_34_meaning
57544 , l_array_source_35
57545 , l_array_source_41
57546 , l_array_source_43
57547 LIMIT l_rows;
57548
57549 --
57550 IF (C_LEVEL_EVENT >= g_log_level) THEN
57551 trace
57552 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
57553 ,p_level => C_LEVEL_EVENT
57554 ,p_module => l_log_module);
57555 END IF;
57556 --
57557 EXIT WHEN l_array_entity_id.count = 0;
57558
57559 XLA_AE_LINES_PKG.g_rec_lines := null;
57560
57561 --
57562 -- Bug 4458708
57563 --
57564 XLA_AE_LINES_PKG.g_LineNumber := 0;
57565 --
57566 --
57567
57568 FOR Idx IN 1..l_array_event_id.count LOOP
57569 --
57570 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
57571 --
57572 l_event_id := l_array_event_id(idx); -- 5648433
57573
57574 --
57575 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
57576 --
57577
57578 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
57579 (g_array_event(l_event_id).array_value_num('header_index'))
57580 ,'N'
57581 ) <> 'Y'
57582 THEN
57583 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57584 trace
57585 (p_msg => 'Trancaction revesal option is not Y '
57586 ,p_level => C_LEVEL_STATEMENT
57587 ,p_module => l_log_module);
57588 END IF;
57589
57590 --
57591 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
57592 --
57593 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
57594 --
57595 -- set event info as cache for other routines to refer event attributes
57596 --
57597
57598 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
57599 l_previous_event_id := l_event_id;
57600
57601 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
57602 (p_application_id => p_application_id
57603 ,p_primary_ledger_id => p_primary_ledger_id
57604 ,p_base_ledger_id => p_base_ledger_id
57605 ,p_target_ledger_id => p_target_ledger_id
57606 ,p_entity_id => l_array_entity_id(Idx)
57607 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
57608 ,p_entity_code => l_array_entity_code(Idx)
57609 ,p_transaction_num => l_array_transaction_num(Idx)
57610 ,p_event_id => l_array_event_id(Idx)
57611 ,p_event_class_code => l_array_class_code(Idx)
57612 ,p_event_type_code => l_array_event_type(Idx)
57613 ,p_event_number => l_array_event_number(Idx)
57614 ,p_event_date => l_array_event_date(Idx)
57615 ,p_transaction_date => l_array_transaction_date(Idx)
57616 ,p_reference_num_1 => l_array_reference_num_1(Idx)
57617 ,p_reference_num_2 => l_array_reference_num_2(Idx)
57618 ,p_reference_num_3 => l_array_reference_num_3(Idx)
57619 ,p_reference_num_4 => l_array_reference_num_4(Idx)
57620 ,p_reference_char_1 => l_array_reference_char_1(Idx)
57621 ,p_reference_char_2 => l_array_reference_char_2(Idx)
57622 ,p_reference_char_3 => l_array_reference_char_3(Idx)
57623 ,p_reference_char_4 => l_array_reference_char_4(Idx)
57624 ,p_reference_date_1 => l_array_reference_date_1(Idx)
57625 ,p_reference_date_2 => l_array_reference_date_2(Idx)
57626 ,p_reference_date_3 => l_array_reference_date_3(Idx)
57630 --
57627 ,p_reference_date_4 => l_array_reference_date_4(Idx)
57628 ,p_event_created_by => l_array_event_created_by(Idx)
57629 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
57631 END IF;
57632
57633
57634
57635 --
57636 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
57637
57638 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
57639
57640 IF l_continue_with_lines THEN
57641 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
57642 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
57643
57644 xla_accounting_err_pkg.build_message
57645 (p_appli_s_name => 'XLA'
57646 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
57647 ,p_token_1 => 'LINE_NUMBER'
57648 ,p_value_1 => l_array_extract_line_num(Idx)
57649 ,p_token_2 => 'PRODUCT_NAME'
57650 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
57651 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
57652 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
57653 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
57654
57655 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
57656 --
57657 -- following sets the accounting attributes needed to reverse
57658 -- accounting for a distributeion
57659 --
57660
57661 --
57662 -- 5217187
57663 --
57664 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
57665 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
57666 g_array_event(l_event_id).array_value_num('header_index'));
57667 --
57668 --
57669
57670 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
57671 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
57672 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
57673 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
57674 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
57675 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_8(Idx));
57676 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
57677 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_41(Idx);
57678 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
57679 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
57680 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
57681 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
57682 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
57683 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
57684 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
57685 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
57686 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
57687 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
57688 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
57689 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
57690 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
57691 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_15(Idx));
57692 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
57693 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_41(Idx);
57694 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
57695 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
57696 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
57697 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
57698 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
57699 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
57700 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
57701 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
57702 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
57703 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
57704 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
57705 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
57706 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
57707 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
57708 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
57709 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
57710 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
57711 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
57712 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
57713 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
57714 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
57718
57715 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
57716 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
57717 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
57719
57720 xla_ae_lines_pkg.SetAcctReversalAttrs
57721 (p_event_id => l_event_id
57722 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
57723 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57724 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
57725 END IF;
57726
57727 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
57728 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
57729
57730 --
57731 AcctLineType_37 (
57732 p_application_id => p_application_id
57733 ,p_event_id => l_event_id
57734 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57735 ,p_calculate_g_l_flag => l_calculate_g_l_flag
57736 ,p_actual_flag => l_actual_flag
57737 ,p_balance_type_code => l_balance_type_code
57738 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
57739
57740 , p_source_4 => l_array_source_4(Idx)
57741 , p_source_8 => l_array_source_8(Idx)
57742 , p_source_9 => l_array_source_9(Idx)
57743 , p_source_15 => l_array_source_15(Idx)
57744 , p_source_22 => l_array_source_22(Idx)
57745 , p_source_23 => l_array_source_23(Idx)
57746 , p_source_25 => l_array_source_25(Idx)
57747 , p_source_27 => l_array_source_27(Idx)
57748 , p_source_28 => l_array_source_28(Idx)
57749 , p_source_29 => l_array_source_29(Idx)
57750 , p_source_30 => l_array_source_30(Idx)
57751 , p_source_31 => l_array_source_31(Idx)
57752 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
57753 , p_source_33 => l_array_source_33(Idx)
57754 , p_source_34 => l_array_source_34(Idx)
57755 , p_source_34_meaning => l_array_source_34_meaning(Idx)
57756 , p_source_35 => l_array_source_35(Idx)
57757 , p_source_41 => l_array_source_41(Idx)
57758 , p_source_43 => l_array_source_43(Idx)
57759 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
57760 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
57761 );
57762 If(l_balance_type_code = 'A') THEN
57763 l_actual_gain_loss_ref := l_gain_or_loss_ref;
57764 END IF;
57765
57766 --
57767
57768
57769 --
57770 AcctLineType_39 (
57771 p_application_id => p_application_id
57772 ,p_event_id => l_event_id
57773 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57774 ,p_calculate_g_l_flag => l_calculate_g_l_flag
57775 ,p_actual_flag => l_actual_flag
57776 ,p_balance_type_code => l_balance_type_code
57777 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
57778
57779 , p_source_4 => l_array_source_4(Idx)
57780 , p_source_8 => l_array_source_8(Idx)
57781 , p_source_9 => l_array_source_9(Idx)
57782 , p_source_15 => l_array_source_15(Idx)
57783 , p_source_22 => l_array_source_22(Idx)
57784 , p_source_23 => l_array_source_23(Idx)
57785 , p_source_25 => l_array_source_25(Idx)
57786 , p_source_27 => l_array_source_27(Idx)
57787 , p_source_28 => l_array_source_28(Idx)
57788 , p_source_29 => l_array_source_29(Idx)
57789 , p_source_30 => l_array_source_30(Idx)
57790 , p_source_31 => l_array_source_31(Idx)
57791 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
57792 , p_source_33 => l_array_source_33(Idx)
57793 , p_source_34 => l_array_source_34(Idx)
57794 , p_source_34_meaning => l_array_source_34_meaning(Idx)
57795 , p_source_35 => l_array_source_35(Idx)
57796 , p_source_41 => l_array_source_41(Idx)
57797 , p_source_43 => l_array_source_43(Idx)
57798 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
57799 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
57800 );
57801 If(l_balance_type_code = 'A') THEN
57802 l_actual_gain_loss_ref := l_gain_or_loss_ref;
57803 END IF;
57804
57805 --
57806
57807
57808 --
57809 AcctLineType_69 (
57810 p_application_id => p_application_id
57811 ,p_event_id => l_event_id
57812 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57813 ,p_calculate_g_l_flag => l_calculate_g_l_flag
57814 ,p_actual_flag => l_actual_flag
57815 ,p_balance_type_code => l_balance_type_code
57816 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
57817
57818 , p_source_4 => l_array_source_4(Idx)
57819 , p_source_8 => l_array_source_8(Idx)
57820 , p_source_10 => l_array_source_10(Idx)
57821 , p_source_15 => l_array_source_15(Idx)
57822 , p_source_22 => l_array_source_22(Idx)
57823 , p_source_23 => l_array_source_23(Idx)
57824 , p_source_25 => l_array_source_25(Idx)
57825 , p_source_27 => l_array_source_27(Idx)
57826 , p_source_28 => l_array_source_28(Idx)
57827 , p_source_29 => l_array_source_29(Idx)
57828 , p_source_30 => l_array_source_30(Idx)
57829 , p_source_31 => l_array_source_31(Idx)
57830 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
57831 , p_source_33 => l_array_source_33(Idx)
57832 , p_source_34 => l_array_source_34(Idx)
57833 , p_source_34_meaning => l_array_source_34_meaning(Idx)
57834 , p_source_35 => l_array_source_35(Idx)
57835 , p_source_41 => l_array_source_41(Idx)
57836 , p_source_43 => l_array_source_43(Idx)
57837 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
57838 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
57839 );
57840 If(l_balance_type_code = 'A') THEN
57841 l_actual_gain_loss_ref := l_gain_or_loss_ref;
57842 END IF;
57846
57843
57844 --
57845
57847 --
57848 AcctLineType_71 (
57849 p_application_id => p_application_id
57850 ,p_event_id => l_event_id
57851 ,p_calculate_acctd_flag => l_calculate_acctd_flag
57852 ,p_calculate_g_l_flag => l_calculate_g_l_flag
57853 ,p_actual_flag => l_actual_flag
57854 ,p_balance_type_code => l_balance_type_code
57855 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
57856
57857 , p_source_4 => l_array_source_4(Idx)
57858 , p_source_8 => l_array_source_8(Idx)
57859 , p_source_10 => l_array_source_10(Idx)
57860 , p_source_15 => l_array_source_15(Idx)
57861 , p_source_22 => l_array_source_22(Idx)
57862 , p_source_23 => l_array_source_23(Idx)
57863 , p_source_25 => l_array_source_25(Idx)
57864 , p_source_27 => l_array_source_27(Idx)
57865 , p_source_28 => l_array_source_28(Idx)
57866 , p_source_29 => l_array_source_29(Idx)
57867 , p_source_30 => l_array_source_30(Idx)
57868 , p_source_31 => l_array_source_31(Idx)
57869 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
57870 , p_source_33 => l_array_source_33(Idx)
57871 , p_source_34 => l_array_source_34(Idx)
57872 , p_source_34_meaning => l_array_source_34_meaning(Idx)
57873 , p_source_35 => l_array_source_35(Idx)
57874 , p_source_41 => l_array_source_41(Idx)
57875 , p_source_43 => l_array_source_43(Idx)
57876 , p_source_67 => g_array_event(l_event_id).array_value_char('source_67')
57877 , p_source_67_meaning => g_array_event(l_event_id).array_value_char('source_67_meaning')
57878 );
57879 If(l_balance_type_code = 'A') THEN
57880 l_actual_gain_loss_ref := l_gain_or_loss_ref;
57881 END IF;
57882
57883 --
57884
57885 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
57886 -- or secondary ledger that has different currency with primary
57887 -- or alc that is calculated by sla
57888 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
57889 (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'))
57890
57891 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
57892 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
57893 AND (l_actual_flag = 'A')) THEN
57894 XLA_AE_LINES_PKG.CreateGainOrLossLines(
57895 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
57896 ,p_application_id => p_application_id
57897 ,p_amb_context_code => 'DEFAULT'
57898 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
57899 ,p_event_class_code => C_EVENT_CLASS_CODE
57900 ,p_event_type_code => C_EVENT_TYPE_CODE
57901
57902 ,p_gain_ccid => -1
57903 ,p_loss_ccid => -1
57904
57905 ,p_actual_flag => l_actual_flag
57906 ,p_enc_flag => null
57907 ,p_actual_g_l_ref => l_actual_gain_loss_ref
57908 ,p_enc_g_l_ref => null
57909 );
57910 END IF;
57911 END IF;
57912 END IF;
57913
57914 ELSE
57915 --
57916 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
57917 --
57918 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57919 trace
57920 (p_msg => 'Trancaction revesal option is Y'
57921 ,p_level => C_LEVEL_STATEMENT
57922 ,p_module => l_log_module);
57923 END IF;
57924 END IF;
57925
57926 END LOOP;
57927 l_result := XLA_AE_LINES_PKG.InsertLines ;
57928 end loop;
57929 close line_cur;
57930
57931
57932 --
57933 -- insert headers into xla_ae_headers_gt table
57934 --
57935 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
57936
57937 -- insert into errors table here.
57938
57939 END LOOP;
57940
57941 --
57942 -- 4865292
57943 --
57944 -- Compare g_hdr_extract_count with event count in
57945 -- CreateHeadersAndLines.
57946 --
57947 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
57948
57949 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
57950 trace (p_msg => '# rows extracted from header extract objects '
57951 || ' (running total): '
57952 || g_hdr_extract_count
57953 ,p_level => C_LEVEL_STATEMENT
57954 ,p_module => l_log_module);
57955 END IF;
57956
57957 CLOSE header_cur;
57958 --
57959
57960 --
57961 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
57962 trace
57963 (p_msg => 'END of EventClass_111'
57964 ,p_level => C_LEVEL_PROCEDURE
57965 ,p_module => l_log_module);
57966 END IF;
57967 --
57968 RETURN l_result;
57969 EXCEPTION
57970 WHEN xla_exceptions_pkg.application_exception THEN
57971
57972 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
57973
57974
57975 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
57976
57977 RAISE;
57978 WHEN OTHERS THEN
57979 xla_exceptions_pkg.raise_message
57980 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_111');
57981 END EventClass_111;
57982 --
57983
57984 ---------------------------------------
57985 --
57989 ----------------------------------------
57986 -- PRIVATE PROCEDURE
57987 -- insert_sources_112
57988 --
57990 --
57991 PROCEDURE insert_sources_112(
57992 p_target_ledger_id IN NUMBER
57993 , p_language IN VARCHAR2
57994 , p_sla_ledger_id IN NUMBER
57995 , p_pad_start_date IN DATE
57996 , p_pad_end_date IN DATE
57997 )
57998 IS
57999
58000 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BUDGET_ALL';
58001 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BUDGET';
58002 p_apps_owner VARCHAR2(30);
58003 l_log_module VARCHAR2(240);
58004 BEGIN
58005 IF g_log_enabled THEN
58006 l_log_module := C_DEFAULT_MODULE||'.insert_sources_112';
58007 END IF;
58008 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58009
58010 trace
58011 (p_msg => 'BEGIN of insert_sources_112'
58012 ,p_level => C_LEVEL_PROCEDURE
58013 ,p_module => l_log_module);
58014
58015 END IF;
58016
58017 -- select APPS owner
58018 SELECT oracle_username
58019 INTO p_apps_owner
58020 FROM fnd_oracle_userid
58021 WHERE read_only_flag = 'U'
58022 ;
58023
58024 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58025 trace
58026 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
58027 ' - p_language = '||p_language||
58028 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
58029 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
58030 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
58031 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
58032 ,p_level => C_LEVEL_STATEMENT
58033 ,p_module => l_log_module);
58034 END IF;
58035
58036
58037 --
58038 INSERT INTO xla_diag_sources --hdr2
58039 (
58040 event_id
58041 , ledger_id
58042 , sla_ledger_id
58043 , description_language
58044 , object_name
58045 , object_type_code
58046 , line_number
58047 , source_application_id
58048 , source_type_code
58049 , source_code
58050 , source_value
58051 , source_meaning
58052 , created_by
58053 , creation_date
58054 , last_update_date
58055 , last_updated_by
58056 , last_update_login
58057 , program_update_date
58058 , program_application_id
58059 , program_id
58060 , request_id
58061 )
58062 SELECT
58063 event_id
58064 , p_target_ledger_id
58065 , p_sla_ledger_id
58066 , p_language
58067 , object_name
58068 , object_type_code
58069 , line_number
58070 , source_application_id
58071 , source_type_code
58072 , source_code
58073 , SUBSTR(source_value ,1,1996)
58074 , SUBSTR(source_meaning ,1,200)
58075 , xla_environment_pkg.g_Usr_Id
58076 , TRUNC(SYSDATE)
58077 , TRUNC(SYSDATE)
58078 , xla_environment_pkg.g_Usr_Id
58079 , xla_environment_pkg.g_Login_Id
58080 , TRUNC(SYSDATE)
58081 , xla_environment_pkg.g_Prog_Appl_Id
58082 , xla_environment_pkg.g_Prog_Id
58083 , xla_environment_pkg.g_Req_Id
58084 FROM (
58085 SELECT xet.event_id event_id
58086 , 0 line_number
58087 , CASE r
58088 WHEN 1 THEN 'PA_XLA_BC_BUDGET_HEADER_V'
58089 WHEN 2 THEN 'PA_XLA_BC_BUDGET_HEADER_V'
58090
58091 ELSE null
58092 END object_name
58093 , CASE r
58094 WHEN 1 THEN 'HEADER'
58095 WHEN 2 THEN 'HEADER'
58096
58097 ELSE null
58098 END object_type_code
58099 , CASE r
58100 WHEN 1 THEN '275'
58101 WHEN 2 THEN '275'
58102
58103 ELSE null
58104 END source_application_id
58105 , 'S' source_type_code
58106 , CASE r
58107 WHEN 1 THEN 'GL_DATE'
58108 WHEN 2 THEN 'GL_BUDGET_VERSION_ID'
58109
58110 ELSE null
58111 END source_code
58112 , CASE r
58113 WHEN 1 THEN TO_CHAR(h1.GL_DATE)
58114 WHEN 2 THEN TO_CHAR(h1.GL_BUDGET_VERSION_ID)
58115
58116 ELSE null
58117 END source_value
58118 , null source_meaning
58119 FROM xla_events_gt xet
58120 , PA_XLA_BC_BUDGET_HEADER_V h1
58121 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
58122 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
58123 AND xet.event_class_code = C_EVENT_CLASS_CODE
58124 AND h1.event_id = xet.event_id
58125
58126 )
58127 ;
58128 --
58132 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
58129 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58130
58131 trace
58133 ,p_level => C_LEVEL_STATEMENT
58134 ,p_module => l_log_module);
58135
58136 END IF;
58137 --
58138
58139
58140
58141 --
58142 INSERT INTO xla_diag_sources --line2
58143 (
58144 event_id
58145 , ledger_id
58146 , sla_ledger_id
58147 , description_language
58148 , object_name
58149 , object_type_code
58150 , line_number
58151 , source_application_id
58152 , source_type_code
58153 , source_code
58154 , source_value
58155 , source_meaning
58156 , created_by
58157 , creation_date
58158 , last_update_date
58159 , last_updated_by
58160 , last_update_login
58161 , program_update_date
58162 , program_application_id
58163 , program_id
58164 , request_id
58165 )
58166 SELECT event_id
58167 , p_target_ledger_id
58168 , p_sla_ledger_id
58169 , p_language
58170 , object_name
58171 , object_type_code
58172 , line_number
58173 , source_application_id
58174 , source_type_code
58175 , source_code
58176 , SUBSTR(source_value,1,1996)
58177 , SUBSTR(source_meaning ,1,200)
58178 , xla_environment_pkg.g_Usr_Id
58179 , TRUNC(SYSDATE)
58180 , TRUNC(SYSDATE)
58181 , xla_environment_pkg.g_Usr_Id
58182 , xla_environment_pkg.g_Login_Id
58183 , TRUNC(SYSDATE)
58184 , xla_environment_pkg.g_Prog_Appl_Id
58185 , xla_environment_pkg.g_Prog_Id
58186 , xla_environment_pkg.g_Req_Id
58187 FROM (
58188 SELECT xet.event_id event_id
58189 , l2.line_number line_number
58190 , CASE r
58191 WHEN 1 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58192 WHEN 2 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58193 WHEN 3 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58194 WHEN 4 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58195 WHEN 5 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58196 WHEN 6 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58197 WHEN 7 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58198 WHEN 8 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58199 WHEN 9 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58200 WHEN 10 THEN 'PA_XLA_BC_BUDGET_LINES_V'
58201
58202 ELSE null
58203 END object_name
58204 , CASE r
58205 WHEN 1 THEN 'LINE'
58206 WHEN 2 THEN 'LINE'
58207 WHEN 3 THEN 'LINE'
58208 WHEN 4 THEN 'LINE'
58209 WHEN 5 THEN 'LINE'
58210 WHEN 6 THEN 'LINE'
58211 WHEN 7 THEN 'LINE'
58212 WHEN 8 THEN 'LINE'
58213 WHEN 9 THEN 'LINE'
58214 WHEN 10 THEN 'LINE'
58215
58216 ELSE null
58217 END object_type_code
58218 , CASE r
58219 WHEN 1 THEN '275'
58220 WHEN 2 THEN '275'
58221 WHEN 3 THEN '275'
58222 WHEN 4 THEN '275'
58223 WHEN 5 THEN '275'
58224 WHEN 6 THEN '275'
58225 WHEN 7 THEN '275'
58226 WHEN 8 THEN '275'
58227 WHEN 9 THEN '275'
58228 WHEN 10 THEN '275'
58229
58230 ELSE null
58231 END source_application_id
58232 , 'S' source_type_code
58233 , CASE r
58234 WHEN 1 THEN 'BUDGET_CCID'
58235 WHEN 2 THEN 'REVERSING_LINE_FLAG'
58236 WHEN 3 THEN 'ENTERED_CURRENCY_CODE'
58237 WHEN 4 THEN 'LINE_TYPE'
58238 WHEN 5 THEN 'ENTERED_AMOUNT'
58239 WHEN 6 THEN 'ACCT_AMOUNT'
58240 WHEN 7 THEN 'ENC_UPG_DR_ACCT_CLASS'
58241 WHEN 8 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
58242 WHEN 9 THEN 'BUDGET_LINE_ID'
58243 WHEN 10 THEN 'ENC_UPG_ENC_TYPE_ID'
58244
58245 ELSE null
58246 END source_code
58247 , CASE r
58248 WHEN 1 THEN TO_CHAR(l2.BUDGET_CCID)
58249 WHEN 2 THEN TO_CHAR(l2.REVERSING_LINE_FLAG)
58250 WHEN 3 THEN TO_CHAR(l2.ENTERED_CURRENCY_CODE)
58251 WHEN 4 THEN TO_CHAR(l2.LINE_TYPE)
58252 WHEN 5 THEN TO_CHAR(l2.ENTERED_AMOUNT)
58253 WHEN 6 THEN TO_CHAR(l2.ACCT_AMOUNT)
58254 WHEN 7 THEN TO_CHAR(l2.ENC_UPG_DR_ACCT_CLASS)
58255 WHEN 8 THEN TO_CHAR(l2.USE_ENC_UPG_ATTRIB_FLAG)
58256 WHEN 9 THEN TO_CHAR(l2.BUDGET_LINE_ID)
58257 WHEN 10 THEN TO_CHAR(l2.ENC_UPG_ENC_TYPE_ID)
58258
58259 ELSE null
58260 END source_value
58261 , CASE r
58262 WHEN 4 THEN fvl34.meaning
58263
58264 ELSE null
58265 END source_meaning
58266 FROM xla_events_gt xet
58270 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
58267 , PA_XLA_BC_BUDGET_LINES_V l2
58268 , fnd_lookup_values fvl34
58269 , (select rownum r from all_objects where rownum <= 10 and owner = p_apps_owner)
58271 AND xet.event_class_code = C_EVENT_CLASS_CODE
58272 AND l2.event_id = xet.event_id
58273 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
58274 AND fvl34.lookup_code(+) = l2.LINE_TYPE
58275 AND fvl34.view_application_id(+) = 275
58276 AND fvl34.language(+) = USERENV('LANG')
58277
58278 )
58279 ;
58280 --
58281 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58282
58283 trace
58284 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
58285 ,p_level => C_LEVEL_STATEMENT
58286 ,p_module => l_log_module);
58287
58288 END IF;
58289
58290
58291 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58292 trace
58293 (p_msg => 'END of insert_sources_112'
58294 ,p_level => C_LEVEL_PROCEDURE
58295 ,p_module => l_log_module);
58296 END IF;
58297 EXCEPTION
58298 WHEN xla_exceptions_pkg.application_exception THEN
58299 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
58300 trace
58301 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
58302 ,p_level => C_LEVEL_EXCEPTION
58303 ,p_module => l_log_module);
58304 END IF;
58305 RAISE;
58306 WHEN OTHERS THEN
58307 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
58308 trace
58309 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
58310 ,p_level => C_LEVEL_EXCEPTION
58311 ,p_module => l_log_module);
58312 END IF;
58313 xla_exceptions_pkg.raise_message
58314 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_112');
58315 END insert_sources_112;
58316 --
58317
58318 ---------------------------------------
58319 --
58320 -- PRIVATE FUNCTION
58321 -- EventClass_112
58322 --
58323 ----------------------------------------
58324 --
58325 FUNCTION EventClass_112
58326 (p_application_id IN NUMBER
58327 ,p_base_ledger_id IN NUMBER
58328 ,p_target_ledger_id IN NUMBER
58329 ,p_language IN VARCHAR2
58330 ,p_currency_code IN VARCHAR2
58331 ,p_sla_ledger_id IN NUMBER
58332 ,p_pad_start_date IN DATE
58333 ,p_pad_end_date IN DATE
58334 ,p_primary_ledger_id IN NUMBER)
58335 RETURN BOOLEAN IS
58336 --
58337 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BUDGET_ALL';
58338 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BUDGET';
58339
58340 l_calculate_acctd_flag VARCHAR2(1) :='N';
58341 l_calculate_g_l_flag VARCHAR2(1) :='N';
58342 --
58343 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58344 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58345 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58346 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58347 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58348 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58349 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58350 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58351 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58352 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58353 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58354 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58355 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58356 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
58357 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58358 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58359 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58360 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
58361 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58362 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58363 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58364 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
58365 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
58366 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
58367
58368 l_event_id NUMBER;
58369 l_previous_event_id NUMBER;
58370 l_first_event_id NUMBER;
58371 l_last_event_id NUMBER;
58372
58373 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
58374 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
58375 --
58376 --
58377 l_result BOOLEAN := TRUE;
58378 l_rows NUMBER := 1000;
58379 l_event_type_name VARCHAR2(80) := 'All';
58380 l_event_class_name VARCHAR2(80) := 'Budget';
58381 l_description VARCHAR2(4000);
58385 l_log_module VARCHAR2(240);
58382 l_transaction_reversal NUMBER;
58383 l_ae_header_id NUMBER;
58384 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
58386 --
58387 l_acct_reversal_source VARCHAR2(30);
58388 l_trx_reversal_source VARCHAR2(30);
58389
58390 l_continue_with_lines BOOLEAN := TRUE;
58391 --
58392 l_acc_rev_gl_date_source DATE; -- 4262811
58393 --
58394 type t_array_event_id is table of number index by binary_integer;
58395
58396 l_rec_array_event t_rec_array_event;
58397 l_null_rec_array_event t_rec_array_event;
58398 l_array_ae_header_id xla_number_array_type;
58399 l_actual_flag VARCHAR2(1) := NULL;
58400 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
58401 l_balance_type_code VARCHAR2(1) :=NULL;
58402 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
58403
58404 --
58405 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
58406 --
58407
58408 TYPE t_array_source_87 IS TABLE OF PA_XLA_BC_BUDGET_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
58409 TYPE t_array_source_88 IS TABLE OF PA_XLA_BC_BUDGET_HEADER_V.GL_BUDGET_VERSION_ID%TYPE INDEX BY BINARY_INTEGER;
58410
58411 TYPE t_array_source_2 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
58412 TYPE t_array_source_22 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
58413 TYPE t_array_source_25 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
58414 TYPE t_array_source_34 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
58415 TYPE t_array_source_41 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
58416 TYPE t_array_source_43 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
58417 TYPE t_array_source_53 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
58418 TYPE t_array_source_55 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
58419 TYPE t_array_source_89 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.BUDGET_LINE_ID%TYPE INDEX BY BINARY_INTEGER;
58420 TYPE t_array_source_90 IS TABLE OF PA_XLA_BC_BUDGET_LINES_V.ENC_UPG_ENC_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
58421
58422 l_array_source_87 t_array_source_87;
58423 l_array_source_88 t_array_source_88;
58424
58425 l_array_source_2 t_array_source_2;
58426 l_array_source_22 t_array_source_22;
58427 l_array_source_25 t_array_source_25;
58428 l_array_source_34 t_array_source_34;
58429 l_array_source_34_meaning t_array_lookup_meaning;
58430 l_array_source_41 t_array_source_41;
58431 l_array_source_43 t_array_source_43;
58432 l_array_source_53 t_array_source_53;
58433 l_array_source_55 t_array_source_55;
58434 l_array_source_89 t_array_source_89;
58435 l_array_source_90 t_array_source_90;
58436
58437 --
58438 CURSOR header_cur
58439 IS
58440 SELECT /*+ leading(xet) cardinality(xet,1) */
58441 -- Event Class Code: BUDGET
58442 xet.entity_id
58443 ,xet.legal_entity_id
58444 ,xet.entity_code
58445 ,xet.transaction_number
58446 ,xet.event_id
58447 ,xet.event_class_code
58448 ,xet.event_type_code
58449 ,xet.event_number
58450 ,xet.event_date
58451 ,xet.transaction_date
58452 ,xet.reference_num_1
58453 ,xet.reference_num_2
58454 ,xet.reference_num_3
58455 ,xet.reference_num_4
58456 ,xet.reference_char_1
58457 ,xet.reference_char_2
58458 ,xet.reference_char_3
58459 ,xet.reference_char_4
58460 ,xet.reference_date_1
58461 ,xet.reference_date_2
58462 ,xet.reference_date_3
58463 ,xet.reference_date_4
58464 ,xet.event_created_by
58465 ,xet.budgetary_control_flag
58466 , h1.GL_DATE source_87
58467 , h1.GL_BUDGET_VERSION_ID source_88
58468 FROM xla_events_gt xet
58469 , PA_XLA_BC_BUDGET_HEADER_V h1
58470 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
58471 and xet.event_class_code = C_EVENT_CLASS_CODE
58472 and xet.event_status_code <> 'N' AND h1.event_id = xet.event_id
58473
58474 ORDER BY event_id
58475 ;
58476
58477
58478 --
58479 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
58480 IS
58481 SELECT /*+ leading(xet) cardinality(xet,1) */
58482 -- Event Class Code: BUDGET
58483 xet.entity_id
58484 ,xet.legal_entity_id
58485 ,xet.entity_code
58486 ,xet.transaction_number
58487 ,xet.event_id
58488 ,xet.event_class_code
58489 ,xet.event_type_code
58490 ,xet.event_number
58491 ,xet.event_date
58492 ,xet.transaction_date
58493 ,xet.reference_num_1
58494 ,xet.reference_num_2
58495 ,xet.reference_num_3
58496 ,xet.reference_num_4
58497 ,xet.reference_char_1
58498 ,xet.reference_char_2
58499 ,xet.reference_char_3
58500 ,xet.reference_char_4
58501 ,xet.reference_date_1
58502 ,xet.reference_date_2
58503 ,xet.reference_date_3
58504 ,xet.reference_date_4
58505 ,xet.event_created_by
58506 ,xet.budgetary_control_flag
58507 , l2.LINE_NUMBER
58508 , l2.BUDGET_CCID source_2
58509 , l2.REVERSING_LINE_FLAG source_22
58510 , l2.ENTERED_CURRENCY_CODE source_25
58511 , l2.LINE_TYPE source_34
58515 , l2.ENC_UPG_DR_ACCT_CLASS source_53
58512 , fvl34.meaning source_34_meaning
58513 , l2.ENTERED_AMOUNT source_41
58514 , l2.ACCT_AMOUNT source_43
58516 , l2.USE_ENC_UPG_ATTRIB_FLAG source_55
58517 , l2.BUDGET_LINE_ID source_89
58518 , l2.ENC_UPG_ENC_TYPE_ID source_90
58519 FROM xla_events_gt xet
58520 , PA_XLA_BC_BUDGET_LINES_V l2
58521 , fnd_lookup_values fvl34
58522 WHERE xet.event_id between x_first_event_id and x_last_event_id
58523 and xet.event_date between p_pad_start_date and p_pad_end_date
58524 and xet.event_class_code = C_EVENT_CLASS_CODE
58525 and xet.event_status_code <> 'N' AND l2.event_id = xet.event_id
58526 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
58527 AND fvl34.lookup_code(+) = l2.LINE_TYPE
58528 AND fvl34.view_application_id(+) = 275
58529 AND fvl34.language(+) = USERENV('LANG')
58530 ;
58531
58532 --
58533 BEGIN
58534 IF g_log_enabled THEN
58535 l_log_module := C_DEFAULT_MODULE||'.EventClass_112';
58536 END IF;
58537 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
58538 trace
58539 (p_msg => 'BEGIN of EventClass_112'
58540 ,p_level => C_LEVEL_PROCEDURE
58541 ,p_module => l_log_module);
58542 END IF;
58543
58544 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58545 trace
58546 (p_msg => 'p_application_id = '||p_application_id||
58547 ' - p_base_ledger_id = '||p_base_ledger_id||
58548 ' - p_target_ledger_id = '||p_target_ledger_id||
58549 ' - p_language = '||p_language||
58550 ' - p_currency_code = '||p_currency_code||
58551 ' - p_sla_ledger_id = '||p_sla_ledger_id
58552 ,p_level => C_LEVEL_STATEMENT
58553 ,p_module => l_log_module);
58554 END IF;
58555 --
58556 -- initialze arrays
58557 --
58558 g_array_event.DELETE;
58559 l_rec_array_event := l_null_rec_array_event;
58560 --
58561 --------------------------------------
58562 -- 4262811 Initialze MPA Line Number
58563 --------------------------------------
58564 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
58565
58566 --
58567
58568 --
58569 OPEN header_cur;
58570 --
58571 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58572 trace
58573 (p_msg => 'SQL - FETCH header_cur'
58574 ,p_level => C_LEVEL_STATEMENT
58575 ,p_module => l_log_module);
58576 END IF;
58577 --
58578 LOOP
58579 FETCH header_cur BULK COLLECT INTO
58580 l_array_entity_id
58581 , l_array_legal_entity_id
58582 , l_array_entity_code
58583 , l_array_transaction_num
58584 , l_array_event_id
58585 , l_array_class_code
58586 , l_array_event_type
58587 , l_array_event_number
58588 , l_array_event_date
58589 , l_array_transaction_date
58590 , l_array_reference_num_1
58591 , l_array_reference_num_2
58592 , l_array_reference_num_3
58593 , l_array_reference_num_4
58594 , l_array_reference_char_1
58595 , l_array_reference_char_2
58596 , l_array_reference_char_3
58597 , l_array_reference_char_4
58598 , l_array_reference_date_1
58599 , l_array_reference_date_2
58600 , l_array_reference_date_3
58601 , l_array_reference_date_4
58602 , l_array_event_created_by
58603 , l_array_budgetary_control_flag
58604 , l_array_source_87
58605 , l_array_source_88
58606 LIMIT l_rows;
58607 --
58608 IF (C_LEVEL_EVENT >= g_log_level) THEN
58609 trace
58610 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
58611 ,p_level => C_LEVEL_EVENT
58612 ,p_module => l_log_module);
58613 END IF;
58614 --
58615 EXIT WHEN l_array_entity_id.COUNT = 0;
58616
58617 -- initialize arrays
58618 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
58619 XLA_AE_LINES_PKG.g_rec_lines := NULL;
58620
58621 --
58622 -- Bug 4458708
58623 --
58624 XLA_AE_LINES_PKG.g_LineNumber := 0;
58625
58626
58627 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
58628 g_last_hdr_idx := l_array_event_id.LAST;
58629 --
58630 -- loop for the headers. Each iteration is for each header extract row
58631 -- fetched in header cursor
58632 --
58633 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
58634
58635 --
58636 -- set event info as cache for other routines to refer event attributes
58637 --
58638 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
58639 (p_application_id => p_application_id
58640 ,p_primary_ledger_id => p_primary_ledger_id
58641 ,p_base_ledger_id => p_base_ledger_id
58642 ,p_target_ledger_id => p_target_ledger_id
58643 ,p_entity_id => l_array_entity_id(hdr_idx)
58644 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
58645 ,p_entity_code => l_array_entity_code(hdr_idx)
58646 ,p_transaction_num => l_array_transaction_num(hdr_idx)
58647 ,p_event_id => l_array_event_id(hdr_idx)
58648 ,p_event_class_code => l_array_class_code(hdr_idx)
58649 ,p_event_type_code => l_array_event_type(hdr_idx)
58653 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
58650 ,p_event_number => l_array_event_number(hdr_idx)
58651 ,p_event_date => l_array_event_date(hdr_idx)
58652 ,p_transaction_date => l_array_transaction_date(hdr_idx)
58654 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
58655 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
58656 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
58657 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
58658 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
58659 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
58660 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
58661 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
58662 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
58663 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
58664 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
58665 ,p_event_created_by => l_array_event_created_by(hdr_idx)
58666 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
58667
58668 --
58669 -- set the status of entry to C_VALID (0)
58670 --
58671 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
58672
58673 --
58674 -- initialize a row for ae header
58675 --
58676 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
58677
58678 l_event_id := l_array_event_id(hdr_idx);
58679
58680 --
58681 -- storing the hdr_idx for event. May be used by line cursor.
58682 --
58683 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
58684
58685 --
58686 -- store sources from header extract. This can be improved to
58687 -- store only those sources from header extract that may be used in lines
58688 --
58689
58690 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
58691 g_array_event(l_event_id).array_value_num('source_88') := l_array_source_88(hdr_idx);
58692
58693 --
58694 -- initilaize the status of ae headers for diffrent balance types
58695 -- the status is initialised to C_NOT_CREATED (2)
58696 --
58697 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
58698 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
58699 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
58700
58701 --
58702 -- call api to validate and store accounting attributes for header
58703 --
58704
58705 ------------------------------------------------------------
58706 -- Accrual Reversal : to get date for Standard Source (NONE)
58707 ------------------------------------------------------------
58708 l_acc_rev_gl_date_source := NULL;
58709
58710 l_rec_acct_attrs.array_acct_attr_code(1) := 'BUDGET_VERSION_ID';
58711 l_rec_acct_attrs.array_num_value(1) := g_array_event(l_event_id).array_value_num('source_88');
58712 l_rec_acct_attrs.array_acct_attr_code(2) := 'GL_DATE';
58713 l_rec_acct_attrs.array_date_value(2) := g_array_event(l_event_id).array_value_date('source_87');
58714
58715
58716 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
58717
58718 XLA_AE_HEADER_PKG.SetJeCategoryName;
58719
58720 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
58721 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
58722 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
58723 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
58724 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
58725
58726
58727 -- No header level analytical criteria
58728
58729 --
58730 --accounting attribute enhancement, bug 3612931
58731 --
58732 l_trx_reversal_source := SUBSTR(NULL, 1,30);
58733
58734 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
58735 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
58736
58737 xla_accounting_err_pkg.build_message
58738 (p_appli_s_name => 'XLA'
58739 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
58740 ,p_token_1 => 'ACCT_ATTR_NAME'
58741 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
58742 ,p_token_2 => 'PRODUCT_NAME'
58743 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
58744 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
58745 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
58746 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
58747
58748 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
58749 --
58750 -- following sets the accounting attributes needed to reverse
58751 -- accounting for a distributeion
58752 --
58753 xla_ae_lines_pkg.SetTrxReversalAttrs
58754 (p_event_id => l_event_id
58755 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
58756 ,p_trx_reversal_source => l_trx_reversal_source);
58757
58758 END IF;
58759
58760
58764 --
58761 ----------------------------------------------------------------
58762 -- 4262811 - update the header statuses to invalid in need be
58763 ----------------------------------------------------------------
58765 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
58766
58767
58768 -----------------------------------------------
58769 -- No accrual reversal for the event class/type
58770 -----------------------------------------------
58771 ----------------------------------------------------------------
58772
58773 --
58774 -- this ends the header loop iteration for one bulk fetch
58775 --
58776 END LOOP;
58777
58778 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
58779 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
58780
58781 --
58782 -- insert dummy rows into lines gt table that were created due to
58783 -- transaction reversals
58784 --
58785 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
58786 l_result := XLA_AE_LINES_PKG.InsertLines;
58787 END IF;
58788
58789 --
58790 -- reset the temp_line_num for each set of events fetched from header
58791 -- cursor rather than doing it for each new event in line cursor
58792 -- Bug 3939231
58793 --
58794 xla_ae_lines_pkg.g_temp_line_num := 0;
58795
58796
58797
58798 --
58799 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
58800 --
58801 --
58802 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58803
58804 trace
58805 (p_msg => 'SQL - FETCH line_cur'
58806 ,p_level => C_LEVEL_STATEMENT
58807 ,p_module => l_log_module);
58808
58809 END IF;
58810 --
58811 --
58812 LOOP
58813 --
58814 FETCH line_cur BULK COLLECT INTO
58815 l_array_entity_id
58816 , l_array_legal_entity_id
58817 , l_array_entity_code
58818 , l_array_transaction_num
58819 , l_array_event_id
58820 , l_array_class_code
58821 , l_array_event_type
58822 , l_array_event_number
58823 , l_array_event_date
58824 , l_array_transaction_date
58825 , l_array_reference_num_1
58826 , l_array_reference_num_2
58827 , l_array_reference_num_3
58828 , l_array_reference_num_4
58829 , l_array_reference_char_1
58830 , l_array_reference_char_2
58831 , l_array_reference_char_3
58832 , l_array_reference_char_4
58833 , l_array_reference_date_1
58834 , l_array_reference_date_2
58835 , l_array_reference_date_3
58836 , l_array_reference_date_4
58837 , l_array_event_created_by
58838 , l_array_budgetary_control_flag
58839 , l_array_extract_line_num
58840 , l_array_source_2
58841 , l_array_source_22
58842 , l_array_source_25
58843 , l_array_source_34
58844 , l_array_source_34_meaning
58845 , l_array_source_41
58846 , l_array_source_43
58847 , l_array_source_53
58848 , l_array_source_55
58849 , l_array_source_89
58850 , l_array_source_90
58851 LIMIT l_rows;
58852
58853 --
58854 IF (C_LEVEL_EVENT >= g_log_level) THEN
58855 trace
58856 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
58857 ,p_level => C_LEVEL_EVENT
58858 ,p_module => l_log_module);
58859 END IF;
58860 --
58861 EXIT WHEN l_array_entity_id.count = 0;
58862
58863 XLA_AE_LINES_PKG.g_rec_lines := null;
58864
58865 --
58866 -- Bug 4458708
58867 --
58868 XLA_AE_LINES_PKG.g_LineNumber := 0;
58869 --
58870 --
58871
58872 FOR Idx IN 1..l_array_event_id.count LOOP
58873 --
58874 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
58875 --
58876 l_event_id := l_array_event_id(idx); -- 5648433
58877
58878 --
58879 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
58880 --
58881
58882 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
58883 (g_array_event(l_event_id).array_value_num('header_index'))
58884 ,'N'
58885 ) <> 'Y'
58886 THEN
58887 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
58888 trace
58889 (p_msg => 'Trancaction revesal option is not Y '
58890 ,p_level => C_LEVEL_STATEMENT
58891 ,p_module => l_log_module);
58892 END IF;
58893
58894 --
58895 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
58896 --
58897 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
58898 --
58899 -- set event info as cache for other routines to refer event attributes
58900 --
58901
58902 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
58903 l_previous_event_id := l_event_id;
58904
58905 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
58906 (p_application_id => p_application_id
58907 ,p_primary_ledger_id => p_primary_ledger_id
58908 ,p_base_ledger_id => p_base_ledger_id
58909 ,p_target_ledger_id => p_target_ledger_id
58910 ,p_entity_id => l_array_entity_id(Idx)
58911 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
58915 ,p_event_class_code => l_array_class_code(Idx)
58912 ,p_entity_code => l_array_entity_code(Idx)
58913 ,p_transaction_num => l_array_transaction_num(Idx)
58914 ,p_event_id => l_array_event_id(Idx)
58916 ,p_event_type_code => l_array_event_type(Idx)
58917 ,p_event_number => l_array_event_number(Idx)
58918 ,p_event_date => l_array_event_date(Idx)
58919 ,p_transaction_date => l_array_transaction_date(Idx)
58920 ,p_reference_num_1 => l_array_reference_num_1(Idx)
58921 ,p_reference_num_2 => l_array_reference_num_2(Idx)
58922 ,p_reference_num_3 => l_array_reference_num_3(Idx)
58923 ,p_reference_num_4 => l_array_reference_num_4(Idx)
58924 ,p_reference_char_1 => l_array_reference_char_1(Idx)
58925 ,p_reference_char_2 => l_array_reference_char_2(Idx)
58926 ,p_reference_char_3 => l_array_reference_char_3(Idx)
58927 ,p_reference_char_4 => l_array_reference_char_4(Idx)
58928 ,p_reference_date_1 => l_array_reference_date_1(Idx)
58929 ,p_reference_date_2 => l_array_reference_date_2(Idx)
58930 ,p_reference_date_3 => l_array_reference_date_3(Idx)
58931 ,p_reference_date_4 => l_array_reference_date_4(Idx)
58932 ,p_event_created_by => l_array_event_created_by(Idx)
58933 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
58934 --
58935 END IF;
58936
58937
58938
58939 --
58940 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
58941
58942 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
58943
58944 IF l_continue_with_lines THEN
58945 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
58946 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
58947
58948 xla_accounting_err_pkg.build_message
58949 (p_appli_s_name => 'XLA'
58950 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
58951 ,p_token_1 => 'LINE_NUMBER'
58952 ,p_value_1 => l_array_extract_line_num(Idx)
58953 ,p_token_2 => 'PRODUCT_NAME'
58954 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
58955 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
58956 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
58957 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
58958
58959 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
58960 --
58961 -- following sets the accounting attributes needed to reverse
58962 -- accounting for a distributeion
58963 --
58964
58965 --
58966 -- 5217187
58967 --
58968 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
58969 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
58970 g_array_event(l_event_id).array_value_num('header_index'));
58971 --
58972 --
58973
58974 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
58975 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
58976 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'DISTRIBUTION_IDENTIFIER_1';
58977 l_rec_rev_acct_attrs.array_num_value(3) := l_array_source_89(Idx);
58978 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'DISTRIBUTION_TYPE';
58979 l_rec_rev_acct_attrs.array_char_value(4) := l_array_source_34(Idx);
58980 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ENC_UPG_DR_ACCT_CLASS';
58981 l_rec_rev_acct_attrs.array_char_value(5) := l_array_source_53(Idx);
58982 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ENC_UPG_DR_CCID';
58983 l_rec_rev_acct_attrs.array_num_value(6) := l_array_source_2(Idx);
58984 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ENC_UPG_DR_ENTERED_AMT';
58985 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_41(Idx);
58986 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ENC_UPG_DR_ENTERED_CURR';
58987 l_rec_rev_acct_attrs.array_char_value(8) := l_array_source_25(Idx);
58988 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ENC_UPG_DR_LEDGER_AMT';
58989 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_43(Idx);
58990 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ENC_UPG_OPTION';
58991 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_55(Idx);
58992 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'REVERSED_DISTRIBUTION_ID1';
58993 l_rec_rev_acct_attrs.array_num_value(11) := l_array_source_89(Idx);
58994 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'REVERSED_DISTRIBUTION_TYPE';
58995 l_rec_rev_acct_attrs.array_char_value(12) := l_array_source_34(Idx);
58996 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'UPG_DR_ENC_TYPE_ID';
58997 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_90(Idx);
58998
58999
59000 xla_ae_lines_pkg.SetAcctReversalAttrs
59001 (p_event_id => l_event_id
59002 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
59003 ,p_calculate_acctd_flag => l_calculate_acctd_flag
59004 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
59005 END IF;
59006
59007 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
59008 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
59012 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
59009 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
59010 -- or secondary ledger that has different currency with primary
59011 -- or alc that is calculated by sla
59013 (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'))
59014
59015 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
59016 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
59017 AND (l_actual_flag = 'A')) THEN
59018 XLA_AE_LINES_PKG.CreateGainOrLossLines(
59019 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
59020 ,p_application_id => p_application_id
59021 ,p_amb_context_code => 'DEFAULT'
59022 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
59023 ,p_event_class_code => C_EVENT_CLASS_CODE
59024 ,p_event_type_code => C_EVENT_TYPE_CODE
59025
59026 ,p_gain_ccid => -1
59027 ,p_loss_ccid => -1
59028
59029 ,p_actual_flag => l_actual_flag
59030 ,p_enc_flag => null
59031 ,p_actual_g_l_ref => l_actual_gain_loss_ref
59032 ,p_enc_g_l_ref => null
59033 );
59034 END IF;
59035 END IF;
59036 END IF;
59037
59038 ELSE
59039 --
59040 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
59041 --
59042 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59043 trace
59044 (p_msg => 'Trancaction revesal option is Y'
59045 ,p_level => C_LEVEL_STATEMENT
59046 ,p_module => l_log_module);
59047 END IF;
59048 END IF;
59049
59050 END LOOP;
59051 l_result := XLA_AE_LINES_PKG.InsertLines ;
59052 end loop;
59053 close line_cur;
59054
59055
59056 --
59057 -- insert headers into xla_ae_headers_gt table
59058 --
59059 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
59060
59061 -- insert into errors table here.
59062
59063 END LOOP;
59064
59065 --
59066 -- 4865292
59067 --
59068 -- Compare g_hdr_extract_count with event count in
59069 -- CreateHeadersAndLines.
59070 --
59071 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
59072
59073 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59074 trace (p_msg => '# rows extracted from header extract objects '
59075 || ' (running total): '
59076 || g_hdr_extract_count
59077 ,p_level => C_LEVEL_STATEMENT
59078 ,p_module => l_log_module);
59079 END IF;
59080
59081 CLOSE header_cur;
59082 --
59083
59084 --
59085 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59086 trace
59087 (p_msg => 'END of EventClass_112'
59088 ,p_level => C_LEVEL_PROCEDURE
59089 ,p_module => l_log_module);
59090 END IF;
59091 --
59092 RETURN l_result;
59093 EXCEPTION
59094 WHEN xla_exceptions_pkg.application_exception THEN
59095
59096 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
59097
59098
59099 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
59100
59101 RAISE;
59102 WHEN OTHERS THEN
59103 xla_exceptions_pkg.raise_message
59104 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_112');
59105 END EventClass_112;
59106 --
59107
59108 ---------------------------------------
59109 --
59110 -- PRIVATE PROCEDURE
59111 -- insert_sources_113
59112 --
59113 ----------------------------------------
59114 --
59115 PROCEDURE insert_sources_113(
59116 p_target_ledger_id IN NUMBER
59117 , p_language IN VARCHAR2
59118 , p_sla_ledger_id IN NUMBER
59119 , p_pad_start_date IN DATE
59120 , p_pad_end_date IN DATE
59121 )
59122 IS
59123
59124 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ_ALL';
59125 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ';
59126 p_apps_owner VARCHAR2(30);
59127 l_log_module VARCHAR2(240);
59128 BEGIN
59129 IF g_log_enabled THEN
59130 l_log_module := C_DEFAULT_MODULE||'.insert_sources_113';
59131 END IF;
59132 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59133
59134 trace
59135 (p_msg => 'BEGIN of insert_sources_113'
59136 ,p_level => C_LEVEL_PROCEDURE
59137 ,p_module => l_log_module);
59138
59139 END IF;
59140
59141 -- select APPS owner
59142 SELECT oracle_username
59143 INTO p_apps_owner
59144 FROM fnd_oracle_userid
59145 WHERE read_only_flag = 'U'
59146 ;
59147
59148 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59149 trace
59150 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
59151 ' - p_language = '||p_language||
59152 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
59156 ,p_level => C_LEVEL_STATEMENT
59153 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
59154 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
59155 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
59157 ,p_module => l_log_module);
59158 END IF;
59159
59160
59161 --
59162 INSERT INTO xla_diag_sources --hdr2
59163 (
59164 event_id
59165 , ledger_id
59166 , sla_ledger_id
59167 , description_language
59168 , object_name
59169 , object_type_code
59170 , line_number
59171 , source_application_id
59172 , source_type_code
59173 , source_code
59174 , source_value
59175 , source_meaning
59176 , created_by
59177 , creation_date
59178 , last_update_date
59179 , last_updated_by
59180 , last_update_login
59181 , program_update_date
59182 , program_application_id
59183 , program_id
59184 , request_id
59185 )
59186 SELECT
59187 event_id
59188 , p_target_ledger_id
59189 , p_sla_ledger_id
59190 , p_language
59191 , object_name
59192 , object_type_code
59193 , line_number
59194 , source_application_id
59195 , source_type_code
59196 , source_code
59197 , SUBSTR(source_value ,1,1996)
59198 , SUBSTR(source_meaning ,1,200)
59199 , xla_environment_pkg.g_Usr_Id
59200 , TRUNC(SYSDATE)
59201 , TRUNC(SYSDATE)
59202 , xla_environment_pkg.g_Usr_Id
59203 , xla_environment_pkg.g_Login_Id
59204 , TRUNC(SYSDATE)
59205 , xla_environment_pkg.g_Prog_Appl_Id
59206 , xla_environment_pkg.g_Prog_Id
59207 , xla_environment_pkg.g_Req_Id
59208 FROM (
59209 SELECT xet.event_id event_id
59210 , 0 line_number
59211 , CASE r
59212 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
59213 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
59214
59215 ELSE null
59216 END object_name
59217 , CASE r
59218 WHEN 1 THEN 'HEADER'
59219 WHEN 2 THEN 'HEADER'
59220
59221 ELSE null
59222 END object_type_code
59223 , CASE r
59224 WHEN 1 THEN '275'
59225 WHEN 2 THEN '275'
59226
59227 ELSE null
59228 END source_application_id
59229 , 'S' source_type_code
59230 , CASE r
59231 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
59232 WHEN 2 THEN 'GL_DATE'
59233
59234 ELSE null
59235 END source_code
59236 , CASE r
59237 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
59238 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
59239
59240 ELSE null
59241 END source_value
59242 , null source_meaning
59243 FROM xla_events_gt xet
59244 , PA_XLA_EXP_HEADER_V h2
59245 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
59246 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
59247 AND xet.event_class_code = C_EVENT_CLASS_CODE
59248 AND h2.event_id = xet.event_id
59249
59250 )
59251 ;
59252 --
59253 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59254
59255 trace
59256 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
59257 ,p_level => C_LEVEL_STATEMENT
59258 ,p_module => l_log_module);
59259
59260 END IF;
59261 --
59262
59263
59264
59265 --
59266 INSERT INTO xla_diag_sources --line2
59267 (
59268 event_id
59269 , ledger_id
59270 , sla_ledger_id
59271 , description_language
59272 , object_name
59273 , object_type_code
59274 , line_number
59275 , source_application_id
59276 , source_type_code
59277 , source_code
59278 , source_value
59279 , source_meaning
59280 , created_by
59281 , creation_date
59282 , last_update_date
59283 , last_updated_by
59284 , last_update_login
59285 , program_update_date
59286 , program_application_id
59287 , program_id
59288 , request_id
59289 )
59290 SELECT event_id
59291 , p_target_ledger_id
59292 , p_sla_ledger_id
59293 , p_language
59294 , object_name
59295 , object_type_code
59296 , line_number
59297 , source_application_id
59298 , source_type_code
59299 , source_code
59300 , SUBSTR(source_value,1,1996)
59301 , SUBSTR(source_meaning ,1,200)
59302 , xla_environment_pkg.g_Usr_Id
59303 , TRUNC(SYSDATE)
59304 , TRUNC(SYSDATE)
59305 , xla_environment_pkg.g_Usr_Id
59309 , xla_environment_pkg.g_Prog_Id
59306 , xla_environment_pkg.g_Login_Id
59307 , TRUNC(SYSDATE)
59308 , xla_environment_pkg.g_Prog_Appl_Id
59310 , xla_environment_pkg.g_Req_Id
59311 FROM (
59312 SELECT xet.event_id event_id
59313 , l1.line_number line_number
59314 , CASE r
59315 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
59316 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
59317 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
59318 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
59319 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
59320 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
59321 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
59322 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
59323 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
59324 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
59325 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
59326 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
59327 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
59328 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
59329 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
59330 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
59331 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
59332 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
59333 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
59334 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
59335 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
59336 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
59337 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
59338 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
59339 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
59340 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
59341 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
59342 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
59343 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
59344 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
59345 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
59346
59347 ELSE null
59348 END object_name
59349 , CASE r
59350 WHEN 1 THEN 'LINE'
59351 WHEN 2 THEN 'LINE'
59352 WHEN 3 THEN 'LINE'
59353 WHEN 4 THEN 'LINE'
59354 WHEN 5 THEN 'LINE'
59355 WHEN 6 THEN 'LINE'
59356 WHEN 7 THEN 'LINE'
59357 WHEN 8 THEN 'LINE'
59358 WHEN 9 THEN 'LINE'
59359 WHEN 10 THEN 'LINE'
59360 WHEN 11 THEN 'LINE'
59361 WHEN 12 THEN 'LINE'
59362 WHEN 13 THEN 'LINE'
59363 WHEN 14 THEN 'LINE'
59364 WHEN 15 THEN 'LINE'
59365 WHEN 16 THEN 'LINE'
59366 WHEN 17 THEN 'LINE'
59367 WHEN 18 THEN 'LINE'
59368 WHEN 19 THEN 'LINE'
59369 WHEN 20 THEN 'LINE'
59370 WHEN 21 THEN 'LINE'
59371 WHEN 22 THEN 'LINE'
59372 WHEN 23 THEN 'LINE'
59373 WHEN 24 THEN 'LINE'
59374 WHEN 25 THEN 'LINE'
59375 WHEN 26 THEN 'LINE'
59376 WHEN 27 THEN 'LINE'
59377 WHEN 28 THEN 'LINE'
59378 WHEN 29 THEN 'LINE'
59379 WHEN 30 THEN 'LINE'
59380 WHEN 31 THEN 'LINE'
59381
59382 ELSE null
59383 END object_type_code
59384 , CASE r
59385 WHEN 1 THEN '275'
59386 WHEN 2 THEN '275'
59387 WHEN 3 THEN '275'
59388 WHEN 4 THEN '275'
59389 WHEN 5 THEN '275'
59390 WHEN 6 THEN '275'
59391 WHEN 7 THEN '275'
59392 WHEN 8 THEN '275'
59393 WHEN 9 THEN '275'
59394 WHEN 10 THEN '275'
59395 WHEN 11 THEN '275'
59396 WHEN 12 THEN '275'
59397 WHEN 13 THEN '275'
59398 WHEN 14 THEN '275'
59399 WHEN 15 THEN '275'
59400 WHEN 16 THEN '275'
59401 WHEN 17 THEN '275'
59402 WHEN 18 THEN '275'
59403 WHEN 19 THEN '275'
59404 WHEN 20 THEN '275'
59405 WHEN 21 THEN '275'
59406 WHEN 22 THEN '275'
59407 WHEN 23 THEN '275'
59408 WHEN 24 THEN '275'
59409 WHEN 25 THEN '275'
59410 WHEN 26 THEN '275'
59411 WHEN 27 THEN '275'
59412 WHEN 28 THEN '275'
59413 WHEN 29 THEN '275'
59414 WHEN 30 THEN '275'
59415 WHEN 31 THEN '275'
59416
59417 ELSE null
59418 END source_application_id
59419 , 'S' source_type_code
59420 , CASE r
59421 WHEN 1 THEN 'BUDGET_CCID'
59422 WHEN 2 THEN 'COST_CCID'
59423 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
59424 WHEN 4 THEN 'ADJ_COST_CCID'
59425 WHEN 5 THEN 'COST_CLEARING_CCID'
59426 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
59430 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
59427 WHEN 7 THEN 'REVERSING_LINE_FLAG'
59428 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
59429 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
59431 WHEN 11 THEN 'EXCHANGE_RATE'
59432 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
59433 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
59434 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
59435 WHEN 15 THEN 'LINE_NUMBER'
59436 WHEN 16 THEN 'LINE_TYPE'
59437 WHEN 17 THEN 'LINE_NUM_REVERSED'
59438 WHEN 18 THEN 'ENTERED_BURDENED_COST'
59439 WHEN 19 THEN 'ACCT_BURDENED_COST'
59440 WHEN 20 THEN 'ENCUMBRANCE_AMOUNT'
59441 WHEN 21 THEN 'PA_APPLICATION_ID'
59442 WHEN 22 THEN 'PA_DISTRIBUTION_TYPE'
59443 WHEN 23 THEN 'PA_ENTITY_CODE'
59444 WHEN 24 THEN 'PA_FIRST_DIST_ID'
59445 WHEN 25 THEN 'PA_FIRST_SYS_TRANS_ID'
59446 WHEN 26 THEN 'PA_SECOND_DIST_ID'
59447 WHEN 27 THEN 'ENC_UPG_DR_ACCT_CLASS'
59448 WHEN 28 THEN 'ENC_UPG_CR_ACCT_CLASS'
59449 WHEN 29 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
59450 WHEN 30 THEN 'ENCUMBRANCE_TYPE_ID'
59451 WHEN 31 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
59452
59453 ELSE null
59454 END source_code
59455 , CASE r
59456 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
59457 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
59458 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
59459 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
59460 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
59461 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
59462 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
59463 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
59464 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
59465 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
59466 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
59467 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
59468 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
59469 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
59470 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
59471 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
59472 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
59473 WHEN 18 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
59474 WHEN 19 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
59475 WHEN 20 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
59476 WHEN 21 THEN TO_CHAR(l1.PA_APPLICATION_ID)
59477 WHEN 22 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
59478 WHEN 23 THEN TO_CHAR(l1.PA_ENTITY_CODE)
59479 WHEN 24 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
59480 WHEN 25 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
59481 WHEN 26 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
59482 WHEN 27 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
59483 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
59484 WHEN 29 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
59485 WHEN 30 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
59486 WHEN 31 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
59487
59488 ELSE null
59489 END source_value
59490 , CASE r
59491 WHEN 3 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
59492 103371
59493 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
59494 ,'ALLOW_OVERRIDE_CCID_FLAG'
59495 ,'S'
59496 ,275)
59497 WHEN 16 THEN fvl34.meaning
59498
59499 ELSE null
59500 END source_meaning
59501 FROM xla_events_gt xet
59502 , PA_XLA_CDL_LINES_V l1
59503 , fnd_lookup_values fvl34
59504 , (select rownum r from all_objects where rownum <= 31 and owner = p_apps_owner)
59505 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
59506 AND xet.event_class_code = C_EVENT_CLASS_CODE
59507 AND l1.event_id = xet.event_id
59508 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
59509 AND fvl34.lookup_code(+) = l1.LINE_TYPE
59510 AND fvl34.view_application_id(+) = 275
59511 AND fvl34.language(+) = USERENV('LANG')
59512
59513 )
59514 ;
59515 --
59516 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59517
59518 trace
59519 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
59520 ,p_level => C_LEVEL_STATEMENT
59521 ,p_module => l_log_module);
59522
59523 END IF;
59524
59525
59526 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59527 trace
59528 (p_msg => 'END of insert_sources_113'
59529 ,p_level => C_LEVEL_PROCEDURE
59530 ,p_module => l_log_module);
59531 END IF;
59532 EXCEPTION
59533 WHEN xla_exceptions_pkg.application_exception THEN
59534 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
59535 trace
59536 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
59537 ,p_level => C_LEVEL_EXCEPTION
59541 WHEN OTHERS THEN
59538 ,p_module => l_log_module);
59539 END IF;
59540 RAISE;
59542 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
59543 trace
59544 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
59545 ,p_level => C_LEVEL_EXCEPTION
59546 ,p_module => l_log_module);
59547 END IF;
59548 xla_exceptions_pkg.raise_message
59549 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_113');
59550 END insert_sources_113;
59551 --
59552
59553 ---------------------------------------
59554 --
59555 -- PRIVATE FUNCTION
59556 -- EventClass_113
59557 --
59558 ----------------------------------------
59559 --
59560 FUNCTION EventClass_113
59561 (p_application_id IN NUMBER
59562 ,p_base_ledger_id IN NUMBER
59563 ,p_target_ledger_id IN NUMBER
59564 ,p_language IN VARCHAR2
59565 ,p_currency_code IN VARCHAR2
59566 ,p_sla_ledger_id IN NUMBER
59567 ,p_pad_start_date IN DATE
59568 ,p_pad_end_date IN DATE
59569 ,p_primary_ledger_id IN NUMBER)
59570 RETURN BOOLEAN IS
59571 --
59572 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ_ALL';
59573 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ADJ';
59574
59575 l_calculate_acctd_flag VARCHAR2(1) :='N';
59576 l_calculate_g_l_flag VARCHAR2(1) :='N';
59577 --
59578 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59579 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59580 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
59581 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59582 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59583 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
59584 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
59585 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59586 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59587 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59588 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59589 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59590 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59591 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
59592 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59593 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59594 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59595 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
59596 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59597 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59598 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59599 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
59600 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
59601 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
59602
59603 l_event_id NUMBER;
59604 l_previous_event_id NUMBER;
59605 l_first_event_id NUMBER;
59606 l_last_event_id NUMBER;
59607
59608 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
59609 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
59610 --
59611 --
59612 l_result BOOLEAN := TRUE;
59613 l_rows NUMBER := 1000;
59614 l_event_type_name VARCHAR2(80) := 'All';
59615 l_event_class_name VARCHAR2(80) := 'Burden Cost Adjustments';
59616 l_description VARCHAR2(4000);
59617 l_transaction_reversal NUMBER;
59618 l_ae_header_id NUMBER;
59619 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
59620 l_log_module VARCHAR2(240);
59621 --
59622 l_acct_reversal_source VARCHAR2(30);
59623 l_trx_reversal_source VARCHAR2(30);
59624
59625 l_continue_with_lines BOOLEAN := TRUE;
59626 --
59627 l_acc_rev_gl_date_source DATE; -- 4262811
59628 --
59629 type t_array_event_id is table of number index by binary_integer;
59630
59631 l_rec_array_event t_rec_array_event;
59632 l_null_rec_array_event t_rec_array_event;
59633 l_array_ae_header_id xla_number_array_type;
59634 l_actual_flag VARCHAR2(1) := NULL;
59635 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
59636 l_balance_type_code VARCHAR2(1) :=NULL;
59637 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
59638
59639 --
59640 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
59641 --
59642
59643 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
59644 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
59645
59646 TYPE t_array_source_2 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
59647 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
59651 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
59648 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
59649 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
59650 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
59652 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
59653 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
59654 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
59655 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
59656 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
59657 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
59658 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
59659 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
59660 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
59661 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
59662 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
59663 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
59664 TYPE t_array_source_45 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
59665 TYPE t_array_source_46 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
59666 TYPE t_array_source_47 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
59667 TYPE t_array_source_48 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
59668 TYPE t_array_source_49 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
59669 TYPE t_array_source_50 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
59670 TYPE t_array_source_51 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
59671 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
59672 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
59673 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
59674 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
59675 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
59676 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
59677
59678 l_array_source_32 t_array_source_32;
59679 l_array_source_87 t_array_source_87;
59680
59681 l_array_source_2 t_array_source_2;
59682 l_array_source_3 t_array_source_3;
59683 l_array_source_4 t_array_source_4;
59684 l_array_source_5 t_array_source_5;
59685 l_array_source_6 t_array_source_6;
59686 l_array_source_7 t_array_source_7;
59687 l_array_source_22 t_array_source_22;
59688 l_array_source_23 t_array_source_23;
59689 l_array_source_25 t_array_source_25;
59690 l_array_source_27 t_array_source_27;
59691 l_array_source_28 t_array_source_28;
59692 l_array_source_29 t_array_source_29;
59693 l_array_source_30 t_array_source_30;
59694 l_array_source_31 t_array_source_31;
59695 l_array_source_33 t_array_source_33;
59696 l_array_source_34 t_array_source_34;
59697 l_array_source_34_meaning t_array_lookup_meaning;
59698 l_array_source_35 t_array_source_35;
59699 l_array_source_44 t_array_source_44;
59700 l_array_source_45 t_array_source_45;
59701 l_array_source_46 t_array_source_46;
59702 l_array_source_47 t_array_source_47;
59703 l_array_source_48 t_array_source_48;
59704 l_array_source_49 t_array_source_49;
59705 l_array_source_50 t_array_source_50;
59706 l_array_source_51 t_array_source_51;
59707 l_array_source_52 t_array_source_52;
59708 l_array_source_53 t_array_source_53;
59709 l_array_source_54 t_array_source_54;
59710 l_array_source_55 t_array_source_55;
59711 l_array_source_56 t_array_source_56;
59712 l_array_source_57 t_array_source_57;
59713
59714 --
59715 CURSOR header_cur
59716 IS
59717 SELECT /*+ leading(xet) cardinality(xet,1) */
59718 -- Event Class Code: BURDEN_COST_ADJ
59719 xet.entity_id
59720 ,xet.legal_entity_id
59721 ,xet.entity_code
59722 ,xet.transaction_number
59723 ,xet.event_id
59724 ,xet.event_class_code
59725 ,xet.event_type_code
59726 ,xet.event_number
59727 ,xet.event_date
59728 ,xet.transaction_date
59729 ,xet.reference_num_1
59730 ,xet.reference_num_2
59731 ,xet.reference_num_3
59732 ,xet.reference_num_4
59733 ,xet.reference_char_1
59734 ,xet.reference_char_2
59735 ,xet.reference_char_3
59736 ,xet.reference_char_4
59737 ,xet.reference_date_1
59738 ,xet.reference_date_2
59739 ,xet.reference_date_3
59740 ,xet.reference_date_4
59741 ,xet.event_created_by
59742 ,xet.budgetary_control_flag
59743 , h2.EXPENDITURE_ITEM_ID source_32
59747 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
59744 , h2.GL_DATE source_87
59745 FROM xla_events_gt xet
59746 , PA_XLA_EXP_HEADER_V h2
59748 and xet.event_class_code = C_EVENT_CLASS_CODE
59749 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
59750
59751 ORDER BY event_id
59752 ;
59753
59754
59755 --
59756 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
59757 IS
59758 SELECT /*+ leading(xet) cardinality(xet,1) */
59759 -- Event Class Code: BURDEN_COST_ADJ
59760 xet.entity_id
59761 ,xet.legal_entity_id
59762 ,xet.entity_code
59763 ,xet.transaction_number
59764 ,xet.event_id
59765 ,xet.event_class_code
59766 ,xet.event_type_code
59767 ,xet.event_number
59768 ,xet.event_date
59769 ,xet.transaction_date
59770 ,xet.reference_num_1
59771 ,xet.reference_num_2
59772 ,xet.reference_num_3
59773 ,xet.reference_num_4
59774 ,xet.reference_char_1
59775 ,xet.reference_char_2
59776 ,xet.reference_char_3
59777 ,xet.reference_char_4
59778 ,xet.reference_date_1
59779 ,xet.reference_date_2
59780 ,xet.reference_date_3
59781 ,xet.reference_date_4
59782 ,xet.event_created_by
59783 ,xet.budgetary_control_flag
59784 , l1.LINE_NUMBER
59785 , l1.BUDGET_CCID source_2
59786 , l1.COST_CCID source_3
59787 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
59788 , l1.ADJ_COST_CCID source_5
59789 , l1.COST_CLEARING_CCID source_6
59790 , l1.ADJ_COST_CLEARING_CCID source_7
59791 , l1.REVERSING_LINE_FLAG source_22
59792 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
59793 , l1.ENTERED_CURRENCY_CODE source_25
59794 , l1.EXCHANGE_RATE_DATE source_27
59795 , l1.EXCHANGE_RATE source_28
59796 , l1.EXCHANGE_RATE_TYPE source_29
59797 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
59798 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
59799 , l1.LINE_NUMBER source_33
59800 , l1.LINE_TYPE source_34
59801 , fvl34.meaning source_34_meaning
59802 , l1.LINE_NUM_REVERSED source_35
59803 , l1.ENTERED_BURDENED_COST source_44
59804 , l1.ACCT_BURDENED_COST source_45
59805 , l1.ENCUMBRANCE_AMOUNT source_46
59806 , l1.PA_APPLICATION_ID source_47
59807 , l1.PA_DISTRIBUTION_TYPE source_48
59808 , l1.PA_ENTITY_CODE source_49
59809 , l1.PA_FIRST_DIST_ID source_50
59810 , l1.PA_FIRST_SYS_TRANS_ID source_51
59811 , l1.PA_SECOND_DIST_ID source_52
59812 , l1.ENC_UPG_DR_ACCT_CLASS source_53
59813 , l1.ENC_UPG_CR_ACCT_CLASS source_54
59814 , l1.USE_ENC_UPG_ATTRIB_FLAG source_55
59815 , l1.ENCUMBRANCE_TYPE_ID source_56
59816 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_57
59817 FROM xla_events_gt xet
59818 , PA_XLA_CDL_LINES_V l1
59819 , fnd_lookup_values fvl34
59820 WHERE xet.event_id between x_first_event_id and x_last_event_id
59821 and xet.event_date between p_pad_start_date and p_pad_end_date
59822 and xet.event_class_code = C_EVENT_CLASS_CODE
59823 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
59824 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
59825 AND fvl34.lookup_code(+) = l1.LINE_TYPE
59826 AND fvl34.view_application_id(+) = 275
59827 AND fvl34.language(+) = USERENV('LANG')
59828 ;
59829
59830 --
59831 BEGIN
59832 IF g_log_enabled THEN
59833 l_log_module := C_DEFAULT_MODULE||'.EventClass_113';
59834 END IF;
59835 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
59836 trace
59837 (p_msg => 'BEGIN of EventClass_113'
59838 ,p_level => C_LEVEL_PROCEDURE
59839 ,p_module => l_log_module);
59840 END IF;
59841
59842 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59843 trace
59844 (p_msg => 'p_application_id = '||p_application_id||
59845 ' - p_base_ledger_id = '||p_base_ledger_id||
59846 ' - p_target_ledger_id = '||p_target_ledger_id||
59847 ' - p_language = '||p_language||
59848 ' - p_currency_code = '||p_currency_code||
59849 ' - p_sla_ledger_id = '||p_sla_ledger_id
59850 ,p_level => C_LEVEL_STATEMENT
59851 ,p_module => l_log_module);
59852 END IF;
59853 --
59854 -- initialze arrays
59855 --
59856 g_array_event.DELETE;
59857 l_rec_array_event := l_null_rec_array_event;
59858 --
59859 --------------------------------------
59860 -- 4262811 Initialze MPA Line Number
59861 --------------------------------------
59862 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
59863
59864 --
59865
59866 --
59867 OPEN header_cur;
59868 --
59869 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
59870 trace
59871 (p_msg => 'SQL - FETCH header_cur'
59872 ,p_level => C_LEVEL_STATEMENT
59873 ,p_module => l_log_module);
59874 END IF;
59875 --
59876 LOOP
59877 FETCH header_cur BULK COLLECT INTO
59878 l_array_entity_id
59879 , l_array_legal_entity_id
59880 , l_array_entity_code
59881 , l_array_transaction_num
59882 , l_array_event_id
59883 , l_array_class_code
59884 , l_array_event_type
59885 , l_array_event_number
59886 , l_array_event_date
59887 , l_array_transaction_date
59891 , l_array_reference_num_4
59888 , l_array_reference_num_1
59889 , l_array_reference_num_2
59890 , l_array_reference_num_3
59892 , l_array_reference_char_1
59893 , l_array_reference_char_2
59894 , l_array_reference_char_3
59895 , l_array_reference_char_4
59896 , l_array_reference_date_1
59897 , l_array_reference_date_2
59898 , l_array_reference_date_3
59899 , l_array_reference_date_4
59900 , l_array_event_created_by
59901 , l_array_budgetary_control_flag
59902 , l_array_source_32
59903 , l_array_source_87
59904 LIMIT l_rows;
59905 --
59906 IF (C_LEVEL_EVENT >= g_log_level) THEN
59907 trace
59908 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
59909 ,p_level => C_LEVEL_EVENT
59910 ,p_module => l_log_module);
59911 END IF;
59912 --
59913 EXIT WHEN l_array_entity_id.COUNT = 0;
59914
59915 -- initialize arrays
59916 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
59917 XLA_AE_LINES_PKG.g_rec_lines := NULL;
59918
59919 --
59920 -- Bug 4458708
59921 --
59922 XLA_AE_LINES_PKG.g_LineNumber := 0;
59923
59924
59925 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
59926 g_last_hdr_idx := l_array_event_id.LAST;
59927 --
59928 -- loop for the headers. Each iteration is for each header extract row
59929 -- fetched in header cursor
59930 --
59931 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
59932
59933 --
59934 -- set event info as cache for other routines to refer event attributes
59935 --
59936 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
59937 (p_application_id => p_application_id
59938 ,p_primary_ledger_id => p_primary_ledger_id
59939 ,p_base_ledger_id => p_base_ledger_id
59940 ,p_target_ledger_id => p_target_ledger_id
59941 ,p_entity_id => l_array_entity_id(hdr_idx)
59942 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
59943 ,p_entity_code => l_array_entity_code(hdr_idx)
59944 ,p_transaction_num => l_array_transaction_num(hdr_idx)
59945 ,p_event_id => l_array_event_id(hdr_idx)
59946 ,p_event_class_code => l_array_class_code(hdr_idx)
59947 ,p_event_type_code => l_array_event_type(hdr_idx)
59948 ,p_event_number => l_array_event_number(hdr_idx)
59949 ,p_event_date => l_array_event_date(hdr_idx)
59950 ,p_transaction_date => l_array_transaction_date(hdr_idx)
59951 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
59952 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
59953 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
59954 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
59955 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
59956 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
59957 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
59958 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
59959 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
59960 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
59961 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
59962 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
59963 ,p_event_created_by => l_array_event_created_by(hdr_idx)
59964 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
59965
59966 --
59967 -- set the status of entry to C_VALID (0)
59968 --
59969 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
59970
59971 --
59972 -- initialize a row for ae header
59973 --
59974 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
59975
59976 l_event_id := l_array_event_id(hdr_idx);
59977
59978 --
59979 -- storing the hdr_idx for event. May be used by line cursor.
59980 --
59981 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
59982
59983 --
59984 -- store sources from header extract. This can be improved to
59985 -- store only those sources from header extract that may be used in lines
59986 --
59987
59988 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
59989 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
59990
59991 --
59992 -- initilaize the status of ae headers for diffrent balance types
59993 -- the status is initialised to C_NOT_CREATED (2)
59994 --
59995 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
59996 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
59997 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
59998
59999 --
60000 -- call api to validate and store accounting attributes for header
60001 --
60002
60003 ------------------------------------------------------------
60004 -- Accrual Reversal : to get date for Standard Source (NONE)
60005 ------------------------------------------------------------
60006 l_acc_rev_gl_date_source := NULL;
60007
60008 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
60009 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
60010
60011
60012 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
60016 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
60013
60014 XLA_AE_HEADER_PKG.SetJeCategoryName;
60015
60017 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
60018 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
60019 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
60020 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
60021
60022
60023 -- No header level analytical criteria
60024
60025 --
60026 --accounting attribute enhancement, bug 3612931
60027 --
60028 l_trx_reversal_source := SUBSTR(NULL, 1,30);
60029
60030 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
60031 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
60032
60033 xla_accounting_err_pkg.build_message
60034 (p_appli_s_name => 'XLA'
60035 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
60036 ,p_token_1 => 'ACCT_ATTR_NAME'
60037 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
60038 ,p_token_2 => 'PRODUCT_NAME'
60039 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
60040 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
60041 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
60042 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
60043
60044 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
60045 --
60046 -- following sets the accounting attributes needed to reverse
60047 -- accounting for a distributeion
60048 --
60049 xla_ae_lines_pkg.SetTrxReversalAttrs
60050 (p_event_id => l_event_id
60051 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
60052 ,p_trx_reversal_source => l_trx_reversal_source);
60053
60054 END IF;
60055
60056
60057 ----------------------------------------------------------------
60058 -- 4262811 - update the header statuses to invalid in need be
60059 ----------------------------------------------------------------
60060 --
60061 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
60062
60063
60064 -----------------------------------------------
60065 -- No accrual reversal for the event class/type
60066 -----------------------------------------------
60067 ----------------------------------------------------------------
60068
60069 --
60070 -- this ends the header loop iteration for one bulk fetch
60071 --
60072 END LOOP;
60073
60074 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
60075 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
60076
60077 --
60078 -- insert dummy rows into lines gt table that were created due to
60079 -- transaction reversals
60080 --
60081 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
60082 l_result := XLA_AE_LINES_PKG.InsertLines;
60083 END IF;
60084
60085 --
60086 -- reset the temp_line_num for each set of events fetched from header
60087 -- cursor rather than doing it for each new event in line cursor
60088 -- Bug 3939231
60089 --
60090 xla_ae_lines_pkg.g_temp_line_num := 0;
60091
60092
60093
60094 --
60095 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
60096 --
60097 --
60098 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60099
60100 trace
60101 (p_msg => 'SQL - FETCH line_cur'
60102 ,p_level => C_LEVEL_STATEMENT
60103 ,p_module => l_log_module);
60104
60105 END IF;
60106 --
60107 --
60108 LOOP
60109 --
60110 FETCH line_cur BULK COLLECT INTO
60111 l_array_entity_id
60112 , l_array_legal_entity_id
60113 , l_array_entity_code
60114 , l_array_transaction_num
60115 , l_array_event_id
60116 , l_array_class_code
60117 , l_array_event_type
60118 , l_array_event_number
60119 , l_array_event_date
60120 , l_array_transaction_date
60121 , l_array_reference_num_1
60122 , l_array_reference_num_2
60123 , l_array_reference_num_3
60124 , l_array_reference_num_4
60125 , l_array_reference_char_1
60126 , l_array_reference_char_2
60127 , l_array_reference_char_3
60128 , l_array_reference_char_4
60129 , l_array_reference_date_1
60130 , l_array_reference_date_2
60131 , l_array_reference_date_3
60132 , l_array_reference_date_4
60133 , l_array_event_created_by
60134 , l_array_budgetary_control_flag
60135 , l_array_extract_line_num
60136 , l_array_source_2
60137 , l_array_source_3
60138 , l_array_source_4
60139 , l_array_source_5
60140 , l_array_source_6
60141 , l_array_source_7
60142 , l_array_source_22
60143 , l_array_source_23
60144 , l_array_source_25
60145 , l_array_source_27
60146 , l_array_source_28
60147 , l_array_source_29
60148 , l_array_source_30
60149 , l_array_source_31
60150 , l_array_source_33
60151 , l_array_source_34
60155 , l_array_source_45
60152 , l_array_source_34_meaning
60153 , l_array_source_35
60154 , l_array_source_44
60156 , l_array_source_46
60157 , l_array_source_47
60158 , l_array_source_48
60159 , l_array_source_49
60160 , l_array_source_50
60161 , l_array_source_51
60162 , l_array_source_52
60163 , l_array_source_53
60164 , l_array_source_54
60165 , l_array_source_55
60166 , l_array_source_56
60167 , l_array_source_57
60168 LIMIT l_rows;
60169
60170 --
60171 IF (C_LEVEL_EVENT >= g_log_level) THEN
60172 trace
60173 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
60174 ,p_level => C_LEVEL_EVENT
60175 ,p_module => l_log_module);
60176 END IF;
60177 --
60178 EXIT WHEN l_array_entity_id.count = 0;
60179
60180 XLA_AE_LINES_PKG.g_rec_lines := null;
60181
60182 --
60183 -- Bug 4458708
60184 --
60185 XLA_AE_LINES_PKG.g_LineNumber := 0;
60186 --
60187 --
60188
60189 FOR Idx IN 1..l_array_event_id.count LOOP
60190 --
60191 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
60192 --
60193 l_event_id := l_array_event_id(idx); -- 5648433
60194
60195 --
60196 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
60197 --
60198
60199 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
60200 (g_array_event(l_event_id).array_value_num('header_index'))
60201 ,'N'
60202 ) <> 'Y'
60203 THEN
60204 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60205 trace
60206 (p_msg => 'Trancaction revesal option is not Y '
60207 ,p_level => C_LEVEL_STATEMENT
60208 ,p_module => l_log_module);
60209 END IF;
60210
60211 --
60212 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
60213 --
60214 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
60215 --
60216 -- set event info as cache for other routines to refer event attributes
60217 --
60218
60219 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
60220 l_previous_event_id := l_event_id;
60221
60222 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
60223 (p_application_id => p_application_id
60224 ,p_primary_ledger_id => p_primary_ledger_id
60225 ,p_base_ledger_id => p_base_ledger_id
60226 ,p_target_ledger_id => p_target_ledger_id
60227 ,p_entity_id => l_array_entity_id(Idx)
60228 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
60229 ,p_entity_code => l_array_entity_code(Idx)
60230 ,p_transaction_num => l_array_transaction_num(Idx)
60231 ,p_event_id => l_array_event_id(Idx)
60232 ,p_event_class_code => l_array_class_code(Idx)
60233 ,p_event_type_code => l_array_event_type(Idx)
60234 ,p_event_number => l_array_event_number(Idx)
60235 ,p_event_date => l_array_event_date(Idx)
60236 ,p_transaction_date => l_array_transaction_date(Idx)
60237 ,p_reference_num_1 => l_array_reference_num_1(Idx)
60238 ,p_reference_num_2 => l_array_reference_num_2(Idx)
60239 ,p_reference_num_3 => l_array_reference_num_3(Idx)
60240 ,p_reference_num_4 => l_array_reference_num_4(Idx)
60241 ,p_reference_char_1 => l_array_reference_char_1(Idx)
60242 ,p_reference_char_2 => l_array_reference_char_2(Idx)
60243 ,p_reference_char_3 => l_array_reference_char_3(Idx)
60244 ,p_reference_char_4 => l_array_reference_char_4(Idx)
60245 ,p_reference_date_1 => l_array_reference_date_1(Idx)
60246 ,p_reference_date_2 => l_array_reference_date_2(Idx)
60247 ,p_reference_date_3 => l_array_reference_date_3(Idx)
60248 ,p_reference_date_4 => l_array_reference_date_4(Idx)
60249 ,p_event_created_by => l_array_event_created_by(Idx)
60250 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
60251 --
60252 END IF;
60253
60254
60255
60256 --
60257 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
60258
60259 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
60260
60261 IF l_continue_with_lines THEN
60262 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
60263 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
60264
60265 xla_accounting_err_pkg.build_message
60266 (p_appli_s_name => 'XLA'
60267 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
60268 ,p_token_1 => 'LINE_NUMBER'
60269 ,p_value_1 => l_array_extract_line_num(Idx)
60270 ,p_token_2 => 'PRODUCT_NAME'
60271 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
60272 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
60273 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
60274 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
60275
60279 -- accounting for a distributeion
60276 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
60277 --
60278 -- following sets the accounting attributes needed to reverse
60280 --
60281
60282 --
60283 -- 5217187
60284 --
60285 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
60286 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
60287 g_array_event(l_event_id).array_value_num('header_index'));
60288 --
60289 --
60290
60291 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
60292 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
60293 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
60294 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
60295 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
60296 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
60297 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
60298 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_44(Idx);
60299 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
60300 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
60301 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
60302 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_45(Idx);
60303 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
60304 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
60305 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
60306 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
60307 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
60308 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
60309 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
60310 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
60311 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
60312 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
60313 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
60314 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_44(Idx);
60315 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
60316 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
60317 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
60318 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_45(Idx);
60319 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
60320 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
60321 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
60322 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
60323 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
60324 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
60325 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
60326 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
60327 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
60328 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
60329 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
60330 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
60331 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
60332 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
60333 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_CR_ACCT_CLASS';
60334 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_53(Idx);
60335 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_CR_CCID';
60336 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_2(Idx);
60337 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_CR_ENTERED_AMT';
60338 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_46(Idx);
60339 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_CR_ENTERED_CURR';
60340 l_rec_rev_acct_attrs.array_char_value(26) := l_array_source_25(Idx);
60341 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_CR_LEDGER_AMT';
60342 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_46(Idx);
60343 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
60344 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_54(Idx);
60345 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
60346 l_rec_rev_acct_attrs.array_num_value(29) := l_array_source_2(Idx);
60347 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
60348 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_46(Idx);
60349 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
60350 l_rec_rev_acct_attrs.array_char_value(31) := l_array_source_25(Idx);
60351 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
60352 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_46(Idx);
60353 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
60357 l_rec_rev_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_ID2';
60354 l_rec_rev_acct_attrs.array_char_value(33) := l_array_source_55(Idx);
60355 l_rec_rev_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID1';
60356 l_rec_rev_acct_attrs.array_num_value(34) := g_array_event(l_event_id).array_value_num('source_32');
60358 l_rec_rev_acct_attrs.array_num_value(35) := l_array_source_35(Idx);
60359 l_rec_rev_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_TYPE';
60360 l_rec_rev_acct_attrs.array_char_value(36) := l_array_source_34(Idx);
60361 l_rec_rev_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
60362 l_rec_rev_acct_attrs.array_num_value(37) := l_array_source_56(Idx);
60363 l_rec_rev_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
60364 l_rec_rev_acct_attrs.array_num_value(38) := l_array_source_57(Idx);
60365
60366
60367 xla_ae_lines_pkg.SetAcctReversalAttrs
60368 (p_event_id => l_event_id
60369 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
60370 ,p_calculate_acctd_flag => l_calculate_acctd_flag
60371 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
60372 END IF;
60373
60374 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
60375 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
60376
60377 --
60378 AcctLineType_26 (
60379 p_application_id => p_application_id
60380 ,p_event_id => l_event_id
60381 ,p_calculate_acctd_flag => l_calculate_acctd_flag
60382 ,p_calculate_g_l_flag => l_calculate_g_l_flag
60383 ,p_actual_flag => l_actual_flag
60384 ,p_balance_type_code => l_balance_type_code
60385 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
60386
60387 , p_source_2 => l_array_source_2(Idx)
60388 , p_source_3 => l_array_source_3(Idx)
60389 , p_source_4 => l_array_source_4(Idx)
60390 , p_source_5 => l_array_source_5(Idx)
60391 , p_source_6 => l_array_source_6(Idx)
60392 , p_source_22 => l_array_source_22(Idx)
60393 , p_source_23 => l_array_source_23(Idx)
60394 , p_source_25 => l_array_source_25(Idx)
60395 , p_source_27 => l_array_source_27(Idx)
60396 , p_source_28 => l_array_source_28(Idx)
60397 , p_source_29 => l_array_source_29(Idx)
60398 , p_source_30 => l_array_source_30(Idx)
60399 , p_source_31 => l_array_source_31(Idx)
60400 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
60401 , p_source_33 => l_array_source_33(Idx)
60402 , p_source_34 => l_array_source_34(Idx)
60403 , p_source_34_meaning => l_array_source_34_meaning(Idx)
60404 , p_source_35 => l_array_source_35(Idx)
60405 , p_source_44 => l_array_source_44(Idx)
60406 , p_source_45 => l_array_source_45(Idx)
60407 , p_source_46 => l_array_source_46(Idx)
60408 , p_source_47 => l_array_source_47(Idx)
60409 , p_source_48 => l_array_source_48(Idx)
60410 , p_source_49 => l_array_source_49(Idx)
60411 , p_source_50 => l_array_source_50(Idx)
60412 , p_source_51 => l_array_source_51(Idx)
60413 , p_source_52 => l_array_source_52(Idx)
60414 , p_source_53 => l_array_source_53(Idx)
60415 , p_source_54 => l_array_source_54(Idx)
60416 , p_source_55 => l_array_source_55(Idx)
60417 , p_source_56 => l_array_source_56(Idx)
60418 , p_source_57 => l_array_source_57(Idx)
60419 );
60420 If(l_balance_type_code = 'A') THEN
60421 l_actual_gain_loss_ref := l_gain_or_loss_ref;
60422 END IF;
60423
60424 --
60425
60426
60427 --
60428 AcctLineType_27 (
60429 p_application_id => p_application_id
60430 ,p_event_id => l_event_id
60431 ,p_calculate_acctd_flag => l_calculate_acctd_flag
60432 ,p_calculate_g_l_flag => l_calculate_g_l_flag
60433 ,p_actual_flag => l_actual_flag
60434 ,p_balance_type_code => l_balance_type_code
60435 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
60436
60437 , p_source_2 => l_array_source_2(Idx)
60438 , p_source_3 => l_array_source_3(Idx)
60439 , p_source_4 => l_array_source_4(Idx)
60440 , p_source_6 => l_array_source_6(Idx)
60441 , p_source_7 => l_array_source_7(Idx)
60442 , p_source_22 => l_array_source_22(Idx)
60443 , p_source_23 => l_array_source_23(Idx)
60444 , p_source_25 => l_array_source_25(Idx)
60445 , p_source_27 => l_array_source_27(Idx)
60446 , p_source_28 => l_array_source_28(Idx)
60447 , p_source_29 => l_array_source_29(Idx)
60448 , p_source_30 => l_array_source_30(Idx)
60449 , p_source_31 => l_array_source_31(Idx)
60450 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
60451 , p_source_33 => l_array_source_33(Idx)
60452 , p_source_34 => l_array_source_34(Idx)
60453 , p_source_34_meaning => l_array_source_34_meaning(Idx)
60454 , p_source_35 => l_array_source_35(Idx)
60455 , p_source_44 => l_array_source_44(Idx)
60456 , p_source_45 => l_array_source_45(Idx)
60457 , p_source_46 => l_array_source_46(Idx)
60458 , p_source_47 => l_array_source_47(Idx)
60459 , p_source_48 => l_array_source_48(Idx)
60460 , p_source_49 => l_array_source_49(Idx)
60461 , p_source_50 => l_array_source_50(Idx)
60462 , p_source_51 => l_array_source_51(Idx)
60463 , p_source_52 => l_array_source_52(Idx)
60464 , p_source_53 => l_array_source_53(Idx)
60465 , p_source_54 => l_array_source_54(Idx)
60466 , p_source_55 => l_array_source_55(Idx)
60467 , p_source_56 => l_array_source_56(Idx)
60468 , p_source_57 => l_array_source_57(Idx)
60469 );
60470 If(l_balance_type_code = 'A') THEN
60471 l_actual_gain_loss_ref := l_gain_or_loss_ref;
60472 END IF;
60473
60474 --
60478 -- or alc that is calculated by sla
60475
60476 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
60477 -- or secondary ledger that has different currency with primary
60479 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
60480 (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'))
60481
60482 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
60483 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
60484 AND (l_actual_flag = 'A')) THEN
60485 XLA_AE_LINES_PKG.CreateGainOrLossLines(
60486 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
60487 ,p_application_id => p_application_id
60488 ,p_amb_context_code => 'DEFAULT'
60489 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
60490 ,p_event_class_code => C_EVENT_CLASS_CODE
60491 ,p_event_type_code => C_EVENT_TYPE_CODE
60492
60493 ,p_gain_ccid => -1
60494 ,p_loss_ccid => -1
60495
60496 ,p_actual_flag => l_actual_flag
60497 ,p_enc_flag => null
60498 ,p_actual_g_l_ref => l_actual_gain_loss_ref
60499 ,p_enc_g_l_ref => null
60500 );
60501 END IF;
60502 END IF;
60503 END IF;
60504
60505 ELSE
60506 --
60507 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
60508 --
60509 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60510 trace
60511 (p_msg => 'Trancaction revesal option is Y'
60512 ,p_level => C_LEVEL_STATEMENT
60513 ,p_module => l_log_module);
60514 END IF;
60515 END IF;
60516
60517 END LOOP;
60518 l_result := XLA_AE_LINES_PKG.InsertLines ;
60519 end loop;
60520 close line_cur;
60521
60522
60523 --
60524 -- insert headers into xla_ae_headers_gt table
60525 --
60526 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
60527
60528 -- insert into errors table here.
60529
60530 END LOOP;
60531
60532 --
60533 -- 4865292
60534 --
60535 -- Compare g_hdr_extract_count with event count in
60536 -- CreateHeadersAndLines.
60537 --
60538 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
60539
60540 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60541 trace (p_msg => '# rows extracted from header extract objects '
60542 || ' (running total): '
60543 || g_hdr_extract_count
60544 ,p_level => C_LEVEL_STATEMENT
60545 ,p_module => l_log_module);
60546 END IF;
60547
60548 CLOSE header_cur;
60549 --
60550
60551 --
60552 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60553 trace
60554 (p_msg => 'END of EventClass_113'
60555 ,p_level => C_LEVEL_PROCEDURE
60556 ,p_module => l_log_module);
60557 END IF;
60558 --
60559 RETURN l_result;
60560 EXCEPTION
60561 WHEN xla_exceptions_pkg.application_exception THEN
60562
60563 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
60564
60565
60566 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
60567
60568 RAISE;
60569 WHEN OTHERS THEN
60570 xla_exceptions_pkg.raise_message
60571 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_113');
60572 END EventClass_113;
60573 --
60574
60575 ---------------------------------------
60576 --
60577 -- PRIVATE PROCEDURE
60578 -- insert_sources_114
60579 --
60580 ----------------------------------------
60581 --
60582 PROCEDURE insert_sources_114(
60583 p_target_ledger_id IN NUMBER
60584 , p_language IN VARCHAR2
60585 , p_sla_ledger_id IN NUMBER
60586 , p_pad_start_date IN DATE
60587 , p_pad_end_date IN DATE
60588 )
60589 IS
60590
60591 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ALL';
60592 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST';
60593 p_apps_owner VARCHAR2(30);
60594 l_log_module VARCHAR2(240);
60595 BEGIN
60596 IF g_log_enabled THEN
60597 l_log_module := C_DEFAULT_MODULE||'.insert_sources_114';
60598 END IF;
60599 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
60600
60601 trace
60602 (p_msg => 'BEGIN of insert_sources_114'
60603 ,p_level => C_LEVEL_PROCEDURE
60604 ,p_module => l_log_module);
60605
60606 END IF;
60607
60608 -- select APPS owner
60609 SELECT oracle_username
60610 INTO p_apps_owner
60611 FROM fnd_oracle_userid
60612 WHERE read_only_flag = 'U'
60613 ;
60614
60615 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60616 trace
60617 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
60618 ' - p_language = '||p_language||
60619 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
60620 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
60624 ,p_module => l_log_module);
60621 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
60622 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
60623 ,p_level => C_LEVEL_STATEMENT
60625 END IF;
60626
60627
60628 --
60629 INSERT INTO xla_diag_sources --hdr2
60630 (
60631 event_id
60632 , ledger_id
60633 , sla_ledger_id
60634 , description_language
60635 , object_name
60636 , object_type_code
60637 , line_number
60638 , source_application_id
60639 , source_type_code
60640 , source_code
60641 , source_value
60642 , source_meaning
60643 , created_by
60644 , creation_date
60645 , last_update_date
60646 , last_updated_by
60647 , last_update_login
60648 , program_update_date
60649 , program_application_id
60650 , program_id
60651 , request_id
60652 )
60653 SELECT
60654 event_id
60655 , p_target_ledger_id
60656 , p_sla_ledger_id
60657 , p_language
60658 , object_name
60659 , object_type_code
60660 , line_number
60661 , source_application_id
60662 , source_type_code
60663 , source_code
60664 , SUBSTR(source_value ,1,1996)
60665 , SUBSTR(source_meaning ,1,200)
60666 , xla_environment_pkg.g_Usr_Id
60667 , TRUNC(SYSDATE)
60668 , TRUNC(SYSDATE)
60669 , xla_environment_pkg.g_Usr_Id
60670 , xla_environment_pkg.g_Login_Id
60671 , TRUNC(SYSDATE)
60672 , xla_environment_pkg.g_Prog_Appl_Id
60673 , xla_environment_pkg.g_Prog_Id
60674 , xla_environment_pkg.g_Req_Id
60675 FROM (
60676 SELECT xet.event_id event_id
60677 , 0 line_number
60678 , CASE r
60679 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
60680 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
60681 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
60682
60683 ELSE null
60684 END object_name
60685 , CASE r
60686 WHEN 1 THEN 'HEADER'
60687 WHEN 2 THEN 'HEADER'
60688 WHEN 3 THEN 'HEADER'
60689
60690 ELSE null
60691 END object_type_code
60692 , CASE r
60693 WHEN 1 THEN '275'
60694 WHEN 2 THEN '275'
60695 WHEN 3 THEN '275'
60696
60697 ELSE null
60698 END source_application_id
60699 , 'S' source_type_code
60700 , CASE r
60701 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
60702 WHEN 2 THEN 'SYSTEM_LINKAGE_FUNCTION'
60703 WHEN 3 THEN 'GL_DATE'
60704
60705 ELSE null
60706 END source_code
60707 , CASE r
60708 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
60709 WHEN 2 THEN TO_CHAR(h2.SYSTEM_LINKAGE_FUNCTION)
60710 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
60711
60712 ELSE null
60713 END source_value
60714 , null source_meaning
60715 FROM xla_events_gt xet
60716 , PA_XLA_EXP_HEADER_V h2
60717 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
60718 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
60719 AND xet.event_class_code = C_EVENT_CLASS_CODE
60720 AND h2.event_id = xet.event_id
60721
60722 )
60723 ;
60724 --
60725 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
60726
60727 trace
60728 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
60729 ,p_level => C_LEVEL_STATEMENT
60730 ,p_module => l_log_module);
60731
60732 END IF;
60733 --
60734
60735
60736
60737 --
60738 INSERT INTO xla_diag_sources --line2
60739 (
60740 event_id
60741 , ledger_id
60742 , sla_ledger_id
60743 , description_language
60744 , object_name
60745 , object_type_code
60746 , line_number
60747 , source_application_id
60748 , source_type_code
60749 , source_code
60750 , source_value
60751 , source_meaning
60752 , created_by
60753 , creation_date
60754 , last_update_date
60755 , last_updated_by
60756 , last_update_login
60757 , program_update_date
60758 , program_application_id
60759 , program_id
60760 , request_id
60761 )
60762 SELECT event_id
60763 , p_target_ledger_id
60764 , p_sla_ledger_id
60765 , p_language
60766 , object_name
60767 , object_type_code
60768 , line_number
60769 , source_application_id
60770 , source_type_code
60771 , source_code
60772 , SUBSTR(source_value,1,1996)
60773 , SUBSTR(source_meaning ,1,200)
60774 , xla_environment_pkg.g_Usr_Id
60775 , TRUNC(SYSDATE)
60776 , TRUNC(SYSDATE)
60780 , xla_environment_pkg.g_Prog_Appl_Id
60777 , xla_environment_pkg.g_Usr_Id
60778 , xla_environment_pkg.g_Login_Id
60779 , TRUNC(SYSDATE)
60781 , xla_environment_pkg.g_Prog_Id
60782 , xla_environment_pkg.g_Req_Id
60783 FROM (
60784 SELECT xet.event_id event_id
60785 , l1.line_number line_number
60786 , CASE r
60787 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
60788 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
60789 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
60790 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
60791 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
60792 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
60793 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
60794 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
60795 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
60796 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
60797 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
60798 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
60799 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
60800 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
60801 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
60802 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
60803 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
60804 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
60805 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
60806 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
60807 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
60808 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
60809 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
60810 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
60811 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
60812 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
60813 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
60814 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
60815 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
60816 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
60817 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
60818 WHEN 32 THEN 'PA_XLA_CDL_LINES_V'
60819 WHEN 33 THEN 'PA_XLA_CDL_LINES_V'
60820 WHEN 34 THEN 'PA_XLA_CDL_LINES_V'
60821 WHEN 35 THEN 'PA_XLA_CDL_LINES_V'
60822 WHEN 36 THEN 'PA_XLA_CDL_LINES_V'
60823 WHEN 37 THEN 'PA_XLA_CDL_LINES_V'
60824 WHEN 38 THEN 'PA_XLA_CDL_LINES_V'
60825 WHEN 39 THEN 'PA_XLA_CDL_LINES_V'
60826 WHEN 40 THEN 'PA_XLA_CDL_LINES_V'
60827 WHEN 41 THEN 'PA_XLA_CDL_LINES_V'
60828 WHEN 42 THEN 'PA_XLA_CDL_LINES_V'
60829 WHEN 43 THEN 'PA_XLA_CDL_LINES_V'
60830 WHEN 44 THEN 'PA_XLA_CDL_LINES_V'
60831 WHEN 45 THEN 'PA_XLA_CDL_LINES_V'
60832 WHEN 46 THEN 'PA_XLA_CDL_LINES_V'
60833 WHEN 47 THEN 'PA_XLA_CDL_LINES_V'
60834 WHEN 48 THEN 'PA_XLA_CDL_LINES_V'
60835 WHEN 49 THEN 'PA_XLA_CDL_LINES_V'
60836
60837 ELSE null
60838 END object_name
60839 , CASE r
60840 WHEN 1 THEN 'LINE'
60841 WHEN 2 THEN 'LINE'
60842 WHEN 3 THEN 'LINE'
60843 WHEN 4 THEN 'LINE'
60844 WHEN 5 THEN 'LINE'
60845 WHEN 6 THEN 'LINE'
60846 WHEN 7 THEN 'LINE'
60847 WHEN 8 THEN 'LINE'
60848 WHEN 9 THEN 'LINE'
60849 WHEN 10 THEN 'LINE'
60850 WHEN 11 THEN 'LINE'
60851 WHEN 12 THEN 'LINE'
60852 WHEN 13 THEN 'LINE'
60853 WHEN 14 THEN 'LINE'
60854 WHEN 15 THEN 'LINE'
60855 WHEN 16 THEN 'LINE'
60856 WHEN 17 THEN 'LINE'
60857 WHEN 18 THEN 'LINE'
60858 WHEN 19 THEN 'LINE'
60859 WHEN 20 THEN 'LINE'
60860 WHEN 21 THEN 'LINE'
60861 WHEN 22 THEN 'LINE'
60862 WHEN 23 THEN 'LINE'
60863 WHEN 24 THEN 'LINE'
60864 WHEN 25 THEN 'LINE'
60865 WHEN 26 THEN 'LINE'
60866 WHEN 27 THEN 'LINE'
60867 WHEN 28 THEN 'LINE'
60868 WHEN 29 THEN 'LINE'
60869 WHEN 30 THEN 'LINE'
60870 WHEN 31 THEN 'LINE'
60871 WHEN 32 THEN 'LINE'
60872 WHEN 33 THEN 'LINE'
60873 WHEN 34 THEN 'LINE'
60874 WHEN 35 THEN 'LINE'
60875 WHEN 36 THEN 'LINE'
60876 WHEN 37 THEN 'LINE'
60877 WHEN 38 THEN 'LINE'
60878 WHEN 39 THEN 'LINE'
60879 WHEN 40 THEN 'LINE'
60880 WHEN 41 THEN 'LINE'
60881 WHEN 42 THEN 'LINE'
60882 WHEN 43 THEN 'LINE'
60883 WHEN 44 THEN 'LINE'
60884 WHEN 45 THEN 'LINE'
60885 WHEN 46 THEN 'LINE'
60886 WHEN 47 THEN 'LINE'
60887 WHEN 48 THEN 'LINE'
60888 WHEN 49 THEN 'LINE'
60889
60890 ELSE null
60891 END object_type_code
60892 , CASE r
60896 WHEN 4 THEN '275'
60893 WHEN 1 THEN '275'
60894 WHEN 2 THEN '275'
60895 WHEN 3 THEN '275'
60897 WHEN 5 THEN '275'
60898 WHEN 6 THEN '275'
60899 WHEN 7 THEN '275'
60900 WHEN 8 THEN '275'
60901 WHEN 9 THEN '275'
60902 WHEN 10 THEN '275'
60903 WHEN 11 THEN '275'
60904 WHEN 12 THEN '275'
60905 WHEN 13 THEN '275'
60906 WHEN 14 THEN '275'
60907 WHEN 15 THEN '275'
60908 WHEN 16 THEN '275'
60909 WHEN 17 THEN '275'
60910 WHEN 18 THEN '275'
60911 WHEN 19 THEN '275'
60912 WHEN 20 THEN '275'
60913 WHEN 21 THEN '275'
60914 WHEN 22 THEN '275'
60915 WHEN 23 THEN '275'
60916 WHEN 24 THEN '275'
60917 WHEN 25 THEN '275'
60918 WHEN 26 THEN '275'
60919 WHEN 27 THEN '275'
60920 WHEN 28 THEN '275'
60921 WHEN 29 THEN '275'
60922 WHEN 30 THEN '275'
60923 WHEN 31 THEN '275'
60924 WHEN 32 THEN '275'
60925 WHEN 33 THEN '275'
60926 WHEN 34 THEN '275'
60927 WHEN 35 THEN '275'
60928 WHEN 36 THEN '275'
60929 WHEN 37 THEN '275'
60930 WHEN 38 THEN '275'
60931 WHEN 39 THEN '275'
60932 WHEN 40 THEN '275'
60933 WHEN 41 THEN '275'
60934 WHEN 42 THEN '275'
60935 WHEN 43 THEN '275'
60936 WHEN 44 THEN '275'
60937 WHEN 45 THEN '275'
60938 WHEN 46 THEN '275'
60939 WHEN 47 THEN '275'
60940 WHEN 48 THEN '275'
60941 WHEN 49 THEN '275'
60942
60943 ELSE null
60944 END source_application_id
60945 , 'S' source_type_code
60946 , CASE r
60947 WHEN 1 THEN 'BUDGET_CCID'
60948 WHEN 2 THEN 'COST_CCID'
60949 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
60950 WHEN 4 THEN 'ADJ_COST_CCID'
60951 WHEN 5 THEN 'COST_CLEARING_CCID'
60952 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
60953 WHEN 7 THEN 'REVERSING_LINE_FLAG'
60954 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
60955 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
60956 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
60957 WHEN 11 THEN 'EXCHANGE_RATE'
60958 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
60959 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
60960 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
60961 WHEN 15 THEN 'LINE_NUMBER'
60962 WHEN 16 THEN 'LINE_TYPE'
60963 WHEN 17 THEN 'LINE_NUM_REVERSED'
60964 WHEN 18 THEN 'ENTERED_BURDENED_COST'
60965 WHEN 19 THEN 'ACCT_BURDENED_COST'
60966 WHEN 20 THEN 'ENCUMBRANCE_AMOUNT'
60967 WHEN 21 THEN 'PA_APPLICATION_ID'
60968 WHEN 22 THEN 'PA_DISTRIBUTION_TYPE'
60969 WHEN 23 THEN 'PA_ENTITY_CODE'
60970 WHEN 24 THEN 'PA_FIRST_DIST_ID'
60971 WHEN 25 THEN 'PA_FIRST_SYS_TRANS_ID'
60972 WHEN 26 THEN 'PA_SECOND_DIST_ID'
60973 WHEN 27 THEN 'ENC_UPG_DR_ACCT_CLASS'
60974 WHEN 28 THEN 'ENC_UPG_CR_ACCT_CLASS'
60975 WHEN 29 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
60976 WHEN 30 THEN 'ENCUMBRANCE_TYPE_ID'
60977 WHEN 31 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
60978 WHEN 32 THEN 'DOCUMENT_TYPE'
60979 WHEN 33 THEN 'ENC_JE_LINES_REVERSED_FLAG'
60980 WHEN 34 THEN 'PO_RELEASE_ID'
60981 WHEN 35 THEN 'CWK_RATE_BASED_TC_FLAG'
60982 WHEN 36 THEN 'INVOICE_APPLICATION_ID'
60983 WHEN 37 THEN 'INVOICE_DISTRIBUTION_TYPE'
60984 WHEN 38 THEN 'INVOICE_ENTITY_CODE'
60985 WHEN 39 THEN 'INVOICE_FIRST_DIST_ID'
60986 WHEN 40 THEN 'INVOICE_FIRST_SYS_TRANS_ID'
60987 WHEN 41 THEN 'INVOICE_SECOND_DIST_ID'
60988 WHEN 42 THEN 'PO_APPLICATION_ID'
60989 WHEN 43 THEN 'PO_DISTRIBUTION_TYPE'
60990 WHEN 44 THEN 'PO_ENTITY_CODE'
60991 WHEN 45 THEN 'PO_FIRST_DIST_ID'
60992 WHEN 46 THEN 'PO_FIRST_SYS_TRANS_ID'
60993 WHEN 47 THEN 'PO_SECOND_DIST_ID'
60994 WHEN 48 THEN 'ENC_ACCT_ENABLED'
60995 WHEN 49 THEN 'LIQUIDATE_ENCUM_FLAG'
60996
60997 ELSE null
60998 END source_code
60999 , CASE r
61000 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
61001 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
61002 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
61003 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
61004 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
61008 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
61005 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
61006 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
61007 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
61009 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
61010 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
61011 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
61012 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
61013 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
61014 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
61015 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
61016 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
61017 WHEN 18 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
61018 WHEN 19 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
61019 WHEN 20 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
61020 WHEN 21 THEN TO_CHAR(l1.PA_APPLICATION_ID)
61021 WHEN 22 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
61022 WHEN 23 THEN TO_CHAR(l1.PA_ENTITY_CODE)
61023 WHEN 24 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
61024 WHEN 25 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
61025 WHEN 26 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
61026 WHEN 27 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
61027 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
61028 WHEN 29 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
61029 WHEN 30 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
61030 WHEN 31 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
61031 WHEN 32 THEN TO_CHAR(l1.DOCUMENT_TYPE)
61032 WHEN 33 THEN TO_CHAR(l1.ENC_JE_LINES_REVERSED_FLAG)
61033 WHEN 34 THEN TO_CHAR(l1.PO_RELEASE_ID)
61034 WHEN 35 THEN TO_CHAR(l1.CWK_RATE_BASED_TC_FLAG)
61035 WHEN 36 THEN TO_CHAR(l1.INVOICE_APPLICATION_ID)
61036 WHEN 37 THEN TO_CHAR(l1.INVOICE_DISTRIBUTION_TYPE)
61037 WHEN 38 THEN TO_CHAR(l1.INVOICE_ENTITY_CODE)
61038 WHEN 39 THEN TO_CHAR(l1.INVOICE_FIRST_DIST_ID)
61039 WHEN 40 THEN TO_CHAR(l1.INVOICE_FIRST_SYS_TRANS_ID)
61040 WHEN 41 THEN TO_CHAR(l1.INVOICE_SECOND_DIST_ID)
61041 WHEN 42 THEN TO_CHAR(l1.PO_APPLICATION_ID)
61042 WHEN 43 THEN TO_CHAR(l1.PO_DISTRIBUTION_TYPE)
61043 WHEN 44 THEN TO_CHAR(l1.PO_ENTITY_CODE)
61044 WHEN 45 THEN TO_CHAR(l1.PO_FIRST_DIST_ID)
61045 WHEN 46 THEN TO_CHAR(l1.PO_FIRST_SYS_TRANS_ID)
61046 WHEN 47 THEN TO_CHAR(l1.PO_SECOND_DIST_ID)
61047 WHEN 48 THEN TO_CHAR(l1.ENC_ACCT_ENABLED)
61048 WHEN 49 THEN TO_CHAR(l1.LIQUIDATE_ENCUM_FLAG)
61049
61050 ELSE null
61051 END source_value
61052 , CASE r
61053 WHEN 3 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
61054 103371
61055 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
61056 ,'ALLOW_OVERRIDE_CCID_FLAG'
61057 ,'S'
61058 ,275)
61059 WHEN 16 THEN fvl34.meaning
61060 WHEN 32 THEN fvl69.meaning
61061
61062 ELSE null
61063 END source_meaning
61064 FROM xla_events_gt xet
61065 , PA_XLA_CDL_LINES_V l1
61066 , fnd_lookup_values fvl34
61067 , fnd_lookup_values fvl69
61068 , (select rownum r from all_objects where rownum <= 49 and owner = p_apps_owner)
61069 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
61070 AND xet.event_class_code = C_EVENT_CLASS_CODE
61071 AND l1.event_id = xet.event_id
61072 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
61073 AND fvl34.lookup_code(+) = l1.LINE_TYPE
61074 AND fvl34.view_application_id(+) = 275
61075 AND fvl34.language(+) = USERENV('LANG')
61076 AND fvl69.lookup_type(+) = 'FC_DOC_TYPE'
61077 AND fvl69.lookup_code(+) = l1.DOCUMENT_TYPE
61078 AND fvl69.view_application_id(+) = 275
61079 AND fvl69.language(+) = USERENV('LANG')
61080
61081 )
61082 ;
61083 --
61084 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61085
61086 trace
61087 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
61088 ,p_level => C_LEVEL_STATEMENT
61089 ,p_module => l_log_module);
61090
61091 END IF;
61092
61093
61094 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61095 trace
61096 (p_msg => 'END of insert_sources_114'
61097 ,p_level => C_LEVEL_PROCEDURE
61098 ,p_module => l_log_module);
61099 END IF;
61100 EXCEPTION
61101 WHEN xla_exceptions_pkg.application_exception THEN
61102 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
61103 trace
61104 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
61105 ,p_level => C_LEVEL_EXCEPTION
61106 ,p_module => l_log_module);
61107 END IF;
61108 RAISE;
61109 WHEN OTHERS THEN
61110 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
61111 trace
61112 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
61113 ,p_level => C_LEVEL_EXCEPTION
61117 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_114');
61114 ,p_module => l_log_module);
61115 END IF;
61116 xla_exceptions_pkg.raise_message
61118 END insert_sources_114;
61119 --
61120
61121 ---------------------------------------
61122 --
61123 -- PRIVATE FUNCTION
61124 -- EventClass_114
61125 --
61126 ----------------------------------------
61127 --
61128 FUNCTION EventClass_114
61129 (p_application_id IN NUMBER
61130 ,p_base_ledger_id IN NUMBER
61131 ,p_target_ledger_id IN NUMBER
61132 ,p_language IN VARCHAR2
61133 ,p_currency_code IN VARCHAR2
61134 ,p_sla_ledger_id IN NUMBER
61135 ,p_pad_start_date IN DATE
61136 ,p_pad_end_date IN DATE
61137 ,p_primary_ledger_id IN NUMBER)
61138 RETURN BOOLEAN IS
61139 --
61140 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST_ALL';
61141 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'BURDEN_COST';
61142
61143 l_calculate_acctd_flag VARCHAR2(1) :='N';
61144 l_calculate_g_l_flag VARCHAR2(1) :='N';
61145 --
61146 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61147 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61148 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
61149 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61150 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61151 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
61152 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
61153 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61154 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61155 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61156 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61157 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61158 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61159 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
61160 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61161 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61162 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61163 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
61164 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61165 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61166 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61167 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
61168 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
61169 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
61170
61171 l_event_id NUMBER;
61172 l_previous_event_id NUMBER;
61173 l_first_event_id NUMBER;
61174 l_last_event_id NUMBER;
61175
61176 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
61177 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
61178 --
61179 --
61180 l_result BOOLEAN := TRUE;
61181 l_rows NUMBER := 1000;
61182 l_event_type_name VARCHAR2(80) := 'All';
61183 l_event_class_name VARCHAR2(80) := 'Burden Cost';
61184 l_description VARCHAR2(4000);
61185 l_transaction_reversal NUMBER;
61186 l_ae_header_id NUMBER;
61187 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
61188 l_log_module VARCHAR2(240);
61189 --
61190 l_acct_reversal_source VARCHAR2(30);
61191 l_trx_reversal_source VARCHAR2(30);
61192
61193 l_continue_with_lines BOOLEAN := TRUE;
61194 --
61195 l_acc_rev_gl_date_source DATE; -- 4262811
61196 --
61197 type t_array_event_id is table of number index by binary_integer;
61198
61199 l_rec_array_event t_rec_array_event;
61200 l_null_rec_array_event t_rec_array_event;
61201 l_array_ae_header_id xla_number_array_type;
61202 l_actual_flag VARCHAR2(1) := NULL;
61203 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
61204 l_balance_type_code VARCHAR2(1) :=NULL;
61205 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
61206
61207 --
61208 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
61209 --
61210
61211 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
61212 TYPE t_array_source_37 IS TABLE OF PA_XLA_EXP_HEADER_V.SYSTEM_LINKAGE_FUNCTION%TYPE INDEX BY BINARY_INTEGER;
61213 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
61214
61215 TYPE t_array_source_2 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
61216 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
61217 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
61218 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
61222 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
61219 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
61220 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
61221 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
61223 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
61224 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
61225 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
61226 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
61227 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
61228 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
61229 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
61230 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
61231 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
61232 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
61233 TYPE t_array_source_45 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
61234 TYPE t_array_source_46 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
61235 TYPE t_array_source_47 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
61236 TYPE t_array_source_48 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
61237 TYPE t_array_source_49 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
61238 TYPE t_array_source_50 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61239 TYPE t_array_source_51 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
61240 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61241 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
61242 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
61243 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
61244 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
61245 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
61246 TYPE t_array_source_69 IS TABLE OF PA_XLA_CDL_LINES_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
61247 TYPE t_array_source_70 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_JE_LINES_REVERSED_FLAG%TYPE INDEX BY BINARY_INTEGER;
61248 TYPE t_array_source_71 IS TABLE OF PA_XLA_CDL_LINES_V.PO_RELEASE_ID%TYPE INDEX BY BINARY_INTEGER;
61249 TYPE t_array_source_72 IS TABLE OF PA_XLA_CDL_LINES_V.CWK_RATE_BASED_TC_FLAG%TYPE INDEX BY BINARY_INTEGER;
61250 TYPE t_array_source_73 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
61251 TYPE t_array_source_74 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
61252 TYPE t_array_source_75 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
61253 TYPE t_array_source_76 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61254 TYPE t_array_source_77 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
61255 TYPE t_array_source_78 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61256 TYPE t_array_source_79 IS TABLE OF PA_XLA_CDL_LINES_V.PO_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
61257 TYPE t_array_source_80 IS TABLE OF PA_XLA_CDL_LINES_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
61258 TYPE t_array_source_81 IS TABLE OF PA_XLA_CDL_LINES_V.PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
61259 TYPE t_array_source_82 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61260 TYPE t_array_source_83 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
61261 TYPE t_array_source_84 IS TABLE OF PA_XLA_CDL_LINES_V.PO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
61262 TYPE t_array_source_85 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_ACCT_ENABLED%TYPE INDEX BY BINARY_INTEGER;
61263 TYPE t_array_source_86 IS TABLE OF PA_XLA_CDL_LINES_V.LIQUIDATE_ENCUM_FLAG%TYPE INDEX BY BINARY_INTEGER;
61264
61265 l_array_source_32 t_array_source_32;
61266 l_array_source_37 t_array_source_37;
61267 l_array_source_87 t_array_source_87;
61268
61269 l_array_source_2 t_array_source_2;
61270 l_array_source_3 t_array_source_3;
61271 l_array_source_4 t_array_source_4;
61272 l_array_source_5 t_array_source_5;
61273 l_array_source_6 t_array_source_6;
61274 l_array_source_7 t_array_source_7;
61275 l_array_source_22 t_array_source_22;
61276 l_array_source_23 t_array_source_23;
61277 l_array_source_25 t_array_source_25;
61278 l_array_source_27 t_array_source_27;
61279 l_array_source_28 t_array_source_28;
61280 l_array_source_29 t_array_source_29;
61281 l_array_source_30 t_array_source_30;
61282 l_array_source_31 t_array_source_31;
61283 l_array_source_33 t_array_source_33;
61284 l_array_source_34 t_array_source_34;
61285 l_array_source_34_meaning t_array_lookup_meaning;
61286 l_array_source_35 t_array_source_35;
61287 l_array_source_44 t_array_source_44;
61288 l_array_source_45 t_array_source_45;
61289 l_array_source_46 t_array_source_46;
61293 l_array_source_50 t_array_source_50;
61290 l_array_source_47 t_array_source_47;
61291 l_array_source_48 t_array_source_48;
61292 l_array_source_49 t_array_source_49;
61294 l_array_source_51 t_array_source_51;
61295 l_array_source_52 t_array_source_52;
61296 l_array_source_53 t_array_source_53;
61297 l_array_source_54 t_array_source_54;
61298 l_array_source_55 t_array_source_55;
61299 l_array_source_56 t_array_source_56;
61300 l_array_source_57 t_array_source_57;
61301 l_array_source_69 t_array_source_69;
61302 l_array_source_69_meaning t_array_lookup_meaning;
61303 l_array_source_70 t_array_source_70;
61304 l_array_source_71 t_array_source_71;
61305 l_array_source_72 t_array_source_72;
61306 l_array_source_73 t_array_source_73;
61307 l_array_source_74 t_array_source_74;
61308 l_array_source_75 t_array_source_75;
61309 l_array_source_76 t_array_source_76;
61310 l_array_source_77 t_array_source_77;
61311 l_array_source_78 t_array_source_78;
61312 l_array_source_79 t_array_source_79;
61313 l_array_source_80 t_array_source_80;
61314 l_array_source_81 t_array_source_81;
61315 l_array_source_82 t_array_source_82;
61316 l_array_source_83 t_array_source_83;
61317 l_array_source_84 t_array_source_84;
61318 l_array_source_85 t_array_source_85;
61319 l_array_source_86 t_array_source_86;
61320
61321 --
61322 CURSOR header_cur
61323 IS
61324 SELECT /*+ leading(xet) cardinality(xet,1) */
61325 -- Event Class Code: BURDEN_COST
61326 xet.entity_id
61327 ,xet.legal_entity_id
61328 ,xet.entity_code
61329 ,xet.transaction_number
61330 ,xet.event_id
61331 ,xet.event_class_code
61332 ,xet.event_type_code
61333 ,xet.event_number
61334 ,xet.event_date
61335 ,xet.transaction_date
61336 ,xet.reference_num_1
61337 ,xet.reference_num_2
61338 ,xet.reference_num_3
61339 ,xet.reference_num_4
61340 ,xet.reference_char_1
61341 ,xet.reference_char_2
61342 ,xet.reference_char_3
61343 ,xet.reference_char_4
61344 ,xet.reference_date_1
61345 ,xet.reference_date_2
61346 ,xet.reference_date_3
61347 ,xet.reference_date_4
61348 ,xet.event_created_by
61349 ,xet.budgetary_control_flag
61350 , h2.EXPENDITURE_ITEM_ID source_32
61351 , h2.SYSTEM_LINKAGE_FUNCTION source_37
61352 , h2.GL_DATE source_87
61353 FROM xla_events_gt xet
61354 , PA_XLA_EXP_HEADER_V h2
61355 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
61356 and xet.event_class_code = C_EVENT_CLASS_CODE
61357 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
61358
61359 ORDER BY event_id
61360 ;
61361
61362
61363 --
61364 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
61365 IS
61366 SELECT /*+ leading(xet) cardinality(xet,1) */
61367 -- Event Class Code: BURDEN_COST
61368 xet.entity_id
61369 ,xet.legal_entity_id
61370 ,xet.entity_code
61371 ,xet.transaction_number
61372 ,xet.event_id
61373 ,xet.event_class_code
61374 ,xet.event_type_code
61375 ,xet.event_number
61376 ,xet.event_date
61377 ,xet.transaction_date
61378 ,xet.reference_num_1
61379 ,xet.reference_num_2
61380 ,xet.reference_num_3
61381 ,xet.reference_num_4
61382 ,xet.reference_char_1
61383 ,xet.reference_char_2
61384 ,xet.reference_char_3
61385 ,xet.reference_char_4
61386 ,xet.reference_date_1
61387 ,xet.reference_date_2
61388 ,xet.reference_date_3
61389 ,xet.reference_date_4
61390 ,xet.event_created_by
61391 ,xet.budgetary_control_flag
61392 , l1.LINE_NUMBER
61393 , l1.BUDGET_CCID source_2
61394 , l1.COST_CCID source_3
61395 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
61396 , l1.ADJ_COST_CCID source_5
61397 , l1.COST_CLEARING_CCID source_6
61398 , l1.ADJ_COST_CLEARING_CCID source_7
61399 , l1.REVERSING_LINE_FLAG source_22
61400 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
61401 , l1.ENTERED_CURRENCY_CODE source_25
61402 , l1.EXCHANGE_RATE_DATE source_27
61403 , l1.EXCHANGE_RATE source_28
61404 , l1.EXCHANGE_RATE_TYPE source_29
61405 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
61406 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
61407 , l1.LINE_NUMBER source_33
61408 , l1.LINE_TYPE source_34
61409 , fvl34.meaning source_34_meaning
61410 , l1.LINE_NUM_REVERSED source_35
61411 , l1.ENTERED_BURDENED_COST source_44
61412 , l1.ACCT_BURDENED_COST source_45
61413 , l1.ENCUMBRANCE_AMOUNT source_46
61414 , l1.PA_APPLICATION_ID source_47
61415 , l1.PA_DISTRIBUTION_TYPE source_48
61416 , l1.PA_ENTITY_CODE source_49
61417 , l1.PA_FIRST_DIST_ID source_50
61418 , l1.PA_FIRST_SYS_TRANS_ID source_51
61419 , l1.PA_SECOND_DIST_ID source_52
61420 , l1.ENC_UPG_DR_ACCT_CLASS source_53
61421 , l1.ENC_UPG_CR_ACCT_CLASS source_54
61422 , l1.USE_ENC_UPG_ATTRIB_FLAG source_55
61423 , l1.ENCUMBRANCE_TYPE_ID source_56
61424 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_57
61425 , l1.DOCUMENT_TYPE source_69
61426 , fvl69.meaning source_69_meaning
61427 , l1.ENC_JE_LINES_REVERSED_FLAG source_70
61428 , l1.PO_RELEASE_ID source_71
61432 , l1.INVOICE_ENTITY_CODE source_75
61429 , l1.CWK_RATE_BASED_TC_FLAG source_72
61430 , l1.INVOICE_APPLICATION_ID source_73
61431 , l1.INVOICE_DISTRIBUTION_TYPE source_74
61433 , l1.INVOICE_FIRST_DIST_ID source_76
61434 , l1.INVOICE_FIRST_SYS_TRANS_ID source_77
61435 , l1.INVOICE_SECOND_DIST_ID source_78
61436 , l1.PO_APPLICATION_ID source_79
61437 , l1.PO_DISTRIBUTION_TYPE source_80
61438 , l1.PO_ENTITY_CODE source_81
61439 , l1.PO_FIRST_DIST_ID source_82
61440 , l1.PO_FIRST_SYS_TRANS_ID source_83
61441 , l1.PO_SECOND_DIST_ID source_84
61442 , l1.ENC_ACCT_ENABLED source_85
61443 , l1.LIQUIDATE_ENCUM_FLAG source_86
61444 FROM xla_events_gt xet
61445 , PA_XLA_CDL_LINES_V l1
61446 , fnd_lookup_values fvl34
61447 , fnd_lookup_values fvl69
61448 WHERE xet.event_id between x_first_event_id and x_last_event_id
61449 and xet.event_date between p_pad_start_date and p_pad_end_date
61450 and xet.event_class_code = C_EVENT_CLASS_CODE
61451 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
61452 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
61453 AND fvl34.lookup_code(+) = l1.LINE_TYPE
61454 AND fvl34.view_application_id(+) = 275
61455 AND fvl34.language(+) = USERENV('LANG')
61456 AND fvl69.lookup_type(+) = 'FC_DOC_TYPE'
61457 AND fvl69.lookup_code(+) = l1.DOCUMENT_TYPE
61458 AND fvl69.view_application_id(+) = 275
61459 AND fvl69.language(+) = USERENV('LANG')
61460 ;
61461
61462 --
61463 BEGIN
61464 IF g_log_enabled THEN
61465 l_log_module := C_DEFAULT_MODULE||'.EventClass_114';
61466 END IF;
61467 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
61468 trace
61469 (p_msg => 'BEGIN of EventClass_114'
61470 ,p_level => C_LEVEL_PROCEDURE
61471 ,p_module => l_log_module);
61472 END IF;
61473
61474 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61475 trace
61476 (p_msg => 'p_application_id = '||p_application_id||
61477 ' - p_base_ledger_id = '||p_base_ledger_id||
61478 ' - p_target_ledger_id = '||p_target_ledger_id||
61479 ' - p_language = '||p_language||
61480 ' - p_currency_code = '||p_currency_code||
61481 ' - p_sla_ledger_id = '||p_sla_ledger_id
61482 ,p_level => C_LEVEL_STATEMENT
61483 ,p_module => l_log_module);
61484 END IF;
61485 --
61486 -- initialze arrays
61487 --
61488 g_array_event.DELETE;
61489 l_rec_array_event := l_null_rec_array_event;
61490 --
61491 --------------------------------------
61492 -- 4262811 Initialze MPA Line Number
61493 --------------------------------------
61494 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
61495
61496 --
61497
61498 --
61499 OPEN header_cur;
61500 --
61501 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61502 trace
61503 (p_msg => 'SQL - FETCH header_cur'
61504 ,p_level => C_LEVEL_STATEMENT
61505 ,p_module => l_log_module);
61506 END IF;
61507 --
61508 LOOP
61509 FETCH header_cur BULK COLLECT INTO
61510 l_array_entity_id
61511 , l_array_legal_entity_id
61512 , l_array_entity_code
61513 , l_array_transaction_num
61514 , l_array_event_id
61515 , l_array_class_code
61516 , l_array_event_type
61517 , l_array_event_number
61518 , l_array_event_date
61519 , l_array_transaction_date
61520 , l_array_reference_num_1
61521 , l_array_reference_num_2
61522 , l_array_reference_num_3
61523 , l_array_reference_num_4
61524 , l_array_reference_char_1
61525 , l_array_reference_char_2
61526 , l_array_reference_char_3
61527 , l_array_reference_char_4
61528 , l_array_reference_date_1
61529 , l_array_reference_date_2
61530 , l_array_reference_date_3
61531 , l_array_reference_date_4
61532 , l_array_event_created_by
61533 , l_array_budgetary_control_flag
61534 , l_array_source_32
61535 , l_array_source_37
61536 , l_array_source_87
61537 LIMIT l_rows;
61538 --
61539 IF (C_LEVEL_EVENT >= g_log_level) THEN
61540 trace
61541 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
61542 ,p_level => C_LEVEL_EVENT
61543 ,p_module => l_log_module);
61544 END IF;
61545 --
61546 EXIT WHEN l_array_entity_id.COUNT = 0;
61547
61548 -- initialize arrays
61549 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
61550 XLA_AE_LINES_PKG.g_rec_lines := NULL;
61551
61552 --
61553 -- Bug 4458708
61554 --
61555 XLA_AE_LINES_PKG.g_LineNumber := 0;
61556
61557
61558 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
61559 g_last_hdr_idx := l_array_event_id.LAST;
61560 --
61561 -- loop for the headers. Each iteration is for each header extract row
61562 -- fetched in header cursor
61563 --
61564 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
61565
61566 --
61567 -- set event info as cache for other routines to refer event attributes
61568 --
61569 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
61573 ,p_target_ledger_id => p_target_ledger_id
61570 (p_application_id => p_application_id
61571 ,p_primary_ledger_id => p_primary_ledger_id
61572 ,p_base_ledger_id => p_base_ledger_id
61574 ,p_entity_id => l_array_entity_id(hdr_idx)
61575 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
61576 ,p_entity_code => l_array_entity_code(hdr_idx)
61577 ,p_transaction_num => l_array_transaction_num(hdr_idx)
61578 ,p_event_id => l_array_event_id(hdr_idx)
61579 ,p_event_class_code => l_array_class_code(hdr_idx)
61580 ,p_event_type_code => l_array_event_type(hdr_idx)
61581 ,p_event_number => l_array_event_number(hdr_idx)
61582 ,p_event_date => l_array_event_date(hdr_idx)
61583 ,p_transaction_date => l_array_transaction_date(hdr_idx)
61584 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
61585 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
61586 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
61587 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
61588 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
61589 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
61590 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
61591 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
61592 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
61593 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
61594 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
61595 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
61596 ,p_event_created_by => l_array_event_created_by(hdr_idx)
61597 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
61598
61599 --
61600 -- set the status of entry to C_VALID (0)
61601 --
61602 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
61603
61604 --
61605 -- initialize a row for ae header
61606 --
61607 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
61608
61609 l_event_id := l_array_event_id(hdr_idx);
61610
61611 --
61612 -- storing the hdr_idx for event. May be used by line cursor.
61613 --
61614 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
61615
61616 --
61617 -- store sources from header extract. This can be improved to
61618 -- store only those sources from header extract that may be used in lines
61619 --
61620
61621 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
61622 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
61623 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
61624
61625 --
61626 -- initilaize the status of ae headers for diffrent balance types
61627 -- the status is initialised to C_NOT_CREATED (2)
61628 --
61629 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
61630 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
61631 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
61632
61633 --
61634 -- call api to validate and store accounting attributes for header
61635 --
61636
61637 ------------------------------------------------------------
61638 -- Accrual Reversal : to get date for Standard Source (NONE)
61639 ------------------------------------------------------------
61640 l_acc_rev_gl_date_source := NULL;
61641
61642 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
61643 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
61644
61645
61646 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
61647
61648 XLA_AE_HEADER_PKG.SetJeCategoryName;
61649
61650 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
61651 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
61652 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
61653 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
61654 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
61655
61656
61657 -- No header level analytical criteria
61658
61659 --
61660 --accounting attribute enhancement, bug 3612931
61661 --
61662 l_trx_reversal_source := SUBSTR(NULL, 1,30);
61663
61664 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
61665 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
61666
61667 xla_accounting_err_pkg.build_message
61668 (p_appli_s_name => 'XLA'
61669 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
61670 ,p_token_1 => 'ACCT_ATTR_NAME'
61671 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
61672 ,p_token_2 => 'PRODUCT_NAME'
61673 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
61674 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
61675 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
61676 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
61677
61678 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
61679 --
61683 xla_ae_lines_pkg.SetTrxReversalAttrs
61680 -- following sets the accounting attributes needed to reverse
61681 -- accounting for a distributeion
61682 --
61684 (p_event_id => l_event_id
61685 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
61686 ,p_trx_reversal_source => l_trx_reversal_source);
61687
61688 END IF;
61689
61690
61691 ----------------------------------------------------------------
61692 -- 4262811 - update the header statuses to invalid in need be
61693 ----------------------------------------------------------------
61694 --
61695 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
61696
61697
61698 -----------------------------------------------
61699 -- No accrual reversal for the event class/type
61700 -----------------------------------------------
61701 ----------------------------------------------------------------
61702
61703 --
61704 -- this ends the header loop iteration for one bulk fetch
61705 --
61706 END LOOP;
61707
61708 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
61709 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
61710
61711 --
61712 -- insert dummy rows into lines gt table that were created due to
61713 -- transaction reversals
61714 --
61715 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
61716 l_result := XLA_AE_LINES_PKG.InsertLines;
61717 END IF;
61718
61719 --
61720 -- reset the temp_line_num for each set of events fetched from header
61721 -- cursor rather than doing it for each new event in line cursor
61722 -- Bug 3939231
61723 --
61724 xla_ae_lines_pkg.g_temp_line_num := 0;
61725
61726
61727
61728 --
61729 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
61730 --
61731 --
61732 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61733
61734 trace
61735 (p_msg => 'SQL - FETCH line_cur'
61736 ,p_level => C_LEVEL_STATEMENT
61737 ,p_module => l_log_module);
61738
61739 END IF;
61740 --
61741 --
61742 LOOP
61743 --
61744 FETCH line_cur BULK COLLECT INTO
61745 l_array_entity_id
61746 , l_array_legal_entity_id
61747 , l_array_entity_code
61748 , l_array_transaction_num
61749 , l_array_event_id
61750 , l_array_class_code
61751 , l_array_event_type
61752 , l_array_event_number
61753 , l_array_event_date
61754 , l_array_transaction_date
61755 , l_array_reference_num_1
61756 , l_array_reference_num_2
61757 , l_array_reference_num_3
61758 , l_array_reference_num_4
61759 , l_array_reference_char_1
61760 , l_array_reference_char_2
61761 , l_array_reference_char_3
61762 , l_array_reference_char_4
61763 , l_array_reference_date_1
61764 , l_array_reference_date_2
61765 , l_array_reference_date_3
61766 , l_array_reference_date_4
61767 , l_array_event_created_by
61768 , l_array_budgetary_control_flag
61769 , l_array_extract_line_num
61770 , l_array_source_2
61771 , l_array_source_3
61772 , l_array_source_4
61773 , l_array_source_5
61774 , l_array_source_6
61775 , l_array_source_7
61776 , l_array_source_22
61777 , l_array_source_23
61778 , l_array_source_25
61779 , l_array_source_27
61780 , l_array_source_28
61781 , l_array_source_29
61782 , l_array_source_30
61783 , l_array_source_31
61784 , l_array_source_33
61785 , l_array_source_34
61786 , l_array_source_34_meaning
61787 , l_array_source_35
61788 , l_array_source_44
61789 , l_array_source_45
61790 , l_array_source_46
61791 , l_array_source_47
61792 , l_array_source_48
61793 , l_array_source_49
61794 , l_array_source_50
61795 , l_array_source_51
61796 , l_array_source_52
61797 , l_array_source_53
61798 , l_array_source_54
61799 , l_array_source_55
61800 , l_array_source_56
61801 , l_array_source_57
61802 , l_array_source_69
61803 , l_array_source_69_meaning
61804 , l_array_source_70
61805 , l_array_source_71
61806 , l_array_source_72
61807 , l_array_source_73
61808 , l_array_source_74
61809 , l_array_source_75
61810 , l_array_source_76
61811 , l_array_source_77
61812 , l_array_source_78
61813 , l_array_source_79
61814 , l_array_source_80
61815 , l_array_source_81
61816 , l_array_source_82
61817 , l_array_source_83
61818 , l_array_source_84
61819 , l_array_source_85
61820 , l_array_source_86
61821 LIMIT l_rows;
61822
61823 --
61824 IF (C_LEVEL_EVENT >= g_log_level) THEN
61825 trace
61826 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
61827 ,p_level => C_LEVEL_EVENT
61828 ,p_module => l_log_module);
61829 END IF;
61830 --
61831 EXIT WHEN l_array_entity_id.count = 0;
61832
61833 XLA_AE_LINES_PKG.g_rec_lines := null;
61834
61835 --
61839 --
61836 -- Bug 4458708
61837 --
61838 XLA_AE_LINES_PKG.g_LineNumber := 0;
61840 --
61841
61842 FOR Idx IN 1..l_array_event_id.count LOOP
61843 --
61844 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
61845 --
61846 l_event_id := l_array_event_id(idx); -- 5648433
61847
61848 --
61849 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
61850 --
61851
61852 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
61853 (g_array_event(l_event_id).array_value_num('header_index'))
61854 ,'N'
61855 ) <> 'Y'
61856 THEN
61857 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
61858 trace
61859 (p_msg => 'Trancaction revesal option is not Y '
61860 ,p_level => C_LEVEL_STATEMENT
61861 ,p_module => l_log_module);
61862 END IF;
61863
61864 --
61865 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
61866 --
61867 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
61868 --
61869 -- set event info as cache for other routines to refer event attributes
61870 --
61871
61872 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
61873 l_previous_event_id := l_event_id;
61874
61875 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
61876 (p_application_id => p_application_id
61877 ,p_primary_ledger_id => p_primary_ledger_id
61878 ,p_base_ledger_id => p_base_ledger_id
61879 ,p_target_ledger_id => p_target_ledger_id
61880 ,p_entity_id => l_array_entity_id(Idx)
61881 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
61882 ,p_entity_code => l_array_entity_code(Idx)
61883 ,p_transaction_num => l_array_transaction_num(Idx)
61884 ,p_event_id => l_array_event_id(Idx)
61885 ,p_event_class_code => l_array_class_code(Idx)
61886 ,p_event_type_code => l_array_event_type(Idx)
61887 ,p_event_number => l_array_event_number(Idx)
61888 ,p_event_date => l_array_event_date(Idx)
61889 ,p_transaction_date => l_array_transaction_date(Idx)
61890 ,p_reference_num_1 => l_array_reference_num_1(Idx)
61891 ,p_reference_num_2 => l_array_reference_num_2(Idx)
61892 ,p_reference_num_3 => l_array_reference_num_3(Idx)
61893 ,p_reference_num_4 => l_array_reference_num_4(Idx)
61894 ,p_reference_char_1 => l_array_reference_char_1(Idx)
61895 ,p_reference_char_2 => l_array_reference_char_2(Idx)
61896 ,p_reference_char_3 => l_array_reference_char_3(Idx)
61897 ,p_reference_char_4 => l_array_reference_char_4(Idx)
61898 ,p_reference_date_1 => l_array_reference_date_1(Idx)
61899 ,p_reference_date_2 => l_array_reference_date_2(Idx)
61900 ,p_reference_date_3 => l_array_reference_date_3(Idx)
61901 ,p_reference_date_4 => l_array_reference_date_4(Idx)
61902 ,p_event_created_by => l_array_event_created_by(Idx)
61903 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
61904 --
61905 END IF;
61906
61907
61908
61909 --
61910 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
61911
61912 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
61913
61914 IF l_continue_with_lines THEN
61915 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
61916 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
61917
61918 xla_accounting_err_pkg.build_message
61919 (p_appli_s_name => 'XLA'
61920 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
61921 ,p_token_1 => 'LINE_NUMBER'
61922 ,p_value_1 => l_array_extract_line_num(Idx)
61923 ,p_token_2 => 'PRODUCT_NAME'
61924 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
61925 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
61926 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
61927 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
61928
61929 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
61930 --
61931 -- following sets the accounting attributes needed to reverse
61932 -- accounting for a distributeion
61933 --
61934
61935 --
61936 -- 5217187
61937 --
61938 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
61939 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
61940 g_array_event(l_event_id).array_value_num('header_index'));
61941 --
61942 --
61943
61944 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
61945 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
61946 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
61947 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
61948 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
61949 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
61953 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
61950 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
61951 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_44(Idx);
61952 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
61954 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
61955 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_45(Idx);
61956 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
61957 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
61958 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
61959 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
61960 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
61961 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
61962 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
61963 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
61964 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
61965 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
61966 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
61967 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_44(Idx);
61968 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
61969 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
61970 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
61971 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_45(Idx);
61972 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
61973 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
61974 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
61975 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
61976 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
61977 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
61978 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
61979 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
61980 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
61981 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
61982 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
61983 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
61984 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
61985 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
61986 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_CR_ACCT_CLASS';
61987 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_53(Idx);
61988 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_CR_CCID';
61989 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_2(Idx);
61990 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_CR_ENTERED_AMT';
61991 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_46(Idx);
61992 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_CR_ENTERED_CURR';
61993 l_rec_rev_acct_attrs.array_char_value(26) := l_array_source_25(Idx);
61994 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_CR_LEDGER_AMT';
61995 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_46(Idx);
61996 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
61997 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_54(Idx);
61998 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
61999 l_rec_rev_acct_attrs.array_num_value(29) := l_array_source_2(Idx);
62000 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
62001 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_46(Idx);
62002 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
62003 l_rec_rev_acct_attrs.array_char_value(31) := l_array_source_25(Idx);
62004 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
62005 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_46(Idx);
62006 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
62007 l_rec_rev_acct_attrs.array_char_value(33) := l_array_source_55(Idx);
62008 l_rec_rev_acct_attrs.array_acct_attr_code(34) := 'REVERSED_DISTRIBUTION_ID1';
62009 l_rec_rev_acct_attrs.array_num_value(34) := g_array_event(l_event_id).array_value_num('source_32');
62010 l_rec_rev_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_ID2';
62011 l_rec_rev_acct_attrs.array_num_value(35) := l_array_source_35(Idx);
62012 l_rec_rev_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_TYPE';
62013 l_rec_rev_acct_attrs.array_char_value(36) := l_array_source_34(Idx);
62014 l_rec_rev_acct_attrs.array_acct_attr_code(37) := 'UPG_CR_ENC_TYPE_ID';
62015 l_rec_rev_acct_attrs.array_num_value(37) := l_array_source_56(Idx);
62016 l_rec_rev_acct_attrs.array_acct_attr_code(38) := 'UPG_DR_ENC_TYPE_ID';
62017 l_rec_rev_acct_attrs.array_num_value(38) := l_array_source_57(Idx);
62018
62019
62020 xla_ae_lines_pkg.SetAcctReversalAttrs
62021 (p_event_id => l_event_id
62022 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
62026
62023 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62024 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
62025 END IF;
62027 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
62028 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
62029
62030 --
62031 AcctLineType_25 (
62032 p_application_id => p_application_id
62033 ,p_event_id => l_event_id
62034 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62035 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62036 ,p_actual_flag => l_actual_flag
62037 ,p_balance_type_code => l_balance_type_code
62038 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62039
62040 , p_source_2 => l_array_source_2(Idx)
62041 , p_source_3 => l_array_source_3(Idx)
62042 , p_source_4 => l_array_source_4(Idx)
62043 , p_source_5 => l_array_source_5(Idx)
62044 , p_source_6 => l_array_source_6(Idx)
62045 , p_source_22 => l_array_source_22(Idx)
62046 , p_source_23 => l_array_source_23(Idx)
62047 , p_source_25 => l_array_source_25(Idx)
62048 , p_source_27 => l_array_source_27(Idx)
62049 , p_source_28 => l_array_source_28(Idx)
62050 , p_source_29 => l_array_source_29(Idx)
62051 , p_source_30 => l_array_source_30(Idx)
62052 , p_source_31 => l_array_source_31(Idx)
62053 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62054 , p_source_33 => l_array_source_33(Idx)
62055 , p_source_34 => l_array_source_34(Idx)
62056 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62057 , p_source_35 => l_array_source_35(Idx)
62058 , p_source_44 => l_array_source_44(Idx)
62059 , p_source_45 => l_array_source_45(Idx)
62060 , p_source_46 => l_array_source_46(Idx)
62061 , p_source_47 => l_array_source_47(Idx)
62062 , p_source_48 => l_array_source_48(Idx)
62063 , p_source_49 => l_array_source_49(Idx)
62064 , p_source_50 => l_array_source_50(Idx)
62065 , p_source_51 => l_array_source_51(Idx)
62066 , p_source_52 => l_array_source_52(Idx)
62067 , p_source_53 => l_array_source_53(Idx)
62068 , p_source_54 => l_array_source_54(Idx)
62069 , p_source_55 => l_array_source_55(Idx)
62070 , p_source_56 => l_array_source_56(Idx)
62071 , p_source_57 => l_array_source_57(Idx)
62072 );
62073 If(l_balance_type_code = 'A') THEN
62074 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62075 END IF;
62076
62077 --
62078
62079
62080 --
62081 AcctLineType_28 (
62082 p_application_id => p_application_id
62083 ,p_event_id => l_event_id
62084 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62085 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62086 ,p_actual_flag => l_actual_flag
62087 ,p_balance_type_code => l_balance_type_code
62088 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62089
62090 , p_source_2 => l_array_source_2(Idx)
62091 , p_source_3 => l_array_source_3(Idx)
62092 , p_source_4 => l_array_source_4(Idx)
62093 , p_source_6 => l_array_source_6(Idx)
62094 , p_source_7 => l_array_source_7(Idx)
62095 , p_source_22 => l_array_source_22(Idx)
62096 , p_source_23 => l_array_source_23(Idx)
62097 , p_source_25 => l_array_source_25(Idx)
62098 , p_source_27 => l_array_source_27(Idx)
62099 , p_source_28 => l_array_source_28(Idx)
62100 , p_source_29 => l_array_source_29(Idx)
62101 , p_source_30 => l_array_source_30(Idx)
62102 , p_source_31 => l_array_source_31(Idx)
62103 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62104 , p_source_33 => l_array_source_33(Idx)
62105 , p_source_34 => l_array_source_34(Idx)
62106 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62107 , p_source_35 => l_array_source_35(Idx)
62108 , p_source_44 => l_array_source_44(Idx)
62109 , p_source_45 => l_array_source_45(Idx)
62110 , p_source_46 => l_array_source_46(Idx)
62111 , p_source_47 => l_array_source_47(Idx)
62112 , p_source_48 => l_array_source_48(Idx)
62113 , p_source_49 => l_array_source_49(Idx)
62114 , p_source_50 => l_array_source_50(Idx)
62115 , p_source_51 => l_array_source_51(Idx)
62116 , p_source_52 => l_array_source_52(Idx)
62117 , p_source_53 => l_array_source_53(Idx)
62118 , p_source_54 => l_array_source_54(Idx)
62119 , p_source_55 => l_array_source_55(Idx)
62120 , p_source_56 => l_array_source_56(Idx)
62121 , p_source_57 => l_array_source_57(Idx)
62122 );
62123 If(l_balance_type_code = 'A') THEN
62124 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62125 END IF;
62126
62127 --
62128
62129
62130 --
62131 AcctLineType_90 (
62132 p_application_id => p_application_id
62133 ,p_event_id => l_event_id
62134 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62135 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62136 ,p_actual_flag => l_actual_flag
62137 ,p_balance_type_code => l_balance_type_code
62138 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62139
62140 , p_source_2 => l_array_source_2(Idx)
62141 , p_source_3 => l_array_source_3(Idx)
62142 , p_source_6 => l_array_source_6(Idx)
62143 , p_source_22 => l_array_source_22(Idx)
62144 , p_source_23 => l_array_source_23(Idx)
62145 , p_source_25 => l_array_source_25(Idx)
62146 , p_source_27 => l_array_source_27(Idx)
62147 , p_source_28 => l_array_source_28(Idx)
62148 , p_source_29 => l_array_source_29(Idx)
62149 , p_source_30 => l_array_source_30(Idx)
62150 , p_source_31 => l_array_source_31(Idx)
62151 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62152 , p_source_33 => l_array_source_33(Idx)
62156 , p_source_44 => l_array_source_44(Idx)
62153 , p_source_34 => l_array_source_34(Idx)
62154 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62155 , p_source_35 => l_array_source_35(Idx)
62157 , p_source_45 => l_array_source_45(Idx)
62158 , p_source_46 => l_array_source_46(Idx)
62159 , p_source_47 => l_array_source_47(Idx)
62160 , p_source_48 => l_array_source_48(Idx)
62161 , p_source_49 => l_array_source_49(Idx)
62162 , p_source_50 => l_array_source_50(Idx)
62163 , p_source_51 => l_array_source_51(Idx)
62164 , p_source_52 => l_array_source_52(Idx)
62165 , p_source_53 => l_array_source_53(Idx)
62166 , p_source_54 => l_array_source_54(Idx)
62167 , p_source_55 => l_array_source_55(Idx)
62168 , p_source_56 => l_array_source_56(Idx)
62169 , p_source_57 => l_array_source_57(Idx)
62170 );
62171 If(l_balance_type_code = 'A') THEN
62172 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62173 END IF;
62174
62175 --
62176
62177
62178 --
62179 AcctLineType_94 (
62180 p_application_id => p_application_id
62181 ,p_event_id => l_event_id
62182 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62183 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62184 ,p_actual_flag => l_actual_flag
62185 ,p_balance_type_code => l_balance_type_code
62186 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62187
62188 , p_source_2 => l_array_source_2(Idx)
62189 , p_source_3 => l_array_source_3(Idx)
62190 , p_source_6 => l_array_source_6(Idx)
62191 , p_source_22 => l_array_source_22(Idx)
62192 , p_source_23 => l_array_source_23(Idx)
62193 , p_source_25 => l_array_source_25(Idx)
62194 , p_source_27 => l_array_source_27(Idx)
62195 , p_source_28 => l_array_source_28(Idx)
62196 , p_source_29 => l_array_source_29(Idx)
62197 , p_source_30 => l_array_source_30(Idx)
62198 , p_source_31 => l_array_source_31(Idx)
62199 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62200 , p_source_33 => l_array_source_33(Idx)
62201 , p_source_34 => l_array_source_34(Idx)
62202 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62203 , p_source_35 => l_array_source_35(Idx)
62204 , p_source_44 => l_array_source_44(Idx)
62205 , p_source_45 => l_array_source_45(Idx)
62206 , p_source_46 => l_array_source_46(Idx)
62207 , p_source_47 => l_array_source_47(Idx)
62208 , p_source_48 => l_array_source_48(Idx)
62209 , p_source_49 => l_array_source_49(Idx)
62210 , p_source_50 => l_array_source_50(Idx)
62211 , p_source_51 => l_array_source_51(Idx)
62212 , p_source_52 => l_array_source_52(Idx)
62213 , p_source_53 => l_array_source_53(Idx)
62214 , p_source_54 => l_array_source_54(Idx)
62215 , p_source_55 => l_array_source_55(Idx)
62216 , p_source_56 => l_array_source_56(Idx)
62217 , p_source_57 => l_array_source_57(Idx)
62218 , p_source_69 => l_array_source_69(Idx)
62219 , p_source_69_meaning => l_array_source_69_meaning(Idx)
62220 , p_source_70 => l_array_source_70(Idx)
62221 );
62222 If(l_balance_type_code = 'A') THEN
62223 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62224 END IF;
62225
62226 --
62227
62228
62229 --
62230 AcctLineType_97 (
62231 p_application_id => p_application_id
62232 ,p_event_id => l_event_id
62233 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62234 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62235 ,p_actual_flag => l_actual_flag
62236 ,p_balance_type_code => l_balance_type_code
62237 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62238
62239 , p_source_2 => l_array_source_2(Idx)
62240 , p_source_3 => l_array_source_3(Idx)
62241 , p_source_6 => l_array_source_6(Idx)
62242 , p_source_22 => l_array_source_22(Idx)
62243 , p_source_23 => l_array_source_23(Idx)
62244 , p_source_25 => l_array_source_25(Idx)
62245 , p_source_27 => l_array_source_27(Idx)
62246 , p_source_28 => l_array_source_28(Idx)
62247 , p_source_29 => l_array_source_29(Idx)
62248 , p_source_30 => l_array_source_30(Idx)
62249 , p_source_31 => l_array_source_31(Idx)
62250 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62251 , p_source_33 => l_array_source_33(Idx)
62252 , p_source_34 => l_array_source_34(Idx)
62253 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62254 , p_source_35 => l_array_source_35(Idx)
62255 , p_source_44 => l_array_source_44(Idx)
62256 , p_source_45 => l_array_source_45(Idx)
62257 , p_source_46 => l_array_source_46(Idx)
62258 , p_source_47 => l_array_source_47(Idx)
62259 , p_source_48 => l_array_source_48(Idx)
62260 , p_source_49 => l_array_source_49(Idx)
62261 , p_source_50 => l_array_source_50(Idx)
62262 , p_source_51 => l_array_source_51(Idx)
62263 , p_source_52 => l_array_source_52(Idx)
62264 , p_source_53 => l_array_source_53(Idx)
62265 , p_source_54 => l_array_source_54(Idx)
62266 , p_source_55 => l_array_source_55(Idx)
62267 , p_source_56 => l_array_source_56(Idx)
62268 , p_source_57 => l_array_source_57(Idx)
62269 , p_source_69 => l_array_source_69(Idx)
62270 , p_source_69_meaning => l_array_source_69_meaning(Idx)
62271 , p_source_71 => l_array_source_71(Idx)
62272 , p_source_72 => l_array_source_72(Idx)
62273 );
62274 If(l_balance_type_code = 'A') THEN
62275 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62276 END IF;
62277
62278 --
62279
62280
62281 --
62282 AcctLineType_100 (
62283 p_application_id => p_application_id
62284 ,p_event_id => l_event_id
62285 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62286 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62290
62287 ,p_actual_flag => l_actual_flag
62288 ,p_balance_type_code => l_balance_type_code
62289 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62291 , p_source_2 => l_array_source_2(Idx)
62292 , p_source_3 => l_array_source_3(Idx)
62293 , p_source_6 => l_array_source_6(Idx)
62294 , p_source_22 => l_array_source_22(Idx)
62295 , p_source_23 => l_array_source_23(Idx)
62296 , p_source_25 => l_array_source_25(Idx)
62297 , p_source_27 => l_array_source_27(Idx)
62298 , p_source_28 => l_array_source_28(Idx)
62299 , p_source_29 => l_array_source_29(Idx)
62300 , p_source_30 => l_array_source_30(Idx)
62301 , p_source_31 => l_array_source_31(Idx)
62302 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62303 , p_source_33 => l_array_source_33(Idx)
62304 , p_source_34 => l_array_source_34(Idx)
62305 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62306 , p_source_35 => l_array_source_35(Idx)
62307 , p_source_44 => l_array_source_44(Idx)
62308 , p_source_45 => l_array_source_45(Idx)
62309 , p_source_46 => l_array_source_46(Idx)
62310 , p_source_53 => l_array_source_53(Idx)
62311 , p_source_54 => l_array_source_54(Idx)
62312 , p_source_55 => l_array_source_55(Idx)
62313 , p_source_56 => l_array_source_56(Idx)
62314 , p_source_57 => l_array_source_57(Idx)
62315 , p_source_69 => l_array_source_69(Idx)
62316 , p_source_69_meaning => l_array_source_69_meaning(Idx)
62317 , p_source_70 => l_array_source_70(Idx)
62318 , p_source_73 => l_array_source_73(Idx)
62319 , p_source_74 => l_array_source_74(Idx)
62320 , p_source_75 => l_array_source_75(Idx)
62321 , p_source_76 => l_array_source_76(Idx)
62322 , p_source_77 => l_array_source_77(Idx)
62323 , p_source_78 => l_array_source_78(Idx)
62324 );
62325 If(l_balance_type_code = 'A') THEN
62326 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62327 END IF;
62328
62329 --
62330
62331
62332 --
62333 AcctLineType_103 (
62334 p_application_id => p_application_id
62335 ,p_event_id => l_event_id
62336 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62337 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62338 ,p_actual_flag => l_actual_flag
62339 ,p_balance_type_code => l_balance_type_code
62340 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62341
62342 , p_source_2 => l_array_source_2(Idx)
62343 , p_source_3 => l_array_source_3(Idx)
62344 , p_source_6 => l_array_source_6(Idx)
62345 , p_source_22 => l_array_source_22(Idx)
62346 , p_source_23 => l_array_source_23(Idx)
62347 , p_source_25 => l_array_source_25(Idx)
62348 , p_source_27 => l_array_source_27(Idx)
62349 , p_source_28 => l_array_source_28(Idx)
62350 , p_source_29 => l_array_source_29(Idx)
62351 , p_source_30 => l_array_source_30(Idx)
62352 , p_source_31 => l_array_source_31(Idx)
62353 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62354 , p_source_33 => l_array_source_33(Idx)
62355 , p_source_34 => l_array_source_34(Idx)
62356 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62357 , p_source_35 => l_array_source_35(Idx)
62358 , p_source_44 => l_array_source_44(Idx)
62359 , p_source_45 => l_array_source_45(Idx)
62360 , p_source_46 => l_array_source_46(Idx)
62361 , p_source_53 => l_array_source_53(Idx)
62362 , p_source_54 => l_array_source_54(Idx)
62363 , p_source_55 => l_array_source_55(Idx)
62364 , p_source_56 => l_array_source_56(Idx)
62365 , p_source_57 => l_array_source_57(Idx)
62366 , p_source_69 => l_array_source_69(Idx)
62367 , p_source_69_meaning => l_array_source_69_meaning(Idx)
62368 , p_source_71 => l_array_source_71(Idx)
62369 , p_source_72 => l_array_source_72(Idx)
62370 , p_source_79 => l_array_source_79(Idx)
62371 , p_source_80 => l_array_source_80(Idx)
62372 , p_source_81 => l_array_source_81(Idx)
62373 , p_source_82 => l_array_source_82(Idx)
62374 , p_source_83 => l_array_source_83(Idx)
62375 , p_source_84 => l_array_source_84(Idx)
62376 );
62377 If(l_balance_type_code = 'A') THEN
62378 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62379 END IF;
62380
62381 --
62382
62383
62384 --
62385 AcctLineType_105 (
62386 p_application_id => p_application_id
62387 ,p_event_id => l_event_id
62388 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62389 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62390 ,p_actual_flag => l_actual_flag
62391 ,p_balance_type_code => l_balance_type_code
62392 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62393
62394 , p_source_2 => l_array_source_2(Idx)
62395 , p_source_3 => l_array_source_3(Idx)
62396 , p_source_6 => l_array_source_6(Idx)
62397 , p_source_22 => l_array_source_22(Idx)
62398 , p_source_23 => l_array_source_23(Idx)
62399 , p_source_25 => l_array_source_25(Idx)
62400 , p_source_27 => l_array_source_27(Idx)
62401 , p_source_28 => l_array_source_28(Idx)
62402 , p_source_29 => l_array_source_29(Idx)
62403 , p_source_30 => l_array_source_30(Idx)
62404 , p_source_31 => l_array_source_31(Idx)
62405 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62406 , p_source_33 => l_array_source_33(Idx)
62407 , p_source_34 => l_array_source_34(Idx)
62408 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62409 , p_source_35 => l_array_source_35(Idx)
62410 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
62411 , p_source_44 => l_array_source_44(Idx)
62412 , p_source_45 => l_array_source_45(Idx)
62413 , p_source_46 => l_array_source_46(Idx)
62414 , p_source_47 => l_array_source_47(Idx)
62415 , p_source_48 => l_array_source_48(Idx)
62419 , p_source_52 => l_array_source_52(Idx)
62416 , p_source_49 => l_array_source_49(Idx)
62417 , p_source_50 => l_array_source_50(Idx)
62418 , p_source_51 => l_array_source_51(Idx)
62420 , p_source_53 => l_array_source_53(Idx)
62421 , p_source_54 => l_array_source_54(Idx)
62422 , p_source_55 => l_array_source_55(Idx)
62423 , p_source_56 => l_array_source_56(Idx)
62424 , p_source_57 => l_array_source_57(Idx)
62425 , p_source_85 => l_array_source_85(Idx)
62426 , p_source_86 => l_array_source_86(Idx)
62427 );
62428 If(l_balance_type_code = 'A') THEN
62429 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62430 END IF;
62431
62432 --
62433
62434
62435 --
62436 AcctLineType_109 (
62437 p_application_id => p_application_id
62438 ,p_event_id => l_event_id
62439 ,p_calculate_acctd_flag => l_calculate_acctd_flag
62440 ,p_calculate_g_l_flag => l_calculate_g_l_flag
62441 ,p_actual_flag => l_actual_flag
62442 ,p_balance_type_code => l_balance_type_code
62443 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
62444
62445 , p_source_2 => l_array_source_2(Idx)
62446 , p_source_3 => l_array_source_3(Idx)
62447 , p_source_6 => l_array_source_6(Idx)
62448 , p_source_22 => l_array_source_22(Idx)
62449 , p_source_23 => l_array_source_23(Idx)
62450 , p_source_25 => l_array_source_25(Idx)
62451 , p_source_27 => l_array_source_27(Idx)
62452 , p_source_28 => l_array_source_28(Idx)
62453 , p_source_29 => l_array_source_29(Idx)
62454 , p_source_30 => l_array_source_30(Idx)
62455 , p_source_31 => l_array_source_31(Idx)
62456 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
62457 , p_source_33 => l_array_source_33(Idx)
62458 , p_source_34 => l_array_source_34(Idx)
62459 , p_source_34_meaning => l_array_source_34_meaning(Idx)
62460 , p_source_35 => l_array_source_35(Idx)
62461 , p_source_44 => l_array_source_44(Idx)
62462 , p_source_45 => l_array_source_45(Idx)
62463 , p_source_46 => l_array_source_46(Idx)
62464 , p_source_53 => l_array_source_53(Idx)
62465 , p_source_54 => l_array_source_54(Idx)
62466 , p_source_55 => l_array_source_55(Idx)
62467 , p_source_56 => l_array_source_56(Idx)
62468 , p_source_57 => l_array_source_57(Idx)
62469 , p_source_69 => l_array_source_69(Idx)
62470 , p_source_69_meaning => l_array_source_69_meaning(Idx)
62471 , p_source_71 => l_array_source_71(Idx)
62472 , p_source_72 => l_array_source_72(Idx)
62473 , p_source_79 => l_array_source_79(Idx)
62474 , p_source_80 => l_array_source_80(Idx)
62475 , p_source_81 => l_array_source_81(Idx)
62476 , p_source_82 => l_array_source_82(Idx)
62477 , p_source_83 => l_array_source_83(Idx)
62478 , p_source_84 => l_array_source_84(Idx)
62479 );
62480 If(l_balance_type_code = 'A') THEN
62481 l_actual_gain_loss_ref := l_gain_or_loss_ref;
62482 END IF;
62483
62484 --
62485
62486 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
62487 -- or secondary ledger that has different currency with primary
62488 -- or alc that is calculated by sla
62489 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
62490 (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'))
62491
62492 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
62493 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
62494 AND (l_actual_flag = 'A')) THEN
62495 XLA_AE_LINES_PKG.CreateGainOrLossLines(
62496 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
62497 ,p_application_id => p_application_id
62498 ,p_amb_context_code => 'DEFAULT'
62499 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
62500 ,p_event_class_code => C_EVENT_CLASS_CODE
62501 ,p_event_type_code => C_EVENT_TYPE_CODE
62502
62503 ,p_gain_ccid => -1
62504 ,p_loss_ccid => -1
62505
62506 ,p_actual_flag => l_actual_flag
62507 ,p_enc_flag => null
62508 ,p_actual_g_l_ref => l_actual_gain_loss_ref
62509 ,p_enc_g_l_ref => null
62510 );
62511 END IF;
62512 END IF;
62513 END IF;
62514
62515 ELSE
62516 --
62517 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
62518 --
62519 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62520 trace
62521 (p_msg => 'Trancaction revesal option is Y'
62522 ,p_level => C_LEVEL_STATEMENT
62523 ,p_module => l_log_module);
62524 END IF;
62525 END IF;
62526
62527 END LOOP;
62528 l_result := XLA_AE_LINES_PKG.InsertLines ;
62529 end loop;
62530 close line_cur;
62531
62532
62533 --
62534 -- insert headers into xla_ae_headers_gt table
62535 --
62536 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
62537
62538 -- insert into errors table here.
62539
62540 END LOOP;
62541
62542 --
62543 -- 4865292
62544 --
62545 -- Compare g_hdr_extract_count with event count in
62546 -- CreateHeadersAndLines.
62547 --
62548 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
62549
62553 || g_hdr_extract_count
62550 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62551 trace (p_msg => '# rows extracted from header extract objects '
62552 || ' (running total): '
62554 ,p_level => C_LEVEL_STATEMENT
62555 ,p_module => l_log_module);
62556 END IF;
62557
62558 CLOSE header_cur;
62559 --
62560
62561 --
62562 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62563 trace
62564 (p_msg => 'END of EventClass_114'
62565 ,p_level => C_LEVEL_PROCEDURE
62566 ,p_module => l_log_module);
62567 END IF;
62568 --
62569 RETURN l_result;
62570 EXCEPTION
62571 WHEN xla_exceptions_pkg.application_exception THEN
62572
62573 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
62574
62575
62576 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
62577
62578 RAISE;
62579 WHEN OTHERS THEN
62580 xla_exceptions_pkg.raise_message
62581 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_114');
62582 END EventClass_114;
62583 --
62584
62585 ---------------------------------------
62586 --
62587 -- PRIVATE PROCEDURE
62588 -- insert_sources_115
62589 --
62590 ----------------------------------------
62591 --
62592 PROCEDURE insert_sources_115(
62593 p_target_ledger_id IN NUMBER
62594 , p_language IN VARCHAR2
62595 , p_sla_ledger_id IN NUMBER
62596 , p_pad_start_date IN DATE
62597 , p_pad_end_date IN DATE
62598 )
62599 IS
62600
62601 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ_ALL';
62602 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ';
62603 p_apps_owner VARCHAR2(30);
62604 l_log_module VARCHAR2(240);
62605 BEGIN
62606 IF g_log_enabled THEN
62607 l_log_module := C_DEFAULT_MODULE||'.insert_sources_115';
62608 END IF;
62609 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62610
62611 trace
62612 (p_msg => 'BEGIN of insert_sources_115'
62613 ,p_level => C_LEVEL_PROCEDURE
62614 ,p_module => l_log_module);
62615
62616 END IF;
62617
62618 -- select APPS owner
62619 SELECT oracle_username
62620 INTO p_apps_owner
62621 FROM fnd_oracle_userid
62622 WHERE read_only_flag = 'U'
62623 ;
62624
62625 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62626 trace
62627 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
62628 ' - p_language = '||p_language||
62629 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
62630 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
62631 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
62632 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
62633 ,p_level => C_LEVEL_STATEMENT
62634 ,p_module => l_log_module);
62635 END IF;
62636
62637
62638 --
62639 INSERT INTO xla_diag_sources --hdr2
62640 (
62641 event_id
62642 , ledger_id
62643 , sla_ledger_id
62644 , description_language
62645 , object_name
62646 , object_type_code
62647 , line_number
62648 , source_application_id
62649 , source_type_code
62650 , source_code
62651 , source_value
62652 , source_meaning
62653 , created_by
62654 , creation_date
62655 , last_update_date
62656 , last_updated_by
62657 , last_update_login
62658 , program_update_date
62659 , program_application_id
62660 , program_id
62661 , request_id
62662 )
62663 SELECT
62664 event_id
62665 , p_target_ledger_id
62666 , p_sla_ledger_id
62667 , p_language
62668 , object_name
62669 , object_type_code
62670 , line_number
62671 , source_application_id
62672 , source_type_code
62673 , source_code
62674 , SUBSTR(source_value ,1,1996)
62675 , SUBSTR(source_meaning ,1,200)
62676 , xla_environment_pkg.g_Usr_Id
62677 , TRUNC(SYSDATE)
62678 , TRUNC(SYSDATE)
62679 , xla_environment_pkg.g_Usr_Id
62680 , xla_environment_pkg.g_Login_Id
62681 , TRUNC(SYSDATE)
62682 , xla_environment_pkg.g_Prog_Appl_Id
62683 , xla_environment_pkg.g_Prog_Id
62684 , xla_environment_pkg.g_Req_Id
62685 FROM (
62686 SELECT xet.event_id event_id
62687 , 0 line_number
62688 , CASE r
62689 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
62690 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
62691
62692 ELSE null
62693 END object_name
62694 , CASE r
62695 WHEN 1 THEN 'HEADER'
62696 WHEN 2 THEN 'HEADER'
62697
62698 ELSE null
62699 END object_type_code
62700 , CASE r
62704 ELSE null
62701 WHEN 1 THEN '275'
62702 WHEN 2 THEN '275'
62703
62705 END source_application_id
62706 , 'S' source_type_code
62707 , CASE r
62708 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
62709 WHEN 2 THEN 'GL_DATE'
62710
62711 ELSE null
62712 END source_code
62713 , CASE r
62714 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
62715 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
62716
62717 ELSE null
62718 END source_value
62719 , null source_meaning
62720 FROM xla_events_gt xet
62721 , PA_XLA_EXP_HEADER_V h2
62722 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
62723 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
62724 AND xet.event_class_code = C_EVENT_CLASS_CODE
62725 AND h2.event_id = xet.event_id
62726
62727 )
62728 ;
62729 --
62730 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62731
62732 trace
62733 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
62734 ,p_level => C_LEVEL_STATEMENT
62735 ,p_module => l_log_module);
62736
62737 END IF;
62738 --
62739
62740
62741
62742 --
62743 INSERT INTO xla_diag_sources --line2
62744 (
62745 event_id
62746 , ledger_id
62747 , sla_ledger_id
62748 , description_language
62749 , object_name
62750 , object_type_code
62751 , line_number
62752 , source_application_id
62753 , source_type_code
62754 , source_code
62755 , source_value
62756 , source_meaning
62757 , created_by
62758 , creation_date
62759 , last_update_date
62760 , last_updated_by
62761 , last_update_login
62762 , program_update_date
62763 , program_application_id
62764 , program_id
62765 , request_id
62766 )
62767 SELECT event_id
62768 , p_target_ledger_id
62769 , p_sla_ledger_id
62770 , p_language
62771 , object_name
62772 , object_type_code
62773 , line_number
62774 , source_application_id
62775 , source_type_code
62776 , source_code
62777 , SUBSTR(source_value,1,1996)
62778 , SUBSTR(source_meaning ,1,200)
62779 , xla_environment_pkg.g_Usr_Id
62780 , TRUNC(SYSDATE)
62781 , TRUNC(SYSDATE)
62782 , xla_environment_pkg.g_Usr_Id
62783 , xla_environment_pkg.g_Login_Id
62784 , TRUNC(SYSDATE)
62785 , xla_environment_pkg.g_Prog_Appl_Id
62786 , xla_environment_pkg.g_Prog_Id
62787 , xla_environment_pkg.g_Req_Id
62788 FROM (
62789 SELECT xet.event_id event_id
62790 , l1.line_number line_number
62791 , CASE r
62792 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
62793 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
62794 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
62795 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
62796 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
62797 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
62798 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
62799 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
62800 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
62801 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
62802 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
62803 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
62804 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
62805 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
62806 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
62807 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
62808 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
62809 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
62810
62811 ELSE null
62812 END object_name
62813 , CASE r
62814 WHEN 1 THEN 'LINE'
62815 WHEN 2 THEN 'LINE'
62816 WHEN 3 THEN 'LINE'
62817 WHEN 4 THEN 'LINE'
62818 WHEN 5 THEN 'LINE'
62819 WHEN 6 THEN 'LINE'
62820 WHEN 7 THEN 'LINE'
62821 WHEN 8 THEN 'LINE'
62822 WHEN 9 THEN 'LINE'
62823 WHEN 10 THEN 'LINE'
62824 WHEN 11 THEN 'LINE'
62825 WHEN 12 THEN 'LINE'
62826 WHEN 13 THEN 'LINE'
62827 WHEN 14 THEN 'LINE'
62828 WHEN 15 THEN 'LINE'
62829 WHEN 16 THEN 'LINE'
62830 WHEN 17 THEN 'LINE'
62831 WHEN 18 THEN 'LINE'
62832
62833 ELSE null
62834 END object_type_code
62835 , CASE r
62836 WHEN 1 THEN '275'
62837 WHEN 2 THEN '275'
62838 WHEN 3 THEN '275'
62839 WHEN 4 THEN '275'
62840 WHEN 5 THEN '275'
62841 WHEN 6 THEN '275'
62845 WHEN 10 THEN '275'
62842 WHEN 7 THEN '275'
62843 WHEN 8 THEN '275'
62844 WHEN 9 THEN '275'
62846 WHEN 11 THEN '275'
62847 WHEN 12 THEN '275'
62848 WHEN 13 THEN '275'
62849 WHEN 14 THEN '275'
62850 WHEN 15 THEN '275'
62851 WHEN 16 THEN '275'
62852 WHEN 17 THEN '275'
62853 WHEN 18 THEN '275'
62854
62855 ELSE null
62856 END source_application_id
62857 , 'S' source_type_code
62858 , CASE r
62859 WHEN 1 THEN 'COST_CCID'
62860 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
62861 WHEN 3 THEN 'ADJ_COST_CCID'
62862 WHEN 4 THEN 'COST_CLEARING_CCID'
62863 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
62864 WHEN 6 THEN 'REVERSING_LINE_FLAG'
62865 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
62866 WHEN 8 THEN 'ENTERED_RAW_COST'
62867 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
62868 WHEN 10 THEN 'ACCT_RAW_COST'
62869 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
62870 WHEN 12 THEN 'EXCHANGE_RATE'
62871 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
62872 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
62873 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
62874 WHEN 16 THEN 'LINE_NUMBER'
62875 WHEN 17 THEN 'LINE_TYPE'
62876 WHEN 18 THEN 'LINE_NUM_REVERSED'
62877
62878 ELSE null
62879 END source_code
62880 , CASE r
62881 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
62882 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
62883 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
62884 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
62885 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
62886 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
62887 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
62888 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
62889 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
62890 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
62891 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
62892 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
62893 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
62894 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
62895 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
62896 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
62897 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
62898 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
62899
62900 ELSE null
62901 END source_value
62902 , CASE r
62903 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
62904 103371
62905 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
62906 ,'ALLOW_OVERRIDE_CCID_FLAG'
62907 ,'S'
62908 ,275)
62909 WHEN 17 THEN fvl34.meaning
62910
62911 ELSE null
62912 END source_meaning
62913 FROM xla_events_gt xet
62914 , PA_XLA_CDL_LINES_V l1
62915 , fnd_lookup_values fvl34
62916 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
62917 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
62918 AND xet.event_class_code = C_EVENT_CLASS_CODE
62919 AND l1.event_id = xet.event_id
62920 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
62921 AND fvl34.lookup_code(+) = l1.LINE_TYPE
62922 AND fvl34.view_application_id(+) = 275
62923 AND fvl34.language(+) = USERENV('LANG')
62924
62925 )
62926 ;
62927 --
62928 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
62929
62930 trace
62931 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
62932 ,p_level => C_LEVEL_STATEMENT
62933 ,p_module => l_log_module);
62934
62935 END IF;
62936
62937
62938 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
62939 trace
62940 (p_msg => 'END of insert_sources_115'
62941 ,p_level => C_LEVEL_PROCEDURE
62942 ,p_module => l_log_module);
62943 END IF;
62944 EXCEPTION
62945 WHEN xla_exceptions_pkg.application_exception THEN
62946 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
62947 trace
62948 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
62949 ,p_level => C_LEVEL_EXCEPTION
62950 ,p_module => l_log_module);
62951 END IF;
62952 RAISE;
62953 WHEN OTHERS THEN
62954 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
62955 trace
62956 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
62957 ,p_level => C_LEVEL_EXCEPTION
62958 ,p_module => l_log_module);
62959 END IF;
62960 xla_exceptions_pkg.raise_message
62964
62961 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_115');
62962 END insert_sources_115;
62963 --
62965 ---------------------------------------
62966 --
62967 -- PRIVATE FUNCTION
62968 -- EventClass_115
62969 --
62970 ----------------------------------------
62971 --
62972 FUNCTION EventClass_115
62973 (p_application_id IN NUMBER
62974 ,p_base_ledger_id IN NUMBER
62975 ,p_target_ledger_id IN NUMBER
62976 ,p_language IN VARCHAR2
62977 ,p_currency_code IN VARCHAR2
62978 ,p_sla_ledger_id IN NUMBER
62979 ,p_pad_start_date IN DATE
62980 ,p_pad_end_date IN DATE
62981 ,p_primary_ledger_id IN NUMBER)
62982 RETURN BOOLEAN IS
62983 --
62984 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ_ALL';
62985 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ADJ';
62986
62987 l_calculate_acctd_flag VARCHAR2(1) :='N';
62988 l_calculate_g_l_flag VARCHAR2(1) :='N';
62989 --
62990 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
62991 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
62992 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
62993 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
62994 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
62995 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
62996 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
62997 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
62998 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
62999 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63000 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63001 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63002 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63003 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
63004 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63005 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63006 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63007 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
63008 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63009 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63010 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63011 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
63012 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
63013 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
63014
63015 l_event_id NUMBER;
63016 l_previous_event_id NUMBER;
63017 l_first_event_id NUMBER;
63018 l_last_event_id NUMBER;
63019
63020 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
63021 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
63022 --
63023 --
63024 l_result BOOLEAN := TRUE;
63025 l_rows NUMBER := 1000;
63026 l_event_type_name VARCHAR2(80) := 'All';
63027 l_event_class_name VARCHAR2(80) := 'Inventory Cost Adjustment';
63028 l_description VARCHAR2(4000);
63029 l_transaction_reversal NUMBER;
63030 l_ae_header_id NUMBER;
63031 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
63032 l_log_module VARCHAR2(240);
63033 --
63034 l_acct_reversal_source VARCHAR2(30);
63035 l_trx_reversal_source VARCHAR2(30);
63036
63037 l_continue_with_lines BOOLEAN := TRUE;
63038 --
63039 l_acc_rev_gl_date_source DATE; -- 4262811
63040 --
63041 type t_array_event_id is table of number index by binary_integer;
63042
63043 l_rec_array_event t_rec_array_event;
63044 l_null_rec_array_event t_rec_array_event;
63045 l_array_ae_header_id xla_number_array_type;
63046 l_actual_flag VARCHAR2(1) := NULL;
63047 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
63048 l_balance_type_code VARCHAR2(1) :=NULL;
63049 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
63050
63051 --
63052 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
63053 --
63054
63055 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
63056 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
63057
63058 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
63059 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
63060 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
63061 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
63062 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
63063 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
63067 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
63064 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
63065 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
63066 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
63068 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
63069 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
63070 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
63071 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
63072 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
63073 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
63074 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
63075 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
63076
63077 l_array_source_32 t_array_source_32;
63078 l_array_source_87 t_array_source_87;
63079
63080 l_array_source_3 t_array_source_3;
63081 l_array_source_4 t_array_source_4;
63082 l_array_source_5 t_array_source_5;
63083 l_array_source_6 t_array_source_6;
63084 l_array_source_7 t_array_source_7;
63085 l_array_source_22 t_array_source_22;
63086 l_array_source_23 t_array_source_23;
63087 l_array_source_24 t_array_source_24;
63088 l_array_source_25 t_array_source_25;
63089 l_array_source_26 t_array_source_26;
63090 l_array_source_27 t_array_source_27;
63091 l_array_source_28 t_array_source_28;
63092 l_array_source_29 t_array_source_29;
63093 l_array_source_30 t_array_source_30;
63094 l_array_source_31 t_array_source_31;
63095 l_array_source_33 t_array_source_33;
63096 l_array_source_34 t_array_source_34;
63097 l_array_source_34_meaning t_array_lookup_meaning;
63098 l_array_source_35 t_array_source_35;
63099
63100 --
63101 CURSOR header_cur
63102 IS
63103 SELECT /*+ leading(xet) cardinality(xet,1) */
63104 -- Event Class Code: INVENTORY_COST_ADJ
63105 xet.entity_id
63106 ,xet.legal_entity_id
63107 ,xet.entity_code
63108 ,xet.transaction_number
63109 ,xet.event_id
63110 ,xet.event_class_code
63111 ,xet.event_type_code
63112 ,xet.event_number
63113 ,xet.event_date
63114 ,xet.transaction_date
63115 ,xet.reference_num_1
63116 ,xet.reference_num_2
63117 ,xet.reference_num_3
63118 ,xet.reference_num_4
63119 ,xet.reference_char_1
63120 ,xet.reference_char_2
63121 ,xet.reference_char_3
63122 ,xet.reference_char_4
63123 ,xet.reference_date_1
63124 ,xet.reference_date_2
63125 ,xet.reference_date_3
63126 ,xet.reference_date_4
63127 ,xet.event_created_by
63128 ,xet.budgetary_control_flag
63129 , h2.EXPENDITURE_ITEM_ID source_32
63130 , h2.GL_DATE source_87
63131 FROM xla_events_gt xet
63132 , PA_XLA_EXP_HEADER_V h2
63133 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
63134 and xet.event_class_code = C_EVENT_CLASS_CODE
63135 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
63136
63137 ORDER BY event_id
63138 ;
63139
63140
63141 --
63142 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
63143 IS
63144 SELECT /*+ leading(xet) cardinality(xet,1) */
63145 -- Event Class Code: INVENTORY_COST_ADJ
63146 xet.entity_id
63147 ,xet.legal_entity_id
63148 ,xet.entity_code
63149 ,xet.transaction_number
63150 ,xet.event_id
63151 ,xet.event_class_code
63152 ,xet.event_type_code
63153 ,xet.event_number
63154 ,xet.event_date
63155 ,xet.transaction_date
63156 ,xet.reference_num_1
63157 ,xet.reference_num_2
63158 ,xet.reference_num_3
63159 ,xet.reference_num_4
63160 ,xet.reference_char_1
63161 ,xet.reference_char_2
63162 ,xet.reference_char_3
63163 ,xet.reference_char_4
63164 ,xet.reference_date_1
63165 ,xet.reference_date_2
63166 ,xet.reference_date_3
63167 ,xet.reference_date_4
63168 ,xet.event_created_by
63169 ,xet.budgetary_control_flag
63170 , l1.LINE_NUMBER
63171 , l1.COST_CCID source_3
63172 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
63173 , l1.ADJ_COST_CCID source_5
63174 , l1.COST_CLEARING_CCID source_6
63175 , l1.ADJ_COST_CLEARING_CCID source_7
63176 , l1.REVERSING_LINE_FLAG source_22
63177 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
63178 , l1.ENTERED_RAW_COST source_24
63179 , l1.ENTERED_CURRENCY_CODE source_25
63180 , l1.ACCT_RAW_COST source_26
63181 , l1.EXCHANGE_RATE_DATE source_27
63182 , l1.EXCHANGE_RATE source_28
63183 , l1.EXCHANGE_RATE_TYPE source_29
63184 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
63185 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
63186 , l1.LINE_NUMBER source_33
63187 , l1.LINE_TYPE source_34
63188 , fvl34.meaning source_34_meaning
63189 , l1.LINE_NUM_REVERSED source_35
63190 FROM xla_events_gt xet
63194 and xet.event_date between p_pad_start_date and p_pad_end_date
63191 , PA_XLA_CDL_LINES_V l1
63192 , fnd_lookup_values fvl34
63193 WHERE xet.event_id between x_first_event_id and x_last_event_id
63195 and xet.event_class_code = C_EVENT_CLASS_CODE
63196 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
63197 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
63198 AND fvl34.lookup_code(+) = l1.LINE_TYPE
63199 AND fvl34.view_application_id(+) = 275
63200 AND fvl34.language(+) = USERENV('LANG')
63201 ;
63202
63203 --
63204 BEGIN
63205 IF g_log_enabled THEN
63206 l_log_module := C_DEFAULT_MODULE||'.EventClass_115';
63207 END IF;
63208 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63209 trace
63210 (p_msg => 'BEGIN of EventClass_115'
63211 ,p_level => C_LEVEL_PROCEDURE
63212 ,p_module => l_log_module);
63213 END IF;
63214
63215 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63216 trace
63217 (p_msg => 'p_application_id = '||p_application_id||
63218 ' - p_base_ledger_id = '||p_base_ledger_id||
63219 ' - p_target_ledger_id = '||p_target_ledger_id||
63220 ' - p_language = '||p_language||
63221 ' - p_currency_code = '||p_currency_code||
63222 ' - p_sla_ledger_id = '||p_sla_ledger_id
63223 ,p_level => C_LEVEL_STATEMENT
63224 ,p_module => l_log_module);
63225 END IF;
63226 --
63227 -- initialze arrays
63228 --
63229 g_array_event.DELETE;
63230 l_rec_array_event := l_null_rec_array_event;
63231 --
63232 --------------------------------------
63233 -- 4262811 Initialze MPA Line Number
63234 --------------------------------------
63235 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
63236
63237 --
63238
63239 --
63240 OPEN header_cur;
63241 --
63242 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63243 trace
63244 (p_msg => 'SQL - FETCH header_cur'
63245 ,p_level => C_LEVEL_STATEMENT
63246 ,p_module => l_log_module);
63247 END IF;
63248 --
63249 LOOP
63250 FETCH header_cur BULK COLLECT INTO
63251 l_array_entity_id
63252 , l_array_legal_entity_id
63253 , l_array_entity_code
63254 , l_array_transaction_num
63255 , l_array_event_id
63256 , l_array_class_code
63257 , l_array_event_type
63258 , l_array_event_number
63259 , l_array_event_date
63260 , l_array_transaction_date
63261 , l_array_reference_num_1
63262 , l_array_reference_num_2
63263 , l_array_reference_num_3
63264 , l_array_reference_num_4
63265 , l_array_reference_char_1
63266 , l_array_reference_char_2
63267 , l_array_reference_char_3
63268 , l_array_reference_char_4
63269 , l_array_reference_date_1
63270 , l_array_reference_date_2
63271 , l_array_reference_date_3
63272 , l_array_reference_date_4
63273 , l_array_event_created_by
63274 , l_array_budgetary_control_flag
63275 , l_array_source_32
63276 , l_array_source_87
63277 LIMIT l_rows;
63278 --
63279 IF (C_LEVEL_EVENT >= g_log_level) THEN
63280 trace
63281 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
63282 ,p_level => C_LEVEL_EVENT
63283 ,p_module => l_log_module);
63284 END IF;
63285 --
63286 EXIT WHEN l_array_entity_id.COUNT = 0;
63287
63288 -- initialize arrays
63289 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
63290 XLA_AE_LINES_PKG.g_rec_lines := NULL;
63291
63292 --
63293 -- Bug 4458708
63294 --
63295 XLA_AE_LINES_PKG.g_LineNumber := 0;
63296
63297
63298 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
63299 g_last_hdr_idx := l_array_event_id.LAST;
63300 --
63301 -- loop for the headers. Each iteration is for each header extract row
63302 -- fetched in header cursor
63303 --
63304 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
63305
63306 --
63307 -- set event info as cache for other routines to refer event attributes
63308 --
63309 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
63310 (p_application_id => p_application_id
63311 ,p_primary_ledger_id => p_primary_ledger_id
63312 ,p_base_ledger_id => p_base_ledger_id
63313 ,p_target_ledger_id => p_target_ledger_id
63314 ,p_entity_id => l_array_entity_id(hdr_idx)
63315 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
63316 ,p_entity_code => l_array_entity_code(hdr_idx)
63317 ,p_transaction_num => l_array_transaction_num(hdr_idx)
63318 ,p_event_id => l_array_event_id(hdr_idx)
63319 ,p_event_class_code => l_array_class_code(hdr_idx)
63320 ,p_event_type_code => l_array_event_type(hdr_idx)
63321 ,p_event_number => l_array_event_number(hdr_idx)
63322 ,p_event_date => l_array_event_date(hdr_idx)
63323 ,p_transaction_date => l_array_transaction_date(hdr_idx)
63324 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
63325 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
63329 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
63326 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
63327 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
63328 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
63330 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
63331 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
63332 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
63333 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
63334 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
63335 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
63336 ,p_event_created_by => l_array_event_created_by(hdr_idx)
63337 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
63338
63339 --
63340 -- set the status of entry to C_VALID (0)
63341 --
63342 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
63343
63344 --
63345 -- initialize a row for ae header
63346 --
63347 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
63348
63349 l_event_id := l_array_event_id(hdr_idx);
63350
63351 --
63352 -- storing the hdr_idx for event. May be used by line cursor.
63353 --
63354 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
63355
63356 --
63357 -- store sources from header extract. This can be improved to
63358 -- store only those sources from header extract that may be used in lines
63359 --
63360
63361 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
63362 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
63363
63364 --
63365 -- initilaize the status of ae headers for diffrent balance types
63366 -- the status is initialised to C_NOT_CREATED (2)
63367 --
63368 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
63369 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
63370 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
63371
63372 --
63373 -- call api to validate and store accounting attributes for header
63374 --
63375
63376 ------------------------------------------------------------
63377 -- Accrual Reversal : to get date for Standard Source (NONE)
63378 ------------------------------------------------------------
63379 l_acc_rev_gl_date_source := NULL;
63380
63381 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
63382 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
63383
63384
63385 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
63386
63387 XLA_AE_HEADER_PKG.SetJeCategoryName;
63388
63389 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
63390 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
63391 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
63392 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
63393 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
63394
63395
63396 -- No header level analytical criteria
63397
63398 --
63399 --accounting attribute enhancement, bug 3612931
63400 --
63401 l_trx_reversal_source := SUBSTR(NULL, 1,30);
63402
63403 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
63404 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
63405
63406 xla_accounting_err_pkg.build_message
63407 (p_appli_s_name => 'XLA'
63408 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
63409 ,p_token_1 => 'ACCT_ATTR_NAME'
63410 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
63411 ,p_token_2 => 'PRODUCT_NAME'
63412 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
63413 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
63414 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
63415 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
63416
63417 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
63418 --
63419 -- following sets the accounting attributes needed to reverse
63420 -- accounting for a distributeion
63421 --
63422 xla_ae_lines_pkg.SetTrxReversalAttrs
63423 (p_event_id => l_event_id
63424 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
63425 ,p_trx_reversal_source => l_trx_reversal_source);
63426
63427 END IF;
63428
63429
63430 ----------------------------------------------------------------
63431 -- 4262811 - update the header statuses to invalid in need be
63432 ----------------------------------------------------------------
63433 --
63434 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
63435
63436
63437 -----------------------------------------------
63438 -- No accrual reversal for the event class/type
63439 -----------------------------------------------
63440 ----------------------------------------------------------------
63441
63442 --
63443 -- this ends the header loop iteration for one bulk fetch
63444 --
63448 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
63445 END LOOP;
63446
63447 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
63449
63450 --
63451 -- insert dummy rows into lines gt table that were created due to
63452 -- transaction reversals
63453 --
63454 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
63455 l_result := XLA_AE_LINES_PKG.InsertLines;
63456 END IF;
63457
63458 --
63459 -- reset the temp_line_num for each set of events fetched from header
63460 -- cursor rather than doing it for each new event in line cursor
63461 -- Bug 3939231
63462 --
63463 xla_ae_lines_pkg.g_temp_line_num := 0;
63464
63465
63466
63467 --
63468 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
63469 --
63470 --
63471 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63472
63473 trace
63474 (p_msg => 'SQL - FETCH line_cur'
63475 ,p_level => C_LEVEL_STATEMENT
63476 ,p_module => l_log_module);
63477
63478 END IF;
63479 --
63480 --
63481 LOOP
63482 --
63483 FETCH line_cur BULK COLLECT INTO
63484 l_array_entity_id
63485 , l_array_legal_entity_id
63486 , l_array_entity_code
63487 , l_array_transaction_num
63488 , l_array_event_id
63489 , l_array_class_code
63490 , l_array_event_type
63491 , l_array_event_number
63492 , l_array_event_date
63493 , l_array_transaction_date
63494 , l_array_reference_num_1
63495 , l_array_reference_num_2
63496 , l_array_reference_num_3
63497 , l_array_reference_num_4
63498 , l_array_reference_char_1
63499 , l_array_reference_char_2
63500 , l_array_reference_char_3
63501 , l_array_reference_char_4
63502 , l_array_reference_date_1
63503 , l_array_reference_date_2
63504 , l_array_reference_date_3
63505 , l_array_reference_date_4
63506 , l_array_event_created_by
63507 , l_array_budgetary_control_flag
63508 , l_array_extract_line_num
63509 , l_array_source_3
63510 , l_array_source_4
63511 , l_array_source_5
63512 , l_array_source_6
63513 , l_array_source_7
63514 , l_array_source_22
63515 , l_array_source_23
63516 , l_array_source_24
63517 , l_array_source_25
63518 , l_array_source_26
63519 , l_array_source_27
63520 , l_array_source_28
63521 , l_array_source_29
63522 , l_array_source_30
63523 , l_array_source_31
63524 , l_array_source_33
63525 , l_array_source_34
63526 , l_array_source_34_meaning
63527 , l_array_source_35
63528 LIMIT l_rows;
63529
63530 --
63531 IF (C_LEVEL_EVENT >= g_log_level) THEN
63532 trace
63533 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
63534 ,p_level => C_LEVEL_EVENT
63535 ,p_module => l_log_module);
63536 END IF;
63537 --
63538 EXIT WHEN l_array_entity_id.count = 0;
63539
63540 XLA_AE_LINES_PKG.g_rec_lines := null;
63541
63542 --
63543 -- Bug 4458708
63544 --
63545 XLA_AE_LINES_PKG.g_LineNumber := 0;
63546 --
63547 --
63548
63549 FOR Idx IN 1..l_array_event_id.count LOOP
63550 --
63551 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
63552 --
63553 l_event_id := l_array_event_id(idx); -- 5648433
63554
63555 --
63556 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
63557 --
63558
63559 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
63560 (g_array_event(l_event_id).array_value_num('header_index'))
63561 ,'N'
63562 ) <> 'Y'
63563 THEN
63564 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63565 trace
63566 (p_msg => 'Trancaction revesal option is not Y '
63567 ,p_level => C_LEVEL_STATEMENT
63568 ,p_module => l_log_module);
63569 END IF;
63570
63571 --
63572 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
63573 --
63574 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
63575 --
63576 -- set event info as cache for other routines to refer event attributes
63577 --
63578
63579 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
63580 l_previous_event_id := l_event_id;
63581
63582 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
63583 (p_application_id => p_application_id
63584 ,p_primary_ledger_id => p_primary_ledger_id
63585 ,p_base_ledger_id => p_base_ledger_id
63586 ,p_target_ledger_id => p_target_ledger_id
63587 ,p_entity_id => l_array_entity_id(Idx)
63588 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
63589 ,p_entity_code => l_array_entity_code(Idx)
63590 ,p_transaction_num => l_array_transaction_num(Idx)
63591 ,p_event_id => l_array_event_id(Idx)
63592 ,p_event_class_code => l_array_class_code(Idx)
63593 ,p_event_type_code => l_array_event_type(Idx)
63594 ,p_event_number => l_array_event_number(Idx)
63598 ,p_reference_num_2 => l_array_reference_num_2(Idx)
63595 ,p_event_date => l_array_event_date(Idx)
63596 ,p_transaction_date => l_array_transaction_date(Idx)
63597 ,p_reference_num_1 => l_array_reference_num_1(Idx)
63599 ,p_reference_num_3 => l_array_reference_num_3(Idx)
63600 ,p_reference_num_4 => l_array_reference_num_4(Idx)
63601 ,p_reference_char_1 => l_array_reference_char_1(Idx)
63602 ,p_reference_char_2 => l_array_reference_char_2(Idx)
63603 ,p_reference_char_3 => l_array_reference_char_3(Idx)
63604 ,p_reference_char_4 => l_array_reference_char_4(Idx)
63605 ,p_reference_date_1 => l_array_reference_date_1(Idx)
63606 ,p_reference_date_2 => l_array_reference_date_2(Idx)
63607 ,p_reference_date_3 => l_array_reference_date_3(Idx)
63608 ,p_reference_date_4 => l_array_reference_date_4(Idx)
63609 ,p_event_created_by => l_array_event_created_by(Idx)
63610 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
63611 --
63612 END IF;
63613
63614
63615
63616 --
63617 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
63618
63619 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
63620
63621 IF l_continue_with_lines THEN
63622 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
63623 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
63624
63625 xla_accounting_err_pkg.build_message
63626 (p_appli_s_name => 'XLA'
63627 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
63628 ,p_token_1 => 'LINE_NUMBER'
63629 ,p_value_1 => l_array_extract_line_num(Idx)
63630 ,p_token_2 => 'PRODUCT_NAME'
63631 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
63632 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
63633 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
63634 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
63635
63636 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
63637 --
63638 -- following sets the accounting attributes needed to reverse
63639 -- accounting for a distributeion
63640 --
63641
63642 --
63643 -- 5217187
63644 --
63645 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
63646 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
63647 g_array_event(l_event_id).array_value_num('header_index'));
63648 --
63649 --
63650
63651 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
63652 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
63653 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
63654 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
63655 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
63656 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
63657 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
63658 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
63659 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
63660 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
63661 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
63662 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
63663 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
63664 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
63665 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
63666 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
63667 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
63668 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
63669 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
63670 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
63671 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
63672 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
63673 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
63674 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
63675 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
63676 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
63677 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
63678 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
63679 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
63680 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
63681 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
63682 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
63683 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
63684 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
63688 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
63685 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
63686 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
63687 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
63689 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
63690 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
63691 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
63692 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
63693 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
63694 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
63695 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
63696 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
63697 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
63698 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
63699
63700
63701 xla_ae_lines_pkg.SetAcctReversalAttrs
63702 (p_event_id => l_event_id
63703 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
63704 ,p_calculate_acctd_flag => l_calculate_acctd_flag
63705 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
63706 END IF;
63707
63708 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
63709 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
63710
63711 --
63712 AcctLineType_50 (
63713 p_application_id => p_application_id
63714 ,p_event_id => l_event_id
63715 ,p_calculate_acctd_flag => l_calculate_acctd_flag
63716 ,p_calculate_g_l_flag => l_calculate_g_l_flag
63717 ,p_actual_flag => l_actual_flag
63718 ,p_balance_type_code => l_balance_type_code
63719 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
63720
63721 , p_source_3 => l_array_source_3(Idx)
63722 , p_source_4 => l_array_source_4(Idx)
63723 , p_source_5 => l_array_source_5(Idx)
63724 , p_source_6 => l_array_source_6(Idx)
63725 , p_source_22 => l_array_source_22(Idx)
63726 , p_source_23 => l_array_source_23(Idx)
63727 , p_source_24 => l_array_source_24(Idx)
63728 , p_source_25 => l_array_source_25(Idx)
63729 , p_source_26 => l_array_source_26(Idx)
63730 , p_source_27 => l_array_source_27(Idx)
63731 , p_source_28 => l_array_source_28(Idx)
63732 , p_source_29 => l_array_source_29(Idx)
63733 , p_source_30 => l_array_source_30(Idx)
63734 , p_source_31 => l_array_source_31(Idx)
63735 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
63736 , p_source_33 => l_array_source_33(Idx)
63737 , p_source_34 => l_array_source_34(Idx)
63738 , p_source_34_meaning => l_array_source_34_meaning(Idx)
63739 , p_source_35 => l_array_source_35(Idx)
63740 );
63741 If(l_balance_type_code = 'A') THEN
63742 l_actual_gain_loss_ref := l_gain_or_loss_ref;
63743 END IF;
63744
63745 --
63746
63747
63748 --
63749 AcctLineType_64 (
63750 p_application_id => p_application_id
63751 ,p_event_id => l_event_id
63752 ,p_calculate_acctd_flag => l_calculate_acctd_flag
63753 ,p_calculate_g_l_flag => l_calculate_g_l_flag
63754 ,p_actual_flag => l_actual_flag
63755 ,p_balance_type_code => l_balance_type_code
63756 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
63757
63758 , p_source_3 => l_array_source_3(Idx)
63759 , p_source_4 => l_array_source_4(Idx)
63760 , p_source_6 => l_array_source_6(Idx)
63761 , p_source_7 => l_array_source_7(Idx)
63762 , p_source_22 => l_array_source_22(Idx)
63763 , p_source_23 => l_array_source_23(Idx)
63764 , p_source_24 => l_array_source_24(Idx)
63765 , p_source_25 => l_array_source_25(Idx)
63766 , p_source_26 => l_array_source_26(Idx)
63767 , p_source_27 => l_array_source_27(Idx)
63768 , p_source_28 => l_array_source_28(Idx)
63769 , p_source_29 => l_array_source_29(Idx)
63770 , p_source_30 => l_array_source_30(Idx)
63771 , p_source_31 => l_array_source_31(Idx)
63772 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
63773 , p_source_33 => l_array_source_33(Idx)
63774 , p_source_34 => l_array_source_34(Idx)
63775 , p_source_34_meaning => l_array_source_34_meaning(Idx)
63776 , p_source_35 => l_array_source_35(Idx)
63777 );
63778 If(l_balance_type_code = 'A') THEN
63779 l_actual_gain_loss_ref := l_gain_or_loss_ref;
63780 END IF;
63781
63782 --
63783
63784 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
63785 -- or secondary ledger that has different currency with primary
63786 -- or alc that is calculated by sla
63787 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
63788 (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'))
63789
63790 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
63791 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
63792 AND (l_actual_flag = 'A')) THEN
63793 XLA_AE_LINES_PKG.CreateGainOrLossLines(
63794 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
63795 ,p_application_id => p_application_id
63799 ,p_event_type_code => C_EVENT_TYPE_CODE
63796 ,p_amb_context_code => 'DEFAULT'
63797 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
63798 ,p_event_class_code => C_EVENT_CLASS_CODE
63800
63801 ,p_gain_ccid => -1
63802 ,p_loss_ccid => -1
63803
63804 ,p_actual_flag => l_actual_flag
63805 ,p_enc_flag => null
63806 ,p_actual_g_l_ref => l_actual_gain_loss_ref
63807 ,p_enc_g_l_ref => null
63808 );
63809 END IF;
63810 END IF;
63811 END IF;
63812
63813 ELSE
63814 --
63815 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
63816 --
63817 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63818 trace
63819 (p_msg => 'Trancaction revesal option is Y'
63820 ,p_level => C_LEVEL_STATEMENT
63821 ,p_module => l_log_module);
63822 END IF;
63823 END IF;
63824
63825 END LOOP;
63826 l_result := XLA_AE_LINES_PKG.InsertLines ;
63827 end loop;
63828 close line_cur;
63829
63830
63831 --
63832 -- insert headers into xla_ae_headers_gt table
63833 --
63834 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
63835
63836 -- insert into errors table here.
63837
63838 END LOOP;
63839
63840 --
63841 -- 4865292
63842 --
63843 -- Compare g_hdr_extract_count with event count in
63844 -- CreateHeadersAndLines.
63845 --
63846 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
63847
63848 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63849 trace (p_msg => '# rows extracted from header extract objects '
63850 || ' (running total): '
63851 || g_hdr_extract_count
63852 ,p_level => C_LEVEL_STATEMENT
63853 ,p_module => l_log_module);
63854 END IF;
63855
63856 CLOSE header_cur;
63857 --
63858
63859 --
63860 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63861 trace
63862 (p_msg => 'END of EventClass_115'
63863 ,p_level => C_LEVEL_PROCEDURE
63864 ,p_module => l_log_module);
63865 END IF;
63866 --
63867 RETURN l_result;
63868 EXCEPTION
63869 WHEN xla_exceptions_pkg.application_exception THEN
63870
63871 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
63872
63873
63874 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
63875
63876 RAISE;
63877 WHEN OTHERS THEN
63878 xla_exceptions_pkg.raise_message
63879 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_115');
63880 END EventClass_115;
63881 --
63882
63883 ---------------------------------------
63884 --
63885 -- PRIVATE PROCEDURE
63886 -- insert_sources_116
63887 --
63888 ----------------------------------------
63889 --
63890 PROCEDURE insert_sources_116(
63891 p_target_ledger_id IN NUMBER
63892 , p_language IN VARCHAR2
63893 , p_sla_ledger_id IN NUMBER
63894 , p_pad_start_date IN DATE
63895 , p_pad_end_date IN DATE
63896 )
63897 IS
63898
63899 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ALL';
63900 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST';
63901 p_apps_owner VARCHAR2(30);
63902 l_log_module VARCHAR2(240);
63903 BEGIN
63904 IF g_log_enabled THEN
63905 l_log_module := C_DEFAULT_MODULE||'.insert_sources_116';
63906 END IF;
63907 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
63908
63909 trace
63910 (p_msg => 'BEGIN of insert_sources_116'
63911 ,p_level => C_LEVEL_PROCEDURE
63912 ,p_module => l_log_module);
63913
63914 END IF;
63915
63916 -- select APPS owner
63917 SELECT oracle_username
63918 INTO p_apps_owner
63919 FROM fnd_oracle_userid
63920 WHERE read_only_flag = 'U'
63921 ;
63922
63923 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
63924 trace
63925 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
63926 ' - p_language = '||p_language||
63927 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
63928 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
63929 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
63930 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
63931 ,p_level => C_LEVEL_STATEMENT
63932 ,p_module => l_log_module);
63933 END IF;
63934
63935
63936 --
63937 INSERT INTO xla_diag_sources --hdr2
63938 (
63939 event_id
63940 , ledger_id
63941 , sla_ledger_id
63942 , description_language
63943 , object_name
63944 , object_type_code
63945 , line_number
63946 , source_application_id
63947 , source_type_code
63948 , source_code
63949 , source_value
63950 , source_meaning
63951 , created_by
63952 , creation_date
63953 , last_update_date
63957 , program_application_id
63954 , last_updated_by
63955 , last_update_login
63956 , program_update_date
63958 , program_id
63959 , request_id
63960 )
63961 SELECT
63962 event_id
63963 , p_target_ledger_id
63964 , p_sla_ledger_id
63965 , p_language
63966 , object_name
63967 , object_type_code
63968 , line_number
63969 , source_application_id
63970 , source_type_code
63971 , source_code
63972 , SUBSTR(source_value ,1,1996)
63973 , SUBSTR(source_meaning ,1,200)
63974 , xla_environment_pkg.g_Usr_Id
63975 , TRUNC(SYSDATE)
63976 , TRUNC(SYSDATE)
63977 , xla_environment_pkg.g_Usr_Id
63978 , xla_environment_pkg.g_Login_Id
63979 , TRUNC(SYSDATE)
63980 , xla_environment_pkg.g_Prog_Appl_Id
63981 , xla_environment_pkg.g_Prog_Id
63982 , xla_environment_pkg.g_Req_Id
63983 FROM (
63984 SELECT xet.event_id event_id
63985 , 0 line_number
63986 , CASE r
63987 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
63988 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
63989
63990 ELSE null
63991 END object_name
63992 , CASE r
63993 WHEN 1 THEN 'HEADER'
63994 WHEN 2 THEN 'HEADER'
63995
63996 ELSE null
63997 END object_type_code
63998 , CASE r
63999 WHEN 1 THEN '275'
64000 WHEN 2 THEN '275'
64001
64002 ELSE null
64003 END source_application_id
64004 , 'S' source_type_code
64005 , CASE r
64006 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
64007 WHEN 2 THEN 'GL_DATE'
64008
64009 ELSE null
64010 END source_code
64011 , CASE r
64012 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
64013 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
64014
64015 ELSE null
64016 END source_value
64017 , null source_meaning
64018 FROM xla_events_gt xet
64019 , PA_XLA_EXP_HEADER_V h2
64020 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
64021 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
64022 AND xet.event_class_code = C_EVENT_CLASS_CODE
64023 AND h2.event_id = xet.event_id
64024
64025 )
64026 ;
64027 --
64028 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64029
64030 trace
64031 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
64032 ,p_level => C_LEVEL_STATEMENT
64033 ,p_module => l_log_module);
64034
64035 END IF;
64036 --
64037
64038
64039
64040 --
64041 INSERT INTO xla_diag_sources --line2
64042 (
64043 event_id
64044 , ledger_id
64045 , sla_ledger_id
64046 , description_language
64047 , object_name
64048 , object_type_code
64049 , line_number
64050 , source_application_id
64051 , source_type_code
64052 , source_code
64053 , source_value
64054 , source_meaning
64055 , created_by
64056 , creation_date
64057 , last_update_date
64058 , last_updated_by
64059 , last_update_login
64060 , program_update_date
64061 , program_application_id
64062 , program_id
64063 , request_id
64064 )
64065 SELECT event_id
64066 , p_target_ledger_id
64067 , p_sla_ledger_id
64068 , p_language
64069 , object_name
64070 , object_type_code
64071 , line_number
64072 , source_application_id
64073 , source_type_code
64074 , source_code
64075 , SUBSTR(source_value,1,1996)
64076 , SUBSTR(source_meaning ,1,200)
64077 , xla_environment_pkg.g_Usr_Id
64078 , TRUNC(SYSDATE)
64079 , TRUNC(SYSDATE)
64080 , xla_environment_pkg.g_Usr_Id
64081 , xla_environment_pkg.g_Login_Id
64082 , TRUNC(SYSDATE)
64083 , xla_environment_pkg.g_Prog_Appl_Id
64084 , xla_environment_pkg.g_Prog_Id
64085 , xla_environment_pkg.g_Req_Id
64086 FROM (
64087 SELECT xet.event_id event_id
64088 , l1.line_number line_number
64089 , CASE r
64090 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
64091 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
64092 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
64093 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
64094 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
64095 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
64096 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
64097 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
64098 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
64099 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
64100 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
64101 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
64105 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
64102 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
64103 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
64104 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
64106 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
64107 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
64108
64109 ELSE null
64110 END object_name
64111 , CASE r
64112 WHEN 1 THEN 'LINE'
64113 WHEN 2 THEN 'LINE'
64114 WHEN 3 THEN 'LINE'
64115 WHEN 4 THEN 'LINE'
64116 WHEN 5 THEN 'LINE'
64117 WHEN 6 THEN 'LINE'
64118 WHEN 7 THEN 'LINE'
64119 WHEN 8 THEN 'LINE'
64120 WHEN 9 THEN 'LINE'
64121 WHEN 10 THEN 'LINE'
64122 WHEN 11 THEN 'LINE'
64123 WHEN 12 THEN 'LINE'
64124 WHEN 13 THEN 'LINE'
64125 WHEN 14 THEN 'LINE'
64126 WHEN 15 THEN 'LINE'
64127 WHEN 16 THEN 'LINE'
64128 WHEN 17 THEN 'LINE'
64129 WHEN 18 THEN 'LINE'
64130
64131 ELSE null
64132 END object_type_code
64133 , CASE r
64134 WHEN 1 THEN '275'
64135 WHEN 2 THEN '275'
64136 WHEN 3 THEN '275'
64137 WHEN 4 THEN '275'
64138 WHEN 5 THEN '275'
64139 WHEN 6 THEN '275'
64140 WHEN 7 THEN '275'
64141 WHEN 8 THEN '275'
64142 WHEN 9 THEN '275'
64143 WHEN 10 THEN '275'
64144 WHEN 11 THEN '275'
64145 WHEN 12 THEN '275'
64146 WHEN 13 THEN '275'
64147 WHEN 14 THEN '275'
64148 WHEN 15 THEN '275'
64149 WHEN 16 THEN '275'
64150 WHEN 17 THEN '275'
64151 WHEN 18 THEN '275'
64152
64153 ELSE null
64154 END source_application_id
64155 , 'S' source_type_code
64156 , CASE r
64157 WHEN 1 THEN 'COST_CCID'
64158 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
64159 WHEN 3 THEN 'ADJ_COST_CCID'
64160 WHEN 4 THEN 'COST_CLEARING_CCID'
64161 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
64162 WHEN 6 THEN 'REVERSING_LINE_FLAG'
64163 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
64164 WHEN 8 THEN 'ENTERED_RAW_COST'
64165 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
64166 WHEN 10 THEN 'ACCT_RAW_COST'
64167 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
64168 WHEN 12 THEN 'EXCHANGE_RATE'
64169 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
64170 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
64171 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
64172 WHEN 16 THEN 'LINE_NUMBER'
64173 WHEN 17 THEN 'LINE_TYPE'
64174 WHEN 18 THEN 'LINE_NUM_REVERSED'
64175
64176 ELSE null
64177 END source_code
64178 , CASE r
64179 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
64180 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
64181 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
64182 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
64183 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
64184 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
64185 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
64186 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
64187 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
64188 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
64189 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
64190 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
64191 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
64192 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
64193 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
64194 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
64195 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
64196 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
64197
64198 ELSE null
64199 END source_value
64200 , CASE r
64201 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
64202 103371
64203 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
64204 ,'ALLOW_OVERRIDE_CCID_FLAG'
64205 ,'S'
64206 ,275)
64207 WHEN 17 THEN fvl34.meaning
64208
64209 ELSE null
64210 END source_meaning
64211 FROM xla_events_gt xet
64212 , PA_XLA_CDL_LINES_V l1
64213 , fnd_lookup_values fvl34
64214 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
64215 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
64216 AND xet.event_class_code = C_EVENT_CLASS_CODE
64217 AND l1.event_id = xet.event_id
64221 AND fvl34.language(+) = USERENV('LANG')
64218 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
64219 AND fvl34.lookup_code(+) = l1.LINE_TYPE
64220 AND fvl34.view_application_id(+) = 275
64222
64223 )
64224 ;
64225 --
64226 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64227
64228 trace
64229 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
64230 ,p_level => C_LEVEL_STATEMENT
64231 ,p_module => l_log_module);
64232
64233 END IF;
64234
64235
64236 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64237 trace
64238 (p_msg => 'END of insert_sources_116'
64239 ,p_level => C_LEVEL_PROCEDURE
64240 ,p_module => l_log_module);
64241 END IF;
64242 EXCEPTION
64243 WHEN xla_exceptions_pkg.application_exception THEN
64244 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
64245 trace
64246 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
64247 ,p_level => C_LEVEL_EXCEPTION
64248 ,p_module => l_log_module);
64249 END IF;
64250 RAISE;
64251 WHEN OTHERS THEN
64252 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
64253 trace
64254 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
64255 ,p_level => C_LEVEL_EXCEPTION
64256 ,p_module => l_log_module);
64257 END IF;
64258 xla_exceptions_pkg.raise_message
64259 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_116');
64260 END insert_sources_116;
64261 --
64262
64263 ---------------------------------------
64264 --
64265 -- PRIVATE FUNCTION
64266 -- EventClass_116
64267 --
64268 ----------------------------------------
64269 --
64270 FUNCTION EventClass_116
64271 (p_application_id IN NUMBER
64272 ,p_base_ledger_id IN NUMBER
64273 ,p_target_ledger_id IN NUMBER
64274 ,p_language IN VARCHAR2
64275 ,p_currency_code IN VARCHAR2
64276 ,p_sla_ledger_id IN NUMBER
64277 ,p_pad_start_date IN DATE
64278 ,p_pad_end_date IN DATE
64279 ,p_primary_ledger_id IN NUMBER)
64280 RETURN BOOLEAN IS
64281 --
64282 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST_ALL';
64283 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'INVENTORY_COST';
64284
64285 l_calculate_acctd_flag VARCHAR2(1) :='N';
64286 l_calculate_g_l_flag VARCHAR2(1) :='N';
64287 --
64288 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64289 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64290 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64291 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64292 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64293 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64294 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64295 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64296 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64297 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64298 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64299 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64300 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64301 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
64302 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64303 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64304 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64305 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
64306 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64307 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64308 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64309 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
64310 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
64311 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
64312
64313 l_event_id NUMBER;
64314 l_previous_event_id NUMBER;
64315 l_first_event_id NUMBER;
64316 l_last_event_id NUMBER;
64317
64318 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
64319 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
64320 --
64321 --
64322 l_result BOOLEAN := TRUE;
64323 l_rows NUMBER := 1000;
64324 l_event_type_name VARCHAR2(80) := 'All';
64325 l_event_class_name VARCHAR2(80) := 'Inventory Cost';
64326 l_description VARCHAR2(4000);
64327 l_transaction_reversal NUMBER;
64328 l_ae_header_id NUMBER;
64329 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
64330 l_log_module VARCHAR2(240);
64331 --
64332 l_acct_reversal_source VARCHAR2(30);
64333 l_trx_reversal_source VARCHAR2(30);
64334
64338 --
64335 l_continue_with_lines BOOLEAN := TRUE;
64336 --
64337 l_acc_rev_gl_date_source DATE; -- 4262811
64339 type t_array_event_id is table of number index by binary_integer;
64340
64341 l_rec_array_event t_rec_array_event;
64342 l_null_rec_array_event t_rec_array_event;
64343 l_array_ae_header_id xla_number_array_type;
64344 l_actual_flag VARCHAR2(1) := NULL;
64345 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
64346 l_balance_type_code VARCHAR2(1) :=NULL;
64347 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
64348
64349 --
64350 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
64351 --
64352
64353 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
64354 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
64355
64356 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
64357 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
64358 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
64359 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
64360 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
64361 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
64362 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
64363 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
64364 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
64365 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
64366 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
64367 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
64368 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
64369 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
64370 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
64371 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
64372 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
64373 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
64374
64375 l_array_source_32 t_array_source_32;
64376 l_array_source_87 t_array_source_87;
64377
64378 l_array_source_3 t_array_source_3;
64379 l_array_source_4 t_array_source_4;
64380 l_array_source_5 t_array_source_5;
64381 l_array_source_6 t_array_source_6;
64382 l_array_source_7 t_array_source_7;
64383 l_array_source_22 t_array_source_22;
64384 l_array_source_23 t_array_source_23;
64385 l_array_source_24 t_array_source_24;
64386 l_array_source_25 t_array_source_25;
64387 l_array_source_26 t_array_source_26;
64388 l_array_source_27 t_array_source_27;
64389 l_array_source_28 t_array_source_28;
64390 l_array_source_29 t_array_source_29;
64391 l_array_source_30 t_array_source_30;
64392 l_array_source_31 t_array_source_31;
64393 l_array_source_33 t_array_source_33;
64394 l_array_source_34 t_array_source_34;
64395 l_array_source_34_meaning t_array_lookup_meaning;
64396 l_array_source_35 t_array_source_35;
64397
64398 --
64399 CURSOR header_cur
64400 IS
64401 SELECT /*+ leading(xet) cardinality(xet,1) */
64402 -- Event Class Code: INVENTORY_COST
64403 xet.entity_id
64404 ,xet.legal_entity_id
64405 ,xet.entity_code
64406 ,xet.transaction_number
64407 ,xet.event_id
64408 ,xet.event_class_code
64409 ,xet.event_type_code
64410 ,xet.event_number
64411 ,xet.event_date
64412 ,xet.transaction_date
64413 ,xet.reference_num_1
64414 ,xet.reference_num_2
64415 ,xet.reference_num_3
64416 ,xet.reference_num_4
64417 ,xet.reference_char_1
64418 ,xet.reference_char_2
64419 ,xet.reference_char_3
64420 ,xet.reference_char_4
64421 ,xet.reference_date_1
64422 ,xet.reference_date_2
64423 ,xet.reference_date_3
64424 ,xet.reference_date_4
64425 ,xet.event_created_by
64426 ,xet.budgetary_control_flag
64427 , h2.EXPENDITURE_ITEM_ID source_32
64428 , h2.GL_DATE source_87
64429 FROM xla_events_gt xet
64430 , PA_XLA_EXP_HEADER_V h2
64431 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
64432 and xet.event_class_code = C_EVENT_CLASS_CODE
64433 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
64434
64435 ORDER BY event_id
64436 ;
64437
64438
64439 --
64440 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
64441 IS
64442 SELECT /*+ leading(xet) cardinality(xet,1) */
64443 -- Event Class Code: INVENTORY_COST
64444 xet.entity_id
64445 ,xet.legal_entity_id
64446 ,xet.entity_code
64447 ,xet.transaction_number
64451 ,xet.event_number
64448 ,xet.event_id
64449 ,xet.event_class_code
64450 ,xet.event_type_code
64452 ,xet.event_date
64453 ,xet.transaction_date
64454 ,xet.reference_num_1
64455 ,xet.reference_num_2
64456 ,xet.reference_num_3
64457 ,xet.reference_num_4
64458 ,xet.reference_char_1
64459 ,xet.reference_char_2
64460 ,xet.reference_char_3
64461 ,xet.reference_char_4
64462 ,xet.reference_date_1
64463 ,xet.reference_date_2
64464 ,xet.reference_date_3
64465 ,xet.reference_date_4
64466 ,xet.event_created_by
64467 ,xet.budgetary_control_flag
64468 , l1.LINE_NUMBER
64469 , l1.COST_CCID source_3
64470 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
64471 , l1.ADJ_COST_CCID source_5
64472 , l1.COST_CLEARING_CCID source_6
64473 , l1.ADJ_COST_CLEARING_CCID source_7
64474 , l1.REVERSING_LINE_FLAG source_22
64475 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
64476 , l1.ENTERED_RAW_COST source_24
64477 , l1.ENTERED_CURRENCY_CODE source_25
64478 , l1.ACCT_RAW_COST source_26
64479 , l1.EXCHANGE_RATE_DATE source_27
64480 , l1.EXCHANGE_RATE source_28
64481 , l1.EXCHANGE_RATE_TYPE source_29
64482 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
64483 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
64484 , l1.LINE_NUMBER source_33
64485 , l1.LINE_TYPE source_34
64486 , fvl34.meaning source_34_meaning
64487 , l1.LINE_NUM_REVERSED source_35
64488 FROM xla_events_gt xet
64489 , PA_XLA_CDL_LINES_V l1
64490 , fnd_lookup_values fvl34
64491 WHERE xet.event_id between x_first_event_id and x_last_event_id
64492 and xet.event_date between p_pad_start_date and p_pad_end_date
64493 and xet.event_class_code = C_EVENT_CLASS_CODE
64494 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
64495 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
64496 AND fvl34.lookup_code(+) = l1.LINE_TYPE
64497 AND fvl34.view_application_id(+) = 275
64498 AND fvl34.language(+) = USERENV('LANG')
64499 ;
64500
64501 --
64502 BEGIN
64503 IF g_log_enabled THEN
64504 l_log_module := C_DEFAULT_MODULE||'.EventClass_116';
64505 END IF;
64506 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
64507 trace
64508 (p_msg => 'BEGIN of EventClass_116'
64509 ,p_level => C_LEVEL_PROCEDURE
64510 ,p_module => l_log_module);
64511 END IF;
64512
64513 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64514 trace
64515 (p_msg => 'p_application_id = '||p_application_id||
64516 ' - p_base_ledger_id = '||p_base_ledger_id||
64517 ' - p_target_ledger_id = '||p_target_ledger_id||
64518 ' - p_language = '||p_language||
64519 ' - p_currency_code = '||p_currency_code||
64520 ' - p_sla_ledger_id = '||p_sla_ledger_id
64521 ,p_level => C_LEVEL_STATEMENT
64522 ,p_module => l_log_module);
64523 END IF;
64524 --
64525 -- initialze arrays
64526 --
64527 g_array_event.DELETE;
64528 l_rec_array_event := l_null_rec_array_event;
64529 --
64530 --------------------------------------
64531 -- 4262811 Initialze MPA Line Number
64532 --------------------------------------
64533 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
64534
64535 --
64536
64537 --
64538 OPEN header_cur;
64539 --
64540 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64541 trace
64542 (p_msg => 'SQL - FETCH header_cur'
64543 ,p_level => C_LEVEL_STATEMENT
64544 ,p_module => l_log_module);
64545 END IF;
64546 --
64547 LOOP
64548 FETCH header_cur BULK COLLECT INTO
64549 l_array_entity_id
64550 , l_array_legal_entity_id
64551 , l_array_entity_code
64552 , l_array_transaction_num
64553 , l_array_event_id
64554 , l_array_class_code
64555 , l_array_event_type
64556 , l_array_event_number
64557 , l_array_event_date
64558 , l_array_transaction_date
64559 , l_array_reference_num_1
64560 , l_array_reference_num_2
64561 , l_array_reference_num_3
64562 , l_array_reference_num_4
64563 , l_array_reference_char_1
64564 , l_array_reference_char_2
64565 , l_array_reference_char_3
64566 , l_array_reference_char_4
64567 , l_array_reference_date_1
64568 , l_array_reference_date_2
64569 , l_array_reference_date_3
64570 , l_array_reference_date_4
64571 , l_array_event_created_by
64572 , l_array_budgetary_control_flag
64573 , l_array_source_32
64574 , l_array_source_87
64575 LIMIT l_rows;
64576 --
64577 IF (C_LEVEL_EVENT >= g_log_level) THEN
64578 trace
64579 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
64580 ,p_level => C_LEVEL_EVENT
64581 ,p_module => l_log_module);
64582 END IF;
64583 --
64584 EXIT WHEN l_array_entity_id.COUNT = 0;
64585
64586 -- initialize arrays
64587 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
64588 XLA_AE_LINES_PKG.g_rec_lines := NULL;
64589
64590 --
64591 -- Bug 4458708
64592 --
64593 XLA_AE_LINES_PKG.g_LineNumber := 0;
64594
64595
64599 -- loop for the headers. Each iteration is for each header extract row
64596 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
64597 g_last_hdr_idx := l_array_event_id.LAST;
64598 --
64600 -- fetched in header cursor
64601 --
64602 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
64603
64604 --
64605 -- set event info as cache for other routines to refer event attributes
64606 --
64607 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
64608 (p_application_id => p_application_id
64609 ,p_primary_ledger_id => p_primary_ledger_id
64610 ,p_base_ledger_id => p_base_ledger_id
64611 ,p_target_ledger_id => p_target_ledger_id
64612 ,p_entity_id => l_array_entity_id(hdr_idx)
64613 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
64614 ,p_entity_code => l_array_entity_code(hdr_idx)
64615 ,p_transaction_num => l_array_transaction_num(hdr_idx)
64616 ,p_event_id => l_array_event_id(hdr_idx)
64617 ,p_event_class_code => l_array_class_code(hdr_idx)
64618 ,p_event_type_code => l_array_event_type(hdr_idx)
64619 ,p_event_number => l_array_event_number(hdr_idx)
64620 ,p_event_date => l_array_event_date(hdr_idx)
64621 ,p_transaction_date => l_array_transaction_date(hdr_idx)
64622 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
64623 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
64624 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
64625 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
64626 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
64627 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
64628 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
64629 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
64630 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
64631 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
64632 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
64633 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
64634 ,p_event_created_by => l_array_event_created_by(hdr_idx)
64635 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
64636
64637 --
64638 -- set the status of entry to C_VALID (0)
64639 --
64640 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
64641
64642 --
64643 -- initialize a row for ae header
64644 --
64645 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
64646
64647 l_event_id := l_array_event_id(hdr_idx);
64648
64649 --
64650 -- storing the hdr_idx for event. May be used by line cursor.
64651 --
64652 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
64653
64654 --
64655 -- store sources from header extract. This can be improved to
64656 -- store only those sources from header extract that may be used in lines
64657 --
64658
64659 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
64660 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
64661
64662 --
64663 -- initilaize the status of ae headers for diffrent balance types
64664 -- the status is initialised to C_NOT_CREATED (2)
64665 --
64666 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
64667 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
64668 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
64669
64670 --
64671 -- call api to validate and store accounting attributes for header
64672 --
64673
64674 ------------------------------------------------------------
64675 -- Accrual Reversal : to get date for Standard Source (NONE)
64676 ------------------------------------------------------------
64677 l_acc_rev_gl_date_source := NULL;
64678
64679 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
64680 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
64681
64682
64683 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
64684
64685 XLA_AE_HEADER_PKG.SetJeCategoryName;
64686
64687 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
64688 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
64689 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
64690 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
64691 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
64692
64693
64694 -- No header level analytical criteria
64695
64696 --
64697 --accounting attribute enhancement, bug 3612931
64698 --
64699 l_trx_reversal_source := SUBSTR(NULL, 1,30);
64700
64701 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
64702 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
64703
64704 xla_accounting_err_pkg.build_message
64705 (p_appli_s_name => 'XLA'
64706 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
64707 ,p_token_1 => 'ACCT_ATTR_NAME'
64711 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
64708 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
64709 ,p_token_2 => 'PRODUCT_NAME'
64710 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
64712 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
64713 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
64714
64715 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
64716 --
64717 -- following sets the accounting attributes needed to reverse
64718 -- accounting for a distributeion
64719 --
64720 xla_ae_lines_pkg.SetTrxReversalAttrs
64721 (p_event_id => l_event_id
64722 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
64723 ,p_trx_reversal_source => l_trx_reversal_source);
64724
64725 END IF;
64726
64727
64728 ----------------------------------------------------------------
64729 -- 4262811 - update the header statuses to invalid in need be
64730 ----------------------------------------------------------------
64731 --
64732 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
64733
64734
64735 -----------------------------------------------
64736 -- No accrual reversal for the event class/type
64737 -----------------------------------------------
64738 ----------------------------------------------------------------
64739
64740 --
64741 -- this ends the header loop iteration for one bulk fetch
64742 --
64743 END LOOP;
64744
64745 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
64746 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
64747
64748 --
64749 -- insert dummy rows into lines gt table that were created due to
64750 -- transaction reversals
64751 --
64752 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
64753 l_result := XLA_AE_LINES_PKG.InsertLines;
64754 END IF;
64755
64756 --
64757 -- reset the temp_line_num for each set of events fetched from header
64758 -- cursor rather than doing it for each new event in line cursor
64759 -- Bug 3939231
64760 --
64761 xla_ae_lines_pkg.g_temp_line_num := 0;
64762
64763
64764
64765 --
64766 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
64767 --
64768 --
64769 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64770
64771 trace
64772 (p_msg => 'SQL - FETCH line_cur'
64773 ,p_level => C_LEVEL_STATEMENT
64774 ,p_module => l_log_module);
64775
64776 END IF;
64777 --
64778 --
64779 LOOP
64780 --
64781 FETCH line_cur BULK COLLECT INTO
64782 l_array_entity_id
64783 , l_array_legal_entity_id
64784 , l_array_entity_code
64785 , l_array_transaction_num
64786 , l_array_event_id
64787 , l_array_class_code
64788 , l_array_event_type
64789 , l_array_event_number
64790 , l_array_event_date
64791 , l_array_transaction_date
64792 , l_array_reference_num_1
64793 , l_array_reference_num_2
64794 , l_array_reference_num_3
64795 , l_array_reference_num_4
64796 , l_array_reference_char_1
64797 , l_array_reference_char_2
64798 , l_array_reference_char_3
64799 , l_array_reference_char_4
64800 , l_array_reference_date_1
64801 , l_array_reference_date_2
64802 , l_array_reference_date_3
64803 , l_array_reference_date_4
64804 , l_array_event_created_by
64805 , l_array_budgetary_control_flag
64806 , l_array_extract_line_num
64807 , l_array_source_3
64808 , l_array_source_4
64809 , l_array_source_5
64810 , l_array_source_6
64811 , l_array_source_7
64812 , l_array_source_22
64813 , l_array_source_23
64814 , l_array_source_24
64815 , l_array_source_25
64816 , l_array_source_26
64817 , l_array_source_27
64818 , l_array_source_28
64819 , l_array_source_29
64820 , l_array_source_30
64821 , l_array_source_31
64822 , l_array_source_33
64823 , l_array_source_34
64824 , l_array_source_34_meaning
64825 , l_array_source_35
64826 LIMIT l_rows;
64827
64828 --
64829 IF (C_LEVEL_EVENT >= g_log_level) THEN
64830 trace
64831 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
64832 ,p_level => C_LEVEL_EVENT
64833 ,p_module => l_log_module);
64834 END IF;
64835 --
64836 EXIT WHEN l_array_entity_id.count = 0;
64837
64838 XLA_AE_LINES_PKG.g_rec_lines := null;
64839
64840 --
64841 -- Bug 4458708
64842 --
64843 XLA_AE_LINES_PKG.g_LineNumber := 0;
64844 --
64845 --
64846
64847 FOR Idx IN 1..l_array_event_id.count LOOP
64848 --
64849 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
64850 --
64851 l_event_id := l_array_event_id(idx); -- 5648433
64852
64853 --
64854 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
64855 --
64856
64857 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
64861 THEN
64858 (g_array_event(l_event_id).array_value_num('header_index'))
64859 ,'N'
64860 ) <> 'Y'
64862 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
64863 trace
64864 (p_msg => 'Trancaction revesal option is not Y '
64865 ,p_level => C_LEVEL_STATEMENT
64866 ,p_module => l_log_module);
64867 END IF;
64868
64869 --
64870 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
64871 --
64872 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
64873 --
64874 -- set event info as cache for other routines to refer event attributes
64875 --
64876
64877 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
64878 l_previous_event_id := l_event_id;
64879
64880 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
64881 (p_application_id => p_application_id
64882 ,p_primary_ledger_id => p_primary_ledger_id
64883 ,p_base_ledger_id => p_base_ledger_id
64884 ,p_target_ledger_id => p_target_ledger_id
64885 ,p_entity_id => l_array_entity_id(Idx)
64886 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
64887 ,p_entity_code => l_array_entity_code(Idx)
64888 ,p_transaction_num => l_array_transaction_num(Idx)
64889 ,p_event_id => l_array_event_id(Idx)
64890 ,p_event_class_code => l_array_class_code(Idx)
64891 ,p_event_type_code => l_array_event_type(Idx)
64892 ,p_event_number => l_array_event_number(Idx)
64893 ,p_event_date => l_array_event_date(Idx)
64894 ,p_transaction_date => l_array_transaction_date(Idx)
64895 ,p_reference_num_1 => l_array_reference_num_1(Idx)
64896 ,p_reference_num_2 => l_array_reference_num_2(Idx)
64897 ,p_reference_num_3 => l_array_reference_num_3(Idx)
64898 ,p_reference_num_4 => l_array_reference_num_4(Idx)
64899 ,p_reference_char_1 => l_array_reference_char_1(Idx)
64900 ,p_reference_char_2 => l_array_reference_char_2(Idx)
64901 ,p_reference_char_3 => l_array_reference_char_3(Idx)
64902 ,p_reference_char_4 => l_array_reference_char_4(Idx)
64903 ,p_reference_date_1 => l_array_reference_date_1(Idx)
64904 ,p_reference_date_2 => l_array_reference_date_2(Idx)
64905 ,p_reference_date_3 => l_array_reference_date_3(Idx)
64906 ,p_reference_date_4 => l_array_reference_date_4(Idx)
64907 ,p_event_created_by => l_array_event_created_by(Idx)
64908 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
64909 --
64910 END IF;
64911
64912
64913
64914 --
64915 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
64916
64917 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
64918
64919 IF l_continue_with_lines THEN
64920 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
64921 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
64922
64923 xla_accounting_err_pkg.build_message
64924 (p_appli_s_name => 'XLA'
64925 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
64926 ,p_token_1 => 'LINE_NUMBER'
64927 ,p_value_1 => l_array_extract_line_num(Idx)
64928 ,p_token_2 => 'PRODUCT_NAME'
64929 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
64930 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
64931 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
64932 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
64933
64934 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
64935 --
64936 -- following sets the accounting attributes needed to reverse
64937 -- accounting for a distributeion
64938 --
64939
64940 --
64941 -- 5217187
64942 --
64943 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
64944 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
64945 g_array_event(l_event_id).array_value_num('header_index'));
64946 --
64947 --
64948
64949 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
64950 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
64951 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
64952 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
64953 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
64954 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
64955 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
64956 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
64957 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
64958 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
64959 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
64960 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
64964 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
64961 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
64962 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
64963 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
64965 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
64966 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
64967 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
64968 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
64969 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
64970 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
64971 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
64972 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
64973 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
64974 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
64975 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
64976 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
64977 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
64978 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
64979 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
64980 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
64981 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
64982 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
64983 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
64984 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
64985 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
64986 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
64987 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
64988 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
64989 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
64990 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
64991 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
64992 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
64993 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
64994 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
64995 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
64996 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
64997
64998
64999 xla_ae_lines_pkg.SetAcctReversalAttrs
65000 (p_event_id => l_event_id
65001 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
65002 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65003 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
65004 END IF;
65005
65006 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
65007 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
65008
65009 --
65010 AcctLineType_43 (
65011 p_application_id => p_application_id
65012 ,p_event_id => l_event_id
65013 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65014 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65015 ,p_actual_flag => l_actual_flag
65016 ,p_balance_type_code => l_balance_type_code
65017 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65018
65019 , p_source_3 => l_array_source_3(Idx)
65020 , p_source_4 => l_array_source_4(Idx)
65021 , p_source_5 => l_array_source_5(Idx)
65022 , p_source_6 => l_array_source_6(Idx)
65023 , p_source_22 => l_array_source_22(Idx)
65024 , p_source_23 => l_array_source_23(Idx)
65025 , p_source_24 => l_array_source_24(Idx)
65026 , p_source_25 => l_array_source_25(Idx)
65027 , p_source_26 => l_array_source_26(Idx)
65028 , p_source_27 => l_array_source_27(Idx)
65029 , p_source_28 => l_array_source_28(Idx)
65030 , p_source_29 => l_array_source_29(Idx)
65031 , p_source_30 => l_array_source_30(Idx)
65032 , p_source_31 => l_array_source_31(Idx)
65033 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
65034 , p_source_33 => l_array_source_33(Idx)
65035 , p_source_34 => l_array_source_34(Idx)
65036 , p_source_34_meaning => l_array_source_34_meaning(Idx)
65037 , p_source_35 => l_array_source_35(Idx)
65038 );
65039 If(l_balance_type_code = 'A') THEN
65040 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65041 END IF;
65042
65043 --
65044
65045
65046 --
65047 AcctLineType_54 (
65048 p_application_id => p_application_id
65049 ,p_event_id => l_event_id
65050 ,p_calculate_acctd_flag => l_calculate_acctd_flag
65051 ,p_calculate_g_l_flag => l_calculate_g_l_flag
65052 ,p_actual_flag => l_actual_flag
65053 ,p_balance_type_code => l_balance_type_code
65054 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
65055
65056 , p_source_3 => l_array_source_3(Idx)
65057 , p_source_4 => l_array_source_4(Idx)
65058 , p_source_6 => l_array_source_6(Idx)
65059 , p_source_7 => l_array_source_7(Idx)
65060 , p_source_22 => l_array_source_22(Idx)
65061 , p_source_23 => l_array_source_23(Idx)
65065 , p_source_27 => l_array_source_27(Idx)
65062 , p_source_24 => l_array_source_24(Idx)
65063 , p_source_25 => l_array_source_25(Idx)
65064 , p_source_26 => l_array_source_26(Idx)
65066 , p_source_28 => l_array_source_28(Idx)
65067 , p_source_29 => l_array_source_29(Idx)
65068 , p_source_30 => l_array_source_30(Idx)
65069 , p_source_31 => l_array_source_31(Idx)
65070 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
65071 , p_source_33 => l_array_source_33(Idx)
65072 , p_source_34 => l_array_source_34(Idx)
65073 , p_source_34_meaning => l_array_source_34_meaning(Idx)
65074 , p_source_35 => l_array_source_35(Idx)
65075 );
65076 If(l_balance_type_code = 'A') THEN
65077 l_actual_gain_loss_ref := l_gain_or_loss_ref;
65078 END IF;
65079
65080 --
65081
65082 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
65083 -- or secondary ledger that has different currency with primary
65084 -- or alc that is calculated by sla
65085 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
65086 (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'))
65087
65088 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
65089 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
65090 AND (l_actual_flag = 'A')) THEN
65091 XLA_AE_LINES_PKG.CreateGainOrLossLines(
65092 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
65093 ,p_application_id => p_application_id
65094 ,p_amb_context_code => 'DEFAULT'
65095 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
65096 ,p_event_class_code => C_EVENT_CLASS_CODE
65097 ,p_event_type_code => C_EVENT_TYPE_CODE
65098
65099 ,p_gain_ccid => -1
65100 ,p_loss_ccid => -1
65101
65102 ,p_actual_flag => l_actual_flag
65103 ,p_enc_flag => null
65104 ,p_actual_g_l_ref => l_actual_gain_loss_ref
65105 ,p_enc_g_l_ref => null
65106 );
65107 END IF;
65108 END IF;
65109 END IF;
65110
65111 ELSE
65112 --
65113 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
65114 --
65115 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65116 trace
65117 (p_msg => 'Trancaction revesal option is Y'
65118 ,p_level => C_LEVEL_STATEMENT
65119 ,p_module => l_log_module);
65120 END IF;
65121 END IF;
65122
65123 END LOOP;
65124 l_result := XLA_AE_LINES_PKG.InsertLines ;
65125 end loop;
65126 close line_cur;
65127
65128
65129 --
65130 -- insert headers into xla_ae_headers_gt table
65131 --
65132 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
65133
65134 -- insert into errors table here.
65135
65136 END LOOP;
65137
65138 --
65139 -- 4865292
65140 --
65141 -- Compare g_hdr_extract_count with event count in
65142 -- CreateHeadersAndLines.
65143 --
65144 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
65145
65146 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65147 trace (p_msg => '# rows extracted from header extract objects '
65148 || ' (running total): '
65149 || g_hdr_extract_count
65150 ,p_level => C_LEVEL_STATEMENT
65151 ,p_module => l_log_module);
65152 END IF;
65153
65154 CLOSE header_cur;
65155 --
65156
65157 --
65158 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65159 trace
65160 (p_msg => 'END of EventClass_116'
65161 ,p_level => C_LEVEL_PROCEDURE
65162 ,p_module => l_log_module);
65163 END IF;
65164 --
65165 RETURN l_result;
65166 EXCEPTION
65167 WHEN xla_exceptions_pkg.application_exception THEN
65168
65169 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
65170
65171
65172 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
65173
65174 RAISE;
65175 WHEN OTHERS THEN
65176 xla_exceptions_pkg.raise_message
65177 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_116');
65178 END EventClass_116;
65179 --
65180
65181 ---------------------------------------
65182 --
65183 -- PRIVATE PROCEDURE
65184 -- insert_sources_117
65185 --
65186 ----------------------------------------
65187 --
65188 PROCEDURE insert_sources_117(
65189 p_target_ledger_id IN NUMBER
65190 , p_language IN VARCHAR2
65191 , p_sla_ledger_id IN NUMBER
65192 , p_pad_start_date IN DATE
65193 , p_pad_end_date IN DATE
65194 )
65195 IS
65196
65197 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ_ALL';
65198 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ';
65199 p_apps_owner VARCHAR2(30);
65200 l_log_module VARCHAR2(240);
65201 BEGIN
65202 IF g_log_enabled THEN
65203 l_log_module := C_DEFAULT_MODULE||'.insert_sources_117';
65204 END IF;
65205 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65209 ,p_level => C_LEVEL_PROCEDURE
65206
65207 trace
65208 (p_msg => 'BEGIN of insert_sources_117'
65210 ,p_module => l_log_module);
65211
65212 END IF;
65213
65214 -- select APPS owner
65215 SELECT oracle_username
65216 INTO p_apps_owner
65217 FROM fnd_oracle_userid
65218 WHERE read_only_flag = 'U'
65219 ;
65220
65221 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65222 trace
65223 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
65224 ' - p_language = '||p_language||
65225 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
65226 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
65227 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
65228 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
65229 ,p_level => C_LEVEL_STATEMENT
65230 ,p_module => l_log_module);
65231 END IF;
65232
65233
65234 --
65235 INSERT INTO xla_diag_sources --hdr2
65236 (
65237 event_id
65238 , ledger_id
65239 , sla_ledger_id
65240 , description_language
65241 , object_name
65242 , object_type_code
65243 , line_number
65244 , source_application_id
65245 , source_type_code
65246 , source_code
65247 , source_value
65248 , source_meaning
65249 , created_by
65250 , creation_date
65251 , last_update_date
65252 , last_updated_by
65253 , last_update_login
65254 , program_update_date
65255 , program_application_id
65256 , program_id
65257 , request_id
65258 )
65259 SELECT
65260 event_id
65261 , p_target_ledger_id
65262 , p_sla_ledger_id
65263 , p_language
65264 , object_name
65265 , object_type_code
65266 , line_number
65267 , source_application_id
65268 , source_type_code
65269 , source_code
65270 , SUBSTR(source_value ,1,1996)
65271 , SUBSTR(source_meaning ,1,200)
65272 , xla_environment_pkg.g_Usr_Id
65273 , TRUNC(SYSDATE)
65274 , TRUNC(SYSDATE)
65275 , xla_environment_pkg.g_Usr_Id
65276 , xla_environment_pkg.g_Login_Id
65277 , TRUNC(SYSDATE)
65278 , xla_environment_pkg.g_Prog_Appl_Id
65279 , xla_environment_pkg.g_Prog_Id
65280 , xla_environment_pkg.g_Req_Id
65281 FROM (
65282 SELECT xet.event_id event_id
65283 , 0 line_number
65284 , CASE r
65285 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
65286 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
65287
65288 ELSE null
65289 END object_name
65290 , CASE r
65291 WHEN 1 THEN 'HEADER'
65292 WHEN 2 THEN 'HEADER'
65293
65294 ELSE null
65295 END object_type_code
65296 , CASE r
65297 WHEN 1 THEN '275'
65298 WHEN 2 THEN '275'
65299
65300 ELSE null
65301 END source_application_id
65302 , 'S' source_type_code
65303 , CASE r
65304 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
65305 WHEN 2 THEN 'GL_DATE'
65306
65307 ELSE null
65308 END source_code
65309 , CASE r
65310 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
65311 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
65312
65313 ELSE null
65314 END source_value
65315 , null source_meaning
65316 FROM xla_events_gt xet
65317 , PA_XLA_EXP_HEADER_V h2
65318 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
65319 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
65320 AND xet.event_class_code = C_EVENT_CLASS_CODE
65321 AND h2.event_id = xet.event_id
65322
65323 )
65324 ;
65325 --
65326 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65327
65328 trace
65329 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
65330 ,p_level => C_LEVEL_STATEMENT
65331 ,p_module => l_log_module);
65332
65333 END IF;
65334 --
65335
65336
65337
65338 --
65339 INSERT INTO xla_diag_sources --line2
65340 (
65341 event_id
65342 , ledger_id
65343 , sla_ledger_id
65344 , description_language
65345 , object_name
65346 , object_type_code
65347 , line_number
65348 , source_application_id
65349 , source_type_code
65350 , source_code
65351 , source_value
65352 , source_meaning
65353 , created_by
65354 , creation_date
65355 , last_update_date
65356 , last_updated_by
65357 , last_update_login
65358 , program_update_date
65359 , program_application_id
65360 , program_id
65364 , p_target_ledger_id
65361 , request_id
65362 )
65363 SELECT event_id
65365 , p_sla_ledger_id
65366 , p_language
65367 , object_name
65368 , object_type_code
65369 , line_number
65370 , source_application_id
65371 , source_type_code
65372 , source_code
65373 , SUBSTR(source_value,1,1996)
65374 , SUBSTR(source_meaning ,1,200)
65375 , xla_environment_pkg.g_Usr_Id
65376 , TRUNC(SYSDATE)
65377 , TRUNC(SYSDATE)
65378 , xla_environment_pkg.g_Usr_Id
65379 , xla_environment_pkg.g_Login_Id
65380 , TRUNC(SYSDATE)
65381 , xla_environment_pkg.g_Prog_Appl_Id
65382 , xla_environment_pkg.g_Prog_Id
65383 , xla_environment_pkg.g_Req_Id
65384 FROM (
65385 SELECT xet.event_id event_id
65386 , l1.line_number line_number
65387 , CASE r
65388 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
65389 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
65390 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
65391 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
65392 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
65393 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
65394 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
65395 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
65396 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
65397 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
65398 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
65399 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
65400 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
65401 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
65402 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
65403 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
65404 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
65405 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
65406
65407 ELSE null
65408 END object_name
65409 , CASE r
65410 WHEN 1 THEN 'LINE'
65411 WHEN 2 THEN 'LINE'
65412 WHEN 3 THEN 'LINE'
65413 WHEN 4 THEN 'LINE'
65414 WHEN 5 THEN 'LINE'
65415 WHEN 6 THEN 'LINE'
65416 WHEN 7 THEN 'LINE'
65417 WHEN 8 THEN 'LINE'
65418 WHEN 9 THEN 'LINE'
65419 WHEN 10 THEN 'LINE'
65420 WHEN 11 THEN 'LINE'
65421 WHEN 12 THEN 'LINE'
65422 WHEN 13 THEN 'LINE'
65423 WHEN 14 THEN 'LINE'
65424 WHEN 15 THEN 'LINE'
65425 WHEN 16 THEN 'LINE'
65426 WHEN 17 THEN 'LINE'
65427 WHEN 18 THEN 'LINE'
65428
65429 ELSE null
65430 END object_type_code
65431 , CASE r
65432 WHEN 1 THEN '275'
65433 WHEN 2 THEN '275'
65434 WHEN 3 THEN '275'
65435 WHEN 4 THEN '275'
65436 WHEN 5 THEN '275'
65437 WHEN 6 THEN '275'
65438 WHEN 7 THEN '275'
65439 WHEN 8 THEN '275'
65440 WHEN 9 THEN '275'
65441 WHEN 10 THEN '275'
65442 WHEN 11 THEN '275'
65443 WHEN 12 THEN '275'
65444 WHEN 13 THEN '275'
65445 WHEN 14 THEN '275'
65446 WHEN 15 THEN '275'
65447 WHEN 16 THEN '275'
65448 WHEN 17 THEN '275'
65449 WHEN 18 THEN '275'
65450
65451 ELSE null
65452 END source_application_id
65453 , 'S' source_type_code
65454 , CASE r
65455 WHEN 1 THEN 'COST_CCID'
65456 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
65457 WHEN 3 THEN 'ADJ_COST_CCID'
65458 WHEN 4 THEN 'COST_CLEARING_CCID'
65459 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
65460 WHEN 6 THEN 'REVERSING_LINE_FLAG'
65461 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
65462 WHEN 8 THEN 'ENTERED_RAW_COST'
65463 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
65464 WHEN 10 THEN 'ACCT_RAW_COST'
65465 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
65466 WHEN 12 THEN 'EXCHANGE_RATE'
65467 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
65468 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
65469 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
65470 WHEN 16 THEN 'LINE_NUMBER'
65471 WHEN 17 THEN 'LINE_TYPE'
65472 WHEN 18 THEN 'LINE_NUM_REVERSED'
65473
65474 ELSE null
65475 END source_code
65476 , CASE r
65477 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
65478 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
65479 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
65480 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
65481 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
65482 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
65483 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
65487 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
65484 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
65485 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
65486 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
65488 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
65489 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
65490 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
65491 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
65492 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
65493 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
65494 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
65495
65496 ELSE null
65497 END source_value
65498 , CASE r
65499 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
65500 103371
65501 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
65502 ,'ALLOW_OVERRIDE_CCID_FLAG'
65503 ,'S'
65504 ,275)
65505 WHEN 17 THEN fvl34.meaning
65506
65507 ELSE null
65508 END source_meaning
65509 FROM xla_events_gt xet
65510 , PA_XLA_CDL_LINES_V l1
65511 , fnd_lookup_values fvl34
65512 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
65513 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
65514 AND xet.event_class_code = C_EVENT_CLASS_CODE
65515 AND l1.event_id = xet.event_id
65516 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
65517 AND fvl34.lookup_code(+) = l1.LINE_TYPE
65518 AND fvl34.view_application_id(+) = 275
65519 AND fvl34.language(+) = USERENV('LANG')
65520
65521 )
65522 ;
65523 --
65524 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65525
65526 trace
65527 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
65528 ,p_level => C_LEVEL_STATEMENT
65529 ,p_module => l_log_module);
65530
65531 END IF;
65532
65533
65534 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65535 trace
65536 (p_msg => 'END of insert_sources_117'
65537 ,p_level => C_LEVEL_PROCEDURE
65538 ,p_module => l_log_module);
65539 END IF;
65540 EXCEPTION
65541 WHEN xla_exceptions_pkg.application_exception THEN
65542 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
65543 trace
65544 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
65545 ,p_level => C_LEVEL_EXCEPTION
65546 ,p_module => l_log_module);
65547 END IF;
65548 RAISE;
65549 WHEN OTHERS THEN
65550 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
65551 trace
65552 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
65553 ,p_level => C_LEVEL_EXCEPTION
65554 ,p_module => l_log_module);
65555 END IF;
65556 xla_exceptions_pkg.raise_message
65557 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_117');
65558 END insert_sources_117;
65559 --
65560
65561 ---------------------------------------
65562 --
65563 -- PRIVATE FUNCTION
65564 -- EventClass_117
65565 --
65566 ----------------------------------------
65567 --
65568 FUNCTION EventClass_117
65569 (p_application_id IN NUMBER
65570 ,p_base_ledger_id IN NUMBER
65571 ,p_target_ledger_id IN NUMBER
65572 ,p_language IN VARCHAR2
65573 ,p_currency_code IN VARCHAR2
65574 ,p_sla_ledger_id IN NUMBER
65575 ,p_pad_start_date IN DATE
65576 ,p_pad_end_date IN DATE
65577 ,p_primary_ledger_id IN NUMBER)
65578 RETURN BOOLEAN IS
65579 --
65580 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ_ALL';
65581 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ADJ';
65582
65583 l_calculate_acctd_flag VARCHAR2(1) :='N';
65584 l_calculate_g_l_flag VARCHAR2(1) :='N';
65585 --
65586 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65587 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65588 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65589 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65590 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65591 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65592 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65593 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65594 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65595 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65596 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65597 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65598 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65599 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
65603 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65600 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65601 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65602 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
65604 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65605 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65606 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65607 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
65608 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
65609 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
65610
65611 l_event_id NUMBER;
65612 l_previous_event_id NUMBER;
65613 l_first_event_id NUMBER;
65614 l_last_event_id NUMBER;
65615
65616 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
65617 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
65618 --
65619 --
65620 l_result BOOLEAN := TRUE;
65621 l_rows NUMBER := 1000;
65622 l_event_type_name VARCHAR2(80) := 'All';
65623 l_event_class_name VARCHAR2(80) := 'Labor Cost Adjustment';
65624 l_description VARCHAR2(4000);
65625 l_transaction_reversal NUMBER;
65626 l_ae_header_id NUMBER;
65627 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
65628 l_log_module VARCHAR2(240);
65629 --
65630 l_acct_reversal_source VARCHAR2(30);
65631 l_trx_reversal_source VARCHAR2(30);
65632
65633 l_continue_with_lines BOOLEAN := TRUE;
65634 --
65635 l_acc_rev_gl_date_source DATE; -- 4262811
65636 --
65637 type t_array_event_id is table of number index by binary_integer;
65638
65639 l_rec_array_event t_rec_array_event;
65640 l_null_rec_array_event t_rec_array_event;
65641 l_array_ae_header_id xla_number_array_type;
65642 l_actual_flag VARCHAR2(1) := NULL;
65643 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
65644 l_balance_type_code VARCHAR2(1) :=NULL;
65645 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
65646
65647 --
65648 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
65649 --
65650
65651 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
65652 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
65653
65654 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
65655 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
65656 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
65657 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
65658 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
65659 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
65660 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
65661 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
65662 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
65663 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
65664 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
65665 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
65666 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
65667 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
65668 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
65669 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
65670 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
65671 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
65672
65673 l_array_source_32 t_array_source_32;
65674 l_array_source_87 t_array_source_87;
65675
65676 l_array_source_3 t_array_source_3;
65677 l_array_source_4 t_array_source_4;
65678 l_array_source_5 t_array_source_5;
65679 l_array_source_6 t_array_source_6;
65680 l_array_source_7 t_array_source_7;
65681 l_array_source_22 t_array_source_22;
65682 l_array_source_23 t_array_source_23;
65683 l_array_source_24 t_array_source_24;
65684 l_array_source_25 t_array_source_25;
65685 l_array_source_26 t_array_source_26;
65686 l_array_source_27 t_array_source_27;
65687 l_array_source_28 t_array_source_28;
65688 l_array_source_29 t_array_source_29;
65689 l_array_source_30 t_array_source_30;
65690 l_array_source_31 t_array_source_31;
65691 l_array_source_33 t_array_source_33;
65692 l_array_source_34 t_array_source_34;
65693 l_array_source_34_meaning t_array_lookup_meaning;
65697 CURSOR header_cur
65694 l_array_source_35 t_array_source_35;
65695
65696 --
65698 IS
65699 SELECT /*+ leading(xet) cardinality(xet,1) */
65700 -- Event Class Code: LABOR_COST_ADJ
65701 xet.entity_id
65702 ,xet.legal_entity_id
65703 ,xet.entity_code
65704 ,xet.transaction_number
65705 ,xet.event_id
65706 ,xet.event_class_code
65707 ,xet.event_type_code
65708 ,xet.event_number
65709 ,xet.event_date
65710 ,xet.transaction_date
65711 ,xet.reference_num_1
65712 ,xet.reference_num_2
65713 ,xet.reference_num_3
65714 ,xet.reference_num_4
65715 ,xet.reference_char_1
65716 ,xet.reference_char_2
65717 ,xet.reference_char_3
65718 ,xet.reference_char_4
65719 ,xet.reference_date_1
65720 ,xet.reference_date_2
65721 ,xet.reference_date_3
65722 ,xet.reference_date_4
65723 ,xet.event_created_by
65724 ,xet.budgetary_control_flag
65725 , h2.EXPENDITURE_ITEM_ID source_32
65726 , h2.GL_DATE source_87
65727 FROM xla_events_gt xet
65728 , PA_XLA_EXP_HEADER_V h2
65729 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
65730 and xet.event_class_code = C_EVENT_CLASS_CODE
65731 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
65732
65733 ORDER BY event_id
65734 ;
65735
65736
65737 --
65738 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
65739 IS
65740 SELECT /*+ leading(xet) cardinality(xet,1) */
65741 -- Event Class Code: LABOR_COST_ADJ
65742 xet.entity_id
65743 ,xet.legal_entity_id
65744 ,xet.entity_code
65745 ,xet.transaction_number
65746 ,xet.event_id
65747 ,xet.event_class_code
65748 ,xet.event_type_code
65749 ,xet.event_number
65750 ,xet.event_date
65751 ,xet.transaction_date
65752 ,xet.reference_num_1
65753 ,xet.reference_num_2
65754 ,xet.reference_num_3
65755 ,xet.reference_num_4
65756 ,xet.reference_char_1
65757 ,xet.reference_char_2
65758 ,xet.reference_char_3
65759 ,xet.reference_char_4
65760 ,xet.reference_date_1
65761 ,xet.reference_date_2
65762 ,xet.reference_date_3
65763 ,xet.reference_date_4
65764 ,xet.event_created_by
65765 ,xet.budgetary_control_flag
65766 , l1.LINE_NUMBER
65767 , l1.COST_CCID source_3
65768 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
65769 , l1.ADJ_COST_CCID source_5
65770 , l1.COST_CLEARING_CCID source_6
65771 , l1.ADJ_COST_CLEARING_CCID source_7
65772 , l1.REVERSING_LINE_FLAG source_22
65773 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
65774 , l1.ENTERED_RAW_COST source_24
65775 , l1.ENTERED_CURRENCY_CODE source_25
65776 , l1.ACCT_RAW_COST source_26
65777 , l1.EXCHANGE_RATE_DATE source_27
65778 , l1.EXCHANGE_RATE source_28
65779 , l1.EXCHANGE_RATE_TYPE source_29
65780 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
65781 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
65782 , l1.LINE_NUMBER source_33
65783 , l1.LINE_TYPE source_34
65784 , fvl34.meaning source_34_meaning
65785 , l1.LINE_NUM_REVERSED source_35
65786 FROM xla_events_gt xet
65787 , PA_XLA_CDL_LINES_V l1
65788 , fnd_lookup_values fvl34
65789 WHERE xet.event_id between x_first_event_id and x_last_event_id
65790 and xet.event_date between p_pad_start_date and p_pad_end_date
65791 and xet.event_class_code = C_EVENT_CLASS_CODE
65792 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
65793 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
65794 AND fvl34.lookup_code(+) = l1.LINE_TYPE
65795 AND fvl34.view_application_id(+) = 275
65796 AND fvl34.language(+) = USERENV('LANG')
65797 ;
65798
65799 --
65800 BEGIN
65801 IF g_log_enabled THEN
65802 l_log_module := C_DEFAULT_MODULE||'.EventClass_117';
65803 END IF;
65804 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
65805 trace
65806 (p_msg => 'BEGIN of EventClass_117'
65807 ,p_level => C_LEVEL_PROCEDURE
65808 ,p_module => l_log_module);
65809 END IF;
65810
65811 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65812 trace
65813 (p_msg => 'p_application_id = '||p_application_id||
65814 ' - p_base_ledger_id = '||p_base_ledger_id||
65815 ' - p_target_ledger_id = '||p_target_ledger_id||
65816 ' - p_language = '||p_language||
65817 ' - p_currency_code = '||p_currency_code||
65818 ' - p_sla_ledger_id = '||p_sla_ledger_id
65819 ,p_level => C_LEVEL_STATEMENT
65820 ,p_module => l_log_module);
65821 END IF;
65822 --
65823 -- initialze arrays
65824 --
65825 g_array_event.DELETE;
65826 l_rec_array_event := l_null_rec_array_event;
65827 --
65828 --------------------------------------
65829 -- 4262811 Initialze MPA Line Number
65830 --------------------------------------
65831 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
65832
65833 --
65834
65835 --
65836 OPEN header_cur;
65837 --
65838 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
65839 trace
65840 (p_msg => 'SQL - FETCH header_cur'
65841 ,p_level => C_LEVEL_STATEMENT
65842 ,p_module => l_log_module);
65843 END IF;
65844 --
65845 LOOP
65846 FETCH header_cur BULK COLLECT INTO
65850 , l_array_transaction_num
65847 l_array_entity_id
65848 , l_array_legal_entity_id
65849 , l_array_entity_code
65851 , l_array_event_id
65852 , l_array_class_code
65853 , l_array_event_type
65854 , l_array_event_number
65855 , l_array_event_date
65856 , l_array_transaction_date
65857 , l_array_reference_num_1
65858 , l_array_reference_num_2
65859 , l_array_reference_num_3
65860 , l_array_reference_num_4
65861 , l_array_reference_char_1
65862 , l_array_reference_char_2
65863 , l_array_reference_char_3
65864 , l_array_reference_char_4
65865 , l_array_reference_date_1
65866 , l_array_reference_date_2
65867 , l_array_reference_date_3
65868 , l_array_reference_date_4
65869 , l_array_event_created_by
65870 , l_array_budgetary_control_flag
65871 , l_array_source_32
65872 , l_array_source_87
65873 LIMIT l_rows;
65874 --
65875 IF (C_LEVEL_EVENT >= g_log_level) THEN
65876 trace
65877 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
65878 ,p_level => C_LEVEL_EVENT
65879 ,p_module => l_log_module);
65880 END IF;
65881 --
65882 EXIT WHEN l_array_entity_id.COUNT = 0;
65883
65884 -- initialize arrays
65885 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
65886 XLA_AE_LINES_PKG.g_rec_lines := NULL;
65887
65888 --
65889 -- Bug 4458708
65890 --
65891 XLA_AE_LINES_PKG.g_LineNumber := 0;
65892
65893
65894 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
65895 g_last_hdr_idx := l_array_event_id.LAST;
65896 --
65897 -- loop for the headers. Each iteration is for each header extract row
65898 -- fetched in header cursor
65899 --
65900 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
65901
65902 --
65903 -- set event info as cache for other routines to refer event attributes
65904 --
65905 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
65906 (p_application_id => p_application_id
65907 ,p_primary_ledger_id => p_primary_ledger_id
65908 ,p_base_ledger_id => p_base_ledger_id
65909 ,p_target_ledger_id => p_target_ledger_id
65910 ,p_entity_id => l_array_entity_id(hdr_idx)
65911 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
65912 ,p_entity_code => l_array_entity_code(hdr_idx)
65913 ,p_transaction_num => l_array_transaction_num(hdr_idx)
65914 ,p_event_id => l_array_event_id(hdr_idx)
65915 ,p_event_class_code => l_array_class_code(hdr_idx)
65916 ,p_event_type_code => l_array_event_type(hdr_idx)
65917 ,p_event_number => l_array_event_number(hdr_idx)
65918 ,p_event_date => l_array_event_date(hdr_idx)
65919 ,p_transaction_date => l_array_transaction_date(hdr_idx)
65920 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
65921 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
65922 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
65923 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
65924 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
65925 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
65926 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
65927 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
65928 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
65929 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
65930 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
65931 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
65932 ,p_event_created_by => l_array_event_created_by(hdr_idx)
65933 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
65934
65935 --
65936 -- set the status of entry to C_VALID (0)
65937 --
65938 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
65939
65940 --
65941 -- initialize a row for ae header
65942 --
65943 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
65944
65945 l_event_id := l_array_event_id(hdr_idx);
65946
65947 --
65948 -- storing the hdr_idx for event. May be used by line cursor.
65949 --
65950 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
65951
65952 --
65953 -- store sources from header extract. This can be improved to
65954 -- store only those sources from header extract that may be used in lines
65955 --
65956
65957 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
65958 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
65959
65960 --
65961 -- initilaize the status of ae headers for diffrent balance types
65962 -- the status is initialised to C_NOT_CREATED (2)
65963 --
65964 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
65965 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
65966 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
65967
65968 --
65969 -- call api to validate and store accounting attributes for header
65970 --
65971
65972 ------------------------------------------------------------
65976
65973 -- Accrual Reversal : to get date for Standard Source (NONE)
65974 ------------------------------------------------------------
65975 l_acc_rev_gl_date_source := NULL;
65977 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
65978 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
65979
65980
65981 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
65982
65983 XLA_AE_HEADER_PKG.SetJeCategoryName;
65984
65985 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
65986 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
65987 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
65988 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
65989 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
65990
65991
65992 -- No header level analytical criteria
65993
65994 --
65995 --accounting attribute enhancement, bug 3612931
65996 --
65997 l_trx_reversal_source := SUBSTR(NULL, 1,30);
65998
65999 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
66000 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
66001
66002 xla_accounting_err_pkg.build_message
66003 (p_appli_s_name => 'XLA'
66004 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
66005 ,p_token_1 => 'ACCT_ATTR_NAME'
66006 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
66007 ,p_token_2 => 'PRODUCT_NAME'
66008 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
66009 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
66010 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
66011 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
66012
66013 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
66014 --
66015 -- following sets the accounting attributes needed to reverse
66016 -- accounting for a distributeion
66017 --
66018 xla_ae_lines_pkg.SetTrxReversalAttrs
66019 (p_event_id => l_event_id
66020 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
66021 ,p_trx_reversal_source => l_trx_reversal_source);
66022
66023 END IF;
66024
66025
66026 ----------------------------------------------------------------
66027 -- 4262811 - update the header statuses to invalid in need be
66028 ----------------------------------------------------------------
66029 --
66030 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
66031
66032
66033 -----------------------------------------------
66034 -- No accrual reversal for the event class/type
66035 -----------------------------------------------
66036 ----------------------------------------------------------------
66037
66038 --
66039 -- this ends the header loop iteration for one bulk fetch
66040 --
66041 END LOOP;
66042
66043 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
66044 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
66045
66046 --
66047 -- insert dummy rows into lines gt table that were created due to
66048 -- transaction reversals
66049 --
66050 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
66051 l_result := XLA_AE_LINES_PKG.InsertLines;
66052 END IF;
66053
66054 --
66055 -- reset the temp_line_num for each set of events fetched from header
66056 -- cursor rather than doing it for each new event in line cursor
66057 -- Bug 3939231
66058 --
66059 xla_ae_lines_pkg.g_temp_line_num := 0;
66060
66061
66062
66063 --
66064 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
66065 --
66066 --
66067 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66068
66069 trace
66070 (p_msg => 'SQL - FETCH line_cur'
66071 ,p_level => C_LEVEL_STATEMENT
66072 ,p_module => l_log_module);
66073
66074 END IF;
66075 --
66076 --
66077 LOOP
66078 --
66079 FETCH line_cur BULK COLLECT INTO
66080 l_array_entity_id
66081 , l_array_legal_entity_id
66082 , l_array_entity_code
66083 , l_array_transaction_num
66084 , l_array_event_id
66085 , l_array_class_code
66086 , l_array_event_type
66087 , l_array_event_number
66088 , l_array_event_date
66089 , l_array_transaction_date
66090 , l_array_reference_num_1
66091 , l_array_reference_num_2
66092 , l_array_reference_num_3
66093 , l_array_reference_num_4
66094 , l_array_reference_char_1
66095 , l_array_reference_char_2
66096 , l_array_reference_char_3
66097 , l_array_reference_char_4
66098 , l_array_reference_date_1
66099 , l_array_reference_date_2
66100 , l_array_reference_date_3
66101 , l_array_reference_date_4
66102 , l_array_event_created_by
66103 , l_array_budgetary_control_flag
66104 , l_array_extract_line_num
66105 , l_array_source_3
66106 , l_array_source_4
66107 , l_array_source_5
66111 , l_array_source_23
66108 , l_array_source_6
66109 , l_array_source_7
66110 , l_array_source_22
66112 , l_array_source_24
66113 , l_array_source_25
66114 , l_array_source_26
66115 , l_array_source_27
66116 , l_array_source_28
66117 , l_array_source_29
66118 , l_array_source_30
66119 , l_array_source_31
66120 , l_array_source_33
66121 , l_array_source_34
66122 , l_array_source_34_meaning
66123 , l_array_source_35
66124 LIMIT l_rows;
66125
66126 --
66127 IF (C_LEVEL_EVENT >= g_log_level) THEN
66128 trace
66129 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
66130 ,p_level => C_LEVEL_EVENT
66131 ,p_module => l_log_module);
66132 END IF;
66133 --
66134 EXIT WHEN l_array_entity_id.count = 0;
66135
66136 XLA_AE_LINES_PKG.g_rec_lines := null;
66137
66138 --
66139 -- Bug 4458708
66140 --
66141 XLA_AE_LINES_PKG.g_LineNumber := 0;
66142 --
66143 --
66144
66145 FOR Idx IN 1..l_array_event_id.count LOOP
66146 --
66147 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
66148 --
66149 l_event_id := l_array_event_id(idx); -- 5648433
66150
66151 --
66152 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
66153 --
66154
66155 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
66156 (g_array_event(l_event_id).array_value_num('header_index'))
66157 ,'N'
66158 ) <> 'Y'
66159 THEN
66160 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66161 trace
66162 (p_msg => 'Trancaction revesal option is not Y '
66163 ,p_level => C_LEVEL_STATEMENT
66164 ,p_module => l_log_module);
66165 END IF;
66166
66167 --
66168 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
66169 --
66170 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
66171 --
66172 -- set event info as cache for other routines to refer event attributes
66173 --
66174
66175 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
66176 l_previous_event_id := l_event_id;
66177
66178 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
66179 (p_application_id => p_application_id
66180 ,p_primary_ledger_id => p_primary_ledger_id
66181 ,p_base_ledger_id => p_base_ledger_id
66182 ,p_target_ledger_id => p_target_ledger_id
66183 ,p_entity_id => l_array_entity_id(Idx)
66184 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
66185 ,p_entity_code => l_array_entity_code(Idx)
66186 ,p_transaction_num => l_array_transaction_num(Idx)
66187 ,p_event_id => l_array_event_id(Idx)
66188 ,p_event_class_code => l_array_class_code(Idx)
66189 ,p_event_type_code => l_array_event_type(Idx)
66190 ,p_event_number => l_array_event_number(Idx)
66191 ,p_event_date => l_array_event_date(Idx)
66192 ,p_transaction_date => l_array_transaction_date(Idx)
66193 ,p_reference_num_1 => l_array_reference_num_1(Idx)
66194 ,p_reference_num_2 => l_array_reference_num_2(Idx)
66195 ,p_reference_num_3 => l_array_reference_num_3(Idx)
66196 ,p_reference_num_4 => l_array_reference_num_4(Idx)
66197 ,p_reference_char_1 => l_array_reference_char_1(Idx)
66198 ,p_reference_char_2 => l_array_reference_char_2(Idx)
66199 ,p_reference_char_3 => l_array_reference_char_3(Idx)
66200 ,p_reference_char_4 => l_array_reference_char_4(Idx)
66201 ,p_reference_date_1 => l_array_reference_date_1(Idx)
66202 ,p_reference_date_2 => l_array_reference_date_2(Idx)
66203 ,p_reference_date_3 => l_array_reference_date_3(Idx)
66204 ,p_reference_date_4 => l_array_reference_date_4(Idx)
66205 ,p_event_created_by => l_array_event_created_by(Idx)
66206 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
66207 --
66208 END IF;
66209
66210
66211
66212 --
66213 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
66214
66215 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
66216
66217 IF l_continue_with_lines THEN
66218 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
66219 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
66220
66221 xla_accounting_err_pkg.build_message
66222 (p_appli_s_name => 'XLA'
66223 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
66224 ,p_token_1 => 'LINE_NUMBER'
66225 ,p_value_1 => l_array_extract_line_num(Idx)
66226 ,p_token_2 => 'PRODUCT_NAME'
66227 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
66228 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
66229 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
66233 --
66230 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
66231
66232 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
66234 -- following sets the accounting attributes needed to reverse
66235 -- accounting for a distributeion
66236 --
66237
66238 --
66239 -- 5217187
66240 --
66241 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
66242 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
66243 g_array_event(l_event_id).array_value_num('header_index'));
66244 --
66245 --
66246
66247 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
66248 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
66249 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
66250 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
66251 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
66252 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
66253 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
66254 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
66255 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
66256 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
66257 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
66258 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
66259 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
66260 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
66261 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
66262 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
66263 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
66264 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
66265 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
66266 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
66267 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
66268 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
66269 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
66270 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
66271 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
66272 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
66273 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
66274 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
66275 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
66276 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
66277 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
66278 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
66279 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
66280 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
66281 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
66282 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
66283 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
66284 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
66285 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
66286 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
66287 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
66288 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
66289 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
66290 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
66291 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
66292 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
66293 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
66294 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
66295
66296
66297 xla_ae_lines_pkg.SetAcctReversalAttrs
66298 (p_event_id => l_event_id
66299 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
66300 ,p_calculate_acctd_flag => l_calculate_acctd_flag
66301 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
66302 END IF;
66303
66304 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
66305 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
66306
66307 --
66308 AcctLineType_51 (
66309 p_application_id => p_application_id
66310 ,p_event_id => l_event_id
66311 ,p_calculate_acctd_flag => l_calculate_acctd_flag
66312 ,p_calculate_g_l_flag => l_calculate_g_l_flag
66313 ,p_actual_flag => l_actual_flag
66314 ,p_balance_type_code => l_balance_type_code
66315 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66316
66317 , p_source_3 => l_array_source_3(Idx)
66318 , p_source_4 => l_array_source_4(Idx)
66319 , p_source_5 => l_array_source_5(Idx)
66320 , p_source_6 => l_array_source_6(Idx)
66324 , p_source_25 => l_array_source_25(Idx)
66321 , p_source_22 => l_array_source_22(Idx)
66322 , p_source_23 => l_array_source_23(Idx)
66323 , p_source_24 => l_array_source_24(Idx)
66325 , p_source_26 => l_array_source_26(Idx)
66326 , p_source_27 => l_array_source_27(Idx)
66327 , p_source_28 => l_array_source_28(Idx)
66328 , p_source_29 => l_array_source_29(Idx)
66329 , p_source_30 => l_array_source_30(Idx)
66330 , p_source_31 => l_array_source_31(Idx)
66331 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
66332 , p_source_33 => l_array_source_33(Idx)
66333 , p_source_34 => l_array_source_34(Idx)
66334 , p_source_34_meaning => l_array_source_34_meaning(Idx)
66335 , p_source_35 => l_array_source_35(Idx)
66336 );
66337 If(l_balance_type_code = 'A') THEN
66338 l_actual_gain_loss_ref := l_gain_or_loss_ref;
66339 END IF;
66340
66341 --
66342
66343
66344 --
66345 AcctLineType_60 (
66346 p_application_id => p_application_id
66347 ,p_event_id => l_event_id
66348 ,p_calculate_acctd_flag => l_calculate_acctd_flag
66349 ,p_calculate_g_l_flag => l_calculate_g_l_flag
66350 ,p_actual_flag => l_actual_flag
66351 ,p_balance_type_code => l_balance_type_code
66352 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
66353
66354 , p_source_3 => l_array_source_3(Idx)
66355 , p_source_4 => l_array_source_4(Idx)
66356 , p_source_6 => l_array_source_6(Idx)
66357 , p_source_7 => l_array_source_7(Idx)
66358 , p_source_22 => l_array_source_22(Idx)
66359 , p_source_23 => l_array_source_23(Idx)
66360 , p_source_24 => l_array_source_24(Idx)
66361 , p_source_25 => l_array_source_25(Idx)
66362 , p_source_26 => l_array_source_26(Idx)
66363 , p_source_27 => l_array_source_27(Idx)
66364 , p_source_28 => l_array_source_28(Idx)
66365 , p_source_29 => l_array_source_29(Idx)
66366 , p_source_30 => l_array_source_30(Idx)
66367 , p_source_31 => l_array_source_31(Idx)
66368 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
66369 , p_source_33 => l_array_source_33(Idx)
66370 , p_source_34 => l_array_source_34(Idx)
66371 , p_source_34_meaning => l_array_source_34_meaning(Idx)
66372 , p_source_35 => l_array_source_35(Idx)
66373 );
66374 If(l_balance_type_code = 'A') THEN
66375 l_actual_gain_loss_ref := l_gain_or_loss_ref;
66376 END IF;
66377
66378 --
66379
66380 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
66381 -- or secondary ledger that has different currency with primary
66382 -- or alc that is calculated by sla
66383 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
66384 (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'))
66385
66386 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
66387 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
66388 AND (l_actual_flag = 'A')) THEN
66389 XLA_AE_LINES_PKG.CreateGainOrLossLines(
66390 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
66391 ,p_application_id => p_application_id
66392 ,p_amb_context_code => 'DEFAULT'
66393 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
66394 ,p_event_class_code => C_EVENT_CLASS_CODE
66395 ,p_event_type_code => C_EVENT_TYPE_CODE
66396
66397 ,p_gain_ccid => -1
66398 ,p_loss_ccid => -1
66399
66400 ,p_actual_flag => l_actual_flag
66401 ,p_enc_flag => null
66402 ,p_actual_g_l_ref => l_actual_gain_loss_ref
66403 ,p_enc_g_l_ref => null
66404 );
66405 END IF;
66406 END IF;
66407 END IF;
66408
66409 ELSE
66410 --
66411 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
66412 --
66413 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66414 trace
66415 (p_msg => 'Trancaction revesal option is Y'
66416 ,p_level => C_LEVEL_STATEMENT
66417 ,p_module => l_log_module);
66418 END IF;
66419 END IF;
66420
66421 END LOOP;
66422 l_result := XLA_AE_LINES_PKG.InsertLines ;
66423 end loop;
66424 close line_cur;
66425
66426
66427 --
66428 -- insert headers into xla_ae_headers_gt table
66429 --
66430 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
66431
66432 -- insert into errors table here.
66433
66434 END LOOP;
66435
66436 --
66437 -- 4865292
66438 --
66439 -- Compare g_hdr_extract_count with event count in
66440 -- CreateHeadersAndLines.
66441 --
66442 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
66443
66444 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66445 trace (p_msg => '# rows extracted from header extract objects '
66446 || ' (running total): '
66447 || g_hdr_extract_count
66448 ,p_level => C_LEVEL_STATEMENT
66449 ,p_module => l_log_module);
66450 END IF;
66451
66452 CLOSE header_cur;
66453 --
66454
66455 --
66456 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66457 trace
66458 (p_msg => 'END of EventClass_117'
66459 ,p_level => C_LEVEL_PROCEDURE
66463 RETURN l_result;
66460 ,p_module => l_log_module);
66461 END IF;
66462 --
66464 EXCEPTION
66465 WHEN xla_exceptions_pkg.application_exception THEN
66466
66467 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
66468
66469
66470 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
66471
66472 RAISE;
66473 WHEN OTHERS THEN
66474 xla_exceptions_pkg.raise_message
66475 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_117');
66476 END EventClass_117;
66477 --
66478
66479 ---------------------------------------
66480 --
66481 -- PRIVATE PROCEDURE
66482 -- insert_sources_118
66483 --
66484 ----------------------------------------
66485 --
66486 PROCEDURE insert_sources_118(
66487 p_target_ledger_id IN NUMBER
66488 , p_language IN VARCHAR2
66489 , p_sla_ledger_id IN NUMBER
66490 , p_pad_start_date IN DATE
66491 , p_pad_end_date IN DATE
66492 )
66493 IS
66494
66495 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ALL';
66496 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST';
66497 p_apps_owner VARCHAR2(30);
66498 l_log_module VARCHAR2(240);
66499 BEGIN
66500 IF g_log_enabled THEN
66501 l_log_module := C_DEFAULT_MODULE||'.insert_sources_118';
66502 END IF;
66503 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66504
66505 trace
66506 (p_msg => 'BEGIN of insert_sources_118'
66507 ,p_level => C_LEVEL_PROCEDURE
66508 ,p_module => l_log_module);
66509
66510 END IF;
66511
66512 -- select APPS owner
66513 SELECT oracle_username
66514 INTO p_apps_owner
66515 FROM fnd_oracle_userid
66516 WHERE read_only_flag = 'U'
66517 ;
66518
66519 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66520 trace
66521 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
66522 ' - p_language = '||p_language||
66523 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
66524 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
66525 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
66526 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
66527 ,p_level => C_LEVEL_STATEMENT
66528 ,p_module => l_log_module);
66529 END IF;
66530
66531
66532 --
66533 INSERT INTO xla_diag_sources --hdr2
66534 (
66535 event_id
66536 , ledger_id
66537 , sla_ledger_id
66538 , description_language
66539 , object_name
66540 , object_type_code
66541 , line_number
66542 , source_application_id
66543 , source_type_code
66544 , source_code
66545 , source_value
66546 , source_meaning
66547 , created_by
66548 , creation_date
66549 , last_update_date
66550 , last_updated_by
66551 , last_update_login
66552 , program_update_date
66553 , program_application_id
66554 , program_id
66555 , request_id
66556 )
66557 SELECT
66558 event_id
66559 , p_target_ledger_id
66560 , p_sla_ledger_id
66561 , p_language
66562 , object_name
66563 , object_type_code
66564 , line_number
66565 , source_application_id
66566 , source_type_code
66567 , source_code
66568 , SUBSTR(source_value ,1,1996)
66569 , SUBSTR(source_meaning ,1,200)
66570 , xla_environment_pkg.g_Usr_Id
66571 , TRUNC(SYSDATE)
66572 , TRUNC(SYSDATE)
66573 , xla_environment_pkg.g_Usr_Id
66574 , xla_environment_pkg.g_Login_Id
66575 , TRUNC(SYSDATE)
66576 , xla_environment_pkg.g_Prog_Appl_Id
66577 , xla_environment_pkg.g_Prog_Id
66578 , xla_environment_pkg.g_Req_Id
66579 FROM (
66580 SELECT xet.event_id event_id
66581 , 0 line_number
66582 , CASE r
66583 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
66584 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
66585
66586 ELSE null
66587 END object_name
66588 , CASE r
66589 WHEN 1 THEN 'HEADER'
66590 WHEN 2 THEN 'HEADER'
66591
66592 ELSE null
66593 END object_type_code
66594 , CASE r
66595 WHEN 1 THEN '275'
66596 WHEN 2 THEN '275'
66597
66598 ELSE null
66599 END source_application_id
66600 , 'S' source_type_code
66601 , CASE r
66602 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
66603 WHEN 2 THEN 'GL_DATE'
66604
66605 ELSE null
66606 END source_code
66607 , CASE r
66608 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
66609 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
66610
66611 ELSE null
66615 , PA_XLA_EXP_HEADER_V h2
66612 END source_value
66613 , null source_meaning
66614 FROM xla_events_gt xet
66616 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
66617 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
66618 AND xet.event_class_code = C_EVENT_CLASS_CODE
66619 AND h2.event_id = xet.event_id
66620
66621 )
66622 ;
66623 --
66624 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66625
66626 trace
66627 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
66628 ,p_level => C_LEVEL_STATEMENT
66629 ,p_module => l_log_module);
66630
66631 END IF;
66632 --
66633
66634
66635
66636 --
66637 INSERT INTO xla_diag_sources --line2
66638 (
66639 event_id
66640 , ledger_id
66641 , sla_ledger_id
66642 , description_language
66643 , object_name
66644 , object_type_code
66645 , line_number
66646 , source_application_id
66647 , source_type_code
66648 , source_code
66649 , source_value
66650 , source_meaning
66651 , created_by
66652 , creation_date
66653 , last_update_date
66654 , last_updated_by
66655 , last_update_login
66656 , program_update_date
66657 , program_application_id
66658 , program_id
66659 , request_id
66660 )
66661 SELECT event_id
66662 , p_target_ledger_id
66663 , p_sla_ledger_id
66664 , p_language
66665 , object_name
66666 , object_type_code
66667 , line_number
66668 , source_application_id
66669 , source_type_code
66670 , source_code
66671 , SUBSTR(source_value,1,1996)
66672 , SUBSTR(source_meaning ,1,200)
66673 , xla_environment_pkg.g_Usr_Id
66674 , TRUNC(SYSDATE)
66675 , TRUNC(SYSDATE)
66676 , xla_environment_pkg.g_Usr_Id
66677 , xla_environment_pkg.g_Login_Id
66678 , TRUNC(SYSDATE)
66679 , xla_environment_pkg.g_Prog_Appl_Id
66680 , xla_environment_pkg.g_Prog_Id
66681 , xla_environment_pkg.g_Req_Id
66682 FROM (
66683 SELECT xet.event_id event_id
66684 , l1.line_number line_number
66685 , CASE r
66686 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
66687 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
66688 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
66689 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
66690 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
66691 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
66692 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
66693 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
66694 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
66695 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
66696 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
66697 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
66698 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
66699 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
66700 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
66701 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
66702 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
66703 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
66704
66705 ELSE null
66706 END object_name
66707 , CASE r
66708 WHEN 1 THEN 'LINE'
66709 WHEN 2 THEN 'LINE'
66710 WHEN 3 THEN 'LINE'
66711 WHEN 4 THEN 'LINE'
66712 WHEN 5 THEN 'LINE'
66713 WHEN 6 THEN 'LINE'
66714 WHEN 7 THEN 'LINE'
66715 WHEN 8 THEN 'LINE'
66716 WHEN 9 THEN 'LINE'
66717 WHEN 10 THEN 'LINE'
66718 WHEN 11 THEN 'LINE'
66719 WHEN 12 THEN 'LINE'
66720 WHEN 13 THEN 'LINE'
66721 WHEN 14 THEN 'LINE'
66722 WHEN 15 THEN 'LINE'
66723 WHEN 16 THEN 'LINE'
66724 WHEN 17 THEN 'LINE'
66725 WHEN 18 THEN 'LINE'
66726
66727 ELSE null
66728 END object_type_code
66729 , CASE r
66730 WHEN 1 THEN '275'
66731 WHEN 2 THEN '275'
66732 WHEN 3 THEN '275'
66733 WHEN 4 THEN '275'
66734 WHEN 5 THEN '275'
66735 WHEN 6 THEN '275'
66736 WHEN 7 THEN '275'
66737 WHEN 8 THEN '275'
66738 WHEN 9 THEN '275'
66739 WHEN 10 THEN '275'
66740 WHEN 11 THEN '275'
66741 WHEN 12 THEN '275'
66742 WHEN 13 THEN '275'
66743 WHEN 14 THEN '275'
66744 WHEN 15 THEN '275'
66745 WHEN 16 THEN '275'
66746 WHEN 17 THEN '275'
66747 WHEN 18 THEN '275'
66748
66749 ELSE null
66753 WHEN 1 THEN 'COST_CCID'
66750 END source_application_id
66751 , 'S' source_type_code
66752 , CASE r
66754 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
66755 WHEN 3 THEN 'ADJ_COST_CCID'
66756 WHEN 4 THEN 'COST_CLEARING_CCID'
66757 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
66758 WHEN 6 THEN 'REVERSING_LINE_FLAG'
66759 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
66760 WHEN 8 THEN 'ENTERED_RAW_COST'
66761 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
66762 WHEN 10 THEN 'ACCT_RAW_COST'
66763 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
66764 WHEN 12 THEN 'EXCHANGE_RATE'
66765 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
66766 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
66767 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
66768 WHEN 16 THEN 'LINE_NUMBER'
66769 WHEN 17 THEN 'LINE_TYPE'
66770 WHEN 18 THEN 'LINE_NUM_REVERSED'
66771
66772 ELSE null
66773 END source_code
66774 , CASE r
66775 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
66776 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
66777 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
66778 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
66779 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
66780 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
66781 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
66782 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
66783 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
66784 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
66785 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
66786 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
66787 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
66788 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
66789 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
66790 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
66791 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
66792 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
66793
66794 ELSE null
66795 END source_value
66796 , CASE r
66797 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
66798 103371
66799 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
66800 ,'ALLOW_OVERRIDE_CCID_FLAG'
66801 ,'S'
66802 ,275)
66803 WHEN 17 THEN fvl34.meaning
66804
66805 ELSE null
66806 END source_meaning
66807 FROM xla_events_gt xet
66808 , PA_XLA_CDL_LINES_V l1
66809 , fnd_lookup_values fvl34
66810 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
66811 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
66812 AND xet.event_class_code = C_EVENT_CLASS_CODE
66813 AND l1.event_id = xet.event_id
66814 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
66815 AND fvl34.lookup_code(+) = l1.LINE_TYPE
66816 AND fvl34.view_application_id(+) = 275
66817 AND fvl34.language(+) = USERENV('LANG')
66818
66819 )
66820 ;
66821 --
66822 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
66823
66824 trace
66825 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
66826 ,p_level => C_LEVEL_STATEMENT
66827 ,p_module => l_log_module);
66828
66829 END IF;
66830
66831
66832 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
66833 trace
66834 (p_msg => 'END of insert_sources_118'
66835 ,p_level => C_LEVEL_PROCEDURE
66836 ,p_module => l_log_module);
66837 END IF;
66838 EXCEPTION
66839 WHEN xla_exceptions_pkg.application_exception THEN
66840 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
66841 trace
66842 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
66843 ,p_level => C_LEVEL_EXCEPTION
66844 ,p_module => l_log_module);
66845 END IF;
66846 RAISE;
66847 WHEN OTHERS THEN
66848 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
66849 trace
66850 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
66851 ,p_level => C_LEVEL_EXCEPTION
66852 ,p_module => l_log_module);
66853 END IF;
66854 xla_exceptions_pkg.raise_message
66855 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_118');
66856 END insert_sources_118;
66857 --
66858
66859 ---------------------------------------
66860 --
66861 -- PRIVATE FUNCTION
66862 -- EventClass_118
66863 --
66864 ----------------------------------------
66865 --
66866 FUNCTION EventClass_118
66867 (p_application_id IN NUMBER
66868 ,p_base_ledger_id IN NUMBER
66869 ,p_target_ledger_id IN NUMBER
66873 ,p_pad_start_date IN DATE
66870 ,p_language IN VARCHAR2
66871 ,p_currency_code IN VARCHAR2
66872 ,p_sla_ledger_id IN NUMBER
66874 ,p_pad_end_date IN DATE
66875 ,p_primary_ledger_id IN NUMBER)
66876 RETURN BOOLEAN IS
66877 --
66878 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST_ALL';
66879 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'LABOR_COST';
66880
66881 l_calculate_acctd_flag VARCHAR2(1) :='N';
66882 l_calculate_g_l_flag VARCHAR2(1) :='N';
66883 --
66884 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66885 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66886 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66887 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66888 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66889 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66890 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66891 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66892 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66893 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66894 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66895 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66896 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66897 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
66898 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66899 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66900 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66901 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
66902 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66903 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66904 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66905 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
66906 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
66907 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
66908
66909 l_event_id NUMBER;
66910 l_previous_event_id NUMBER;
66911 l_first_event_id NUMBER;
66912 l_last_event_id NUMBER;
66913
66914 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
66915 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
66916 --
66917 --
66918 l_result BOOLEAN := TRUE;
66919 l_rows NUMBER := 1000;
66920 l_event_type_name VARCHAR2(80) := 'All';
66921 l_event_class_name VARCHAR2(80) := 'Labor Cost';
66922 l_description VARCHAR2(4000);
66923 l_transaction_reversal NUMBER;
66924 l_ae_header_id NUMBER;
66925 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
66926 l_log_module VARCHAR2(240);
66927 --
66928 l_acct_reversal_source VARCHAR2(30);
66929 l_trx_reversal_source VARCHAR2(30);
66930
66931 l_continue_with_lines BOOLEAN := TRUE;
66932 --
66933 l_acc_rev_gl_date_source DATE; -- 4262811
66934 --
66935 type t_array_event_id is table of number index by binary_integer;
66936
66937 l_rec_array_event t_rec_array_event;
66938 l_null_rec_array_event t_rec_array_event;
66939 l_array_ae_header_id xla_number_array_type;
66940 l_actual_flag VARCHAR2(1) := NULL;
66941 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
66942 l_balance_type_code VARCHAR2(1) :=NULL;
66943 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
66944
66945 --
66946 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
66947 --
66948
66949 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
66950 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
66951
66952 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
66953 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
66954 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
66955 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
66956 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
66957 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
66958 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
66959 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
66960 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
66961 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
66962 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
66963 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
66967 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
66964 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
66965 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
66966 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
66968 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
66969 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
66970
66971 l_array_source_32 t_array_source_32;
66972 l_array_source_87 t_array_source_87;
66973
66974 l_array_source_3 t_array_source_3;
66975 l_array_source_4 t_array_source_4;
66976 l_array_source_5 t_array_source_5;
66977 l_array_source_6 t_array_source_6;
66978 l_array_source_7 t_array_source_7;
66979 l_array_source_22 t_array_source_22;
66980 l_array_source_23 t_array_source_23;
66981 l_array_source_24 t_array_source_24;
66982 l_array_source_25 t_array_source_25;
66983 l_array_source_26 t_array_source_26;
66984 l_array_source_27 t_array_source_27;
66985 l_array_source_28 t_array_source_28;
66986 l_array_source_29 t_array_source_29;
66987 l_array_source_30 t_array_source_30;
66988 l_array_source_31 t_array_source_31;
66989 l_array_source_33 t_array_source_33;
66990 l_array_source_34 t_array_source_34;
66991 l_array_source_34_meaning t_array_lookup_meaning;
66992 l_array_source_35 t_array_source_35;
66993
66994 --
66995 CURSOR header_cur
66996 IS
66997 SELECT /*+ leading(xet) cardinality(xet,1) */
66998 -- Event Class Code: LABOR_COST
66999 xet.entity_id
67000 ,xet.legal_entity_id
67001 ,xet.entity_code
67002 ,xet.transaction_number
67003 ,xet.event_id
67004 ,xet.event_class_code
67005 ,xet.event_type_code
67006 ,xet.event_number
67007 ,xet.event_date
67008 ,xet.transaction_date
67009 ,xet.reference_num_1
67010 ,xet.reference_num_2
67011 ,xet.reference_num_3
67012 ,xet.reference_num_4
67013 ,xet.reference_char_1
67014 ,xet.reference_char_2
67015 ,xet.reference_char_3
67016 ,xet.reference_char_4
67017 ,xet.reference_date_1
67018 ,xet.reference_date_2
67019 ,xet.reference_date_3
67020 ,xet.reference_date_4
67021 ,xet.event_created_by
67022 ,xet.budgetary_control_flag
67023 , h2.EXPENDITURE_ITEM_ID source_32
67024 , h2.GL_DATE source_87
67025 FROM xla_events_gt xet
67026 , PA_XLA_EXP_HEADER_V h2
67027 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
67028 and xet.event_class_code = C_EVENT_CLASS_CODE
67029 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
67030
67031 ORDER BY event_id
67032 ;
67033
67034
67035 --
67036 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
67037 IS
67038 SELECT /*+ leading(xet) cardinality(xet,1) */
67039 -- Event Class Code: LABOR_COST
67040 xet.entity_id
67041 ,xet.legal_entity_id
67042 ,xet.entity_code
67043 ,xet.transaction_number
67044 ,xet.event_id
67045 ,xet.event_class_code
67046 ,xet.event_type_code
67047 ,xet.event_number
67048 ,xet.event_date
67049 ,xet.transaction_date
67050 ,xet.reference_num_1
67051 ,xet.reference_num_2
67052 ,xet.reference_num_3
67053 ,xet.reference_num_4
67054 ,xet.reference_char_1
67055 ,xet.reference_char_2
67056 ,xet.reference_char_3
67057 ,xet.reference_char_4
67058 ,xet.reference_date_1
67059 ,xet.reference_date_2
67060 ,xet.reference_date_3
67061 ,xet.reference_date_4
67062 ,xet.event_created_by
67063 ,xet.budgetary_control_flag
67064 , l1.LINE_NUMBER
67065 , l1.COST_CCID source_3
67066 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
67067 , l1.ADJ_COST_CCID source_5
67068 , l1.COST_CLEARING_CCID source_6
67069 , l1.ADJ_COST_CLEARING_CCID source_7
67070 , l1.REVERSING_LINE_FLAG source_22
67071 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
67072 , l1.ENTERED_RAW_COST source_24
67073 , l1.ENTERED_CURRENCY_CODE source_25
67074 , l1.ACCT_RAW_COST source_26
67075 , l1.EXCHANGE_RATE_DATE source_27
67076 , l1.EXCHANGE_RATE source_28
67077 , l1.EXCHANGE_RATE_TYPE source_29
67078 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
67079 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
67080 , l1.LINE_NUMBER source_33
67081 , l1.LINE_TYPE source_34
67082 , fvl34.meaning source_34_meaning
67083 , l1.LINE_NUM_REVERSED source_35
67084 FROM xla_events_gt xet
67085 , PA_XLA_CDL_LINES_V l1
67086 , fnd_lookup_values fvl34
67087 WHERE xet.event_id between x_first_event_id and x_last_event_id
67088 and xet.event_date between p_pad_start_date and p_pad_end_date
67089 and xet.event_class_code = C_EVENT_CLASS_CODE
67090 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
67091 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
67092 AND fvl34.lookup_code(+) = l1.LINE_TYPE
67093 AND fvl34.view_application_id(+) = 275
67094 AND fvl34.language(+) = USERENV('LANG')
67095 ;
67096
67097 --
67098 BEGIN
67099 IF g_log_enabled THEN
67103 trace
67100 l_log_module := C_DEFAULT_MODULE||'.EventClass_118';
67101 END IF;
67102 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67104 (p_msg => 'BEGIN of EventClass_118'
67105 ,p_level => C_LEVEL_PROCEDURE
67106 ,p_module => l_log_module);
67107 END IF;
67108
67109 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67110 trace
67111 (p_msg => 'p_application_id = '||p_application_id||
67112 ' - p_base_ledger_id = '||p_base_ledger_id||
67113 ' - p_target_ledger_id = '||p_target_ledger_id||
67114 ' - p_language = '||p_language||
67115 ' - p_currency_code = '||p_currency_code||
67116 ' - p_sla_ledger_id = '||p_sla_ledger_id
67117 ,p_level => C_LEVEL_STATEMENT
67118 ,p_module => l_log_module);
67119 END IF;
67120 --
67121 -- initialze arrays
67122 --
67123 g_array_event.DELETE;
67124 l_rec_array_event := l_null_rec_array_event;
67125 --
67126 --------------------------------------
67127 -- 4262811 Initialze MPA Line Number
67128 --------------------------------------
67129 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
67130
67131 --
67132
67133 --
67134 OPEN header_cur;
67135 --
67136 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67137 trace
67138 (p_msg => 'SQL - FETCH header_cur'
67139 ,p_level => C_LEVEL_STATEMENT
67140 ,p_module => l_log_module);
67141 END IF;
67142 --
67143 LOOP
67144 FETCH header_cur BULK COLLECT INTO
67145 l_array_entity_id
67146 , l_array_legal_entity_id
67147 , l_array_entity_code
67148 , l_array_transaction_num
67149 , l_array_event_id
67150 , l_array_class_code
67151 , l_array_event_type
67152 , l_array_event_number
67153 , l_array_event_date
67154 , l_array_transaction_date
67155 , l_array_reference_num_1
67156 , l_array_reference_num_2
67157 , l_array_reference_num_3
67158 , l_array_reference_num_4
67159 , l_array_reference_char_1
67160 , l_array_reference_char_2
67161 , l_array_reference_char_3
67162 , l_array_reference_char_4
67163 , l_array_reference_date_1
67164 , l_array_reference_date_2
67165 , l_array_reference_date_3
67166 , l_array_reference_date_4
67167 , l_array_event_created_by
67168 , l_array_budgetary_control_flag
67169 , l_array_source_32
67170 , l_array_source_87
67171 LIMIT l_rows;
67172 --
67173 IF (C_LEVEL_EVENT >= g_log_level) THEN
67174 trace
67175 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
67176 ,p_level => C_LEVEL_EVENT
67177 ,p_module => l_log_module);
67178 END IF;
67179 --
67180 EXIT WHEN l_array_entity_id.COUNT = 0;
67181
67182 -- initialize arrays
67183 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
67184 XLA_AE_LINES_PKG.g_rec_lines := NULL;
67185
67186 --
67187 -- Bug 4458708
67188 --
67189 XLA_AE_LINES_PKG.g_LineNumber := 0;
67190
67191
67192 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
67193 g_last_hdr_idx := l_array_event_id.LAST;
67194 --
67195 -- loop for the headers. Each iteration is for each header extract row
67196 -- fetched in header cursor
67197 --
67198 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
67199
67200 --
67201 -- set event info as cache for other routines to refer event attributes
67202 --
67203 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
67204 (p_application_id => p_application_id
67205 ,p_primary_ledger_id => p_primary_ledger_id
67206 ,p_base_ledger_id => p_base_ledger_id
67207 ,p_target_ledger_id => p_target_ledger_id
67208 ,p_entity_id => l_array_entity_id(hdr_idx)
67209 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
67210 ,p_entity_code => l_array_entity_code(hdr_idx)
67211 ,p_transaction_num => l_array_transaction_num(hdr_idx)
67212 ,p_event_id => l_array_event_id(hdr_idx)
67213 ,p_event_class_code => l_array_class_code(hdr_idx)
67214 ,p_event_type_code => l_array_event_type(hdr_idx)
67215 ,p_event_number => l_array_event_number(hdr_idx)
67216 ,p_event_date => l_array_event_date(hdr_idx)
67217 ,p_transaction_date => l_array_transaction_date(hdr_idx)
67218 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
67219 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
67220 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
67221 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
67222 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
67223 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
67224 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
67225 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
67226 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
67227 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
67228 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
67229 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
67230 ,p_event_created_by => l_array_event_created_by(hdr_idx)
67231 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
67235 --
67232
67233 --
67234 -- set the status of entry to C_VALID (0)
67236 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
67237
67238 --
67239 -- initialize a row for ae header
67240 --
67241 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
67242
67243 l_event_id := l_array_event_id(hdr_idx);
67244
67245 --
67246 -- storing the hdr_idx for event. May be used by line cursor.
67247 --
67248 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
67249
67250 --
67251 -- store sources from header extract. This can be improved to
67252 -- store only those sources from header extract that may be used in lines
67253 --
67254
67255 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
67256 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
67257
67258 --
67259 -- initilaize the status of ae headers for diffrent balance types
67260 -- the status is initialised to C_NOT_CREATED (2)
67261 --
67262 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67263 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67264 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
67265
67266 --
67267 -- call api to validate and store accounting attributes for header
67268 --
67269
67270 ------------------------------------------------------------
67271 -- Accrual Reversal : to get date for Standard Source (NONE)
67272 ------------------------------------------------------------
67273 l_acc_rev_gl_date_source := NULL;
67274
67275 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
67276 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
67277
67278
67279 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
67280
67281 XLA_AE_HEADER_PKG.SetJeCategoryName;
67282
67283 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
67284 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
67285 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
67286 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
67287 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
67288
67289
67290 -- No header level analytical criteria
67291
67292 --
67293 --accounting attribute enhancement, bug 3612931
67294 --
67295 l_trx_reversal_source := SUBSTR(NULL, 1,30);
67296
67297 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
67298 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
67299
67300 xla_accounting_err_pkg.build_message
67301 (p_appli_s_name => 'XLA'
67302 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
67303 ,p_token_1 => 'ACCT_ATTR_NAME'
67304 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
67305 ,p_token_2 => 'PRODUCT_NAME'
67306 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
67307 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
67308 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
67309 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
67310
67311 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
67312 --
67313 -- following sets the accounting attributes needed to reverse
67314 -- accounting for a distributeion
67315 --
67316 xla_ae_lines_pkg.SetTrxReversalAttrs
67317 (p_event_id => l_event_id
67318 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
67319 ,p_trx_reversal_source => l_trx_reversal_source);
67320
67321 END IF;
67322
67323
67324 ----------------------------------------------------------------
67325 -- 4262811 - update the header statuses to invalid in need be
67326 ----------------------------------------------------------------
67327 --
67328 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
67329
67330
67331 -----------------------------------------------
67332 -- No accrual reversal for the event class/type
67333 -----------------------------------------------
67334 ----------------------------------------------------------------
67335
67336 --
67337 -- this ends the header loop iteration for one bulk fetch
67338 --
67339 END LOOP;
67340
67341 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
67342 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
67343
67344 --
67345 -- insert dummy rows into lines gt table that were created due to
67346 -- transaction reversals
67347 --
67348 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
67349 l_result := XLA_AE_LINES_PKG.InsertLines;
67350 END IF;
67351
67352 --
67353 -- reset the temp_line_num for each set of events fetched from header
67354 -- cursor rather than doing it for each new event in line cursor
67355 -- Bug 3939231
67356 --
67357 xla_ae_lines_pkg.g_temp_line_num := 0;
67361 --
67358
67359
67360
67362 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
67363 --
67364 --
67365 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67366
67367 trace
67368 (p_msg => 'SQL - FETCH line_cur'
67369 ,p_level => C_LEVEL_STATEMENT
67370 ,p_module => l_log_module);
67371
67372 END IF;
67373 --
67374 --
67375 LOOP
67376 --
67377 FETCH line_cur BULK COLLECT INTO
67378 l_array_entity_id
67379 , l_array_legal_entity_id
67380 , l_array_entity_code
67381 , l_array_transaction_num
67382 , l_array_event_id
67383 , l_array_class_code
67384 , l_array_event_type
67385 , l_array_event_number
67386 , l_array_event_date
67387 , l_array_transaction_date
67388 , l_array_reference_num_1
67389 , l_array_reference_num_2
67390 , l_array_reference_num_3
67391 , l_array_reference_num_4
67392 , l_array_reference_char_1
67393 , l_array_reference_char_2
67394 , l_array_reference_char_3
67395 , l_array_reference_char_4
67396 , l_array_reference_date_1
67397 , l_array_reference_date_2
67398 , l_array_reference_date_3
67399 , l_array_reference_date_4
67400 , l_array_event_created_by
67401 , l_array_budgetary_control_flag
67402 , l_array_extract_line_num
67403 , l_array_source_3
67404 , l_array_source_4
67405 , l_array_source_5
67406 , l_array_source_6
67407 , l_array_source_7
67408 , l_array_source_22
67409 , l_array_source_23
67410 , l_array_source_24
67411 , l_array_source_25
67412 , l_array_source_26
67413 , l_array_source_27
67414 , l_array_source_28
67415 , l_array_source_29
67416 , l_array_source_30
67417 , l_array_source_31
67418 , l_array_source_33
67419 , l_array_source_34
67420 , l_array_source_34_meaning
67421 , l_array_source_35
67422 LIMIT l_rows;
67423
67424 --
67425 IF (C_LEVEL_EVENT >= g_log_level) THEN
67426 trace
67427 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
67428 ,p_level => C_LEVEL_EVENT
67429 ,p_module => l_log_module);
67430 END IF;
67431 --
67432 EXIT WHEN l_array_entity_id.count = 0;
67433
67434 XLA_AE_LINES_PKG.g_rec_lines := null;
67435
67436 --
67437 -- Bug 4458708
67438 --
67439 XLA_AE_LINES_PKG.g_LineNumber := 0;
67440 --
67441 --
67442
67443 FOR Idx IN 1..l_array_event_id.count LOOP
67444 --
67445 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
67446 --
67447 l_event_id := l_array_event_id(idx); -- 5648433
67448
67449 --
67450 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
67451 --
67452
67453 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
67454 (g_array_event(l_event_id).array_value_num('header_index'))
67455 ,'N'
67456 ) <> 'Y'
67457 THEN
67458 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67459 trace
67460 (p_msg => 'Trancaction revesal option is not Y '
67461 ,p_level => C_LEVEL_STATEMENT
67462 ,p_module => l_log_module);
67463 END IF;
67464
67465 --
67466 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
67467 --
67468 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
67469 --
67470 -- set event info as cache for other routines to refer event attributes
67471 --
67472
67473 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
67474 l_previous_event_id := l_event_id;
67475
67476 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
67477 (p_application_id => p_application_id
67478 ,p_primary_ledger_id => p_primary_ledger_id
67479 ,p_base_ledger_id => p_base_ledger_id
67480 ,p_target_ledger_id => p_target_ledger_id
67481 ,p_entity_id => l_array_entity_id(Idx)
67482 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
67483 ,p_entity_code => l_array_entity_code(Idx)
67484 ,p_transaction_num => l_array_transaction_num(Idx)
67485 ,p_event_id => l_array_event_id(Idx)
67486 ,p_event_class_code => l_array_class_code(Idx)
67487 ,p_event_type_code => l_array_event_type(Idx)
67488 ,p_event_number => l_array_event_number(Idx)
67489 ,p_event_date => l_array_event_date(Idx)
67490 ,p_transaction_date => l_array_transaction_date(Idx)
67491 ,p_reference_num_1 => l_array_reference_num_1(Idx)
67492 ,p_reference_num_2 => l_array_reference_num_2(Idx)
67493 ,p_reference_num_3 => l_array_reference_num_3(Idx)
67494 ,p_reference_num_4 => l_array_reference_num_4(Idx)
67495 ,p_reference_char_1 => l_array_reference_char_1(Idx)
67496 ,p_reference_char_2 => l_array_reference_char_2(Idx)
67497 ,p_reference_char_3 => l_array_reference_char_3(Idx)
67501 ,p_reference_date_3 => l_array_reference_date_3(Idx)
67498 ,p_reference_char_4 => l_array_reference_char_4(Idx)
67499 ,p_reference_date_1 => l_array_reference_date_1(Idx)
67500 ,p_reference_date_2 => l_array_reference_date_2(Idx)
67502 ,p_reference_date_4 => l_array_reference_date_4(Idx)
67503 ,p_event_created_by => l_array_event_created_by(Idx)
67504 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
67505 --
67506 END IF;
67507
67508
67509
67510 --
67511 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
67512
67513 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
67514
67515 IF l_continue_with_lines THEN
67516 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
67517 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
67518
67519 xla_accounting_err_pkg.build_message
67520 (p_appli_s_name => 'XLA'
67521 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
67522 ,p_token_1 => 'LINE_NUMBER'
67523 ,p_value_1 => l_array_extract_line_num(Idx)
67524 ,p_token_2 => 'PRODUCT_NAME'
67525 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
67526 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
67527 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
67528 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
67529
67530 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
67531 --
67532 -- following sets the accounting attributes needed to reverse
67533 -- accounting for a distributeion
67534 --
67535
67536 --
67537 -- 5217187
67538 --
67539 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
67540 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
67541 g_array_event(l_event_id).array_value_num('header_index'));
67542 --
67543 --
67544
67545 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
67546 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
67547 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
67548 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
67549 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
67550 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
67551 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
67552 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
67553 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
67554 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
67555 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
67556 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
67557 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
67558 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
67559 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
67560 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
67561 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
67562 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
67563 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
67564 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
67565 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
67566 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
67567 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
67568 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
67569 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
67570 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
67571 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
67572 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
67573 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
67574 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
67575 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
67576 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
67577 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
67578 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
67579 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
67580 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
67581 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
67582 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
67583 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
67584 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
67585 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
67586 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
67587 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
67591 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
67588 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
67589 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
67590 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
67592 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
67593
67594
67595 xla_ae_lines_pkg.SetAcctReversalAttrs
67596 (p_event_id => l_event_id
67597 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
67598 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67599 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
67600 END IF;
67601
67602 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
67603 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
67604
67605 --
67606 AcctLineType_45 (
67607 p_application_id => p_application_id
67608 ,p_event_id => l_event_id
67609 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67610 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67611 ,p_actual_flag => l_actual_flag
67612 ,p_balance_type_code => l_balance_type_code
67613 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67614
67615 , p_source_3 => l_array_source_3(Idx)
67616 , p_source_4 => l_array_source_4(Idx)
67617 , p_source_5 => l_array_source_5(Idx)
67618 , p_source_6 => l_array_source_6(Idx)
67619 , p_source_22 => l_array_source_22(Idx)
67620 , p_source_23 => l_array_source_23(Idx)
67621 , p_source_24 => l_array_source_24(Idx)
67622 , p_source_25 => l_array_source_25(Idx)
67623 , p_source_26 => l_array_source_26(Idx)
67624 , p_source_27 => l_array_source_27(Idx)
67625 , p_source_28 => l_array_source_28(Idx)
67626 , p_source_29 => l_array_source_29(Idx)
67627 , p_source_30 => l_array_source_30(Idx)
67628 , p_source_31 => l_array_source_31(Idx)
67629 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
67630 , p_source_33 => l_array_source_33(Idx)
67631 , p_source_34 => l_array_source_34(Idx)
67632 , p_source_34_meaning => l_array_source_34_meaning(Idx)
67633 , p_source_35 => l_array_source_35(Idx)
67634 );
67635 If(l_balance_type_code = 'A') THEN
67636 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67637 END IF;
67638
67639 --
67640
67641
67642 --
67643 AcctLineType_55 (
67644 p_application_id => p_application_id
67645 ,p_event_id => l_event_id
67646 ,p_calculate_acctd_flag => l_calculate_acctd_flag
67647 ,p_calculate_g_l_flag => l_calculate_g_l_flag
67648 ,p_actual_flag => l_actual_flag
67649 ,p_balance_type_code => l_balance_type_code
67650 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
67651
67652 , p_source_3 => l_array_source_3(Idx)
67653 , p_source_4 => l_array_source_4(Idx)
67654 , p_source_6 => l_array_source_6(Idx)
67655 , p_source_7 => l_array_source_7(Idx)
67656 , p_source_22 => l_array_source_22(Idx)
67657 , p_source_23 => l_array_source_23(Idx)
67658 , p_source_24 => l_array_source_24(Idx)
67659 , p_source_25 => l_array_source_25(Idx)
67660 , p_source_26 => l_array_source_26(Idx)
67661 , p_source_27 => l_array_source_27(Idx)
67662 , p_source_28 => l_array_source_28(Idx)
67663 , p_source_29 => l_array_source_29(Idx)
67664 , p_source_30 => l_array_source_30(Idx)
67665 , p_source_31 => l_array_source_31(Idx)
67666 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
67667 , p_source_33 => l_array_source_33(Idx)
67668 , p_source_34 => l_array_source_34(Idx)
67669 , p_source_34_meaning => l_array_source_34_meaning(Idx)
67670 , p_source_35 => l_array_source_35(Idx)
67671 );
67672 If(l_balance_type_code = 'A') THEN
67673 l_actual_gain_loss_ref := l_gain_or_loss_ref;
67674 END IF;
67675
67676 --
67677
67678 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
67679 -- or secondary ledger that has different currency with primary
67680 -- or alc that is calculated by sla
67681 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
67682 (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'))
67683
67684 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
67685 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
67686 AND (l_actual_flag = 'A')) THEN
67687 XLA_AE_LINES_PKG.CreateGainOrLossLines(
67688 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
67689 ,p_application_id => p_application_id
67690 ,p_amb_context_code => 'DEFAULT'
67691 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
67692 ,p_event_class_code => C_EVENT_CLASS_CODE
67693 ,p_event_type_code => C_EVENT_TYPE_CODE
67694
67695 ,p_gain_ccid => -1
67696 ,p_loss_ccid => -1
67697
67698 ,p_actual_flag => l_actual_flag
67699 ,p_enc_flag => null
67700 ,p_actual_g_l_ref => l_actual_gain_loss_ref
67701 ,p_enc_g_l_ref => null
67702 );
67703 END IF;
67704 END IF;
67705 END IF;
67706
67707 ELSE
67708 --
67709 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
67710 --
67714 ,p_level => C_LEVEL_STATEMENT
67711 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67712 trace
67713 (p_msg => 'Trancaction revesal option is Y'
67715 ,p_module => l_log_module);
67716 END IF;
67717 END IF;
67718
67719 END LOOP;
67720 l_result := XLA_AE_LINES_PKG.InsertLines ;
67721 end loop;
67722 close line_cur;
67723
67724
67725 --
67726 -- insert headers into xla_ae_headers_gt table
67727 --
67728 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
67729
67730 -- insert into errors table here.
67731
67732 END LOOP;
67733
67734 --
67735 -- 4865292
67736 --
67737 -- Compare g_hdr_extract_count with event count in
67738 -- CreateHeadersAndLines.
67739 --
67740 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
67741
67742 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67743 trace (p_msg => '# rows extracted from header extract objects '
67744 || ' (running total): '
67745 || g_hdr_extract_count
67746 ,p_level => C_LEVEL_STATEMENT
67747 ,p_module => l_log_module);
67748 END IF;
67749
67750 CLOSE header_cur;
67751 --
67752
67753 --
67754 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67755 trace
67756 (p_msg => 'END of EventClass_118'
67757 ,p_level => C_LEVEL_PROCEDURE
67758 ,p_module => l_log_module);
67759 END IF;
67760 --
67761 RETURN l_result;
67762 EXCEPTION
67763 WHEN xla_exceptions_pkg.application_exception THEN
67764
67765 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
67766
67767
67768 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
67769
67770 RAISE;
67771 WHEN OTHERS THEN
67772 xla_exceptions_pkg.raise_message
67773 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_118');
67774 END EventClass_118;
67775 --
67776
67777 ---------------------------------------
67778 --
67779 -- PRIVATE PROCEDURE
67780 -- insert_sources_119
67781 --
67782 ----------------------------------------
67783 --
67784 PROCEDURE insert_sources_119(
67785 p_target_ledger_id IN NUMBER
67786 , p_language IN VARCHAR2
67787 , p_sla_ledger_id IN NUMBER
67788 , p_pad_start_date IN DATE
67789 , p_pad_end_date IN DATE
67790 )
67791 IS
67792
67793 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ_ALL';
67794 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ';
67795 p_apps_owner VARCHAR2(30);
67796 l_log_module VARCHAR2(240);
67797 BEGIN
67798 IF g_log_enabled THEN
67799 l_log_module := C_DEFAULT_MODULE||'.insert_sources_119';
67800 END IF;
67801 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
67802
67803 trace
67804 (p_msg => 'BEGIN of insert_sources_119'
67805 ,p_level => C_LEVEL_PROCEDURE
67806 ,p_module => l_log_module);
67807
67808 END IF;
67809
67810 -- select APPS owner
67811 SELECT oracle_username
67812 INTO p_apps_owner
67813 FROM fnd_oracle_userid
67814 WHERE read_only_flag = 'U'
67815 ;
67816
67817 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67818 trace
67819 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
67820 ' - p_language = '||p_language||
67821 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
67822 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
67823 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
67824 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
67825 ,p_level => C_LEVEL_STATEMENT
67826 ,p_module => l_log_module);
67827 END IF;
67828
67829
67830 --
67831 INSERT INTO xla_diag_sources --hdr2
67832 (
67833 event_id
67834 , ledger_id
67835 , sla_ledger_id
67836 , description_language
67837 , object_name
67838 , object_type_code
67839 , line_number
67840 , source_application_id
67841 , source_type_code
67842 , source_code
67843 , source_value
67844 , source_meaning
67845 , created_by
67846 , creation_date
67847 , last_update_date
67848 , last_updated_by
67849 , last_update_login
67850 , program_update_date
67851 , program_application_id
67852 , program_id
67853 , request_id
67854 )
67855 SELECT
67856 event_id
67857 , p_target_ledger_id
67858 , p_sla_ledger_id
67859 , p_language
67860 , object_name
67861 , object_type_code
67862 , line_number
67863 , source_application_id
67864 , source_type_code
67865 , source_code
67866 , SUBSTR(source_value ,1,1996)
67867 , SUBSTR(source_meaning ,1,200)
67868 , xla_environment_pkg.g_Usr_Id
67869 , TRUNC(SYSDATE)
67870 , TRUNC(SYSDATE)
67871 , xla_environment_pkg.g_Usr_Id
67872 , xla_environment_pkg.g_Login_Id
67876 , xla_environment_pkg.g_Req_Id
67873 , TRUNC(SYSDATE)
67874 , xla_environment_pkg.g_Prog_Appl_Id
67875 , xla_environment_pkg.g_Prog_Id
67877 FROM (
67878 SELECT xet.event_id event_id
67879 , 0 line_number
67880 , CASE r
67881 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
67882 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
67883
67884 ELSE null
67885 END object_name
67886 , CASE r
67887 WHEN 1 THEN 'HEADER'
67888 WHEN 2 THEN 'HEADER'
67889
67890 ELSE null
67891 END object_type_code
67892 , CASE r
67893 WHEN 1 THEN '275'
67894 WHEN 2 THEN '275'
67895
67896 ELSE null
67897 END source_application_id
67898 , 'S' source_type_code
67899 , CASE r
67900 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
67901 WHEN 2 THEN 'GL_DATE'
67902
67903 ELSE null
67904 END source_code
67905 , CASE r
67906 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
67907 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
67908
67909 ELSE null
67910 END source_value
67911 , null source_meaning
67912 FROM xla_events_gt xet
67913 , PA_XLA_EXP_HEADER_V h2
67914 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
67915 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
67916 AND xet.event_class_code = C_EVENT_CLASS_CODE
67917 AND h2.event_id = xet.event_id
67918
67919 )
67920 ;
67921 --
67922 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
67923
67924 trace
67925 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
67926 ,p_level => C_LEVEL_STATEMENT
67927 ,p_module => l_log_module);
67928
67929 END IF;
67930 --
67931
67932
67933
67934 --
67935 INSERT INTO xla_diag_sources --line2
67936 (
67937 event_id
67938 , ledger_id
67939 , sla_ledger_id
67940 , description_language
67941 , object_name
67942 , object_type_code
67943 , line_number
67944 , source_application_id
67945 , source_type_code
67946 , source_code
67947 , source_value
67948 , source_meaning
67949 , created_by
67950 , creation_date
67951 , last_update_date
67952 , last_updated_by
67953 , last_update_login
67954 , program_update_date
67955 , program_application_id
67956 , program_id
67957 , request_id
67958 )
67959 SELECT event_id
67960 , p_target_ledger_id
67961 , p_sla_ledger_id
67962 , p_language
67963 , object_name
67964 , object_type_code
67965 , line_number
67966 , source_application_id
67967 , source_type_code
67968 , source_code
67969 , SUBSTR(source_value,1,1996)
67970 , SUBSTR(source_meaning ,1,200)
67971 , xla_environment_pkg.g_Usr_Id
67972 , TRUNC(SYSDATE)
67973 , TRUNC(SYSDATE)
67974 , xla_environment_pkg.g_Usr_Id
67975 , xla_environment_pkg.g_Login_Id
67976 , TRUNC(SYSDATE)
67977 , xla_environment_pkg.g_Prog_Appl_Id
67978 , xla_environment_pkg.g_Prog_Id
67979 , xla_environment_pkg.g_Req_Id
67980 FROM (
67981 SELECT xet.event_id event_id
67982 , l1.line_number line_number
67983 , CASE r
67984 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
67985 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
67986 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
67987 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
67988 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
67989 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
67990 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
67991 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
67992 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
67993 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
67994 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
67995 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
67996 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
67997 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
67998 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
67999 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
68000 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
68001 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
68002
68003 ELSE null
68004 END object_name
68005 , CASE r
68006 WHEN 1 THEN 'LINE'
68007 WHEN 2 THEN 'LINE'
68008 WHEN 3 THEN 'LINE'
68009 WHEN 4 THEN 'LINE'
68010 WHEN 5 THEN 'LINE'
68011 WHEN 6 THEN 'LINE'
68015 WHEN 10 THEN 'LINE'
68012 WHEN 7 THEN 'LINE'
68013 WHEN 8 THEN 'LINE'
68014 WHEN 9 THEN 'LINE'
68016 WHEN 11 THEN 'LINE'
68017 WHEN 12 THEN 'LINE'
68018 WHEN 13 THEN 'LINE'
68019 WHEN 14 THEN 'LINE'
68020 WHEN 15 THEN 'LINE'
68021 WHEN 16 THEN 'LINE'
68022 WHEN 17 THEN 'LINE'
68023 WHEN 18 THEN 'LINE'
68024
68025 ELSE null
68026 END object_type_code
68027 , CASE r
68028 WHEN 1 THEN '275'
68029 WHEN 2 THEN '275'
68030 WHEN 3 THEN '275'
68031 WHEN 4 THEN '275'
68032 WHEN 5 THEN '275'
68033 WHEN 6 THEN '275'
68034 WHEN 7 THEN '275'
68035 WHEN 8 THEN '275'
68036 WHEN 9 THEN '275'
68037 WHEN 10 THEN '275'
68038 WHEN 11 THEN '275'
68039 WHEN 12 THEN '275'
68040 WHEN 13 THEN '275'
68041 WHEN 14 THEN '275'
68042 WHEN 15 THEN '275'
68043 WHEN 16 THEN '275'
68044 WHEN 17 THEN '275'
68045 WHEN 18 THEN '275'
68046
68047 ELSE null
68048 END source_application_id
68049 , 'S' source_type_code
68050 , CASE r
68051 WHEN 1 THEN 'COST_CCID'
68052 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
68053 WHEN 3 THEN 'ADJ_COST_CCID'
68054 WHEN 4 THEN 'COST_CLEARING_CCID'
68055 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
68056 WHEN 6 THEN 'REVERSING_LINE_FLAG'
68057 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
68058 WHEN 8 THEN 'ENTERED_RAW_COST'
68059 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
68060 WHEN 10 THEN 'ACCT_RAW_COST'
68061 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
68062 WHEN 12 THEN 'EXCHANGE_RATE'
68063 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
68064 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
68065 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
68066 WHEN 16 THEN 'LINE_NUMBER'
68067 WHEN 17 THEN 'LINE_TYPE'
68068 WHEN 18 THEN 'LINE_NUM_REVERSED'
68069
68070 ELSE null
68071 END source_code
68072 , CASE r
68073 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
68074 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
68075 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
68076 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
68077 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
68078 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
68079 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
68080 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
68081 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
68082 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
68083 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
68084 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
68085 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
68086 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
68087 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
68088 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
68089 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
68090 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
68091
68092 ELSE null
68093 END source_value
68094 , CASE r
68095 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
68096 103371
68097 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
68098 ,'ALLOW_OVERRIDE_CCID_FLAG'
68099 ,'S'
68100 ,275)
68101 WHEN 17 THEN fvl34.meaning
68102
68103 ELSE null
68104 END source_meaning
68105 FROM xla_events_gt xet
68106 , PA_XLA_CDL_LINES_V l1
68107 , fnd_lookup_values fvl34
68108 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
68109 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
68110 AND xet.event_class_code = C_EVENT_CLASS_CODE
68111 AND l1.event_id = xet.event_id
68112 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
68113 AND fvl34.lookup_code(+) = l1.LINE_TYPE
68114 AND fvl34.view_application_id(+) = 275
68115 AND fvl34.language(+) = USERENV('LANG')
68116
68117 )
68118 ;
68119 --
68120 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68121
68122 trace
68123 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
68124 ,p_level => C_LEVEL_STATEMENT
68125 ,p_module => l_log_module);
68126
68127 END IF;
68128
68129
68130 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68134 ,p_module => l_log_module);
68131 trace
68132 (p_msg => 'END of insert_sources_119'
68133 ,p_level => C_LEVEL_PROCEDURE
68135 END IF;
68136 EXCEPTION
68137 WHEN xla_exceptions_pkg.application_exception THEN
68138 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
68139 trace
68140 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
68141 ,p_level => C_LEVEL_EXCEPTION
68142 ,p_module => l_log_module);
68143 END IF;
68144 RAISE;
68145 WHEN OTHERS THEN
68146 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
68147 trace
68148 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
68149 ,p_level => C_LEVEL_EXCEPTION
68150 ,p_module => l_log_module);
68151 END IF;
68152 xla_exceptions_pkg.raise_message
68153 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_119');
68154 END insert_sources_119;
68155 --
68156
68157 ---------------------------------------
68158 --
68159 -- PRIVATE FUNCTION
68160 -- EventClass_119
68161 --
68162 ----------------------------------------
68163 --
68164 FUNCTION EventClass_119
68165 (p_application_id IN NUMBER
68166 ,p_base_ledger_id IN NUMBER
68167 ,p_target_ledger_id IN NUMBER
68168 ,p_language IN VARCHAR2
68169 ,p_currency_code IN VARCHAR2
68170 ,p_sla_ledger_id IN NUMBER
68171 ,p_pad_start_date IN DATE
68172 ,p_pad_end_date IN DATE
68173 ,p_primary_ledger_id IN NUMBER)
68174 RETURN BOOLEAN IS
68175 --
68176 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ_ALL';
68177 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ADJ';
68178
68179 l_calculate_acctd_flag VARCHAR2(1) :='N';
68180 l_calculate_g_l_flag VARCHAR2(1) :='N';
68181 --
68182 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68183 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68184 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68185 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68186 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68187 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68188 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68189 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68190 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68191 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68192 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68193 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68194 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68195 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
68196 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68197 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68198 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68199 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
68200 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68201 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68202 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68203 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
68204 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
68205 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
68206
68207 l_event_id NUMBER;
68208 l_previous_event_id NUMBER;
68209 l_first_event_id NUMBER;
68210 l_last_event_id NUMBER;
68211
68212 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
68213 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
68214 --
68215 --
68216 l_result BOOLEAN := TRUE;
68217 l_rows NUMBER := 1000;
68218 l_event_type_name VARCHAR2(80) := 'All';
68219 l_event_class_name VARCHAR2(80) := 'Miscelleneous Cost Adjustment';
68220 l_description VARCHAR2(4000);
68221 l_transaction_reversal NUMBER;
68222 l_ae_header_id NUMBER;
68223 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
68224 l_log_module VARCHAR2(240);
68225 --
68226 l_acct_reversal_source VARCHAR2(30);
68227 l_trx_reversal_source VARCHAR2(30);
68228
68229 l_continue_with_lines BOOLEAN := TRUE;
68230 --
68231 l_acc_rev_gl_date_source DATE; -- 4262811
68232 --
68233 type t_array_event_id is table of number index by binary_integer;
68234
68235 l_rec_array_event t_rec_array_event;
68236 l_null_rec_array_event t_rec_array_event;
68237 l_array_ae_header_id xla_number_array_type;
68238 l_actual_flag VARCHAR2(1) := NULL;
68239 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
68240 l_balance_type_code VARCHAR2(1) :=NULL;
68241 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
68242
68243 --
68247 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
68244 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
68245 --
68246
68248 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
68249
68250 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
68251 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
68252 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
68253 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
68254 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
68255 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
68256 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
68257 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
68258 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
68259 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
68260 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
68261 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
68262 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
68263 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
68264 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
68265 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
68266 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
68267 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
68268
68269 l_array_source_32 t_array_source_32;
68270 l_array_source_87 t_array_source_87;
68271
68272 l_array_source_3 t_array_source_3;
68273 l_array_source_4 t_array_source_4;
68274 l_array_source_5 t_array_source_5;
68275 l_array_source_6 t_array_source_6;
68276 l_array_source_7 t_array_source_7;
68277 l_array_source_22 t_array_source_22;
68278 l_array_source_23 t_array_source_23;
68279 l_array_source_24 t_array_source_24;
68280 l_array_source_25 t_array_source_25;
68281 l_array_source_26 t_array_source_26;
68282 l_array_source_27 t_array_source_27;
68283 l_array_source_28 t_array_source_28;
68284 l_array_source_29 t_array_source_29;
68285 l_array_source_30 t_array_source_30;
68286 l_array_source_31 t_array_source_31;
68287 l_array_source_33 t_array_source_33;
68288 l_array_source_34 t_array_source_34;
68289 l_array_source_34_meaning t_array_lookup_meaning;
68290 l_array_source_35 t_array_source_35;
68291
68292 --
68293 CURSOR header_cur
68294 IS
68295 SELECT /*+ leading(xet) cardinality(xet,1) */
68296 -- Event Class Code: MISC_COST_ADJ
68297 xet.entity_id
68298 ,xet.legal_entity_id
68299 ,xet.entity_code
68300 ,xet.transaction_number
68301 ,xet.event_id
68302 ,xet.event_class_code
68303 ,xet.event_type_code
68304 ,xet.event_number
68305 ,xet.event_date
68306 ,xet.transaction_date
68307 ,xet.reference_num_1
68308 ,xet.reference_num_2
68309 ,xet.reference_num_3
68310 ,xet.reference_num_4
68311 ,xet.reference_char_1
68312 ,xet.reference_char_2
68313 ,xet.reference_char_3
68314 ,xet.reference_char_4
68315 ,xet.reference_date_1
68316 ,xet.reference_date_2
68317 ,xet.reference_date_3
68318 ,xet.reference_date_4
68319 ,xet.event_created_by
68320 ,xet.budgetary_control_flag
68321 , h2.EXPENDITURE_ITEM_ID source_32
68322 , h2.GL_DATE source_87
68323 FROM xla_events_gt xet
68324 , PA_XLA_EXP_HEADER_V h2
68325 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
68326 and xet.event_class_code = C_EVENT_CLASS_CODE
68327 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
68328
68329 ORDER BY event_id
68330 ;
68331
68332
68333 --
68334 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
68335 IS
68336 SELECT /*+ leading(xet) cardinality(xet,1) */
68337 -- Event Class Code: MISC_COST_ADJ
68338 xet.entity_id
68339 ,xet.legal_entity_id
68340 ,xet.entity_code
68341 ,xet.transaction_number
68342 ,xet.event_id
68343 ,xet.event_class_code
68344 ,xet.event_type_code
68345 ,xet.event_number
68346 ,xet.event_date
68347 ,xet.transaction_date
68348 ,xet.reference_num_1
68349 ,xet.reference_num_2
68350 ,xet.reference_num_3
68351 ,xet.reference_num_4
68352 ,xet.reference_char_1
68353 ,xet.reference_char_2
68354 ,xet.reference_char_3
68355 ,xet.reference_char_4
68356 ,xet.reference_date_1
68357 ,xet.reference_date_2
68358 ,xet.reference_date_3
68359 ,xet.reference_date_4
68360 ,xet.event_created_by
68361 ,xet.budgetary_control_flag
68362 , l1.LINE_NUMBER
68363 , l1.COST_CCID source_3
68364 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
68365 , l1.ADJ_COST_CCID source_5
68369 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
68366 , l1.COST_CLEARING_CCID source_6
68367 , l1.ADJ_COST_CLEARING_CCID source_7
68368 , l1.REVERSING_LINE_FLAG source_22
68370 , l1.ENTERED_RAW_COST source_24
68371 , l1.ENTERED_CURRENCY_CODE source_25
68372 , l1.ACCT_RAW_COST source_26
68373 , l1.EXCHANGE_RATE_DATE source_27
68374 , l1.EXCHANGE_RATE source_28
68375 , l1.EXCHANGE_RATE_TYPE source_29
68376 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
68377 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
68378 , l1.LINE_NUMBER source_33
68379 , l1.LINE_TYPE source_34
68380 , fvl34.meaning source_34_meaning
68381 , l1.LINE_NUM_REVERSED source_35
68382 FROM xla_events_gt xet
68383 , PA_XLA_CDL_LINES_V l1
68384 , fnd_lookup_values fvl34
68385 WHERE xet.event_id between x_first_event_id and x_last_event_id
68386 and xet.event_date between p_pad_start_date and p_pad_end_date
68387 and xet.event_class_code = C_EVENT_CLASS_CODE
68388 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
68389 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
68390 AND fvl34.lookup_code(+) = l1.LINE_TYPE
68391 AND fvl34.view_application_id(+) = 275
68392 AND fvl34.language(+) = USERENV('LANG')
68393 ;
68394
68395 --
68396 BEGIN
68397 IF g_log_enabled THEN
68398 l_log_module := C_DEFAULT_MODULE||'.EventClass_119';
68399 END IF;
68400 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
68401 trace
68402 (p_msg => 'BEGIN of EventClass_119'
68403 ,p_level => C_LEVEL_PROCEDURE
68404 ,p_module => l_log_module);
68405 END IF;
68406
68407 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68408 trace
68409 (p_msg => 'p_application_id = '||p_application_id||
68410 ' - p_base_ledger_id = '||p_base_ledger_id||
68411 ' - p_target_ledger_id = '||p_target_ledger_id||
68412 ' - p_language = '||p_language||
68413 ' - p_currency_code = '||p_currency_code||
68414 ' - p_sla_ledger_id = '||p_sla_ledger_id
68415 ,p_level => C_LEVEL_STATEMENT
68416 ,p_module => l_log_module);
68417 END IF;
68418 --
68419 -- initialze arrays
68420 --
68421 g_array_event.DELETE;
68422 l_rec_array_event := l_null_rec_array_event;
68423 --
68424 --------------------------------------
68425 -- 4262811 Initialze MPA Line Number
68426 --------------------------------------
68427 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
68428
68429 --
68430
68431 --
68432 OPEN header_cur;
68433 --
68434 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68435 trace
68436 (p_msg => 'SQL - FETCH header_cur'
68437 ,p_level => C_LEVEL_STATEMENT
68438 ,p_module => l_log_module);
68439 END IF;
68440 --
68441 LOOP
68442 FETCH header_cur BULK COLLECT INTO
68443 l_array_entity_id
68444 , l_array_legal_entity_id
68445 , l_array_entity_code
68446 , l_array_transaction_num
68447 , l_array_event_id
68448 , l_array_class_code
68449 , l_array_event_type
68450 , l_array_event_number
68451 , l_array_event_date
68452 , l_array_transaction_date
68453 , l_array_reference_num_1
68454 , l_array_reference_num_2
68455 , l_array_reference_num_3
68456 , l_array_reference_num_4
68457 , l_array_reference_char_1
68458 , l_array_reference_char_2
68459 , l_array_reference_char_3
68460 , l_array_reference_char_4
68461 , l_array_reference_date_1
68462 , l_array_reference_date_2
68463 , l_array_reference_date_3
68464 , l_array_reference_date_4
68465 , l_array_event_created_by
68466 , l_array_budgetary_control_flag
68467 , l_array_source_32
68468 , l_array_source_87
68469 LIMIT l_rows;
68470 --
68471 IF (C_LEVEL_EVENT >= g_log_level) THEN
68472 trace
68473 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
68474 ,p_level => C_LEVEL_EVENT
68475 ,p_module => l_log_module);
68476 END IF;
68477 --
68478 EXIT WHEN l_array_entity_id.COUNT = 0;
68479
68480 -- initialize arrays
68481 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
68482 XLA_AE_LINES_PKG.g_rec_lines := NULL;
68483
68484 --
68485 -- Bug 4458708
68486 --
68487 XLA_AE_LINES_PKG.g_LineNumber := 0;
68488
68489
68490 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
68491 g_last_hdr_idx := l_array_event_id.LAST;
68492 --
68493 -- loop for the headers. Each iteration is for each header extract row
68494 -- fetched in header cursor
68495 --
68496 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
68497
68498 --
68499 -- set event info as cache for other routines to refer event attributes
68500 --
68501 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
68502 (p_application_id => p_application_id
68503 ,p_primary_ledger_id => p_primary_ledger_id
68504 ,p_base_ledger_id => p_base_ledger_id
68505 ,p_target_ledger_id => p_target_ledger_id
68506 ,p_entity_id => l_array_entity_id(hdr_idx)
68510 ,p_event_id => l_array_event_id(hdr_idx)
68507 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
68508 ,p_entity_code => l_array_entity_code(hdr_idx)
68509 ,p_transaction_num => l_array_transaction_num(hdr_idx)
68511 ,p_event_class_code => l_array_class_code(hdr_idx)
68512 ,p_event_type_code => l_array_event_type(hdr_idx)
68513 ,p_event_number => l_array_event_number(hdr_idx)
68514 ,p_event_date => l_array_event_date(hdr_idx)
68515 ,p_transaction_date => l_array_transaction_date(hdr_idx)
68516 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
68517 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
68518 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
68519 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
68520 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
68521 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
68522 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
68523 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
68524 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
68525 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
68526 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
68527 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
68528 ,p_event_created_by => l_array_event_created_by(hdr_idx)
68529 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
68530
68531 --
68532 -- set the status of entry to C_VALID (0)
68533 --
68534 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
68535
68536 --
68537 -- initialize a row for ae header
68538 --
68539 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
68540
68541 l_event_id := l_array_event_id(hdr_idx);
68542
68543 --
68544 -- storing the hdr_idx for event. May be used by line cursor.
68545 --
68546 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
68547
68548 --
68549 -- store sources from header extract. This can be improved to
68550 -- store only those sources from header extract that may be used in lines
68551 --
68552
68553 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
68554 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
68555
68556 --
68557 -- initilaize the status of ae headers for diffrent balance types
68558 -- the status is initialised to C_NOT_CREATED (2)
68559 --
68560 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
68561 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
68562 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
68563
68564 --
68565 -- call api to validate and store accounting attributes for header
68566 --
68567
68568 ------------------------------------------------------------
68569 -- Accrual Reversal : to get date for Standard Source (NONE)
68570 ------------------------------------------------------------
68571 l_acc_rev_gl_date_source := NULL;
68572
68573 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
68574 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
68575
68576
68577 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
68578
68579 XLA_AE_HEADER_PKG.SetJeCategoryName;
68580
68581 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
68582 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
68583 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
68584 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
68585 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
68586
68587
68588 -- No header level analytical criteria
68589
68590 --
68591 --accounting attribute enhancement, bug 3612931
68592 --
68593 l_trx_reversal_source := SUBSTR(NULL, 1,30);
68594
68595 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
68596 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
68597
68598 xla_accounting_err_pkg.build_message
68599 (p_appli_s_name => 'XLA'
68600 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
68601 ,p_token_1 => 'ACCT_ATTR_NAME'
68602 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
68603 ,p_token_2 => 'PRODUCT_NAME'
68604 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
68605 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
68606 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68607 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
68608
68609 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
68610 --
68611 -- following sets the accounting attributes needed to reverse
68612 -- accounting for a distributeion
68613 --
68614 xla_ae_lines_pkg.SetTrxReversalAttrs
68618
68615 (p_event_id => l_event_id
68616 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
68617 ,p_trx_reversal_source => l_trx_reversal_source);
68619 END IF;
68620
68621
68622 ----------------------------------------------------------------
68623 -- 4262811 - update the header statuses to invalid in need be
68624 ----------------------------------------------------------------
68625 --
68626 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
68627
68628
68629 -----------------------------------------------
68630 -- No accrual reversal for the event class/type
68631 -----------------------------------------------
68632 ----------------------------------------------------------------
68633
68634 --
68635 -- this ends the header loop iteration for one bulk fetch
68636 --
68637 END LOOP;
68638
68639 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
68640 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
68641
68642 --
68643 -- insert dummy rows into lines gt table that were created due to
68644 -- transaction reversals
68645 --
68646 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
68647 l_result := XLA_AE_LINES_PKG.InsertLines;
68648 END IF;
68649
68650 --
68651 -- reset the temp_line_num for each set of events fetched from header
68652 -- cursor rather than doing it for each new event in line cursor
68653 -- Bug 3939231
68654 --
68655 xla_ae_lines_pkg.g_temp_line_num := 0;
68656
68657
68658
68659 --
68660 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
68661 --
68662 --
68663 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68664
68665 trace
68666 (p_msg => 'SQL - FETCH line_cur'
68667 ,p_level => C_LEVEL_STATEMENT
68668 ,p_module => l_log_module);
68669
68670 END IF;
68671 --
68672 --
68673 LOOP
68674 --
68675 FETCH line_cur BULK COLLECT INTO
68676 l_array_entity_id
68677 , l_array_legal_entity_id
68678 , l_array_entity_code
68679 , l_array_transaction_num
68680 , l_array_event_id
68681 , l_array_class_code
68682 , l_array_event_type
68683 , l_array_event_number
68684 , l_array_event_date
68685 , l_array_transaction_date
68686 , l_array_reference_num_1
68687 , l_array_reference_num_2
68688 , l_array_reference_num_3
68689 , l_array_reference_num_4
68690 , l_array_reference_char_1
68691 , l_array_reference_char_2
68692 , l_array_reference_char_3
68693 , l_array_reference_char_4
68694 , l_array_reference_date_1
68695 , l_array_reference_date_2
68696 , l_array_reference_date_3
68697 , l_array_reference_date_4
68698 , l_array_event_created_by
68699 , l_array_budgetary_control_flag
68700 , l_array_extract_line_num
68701 , l_array_source_3
68702 , l_array_source_4
68703 , l_array_source_5
68704 , l_array_source_6
68705 , l_array_source_7
68706 , l_array_source_22
68707 , l_array_source_23
68708 , l_array_source_24
68709 , l_array_source_25
68710 , l_array_source_26
68711 , l_array_source_27
68712 , l_array_source_28
68713 , l_array_source_29
68714 , l_array_source_30
68715 , l_array_source_31
68716 , l_array_source_33
68717 , l_array_source_34
68718 , l_array_source_34_meaning
68719 , l_array_source_35
68720 LIMIT l_rows;
68721
68722 --
68723 IF (C_LEVEL_EVENT >= g_log_level) THEN
68724 trace
68725 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
68726 ,p_level => C_LEVEL_EVENT
68727 ,p_module => l_log_module);
68728 END IF;
68729 --
68730 EXIT WHEN l_array_entity_id.count = 0;
68731
68732 XLA_AE_LINES_PKG.g_rec_lines := null;
68733
68734 --
68735 -- Bug 4458708
68736 --
68737 XLA_AE_LINES_PKG.g_LineNumber := 0;
68738 --
68739 --
68740
68741 FOR Idx IN 1..l_array_event_id.count LOOP
68742 --
68743 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
68744 --
68745 l_event_id := l_array_event_id(idx); -- 5648433
68746
68747 --
68748 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
68749 --
68750
68751 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
68752 (g_array_event(l_event_id).array_value_num('header_index'))
68753 ,'N'
68754 ) <> 'Y'
68755 THEN
68756 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
68757 trace
68758 (p_msg => 'Trancaction revesal option is not Y '
68759 ,p_level => C_LEVEL_STATEMENT
68760 ,p_module => l_log_module);
68761 END IF;
68762
68763 --
68764 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
68765 --
68766 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
68767 --
68768 -- set event info as cache for other routines to refer event attributes
68769 --
68773
68770
68771 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
68772 l_previous_event_id := l_event_id;
68774 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
68775 (p_application_id => p_application_id
68776 ,p_primary_ledger_id => p_primary_ledger_id
68777 ,p_base_ledger_id => p_base_ledger_id
68778 ,p_target_ledger_id => p_target_ledger_id
68779 ,p_entity_id => l_array_entity_id(Idx)
68780 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
68781 ,p_entity_code => l_array_entity_code(Idx)
68782 ,p_transaction_num => l_array_transaction_num(Idx)
68783 ,p_event_id => l_array_event_id(Idx)
68784 ,p_event_class_code => l_array_class_code(Idx)
68785 ,p_event_type_code => l_array_event_type(Idx)
68786 ,p_event_number => l_array_event_number(Idx)
68787 ,p_event_date => l_array_event_date(Idx)
68788 ,p_transaction_date => l_array_transaction_date(Idx)
68789 ,p_reference_num_1 => l_array_reference_num_1(Idx)
68790 ,p_reference_num_2 => l_array_reference_num_2(Idx)
68791 ,p_reference_num_3 => l_array_reference_num_3(Idx)
68792 ,p_reference_num_4 => l_array_reference_num_4(Idx)
68793 ,p_reference_char_1 => l_array_reference_char_1(Idx)
68794 ,p_reference_char_2 => l_array_reference_char_2(Idx)
68795 ,p_reference_char_3 => l_array_reference_char_3(Idx)
68796 ,p_reference_char_4 => l_array_reference_char_4(Idx)
68797 ,p_reference_date_1 => l_array_reference_date_1(Idx)
68798 ,p_reference_date_2 => l_array_reference_date_2(Idx)
68799 ,p_reference_date_3 => l_array_reference_date_3(Idx)
68800 ,p_reference_date_4 => l_array_reference_date_4(Idx)
68801 ,p_event_created_by => l_array_event_created_by(Idx)
68802 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
68803 --
68804 END IF;
68805
68806
68807
68808 --
68809 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
68810
68811 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
68812
68813 IF l_continue_with_lines THEN
68814 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
68815 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
68816
68817 xla_accounting_err_pkg.build_message
68818 (p_appli_s_name => 'XLA'
68819 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
68820 ,p_token_1 => 'LINE_NUMBER'
68821 ,p_value_1 => l_array_extract_line_num(Idx)
68822 ,p_token_2 => 'PRODUCT_NAME'
68823 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
68824 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
68825 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68826 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
68827
68828 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
68829 --
68830 -- following sets the accounting attributes needed to reverse
68831 -- accounting for a distributeion
68832 --
68833
68834 --
68835 -- 5217187
68836 --
68837 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
68838 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
68839 g_array_event(l_event_id).array_value_num('header_index'));
68840 --
68841 --
68842
68843 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
68844 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
68845 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
68846 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
68847 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
68848 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
68849 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
68850 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
68851 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
68852 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
68853 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
68854 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
68855 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
68856 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
68857 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
68858 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
68859 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
68860 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
68861 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
68862 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
68863 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
68864 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
68868 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
68865 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
68866 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
68867 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
68869 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
68870 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
68871 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
68872 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
68873 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
68874 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
68875 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
68876 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
68877 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
68878 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
68879 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
68880 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
68881 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
68882 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
68883 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
68884 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
68885 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
68886 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
68887 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
68888 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
68889 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
68890 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
68891
68892
68893 xla_ae_lines_pkg.SetAcctReversalAttrs
68894 (p_event_id => l_event_id
68895 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
68896 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68897 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
68898 END IF;
68899
68900 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
68901 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
68902
68903 --
68904 AcctLineType_49 (
68905 p_application_id => p_application_id
68906 ,p_event_id => l_event_id
68907 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68908 ,p_calculate_g_l_flag => l_calculate_g_l_flag
68909 ,p_actual_flag => l_actual_flag
68910 ,p_balance_type_code => l_balance_type_code
68911 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
68912
68913 , p_source_3 => l_array_source_3(Idx)
68914 , p_source_4 => l_array_source_4(Idx)
68915 , p_source_5 => l_array_source_5(Idx)
68916 , p_source_6 => l_array_source_6(Idx)
68917 , p_source_22 => l_array_source_22(Idx)
68918 , p_source_23 => l_array_source_23(Idx)
68919 , p_source_24 => l_array_source_24(Idx)
68920 , p_source_25 => l_array_source_25(Idx)
68921 , p_source_26 => l_array_source_26(Idx)
68922 , p_source_27 => l_array_source_27(Idx)
68923 , p_source_28 => l_array_source_28(Idx)
68924 , p_source_29 => l_array_source_29(Idx)
68925 , p_source_30 => l_array_source_30(Idx)
68926 , p_source_31 => l_array_source_31(Idx)
68927 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
68928 , p_source_33 => l_array_source_33(Idx)
68929 , p_source_34 => l_array_source_34(Idx)
68930 , p_source_34_meaning => l_array_source_34_meaning(Idx)
68931 , p_source_35 => l_array_source_35(Idx)
68932 );
68933 If(l_balance_type_code = 'A') THEN
68934 l_actual_gain_loss_ref := l_gain_or_loss_ref;
68935 END IF;
68936
68937 --
68938
68939
68940 --
68941 AcctLineType_61 (
68942 p_application_id => p_application_id
68943 ,p_event_id => l_event_id
68944 ,p_calculate_acctd_flag => l_calculate_acctd_flag
68945 ,p_calculate_g_l_flag => l_calculate_g_l_flag
68946 ,p_actual_flag => l_actual_flag
68947 ,p_balance_type_code => l_balance_type_code
68948 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
68949
68950 , p_source_3 => l_array_source_3(Idx)
68951 , p_source_4 => l_array_source_4(Idx)
68952 , p_source_6 => l_array_source_6(Idx)
68953 , p_source_7 => l_array_source_7(Idx)
68954 , p_source_22 => l_array_source_22(Idx)
68955 , p_source_23 => l_array_source_23(Idx)
68956 , p_source_24 => l_array_source_24(Idx)
68957 , p_source_25 => l_array_source_25(Idx)
68958 , p_source_26 => l_array_source_26(Idx)
68959 , p_source_27 => l_array_source_27(Idx)
68960 , p_source_28 => l_array_source_28(Idx)
68961 , p_source_29 => l_array_source_29(Idx)
68962 , p_source_30 => l_array_source_30(Idx)
68963 , p_source_31 => l_array_source_31(Idx)
68964 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
68965 , p_source_33 => l_array_source_33(Idx)
68966 , p_source_34 => l_array_source_34(Idx)
68967 , p_source_34_meaning => l_array_source_34_meaning(Idx)
68968 , p_source_35 => l_array_source_35(Idx)
68969 );
68970 If(l_balance_type_code = 'A') THEN
68971 l_actual_gain_loss_ref := l_gain_or_loss_ref;
68972 END IF;
68973
68974 --
68975
68979 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
68976 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
68977 -- or secondary ledger that has different currency with primary
68978 -- or alc that is calculated by sla
68980 (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'))
68981
68982 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
68983 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
68984 AND (l_actual_flag = 'A')) THEN
68985 XLA_AE_LINES_PKG.CreateGainOrLossLines(
68986 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
68987 ,p_application_id => p_application_id
68988 ,p_amb_context_code => 'DEFAULT'
68989 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
68990 ,p_event_class_code => C_EVENT_CLASS_CODE
68991 ,p_event_type_code => C_EVENT_TYPE_CODE
68992
68993 ,p_gain_ccid => -1
68994 ,p_loss_ccid => -1
68995
68996 ,p_actual_flag => l_actual_flag
68997 ,p_enc_flag => null
68998 ,p_actual_g_l_ref => l_actual_gain_loss_ref
68999 ,p_enc_g_l_ref => null
69000 );
69001 END IF;
69002 END IF;
69003 END IF;
69004
69005 ELSE
69006 --
69007 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
69008 --
69009 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69010 trace
69011 (p_msg => 'Trancaction revesal option is Y'
69012 ,p_level => C_LEVEL_STATEMENT
69013 ,p_module => l_log_module);
69014 END IF;
69015 END IF;
69016
69017 END LOOP;
69018 l_result := XLA_AE_LINES_PKG.InsertLines ;
69019 end loop;
69020 close line_cur;
69021
69022
69023 --
69024 -- insert headers into xla_ae_headers_gt table
69025 --
69026 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
69027
69028 -- insert into errors table here.
69029
69030 END LOOP;
69031
69032 --
69033 -- 4865292
69034 --
69035 -- Compare g_hdr_extract_count with event count in
69036 -- CreateHeadersAndLines.
69037 --
69038 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
69039
69040 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69041 trace (p_msg => '# rows extracted from header extract objects '
69042 || ' (running total): '
69043 || g_hdr_extract_count
69044 ,p_level => C_LEVEL_STATEMENT
69045 ,p_module => l_log_module);
69046 END IF;
69047
69048 CLOSE header_cur;
69049 --
69050
69051 --
69052 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69053 trace
69054 (p_msg => 'END of EventClass_119'
69055 ,p_level => C_LEVEL_PROCEDURE
69056 ,p_module => l_log_module);
69057 END IF;
69058 --
69059 RETURN l_result;
69060 EXCEPTION
69061 WHEN xla_exceptions_pkg.application_exception THEN
69062
69063 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
69064
69065
69066 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
69067
69068 RAISE;
69069 WHEN OTHERS THEN
69070 xla_exceptions_pkg.raise_message
69071 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_119');
69072 END EventClass_119;
69073 --
69074
69075 ---------------------------------------
69076 --
69077 -- PRIVATE PROCEDURE
69078 -- insert_sources_120
69079 --
69080 ----------------------------------------
69081 --
69082 PROCEDURE insert_sources_120(
69083 p_target_ledger_id IN NUMBER
69084 , p_language IN VARCHAR2
69085 , p_sla_ledger_id IN NUMBER
69086 , p_pad_start_date IN DATE
69087 , p_pad_end_date IN DATE
69088 )
69089 IS
69090
69091 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ALL';
69092 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST';
69093 p_apps_owner VARCHAR2(30);
69094 l_log_module VARCHAR2(240);
69095 BEGIN
69096 IF g_log_enabled THEN
69097 l_log_module := C_DEFAULT_MODULE||'.insert_sources_120';
69098 END IF;
69099 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69100
69101 trace
69102 (p_msg => 'BEGIN of insert_sources_120'
69103 ,p_level => C_LEVEL_PROCEDURE
69104 ,p_module => l_log_module);
69105
69106 END IF;
69107
69108 -- select APPS owner
69109 SELECT oracle_username
69110 INTO p_apps_owner
69111 FROM fnd_oracle_userid
69112 WHERE read_only_flag = 'U'
69113 ;
69114
69115 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69116 trace
69117 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
69118 ' - p_language = '||p_language||
69119 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
69123 ,p_level => C_LEVEL_STATEMENT
69120 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
69121 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
69122 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
69124 ,p_module => l_log_module);
69125 END IF;
69126
69127
69128 --
69129 INSERT INTO xla_diag_sources --hdr2
69130 (
69131 event_id
69132 , ledger_id
69133 , sla_ledger_id
69134 , description_language
69135 , object_name
69136 , object_type_code
69137 , line_number
69138 , source_application_id
69139 , source_type_code
69140 , source_code
69141 , source_value
69142 , source_meaning
69143 , created_by
69144 , creation_date
69145 , last_update_date
69146 , last_updated_by
69147 , last_update_login
69148 , program_update_date
69149 , program_application_id
69150 , program_id
69151 , request_id
69152 )
69153 SELECT
69154 event_id
69155 , p_target_ledger_id
69156 , p_sla_ledger_id
69157 , p_language
69158 , object_name
69159 , object_type_code
69160 , line_number
69161 , source_application_id
69162 , source_type_code
69163 , source_code
69164 , SUBSTR(source_value ,1,1996)
69165 , SUBSTR(source_meaning ,1,200)
69166 , xla_environment_pkg.g_Usr_Id
69167 , TRUNC(SYSDATE)
69168 , TRUNC(SYSDATE)
69169 , xla_environment_pkg.g_Usr_Id
69170 , xla_environment_pkg.g_Login_Id
69171 , TRUNC(SYSDATE)
69172 , xla_environment_pkg.g_Prog_Appl_Id
69173 , xla_environment_pkg.g_Prog_Id
69174 , xla_environment_pkg.g_Req_Id
69175 FROM (
69176 SELECT xet.event_id event_id
69177 , 0 line_number
69178 , CASE r
69179 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
69180 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
69181
69182 ELSE null
69183 END object_name
69184 , CASE r
69185 WHEN 1 THEN 'HEADER'
69186 WHEN 2 THEN 'HEADER'
69187
69188 ELSE null
69189 END object_type_code
69190 , CASE r
69191 WHEN 1 THEN '275'
69192 WHEN 2 THEN '275'
69193
69194 ELSE null
69195 END source_application_id
69196 , 'S' source_type_code
69197 , CASE r
69198 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
69199 WHEN 2 THEN 'GL_DATE'
69200
69201 ELSE null
69202 END source_code
69203 , CASE r
69204 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
69205 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
69206
69207 ELSE null
69208 END source_value
69209 , null source_meaning
69210 FROM xla_events_gt xet
69211 , PA_XLA_EXP_HEADER_V h2
69212 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
69213 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
69214 AND xet.event_class_code = C_EVENT_CLASS_CODE
69215 AND h2.event_id = xet.event_id
69216
69217 )
69218 ;
69219 --
69220 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69221
69222 trace
69223 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
69224 ,p_level => C_LEVEL_STATEMENT
69225 ,p_module => l_log_module);
69226
69227 END IF;
69228 --
69229
69230
69231
69232 --
69233 INSERT INTO xla_diag_sources --line2
69234 (
69235 event_id
69236 , ledger_id
69237 , sla_ledger_id
69238 , description_language
69239 , object_name
69240 , object_type_code
69241 , line_number
69242 , source_application_id
69243 , source_type_code
69244 , source_code
69245 , source_value
69246 , source_meaning
69247 , created_by
69248 , creation_date
69249 , last_update_date
69250 , last_updated_by
69251 , last_update_login
69252 , program_update_date
69253 , program_application_id
69254 , program_id
69255 , request_id
69256 )
69257 SELECT event_id
69258 , p_target_ledger_id
69259 , p_sla_ledger_id
69260 , p_language
69261 , object_name
69262 , object_type_code
69263 , line_number
69264 , source_application_id
69265 , source_type_code
69266 , source_code
69267 , SUBSTR(source_value,1,1996)
69268 , SUBSTR(source_meaning ,1,200)
69269 , xla_environment_pkg.g_Usr_Id
69270 , TRUNC(SYSDATE)
69271 , TRUNC(SYSDATE)
69272 , xla_environment_pkg.g_Usr_Id
69273 , xla_environment_pkg.g_Login_Id
69277 , xla_environment_pkg.g_Req_Id
69274 , TRUNC(SYSDATE)
69275 , xla_environment_pkg.g_Prog_Appl_Id
69276 , xla_environment_pkg.g_Prog_Id
69278 FROM (
69279 SELECT xet.event_id event_id
69280 , l1.line_number line_number
69281 , CASE r
69282 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
69283 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
69284 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
69285 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
69286 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
69287 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
69288 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
69289 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
69290 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
69291 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
69292 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
69293 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
69294 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
69295 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
69296 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
69297 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
69298 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
69299 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
69300
69301 ELSE null
69302 END object_name
69303 , CASE r
69304 WHEN 1 THEN 'LINE'
69305 WHEN 2 THEN 'LINE'
69306 WHEN 3 THEN 'LINE'
69307 WHEN 4 THEN 'LINE'
69308 WHEN 5 THEN 'LINE'
69309 WHEN 6 THEN 'LINE'
69310 WHEN 7 THEN 'LINE'
69311 WHEN 8 THEN 'LINE'
69312 WHEN 9 THEN 'LINE'
69313 WHEN 10 THEN 'LINE'
69314 WHEN 11 THEN 'LINE'
69315 WHEN 12 THEN 'LINE'
69316 WHEN 13 THEN 'LINE'
69317 WHEN 14 THEN 'LINE'
69318 WHEN 15 THEN 'LINE'
69319 WHEN 16 THEN 'LINE'
69320 WHEN 17 THEN 'LINE'
69321 WHEN 18 THEN 'LINE'
69322
69323 ELSE null
69324 END object_type_code
69325 , CASE r
69326 WHEN 1 THEN '275'
69327 WHEN 2 THEN '275'
69328 WHEN 3 THEN '275'
69329 WHEN 4 THEN '275'
69330 WHEN 5 THEN '275'
69331 WHEN 6 THEN '275'
69332 WHEN 7 THEN '275'
69333 WHEN 8 THEN '275'
69334 WHEN 9 THEN '275'
69335 WHEN 10 THEN '275'
69336 WHEN 11 THEN '275'
69337 WHEN 12 THEN '275'
69338 WHEN 13 THEN '275'
69339 WHEN 14 THEN '275'
69340 WHEN 15 THEN '275'
69341 WHEN 16 THEN '275'
69342 WHEN 17 THEN '275'
69343 WHEN 18 THEN '275'
69344
69345 ELSE null
69346 END source_application_id
69347 , 'S' source_type_code
69348 , CASE r
69349 WHEN 1 THEN 'COST_CCID'
69350 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
69351 WHEN 3 THEN 'ADJ_COST_CCID'
69352 WHEN 4 THEN 'COST_CLEARING_CCID'
69353 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
69354 WHEN 6 THEN 'REVERSING_LINE_FLAG'
69355 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
69356 WHEN 8 THEN 'ENTERED_RAW_COST'
69357 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
69358 WHEN 10 THEN 'ACCT_RAW_COST'
69359 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
69360 WHEN 12 THEN 'EXCHANGE_RATE'
69361 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
69362 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
69363 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
69364 WHEN 16 THEN 'LINE_NUMBER'
69365 WHEN 17 THEN 'LINE_TYPE'
69366 WHEN 18 THEN 'LINE_NUM_REVERSED'
69367
69368 ELSE null
69369 END source_code
69370 , CASE r
69371 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
69372 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
69373 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
69374 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
69375 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
69376 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
69377 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
69378 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
69379 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
69380 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
69381 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
69382 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
69383 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
69384 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
69385 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
69386 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
69387 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
69388 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
69389
69393 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
69390 ELSE null
69391 END source_value
69392 , CASE r
69394 103371
69395 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
69396 ,'ALLOW_OVERRIDE_CCID_FLAG'
69397 ,'S'
69398 ,275)
69399 WHEN 17 THEN fvl34.meaning
69400
69401 ELSE null
69402 END source_meaning
69403 FROM xla_events_gt xet
69404 , PA_XLA_CDL_LINES_V l1
69405 , fnd_lookup_values fvl34
69406 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
69407 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
69408 AND xet.event_class_code = C_EVENT_CLASS_CODE
69409 AND l1.event_id = xet.event_id
69410 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
69411 AND fvl34.lookup_code(+) = l1.LINE_TYPE
69412 AND fvl34.view_application_id(+) = 275
69413 AND fvl34.language(+) = USERENV('LANG')
69414
69415 )
69416 ;
69417 --
69418 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69419
69420 trace
69421 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
69422 ,p_level => C_LEVEL_STATEMENT
69423 ,p_module => l_log_module);
69424
69425 END IF;
69426
69427
69428 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69429 trace
69430 (p_msg => 'END of insert_sources_120'
69431 ,p_level => C_LEVEL_PROCEDURE
69432 ,p_module => l_log_module);
69433 END IF;
69434 EXCEPTION
69435 WHEN xla_exceptions_pkg.application_exception THEN
69436 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
69437 trace
69438 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
69439 ,p_level => C_LEVEL_EXCEPTION
69440 ,p_module => l_log_module);
69441 END IF;
69442 RAISE;
69443 WHEN OTHERS THEN
69444 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
69445 trace
69446 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
69447 ,p_level => C_LEVEL_EXCEPTION
69448 ,p_module => l_log_module);
69449 END IF;
69450 xla_exceptions_pkg.raise_message
69451 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_120');
69452 END insert_sources_120;
69453 --
69454
69455 ---------------------------------------
69456 --
69457 -- PRIVATE FUNCTION
69458 -- EventClass_120
69459 --
69460 ----------------------------------------
69461 --
69462 FUNCTION EventClass_120
69463 (p_application_id IN NUMBER
69464 ,p_base_ledger_id IN NUMBER
69465 ,p_target_ledger_id IN NUMBER
69466 ,p_language IN VARCHAR2
69467 ,p_currency_code IN VARCHAR2
69468 ,p_sla_ledger_id IN NUMBER
69469 ,p_pad_start_date IN DATE
69470 ,p_pad_end_date IN DATE
69471 ,p_primary_ledger_id IN NUMBER)
69472 RETURN BOOLEAN IS
69473 --
69474 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'MISC_COST_ALL';
69475 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'MISC_COST';
69476
69477 l_calculate_acctd_flag VARCHAR2(1) :='N';
69478 l_calculate_g_l_flag VARCHAR2(1) :='N';
69479 --
69480 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69481 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69482 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69483 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69484 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69485 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69486 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69487 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69488 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69489 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69490 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69491 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69492 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69493 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
69494 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69495 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69496 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69497 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
69498 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69499 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69500 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69501 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
69502 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
69503 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
69504
69508 l_last_event_id NUMBER;
69505 l_event_id NUMBER;
69506 l_previous_event_id NUMBER;
69507 l_first_event_id NUMBER;
69509
69510 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
69511 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
69512 --
69513 --
69514 l_result BOOLEAN := TRUE;
69515 l_rows NUMBER := 1000;
69516 l_event_type_name VARCHAR2(80) := 'All';
69517 l_event_class_name VARCHAR2(80) := 'Miscellaneous Cost';
69518 l_description VARCHAR2(4000);
69519 l_transaction_reversal NUMBER;
69520 l_ae_header_id NUMBER;
69521 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
69522 l_log_module VARCHAR2(240);
69523 --
69524 l_acct_reversal_source VARCHAR2(30);
69525 l_trx_reversal_source VARCHAR2(30);
69526
69527 l_continue_with_lines BOOLEAN := TRUE;
69528 --
69529 l_acc_rev_gl_date_source DATE; -- 4262811
69530 --
69531 type t_array_event_id is table of number index by binary_integer;
69532
69533 l_rec_array_event t_rec_array_event;
69534 l_null_rec_array_event t_rec_array_event;
69535 l_array_ae_header_id xla_number_array_type;
69536 l_actual_flag VARCHAR2(1) := NULL;
69537 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
69538 l_balance_type_code VARCHAR2(1) :=NULL;
69539 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
69540
69541 --
69542 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
69543 --
69544
69545 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
69546 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
69547
69548 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
69549 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
69550 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
69551 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
69552 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
69553 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
69554 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
69555 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
69556 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
69557 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
69558 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
69559 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
69560 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
69561 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
69562 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
69563 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
69564 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
69565 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
69566
69567 l_array_source_32 t_array_source_32;
69568 l_array_source_87 t_array_source_87;
69569
69570 l_array_source_3 t_array_source_3;
69571 l_array_source_4 t_array_source_4;
69572 l_array_source_5 t_array_source_5;
69573 l_array_source_6 t_array_source_6;
69574 l_array_source_7 t_array_source_7;
69575 l_array_source_22 t_array_source_22;
69576 l_array_source_23 t_array_source_23;
69577 l_array_source_24 t_array_source_24;
69578 l_array_source_25 t_array_source_25;
69579 l_array_source_26 t_array_source_26;
69580 l_array_source_27 t_array_source_27;
69581 l_array_source_28 t_array_source_28;
69582 l_array_source_29 t_array_source_29;
69583 l_array_source_30 t_array_source_30;
69584 l_array_source_31 t_array_source_31;
69585 l_array_source_33 t_array_source_33;
69586 l_array_source_34 t_array_source_34;
69587 l_array_source_34_meaning t_array_lookup_meaning;
69588 l_array_source_35 t_array_source_35;
69589
69590 --
69591 CURSOR header_cur
69592 IS
69593 SELECT /*+ leading(xet) cardinality(xet,1) */
69594 -- Event Class Code: MISC_COST
69595 xet.entity_id
69596 ,xet.legal_entity_id
69597 ,xet.entity_code
69598 ,xet.transaction_number
69599 ,xet.event_id
69600 ,xet.event_class_code
69601 ,xet.event_type_code
69602 ,xet.event_number
69603 ,xet.event_date
69604 ,xet.transaction_date
69605 ,xet.reference_num_1
69606 ,xet.reference_num_2
69607 ,xet.reference_num_3
69608 ,xet.reference_num_4
69609 ,xet.reference_char_1
69610 ,xet.reference_char_2
69611 ,xet.reference_char_3
69615 ,xet.reference_date_3
69612 ,xet.reference_char_4
69613 ,xet.reference_date_1
69614 ,xet.reference_date_2
69616 ,xet.reference_date_4
69617 ,xet.event_created_by
69618 ,xet.budgetary_control_flag
69619 , h2.EXPENDITURE_ITEM_ID source_32
69620 , h2.GL_DATE source_87
69621 FROM xla_events_gt xet
69622 , PA_XLA_EXP_HEADER_V h2
69623 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
69624 and xet.event_class_code = C_EVENT_CLASS_CODE
69625 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
69626
69627 ORDER BY event_id
69628 ;
69629
69630
69631 --
69632 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
69633 IS
69634 SELECT /*+ leading(xet) cardinality(xet,1) */
69635 -- Event Class Code: MISC_COST
69636 xet.entity_id
69637 ,xet.legal_entity_id
69638 ,xet.entity_code
69639 ,xet.transaction_number
69640 ,xet.event_id
69641 ,xet.event_class_code
69642 ,xet.event_type_code
69643 ,xet.event_number
69644 ,xet.event_date
69645 ,xet.transaction_date
69646 ,xet.reference_num_1
69647 ,xet.reference_num_2
69648 ,xet.reference_num_3
69649 ,xet.reference_num_4
69650 ,xet.reference_char_1
69651 ,xet.reference_char_2
69652 ,xet.reference_char_3
69653 ,xet.reference_char_4
69654 ,xet.reference_date_1
69655 ,xet.reference_date_2
69656 ,xet.reference_date_3
69657 ,xet.reference_date_4
69658 ,xet.event_created_by
69659 ,xet.budgetary_control_flag
69660 , l1.LINE_NUMBER
69661 , l1.COST_CCID source_3
69662 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
69663 , l1.ADJ_COST_CCID source_5
69664 , l1.COST_CLEARING_CCID source_6
69665 , l1.ADJ_COST_CLEARING_CCID source_7
69666 , l1.REVERSING_LINE_FLAG source_22
69667 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
69668 , l1.ENTERED_RAW_COST source_24
69669 , l1.ENTERED_CURRENCY_CODE source_25
69670 , l1.ACCT_RAW_COST source_26
69671 , l1.EXCHANGE_RATE_DATE source_27
69672 , l1.EXCHANGE_RATE source_28
69673 , l1.EXCHANGE_RATE_TYPE source_29
69674 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
69675 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
69676 , l1.LINE_NUMBER source_33
69677 , l1.LINE_TYPE source_34
69678 , fvl34.meaning source_34_meaning
69679 , l1.LINE_NUM_REVERSED source_35
69680 FROM xla_events_gt xet
69681 , PA_XLA_CDL_LINES_V l1
69682 , fnd_lookup_values fvl34
69683 WHERE xet.event_id between x_first_event_id and x_last_event_id
69684 and xet.event_date between p_pad_start_date and p_pad_end_date
69685 and xet.event_class_code = C_EVENT_CLASS_CODE
69686 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
69687 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
69688 AND fvl34.lookup_code(+) = l1.LINE_TYPE
69689 AND fvl34.view_application_id(+) = 275
69690 AND fvl34.language(+) = USERENV('LANG')
69691 ;
69692
69693 --
69694 BEGIN
69695 IF g_log_enabled THEN
69696 l_log_module := C_DEFAULT_MODULE||'.EventClass_120';
69697 END IF;
69698 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
69699 trace
69700 (p_msg => 'BEGIN of EventClass_120'
69701 ,p_level => C_LEVEL_PROCEDURE
69702 ,p_module => l_log_module);
69703 END IF;
69704
69705 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69706 trace
69707 (p_msg => 'p_application_id = '||p_application_id||
69708 ' - p_base_ledger_id = '||p_base_ledger_id||
69709 ' - p_target_ledger_id = '||p_target_ledger_id||
69710 ' - p_language = '||p_language||
69711 ' - p_currency_code = '||p_currency_code||
69712 ' - p_sla_ledger_id = '||p_sla_ledger_id
69713 ,p_level => C_LEVEL_STATEMENT
69714 ,p_module => l_log_module);
69715 END IF;
69716 --
69717 -- initialze arrays
69718 --
69719 g_array_event.DELETE;
69720 l_rec_array_event := l_null_rec_array_event;
69721 --
69722 --------------------------------------
69723 -- 4262811 Initialze MPA Line Number
69724 --------------------------------------
69725 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
69726
69727 --
69728
69729 --
69730 OPEN header_cur;
69731 --
69732 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69733 trace
69734 (p_msg => 'SQL - FETCH header_cur'
69735 ,p_level => C_LEVEL_STATEMENT
69736 ,p_module => l_log_module);
69737 END IF;
69738 --
69739 LOOP
69740 FETCH header_cur BULK COLLECT INTO
69741 l_array_entity_id
69742 , l_array_legal_entity_id
69743 , l_array_entity_code
69744 , l_array_transaction_num
69745 , l_array_event_id
69746 , l_array_class_code
69747 , l_array_event_type
69748 , l_array_event_number
69749 , l_array_event_date
69750 , l_array_transaction_date
69751 , l_array_reference_num_1
69752 , l_array_reference_num_2
69753 , l_array_reference_num_3
69754 , l_array_reference_num_4
69755 , l_array_reference_char_1
69756 , l_array_reference_char_2
69757 , l_array_reference_char_3
69758 , l_array_reference_char_4
69762 , l_array_reference_date_4
69759 , l_array_reference_date_1
69760 , l_array_reference_date_2
69761 , l_array_reference_date_3
69763 , l_array_event_created_by
69764 , l_array_budgetary_control_flag
69765 , l_array_source_32
69766 , l_array_source_87
69767 LIMIT l_rows;
69768 --
69769 IF (C_LEVEL_EVENT >= g_log_level) THEN
69770 trace
69771 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
69772 ,p_level => C_LEVEL_EVENT
69773 ,p_module => l_log_module);
69774 END IF;
69775 --
69776 EXIT WHEN l_array_entity_id.COUNT = 0;
69777
69778 -- initialize arrays
69779 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
69780 XLA_AE_LINES_PKG.g_rec_lines := NULL;
69781
69782 --
69783 -- Bug 4458708
69784 --
69785 XLA_AE_LINES_PKG.g_LineNumber := 0;
69786
69787
69788 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
69789 g_last_hdr_idx := l_array_event_id.LAST;
69790 --
69791 -- loop for the headers. Each iteration is for each header extract row
69792 -- fetched in header cursor
69793 --
69794 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
69795
69796 --
69797 -- set event info as cache for other routines to refer event attributes
69798 --
69799 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
69800 (p_application_id => p_application_id
69801 ,p_primary_ledger_id => p_primary_ledger_id
69802 ,p_base_ledger_id => p_base_ledger_id
69803 ,p_target_ledger_id => p_target_ledger_id
69804 ,p_entity_id => l_array_entity_id(hdr_idx)
69805 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
69806 ,p_entity_code => l_array_entity_code(hdr_idx)
69807 ,p_transaction_num => l_array_transaction_num(hdr_idx)
69808 ,p_event_id => l_array_event_id(hdr_idx)
69809 ,p_event_class_code => l_array_class_code(hdr_idx)
69810 ,p_event_type_code => l_array_event_type(hdr_idx)
69811 ,p_event_number => l_array_event_number(hdr_idx)
69812 ,p_event_date => l_array_event_date(hdr_idx)
69813 ,p_transaction_date => l_array_transaction_date(hdr_idx)
69814 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
69815 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
69816 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
69817 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
69818 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
69819 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
69820 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
69821 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
69822 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
69823 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
69824 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
69825 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
69826 ,p_event_created_by => l_array_event_created_by(hdr_idx)
69827 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
69828
69829 --
69830 -- set the status of entry to C_VALID (0)
69831 --
69832 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
69833
69834 --
69835 -- initialize a row for ae header
69836 --
69837 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
69838
69839 l_event_id := l_array_event_id(hdr_idx);
69840
69841 --
69842 -- storing the hdr_idx for event. May be used by line cursor.
69843 --
69844 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
69845
69846 --
69847 -- store sources from header extract. This can be improved to
69848 -- store only those sources from header extract that may be used in lines
69849 --
69850
69851 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
69852 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
69853
69854 --
69855 -- initilaize the status of ae headers for diffrent balance types
69856 -- the status is initialised to C_NOT_CREATED (2)
69857 --
69858 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69859 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69860 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
69861
69862 --
69863 -- call api to validate and store accounting attributes for header
69864 --
69865
69866 ------------------------------------------------------------
69867 -- Accrual Reversal : to get date for Standard Source (NONE)
69868 ------------------------------------------------------------
69869 l_acc_rev_gl_date_source := NULL;
69870
69871 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
69872 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
69873
69874
69875 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
69876
69877 XLA_AE_HEADER_PKG.SetJeCategoryName;
69878
69879 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
69880 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
69884
69881 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
69882 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
69883 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
69885
69886 -- No header level analytical criteria
69887
69888 --
69889 --accounting attribute enhancement, bug 3612931
69890 --
69891 l_trx_reversal_source := SUBSTR(NULL, 1,30);
69892
69893 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
69894 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
69895
69896 xla_accounting_err_pkg.build_message
69897 (p_appli_s_name => 'XLA'
69898 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
69899 ,p_token_1 => 'ACCT_ATTR_NAME'
69900 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
69901 ,p_token_2 => 'PRODUCT_NAME'
69902 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
69903 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
69904 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
69905 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
69906
69907 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
69908 --
69909 -- following sets the accounting attributes needed to reverse
69910 -- accounting for a distributeion
69911 --
69912 xla_ae_lines_pkg.SetTrxReversalAttrs
69913 (p_event_id => l_event_id
69914 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
69915 ,p_trx_reversal_source => l_trx_reversal_source);
69916
69917 END IF;
69918
69919
69920 ----------------------------------------------------------------
69921 -- 4262811 - update the header statuses to invalid in need be
69922 ----------------------------------------------------------------
69923 --
69924 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
69925
69926
69927 -----------------------------------------------
69928 -- No accrual reversal for the event class/type
69929 -----------------------------------------------
69930 ----------------------------------------------------------------
69931
69932 --
69933 -- this ends the header loop iteration for one bulk fetch
69934 --
69935 END LOOP;
69936
69937 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
69938 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
69939
69940 --
69941 -- insert dummy rows into lines gt table that were created due to
69942 -- transaction reversals
69943 --
69944 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
69945 l_result := XLA_AE_LINES_PKG.InsertLines;
69946 END IF;
69947
69948 --
69949 -- reset the temp_line_num for each set of events fetched from header
69950 -- cursor rather than doing it for each new event in line cursor
69951 -- Bug 3939231
69952 --
69953 xla_ae_lines_pkg.g_temp_line_num := 0;
69954
69955
69956
69957 --
69958 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
69959 --
69960 --
69961 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
69962
69963 trace
69964 (p_msg => 'SQL - FETCH line_cur'
69965 ,p_level => C_LEVEL_STATEMENT
69966 ,p_module => l_log_module);
69967
69968 END IF;
69969 --
69970 --
69971 LOOP
69972 --
69973 FETCH line_cur BULK COLLECT INTO
69974 l_array_entity_id
69975 , l_array_legal_entity_id
69976 , l_array_entity_code
69977 , l_array_transaction_num
69978 , l_array_event_id
69979 , l_array_class_code
69980 , l_array_event_type
69981 , l_array_event_number
69982 , l_array_event_date
69983 , l_array_transaction_date
69984 , l_array_reference_num_1
69985 , l_array_reference_num_2
69986 , l_array_reference_num_3
69987 , l_array_reference_num_4
69988 , l_array_reference_char_1
69989 , l_array_reference_char_2
69990 , l_array_reference_char_3
69991 , l_array_reference_char_4
69992 , l_array_reference_date_1
69993 , l_array_reference_date_2
69994 , l_array_reference_date_3
69995 , l_array_reference_date_4
69996 , l_array_event_created_by
69997 , l_array_budgetary_control_flag
69998 , l_array_extract_line_num
69999 , l_array_source_3
70000 , l_array_source_4
70001 , l_array_source_5
70002 , l_array_source_6
70003 , l_array_source_7
70004 , l_array_source_22
70005 , l_array_source_23
70006 , l_array_source_24
70007 , l_array_source_25
70008 , l_array_source_26
70009 , l_array_source_27
70010 , l_array_source_28
70011 , l_array_source_29
70012 , l_array_source_30
70013 , l_array_source_31
70014 , l_array_source_33
70015 , l_array_source_34
70016 , l_array_source_34_meaning
70017 , l_array_source_35
70018 LIMIT l_rows;
70019
70020 --
70021 IF (C_LEVEL_EVENT >= g_log_level) THEN
70022 trace
70026 END IF;
70023 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
70024 ,p_level => C_LEVEL_EVENT
70025 ,p_module => l_log_module);
70027 --
70028 EXIT WHEN l_array_entity_id.count = 0;
70029
70030 XLA_AE_LINES_PKG.g_rec_lines := null;
70031
70032 --
70033 -- Bug 4458708
70034 --
70035 XLA_AE_LINES_PKG.g_LineNumber := 0;
70036 --
70037 --
70038
70039 FOR Idx IN 1..l_array_event_id.count LOOP
70040 --
70041 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
70042 --
70043 l_event_id := l_array_event_id(idx); -- 5648433
70044
70045 --
70046 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
70047 --
70048
70049 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
70050 (g_array_event(l_event_id).array_value_num('header_index'))
70051 ,'N'
70052 ) <> 'Y'
70053 THEN
70054 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70055 trace
70056 (p_msg => 'Trancaction revesal option is not Y '
70057 ,p_level => C_LEVEL_STATEMENT
70058 ,p_module => l_log_module);
70059 END IF;
70060
70061 --
70062 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
70063 --
70064 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
70065 --
70066 -- set event info as cache for other routines to refer event attributes
70067 --
70068
70069 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
70070 l_previous_event_id := l_event_id;
70071
70072 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
70073 (p_application_id => p_application_id
70074 ,p_primary_ledger_id => p_primary_ledger_id
70075 ,p_base_ledger_id => p_base_ledger_id
70076 ,p_target_ledger_id => p_target_ledger_id
70077 ,p_entity_id => l_array_entity_id(Idx)
70078 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
70079 ,p_entity_code => l_array_entity_code(Idx)
70080 ,p_transaction_num => l_array_transaction_num(Idx)
70081 ,p_event_id => l_array_event_id(Idx)
70082 ,p_event_class_code => l_array_class_code(Idx)
70083 ,p_event_type_code => l_array_event_type(Idx)
70084 ,p_event_number => l_array_event_number(Idx)
70085 ,p_event_date => l_array_event_date(Idx)
70086 ,p_transaction_date => l_array_transaction_date(Idx)
70087 ,p_reference_num_1 => l_array_reference_num_1(Idx)
70088 ,p_reference_num_2 => l_array_reference_num_2(Idx)
70089 ,p_reference_num_3 => l_array_reference_num_3(Idx)
70090 ,p_reference_num_4 => l_array_reference_num_4(Idx)
70091 ,p_reference_char_1 => l_array_reference_char_1(Idx)
70092 ,p_reference_char_2 => l_array_reference_char_2(Idx)
70093 ,p_reference_char_3 => l_array_reference_char_3(Idx)
70094 ,p_reference_char_4 => l_array_reference_char_4(Idx)
70095 ,p_reference_date_1 => l_array_reference_date_1(Idx)
70096 ,p_reference_date_2 => l_array_reference_date_2(Idx)
70097 ,p_reference_date_3 => l_array_reference_date_3(Idx)
70098 ,p_reference_date_4 => l_array_reference_date_4(Idx)
70099 ,p_event_created_by => l_array_event_created_by(Idx)
70100 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
70101 --
70102 END IF;
70103
70104
70105
70106 --
70107 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
70108
70109 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
70110
70111 IF l_continue_with_lines THEN
70112 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
70113 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
70114
70115 xla_accounting_err_pkg.build_message
70116 (p_appli_s_name => 'XLA'
70117 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
70118 ,p_token_1 => 'LINE_NUMBER'
70119 ,p_value_1 => l_array_extract_line_num(Idx)
70120 ,p_token_2 => 'PRODUCT_NAME'
70121 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
70122 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
70123 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
70124 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
70125
70126 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
70127 --
70128 -- following sets the accounting attributes needed to reverse
70129 -- accounting for a distributeion
70130 --
70131
70132 --
70133 -- 5217187
70134 --
70135 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
70136 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
70137 g_array_event(l_event_id).array_value_num('header_index'));
70138 --
70139 --
70140
70144 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
70141 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
70142 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
70143 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
70145 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
70146 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
70147 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
70148 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
70149 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
70150 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
70151 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
70152 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
70153 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
70154 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
70155 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
70156 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
70157 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
70158 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
70159 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
70160 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
70161 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
70162 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
70163 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
70164 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
70165 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
70166 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
70167 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
70168 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
70169 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
70170 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
70171 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
70172 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
70173 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
70174 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
70175 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
70176 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
70177 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
70178 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
70179 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
70180 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
70181 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
70182 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
70183 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
70184 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
70185 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
70186 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
70187 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
70188 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
70189
70190
70191 xla_ae_lines_pkg.SetAcctReversalAttrs
70192 (p_event_id => l_event_id
70193 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
70194 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70195 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
70196 END IF;
70197
70198 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
70199 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
70200
70201 --
70202 AcctLineType_46 (
70203 p_application_id => p_application_id
70204 ,p_event_id => l_event_id
70205 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70206 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70207 ,p_actual_flag => l_actual_flag
70208 ,p_balance_type_code => l_balance_type_code
70209 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70210
70211 , p_source_3 => l_array_source_3(Idx)
70212 , p_source_4 => l_array_source_4(Idx)
70213 , p_source_5 => l_array_source_5(Idx)
70214 , p_source_6 => l_array_source_6(Idx)
70215 , p_source_22 => l_array_source_22(Idx)
70216 , p_source_23 => l_array_source_23(Idx)
70217 , p_source_24 => l_array_source_24(Idx)
70218 , p_source_25 => l_array_source_25(Idx)
70219 , p_source_26 => l_array_source_26(Idx)
70220 , p_source_27 => l_array_source_27(Idx)
70221 , p_source_28 => l_array_source_28(Idx)
70222 , p_source_29 => l_array_source_29(Idx)
70223 , p_source_30 => l_array_source_30(Idx)
70224 , p_source_31 => l_array_source_31(Idx)
70225 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
70226 , p_source_33 => l_array_source_33(Idx)
70227 , p_source_34 => l_array_source_34(Idx)
70228 , p_source_34_meaning => l_array_source_34_meaning(Idx)
70232 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70229 , p_source_35 => l_array_source_35(Idx)
70230 );
70231 If(l_balance_type_code = 'A') THEN
70233 END IF;
70234
70235 --
70236
70237
70238 --
70239 AcctLineType_57 (
70240 p_application_id => p_application_id
70241 ,p_event_id => l_event_id
70242 ,p_calculate_acctd_flag => l_calculate_acctd_flag
70243 ,p_calculate_g_l_flag => l_calculate_g_l_flag
70244 ,p_actual_flag => l_actual_flag
70245 ,p_balance_type_code => l_balance_type_code
70246 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
70247
70248 , p_source_3 => l_array_source_3(Idx)
70249 , p_source_4 => l_array_source_4(Idx)
70250 , p_source_6 => l_array_source_6(Idx)
70251 , p_source_7 => l_array_source_7(Idx)
70252 , p_source_22 => l_array_source_22(Idx)
70253 , p_source_23 => l_array_source_23(Idx)
70254 , p_source_24 => l_array_source_24(Idx)
70255 , p_source_25 => l_array_source_25(Idx)
70256 , p_source_26 => l_array_source_26(Idx)
70257 , p_source_27 => l_array_source_27(Idx)
70258 , p_source_28 => l_array_source_28(Idx)
70259 , p_source_29 => l_array_source_29(Idx)
70260 , p_source_30 => l_array_source_30(Idx)
70261 , p_source_31 => l_array_source_31(Idx)
70262 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
70263 , p_source_33 => l_array_source_33(Idx)
70264 , p_source_34 => l_array_source_34(Idx)
70265 , p_source_34_meaning => l_array_source_34_meaning(Idx)
70266 , p_source_35 => l_array_source_35(Idx)
70267 );
70268 If(l_balance_type_code = 'A') THEN
70269 l_actual_gain_loss_ref := l_gain_or_loss_ref;
70270 END IF;
70271
70272 --
70273
70274 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
70275 -- or secondary ledger that has different currency with primary
70276 -- or alc that is calculated by sla
70277 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
70278 (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'))
70279
70280 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
70281 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
70282 AND (l_actual_flag = 'A')) THEN
70283 XLA_AE_LINES_PKG.CreateGainOrLossLines(
70284 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
70285 ,p_application_id => p_application_id
70286 ,p_amb_context_code => 'DEFAULT'
70287 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
70288 ,p_event_class_code => C_EVENT_CLASS_CODE
70289 ,p_event_type_code => C_EVENT_TYPE_CODE
70290
70291 ,p_gain_ccid => -1
70292 ,p_loss_ccid => -1
70293
70294 ,p_actual_flag => l_actual_flag
70295 ,p_enc_flag => null
70296 ,p_actual_g_l_ref => l_actual_gain_loss_ref
70297 ,p_enc_g_l_ref => null
70298 );
70299 END IF;
70300 END IF;
70301 END IF;
70302
70303 ELSE
70304 --
70305 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
70306 --
70307 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70308 trace
70309 (p_msg => 'Trancaction revesal option is Y'
70310 ,p_level => C_LEVEL_STATEMENT
70311 ,p_module => l_log_module);
70312 END IF;
70313 END IF;
70314
70315 END LOOP;
70316 l_result := XLA_AE_LINES_PKG.InsertLines ;
70317 end loop;
70318 close line_cur;
70319
70320
70321 --
70322 -- insert headers into xla_ae_headers_gt table
70323 --
70324 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
70325
70326 -- insert into errors table here.
70327
70328 END LOOP;
70329
70330 --
70331 -- 4865292
70332 --
70333 -- Compare g_hdr_extract_count with event count in
70334 -- CreateHeadersAndLines.
70335 --
70336 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
70337
70338 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70339 trace (p_msg => '# rows extracted from header extract objects '
70340 || ' (running total): '
70341 || g_hdr_extract_count
70342 ,p_level => C_LEVEL_STATEMENT
70343 ,p_module => l_log_module);
70344 END IF;
70345
70346 CLOSE header_cur;
70347 --
70348
70349 --
70350 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70351 trace
70352 (p_msg => 'END of EventClass_120'
70353 ,p_level => C_LEVEL_PROCEDURE
70354 ,p_module => l_log_module);
70355 END IF;
70356 --
70357 RETURN l_result;
70358 EXCEPTION
70359 WHEN xla_exceptions_pkg.application_exception THEN
70360
70361 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
70362
70363
70364 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
70365
70366 RAISE;
70367 WHEN OTHERS THEN
70368 xla_exceptions_pkg.raise_message
70369 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_120');
70370 END EventClass_120;
70371 --
70372
70373 ---------------------------------------
70374 --
70375 -- PRIVATE PROCEDURE
70376 -- insert_sources_121
70377 --
70381 p_target_ledger_id IN NUMBER
70378 ----------------------------------------
70379 --
70380 PROCEDURE insert_sources_121(
70382 , p_language IN VARCHAR2
70383 , p_sla_ledger_id IN NUMBER
70384 , p_pad_start_date IN DATE
70385 , p_pad_end_date IN DATE
70386 )
70387 IS
70388
70389 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
70390 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ';
70391 p_apps_owner VARCHAR2(30);
70392 l_log_module VARCHAR2(240);
70393 BEGIN
70394 IF g_log_enabled THEN
70395 l_log_module := C_DEFAULT_MODULE||'.insert_sources_121';
70396 END IF;
70397 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70398
70399 trace
70400 (p_msg => 'BEGIN of insert_sources_121'
70401 ,p_level => C_LEVEL_PROCEDURE
70402 ,p_module => l_log_module);
70403
70404 END IF;
70405
70406 -- select APPS owner
70407 SELECT oracle_username
70408 INTO p_apps_owner
70409 FROM fnd_oracle_userid
70410 WHERE read_only_flag = 'U'
70411 ;
70412
70413 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70414 trace
70415 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
70416 ' - p_language = '||p_language||
70417 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
70418 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
70419 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
70420 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
70421 ,p_level => C_LEVEL_STATEMENT
70422 ,p_module => l_log_module);
70423 END IF;
70424
70425
70426 --
70427 INSERT INTO xla_diag_sources --hdr2
70428 (
70429 event_id
70430 , ledger_id
70431 , sla_ledger_id
70432 , description_language
70433 , object_name
70434 , object_type_code
70435 , line_number
70436 , source_application_id
70437 , source_type_code
70438 , source_code
70439 , source_value
70440 , source_meaning
70441 , created_by
70442 , creation_date
70443 , last_update_date
70444 , last_updated_by
70445 , last_update_login
70446 , program_update_date
70447 , program_application_id
70448 , program_id
70449 , request_id
70450 )
70451 SELECT
70452 event_id
70453 , p_target_ledger_id
70454 , p_sla_ledger_id
70455 , p_language
70456 , object_name
70457 , object_type_code
70458 , line_number
70459 , source_application_id
70460 , source_type_code
70461 , source_code
70462 , SUBSTR(source_value ,1,1996)
70463 , SUBSTR(source_meaning ,1,200)
70464 , xla_environment_pkg.g_Usr_Id
70465 , TRUNC(SYSDATE)
70466 , TRUNC(SYSDATE)
70467 , xla_environment_pkg.g_Usr_Id
70468 , xla_environment_pkg.g_Login_Id
70469 , TRUNC(SYSDATE)
70470 , xla_environment_pkg.g_Prog_Appl_Id
70471 , xla_environment_pkg.g_Prog_Id
70472 , xla_environment_pkg.g_Req_Id
70473 FROM (
70474 SELECT xet.event_id event_id
70475 , 0 line_number
70476 , CASE r
70477 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
70478 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
70479
70480 ELSE null
70481 END object_name
70482 , CASE r
70483 WHEN 1 THEN 'HEADER'
70484 WHEN 2 THEN 'HEADER'
70485
70486 ELSE null
70487 END object_type_code
70488 , CASE r
70489 WHEN 1 THEN '275'
70490 WHEN 2 THEN '275'
70491
70492 ELSE null
70493 END source_application_id
70494 , 'S' source_type_code
70495 , CASE r
70496 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
70497 WHEN 2 THEN 'GL_DATE'
70498
70499 ELSE null
70500 END source_code
70501 , CASE r
70502 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
70503 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
70504
70505 ELSE null
70506 END source_value
70507 , null source_meaning
70508 FROM xla_events_gt xet
70509 , PA_XLA_EXP_HEADER_V h2
70510 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
70511 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
70512 AND xet.event_class_code = C_EVENT_CLASS_CODE
70513 AND h2.event_id = xet.event_id
70514
70515 )
70516 ;
70517 --
70518 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70519
70520 trace
70521 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
70525 END IF;
70522 ,p_level => C_LEVEL_STATEMENT
70523 ,p_module => l_log_module);
70524
70526 --
70527
70528
70529
70530 --
70531 INSERT INTO xla_diag_sources --line2
70532 (
70533 event_id
70534 , ledger_id
70535 , sla_ledger_id
70536 , description_language
70537 , object_name
70538 , object_type_code
70539 , line_number
70540 , source_application_id
70541 , source_type_code
70542 , source_code
70543 , source_value
70544 , source_meaning
70545 , created_by
70546 , creation_date
70547 , last_update_date
70548 , last_updated_by
70549 , last_update_login
70550 , program_update_date
70551 , program_application_id
70552 , program_id
70553 , request_id
70554 )
70555 SELECT event_id
70556 , p_target_ledger_id
70557 , p_sla_ledger_id
70558 , p_language
70559 , object_name
70560 , object_type_code
70561 , line_number
70562 , source_application_id
70563 , source_type_code
70564 , source_code
70565 , SUBSTR(source_value,1,1996)
70566 , SUBSTR(source_meaning ,1,200)
70567 , xla_environment_pkg.g_Usr_Id
70568 , TRUNC(SYSDATE)
70569 , TRUNC(SYSDATE)
70570 , xla_environment_pkg.g_Usr_Id
70571 , xla_environment_pkg.g_Login_Id
70572 , TRUNC(SYSDATE)
70573 , xla_environment_pkg.g_Prog_Appl_Id
70574 , xla_environment_pkg.g_Prog_Id
70575 , xla_environment_pkg.g_Req_Id
70576 FROM (
70577 SELECT xet.event_id event_id
70578 , l1.line_number line_number
70579 , CASE r
70580 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
70581 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
70582 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
70583 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
70584 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
70585 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
70586 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
70587 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
70588 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
70589 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
70590 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
70591 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
70592 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
70593 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
70594 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
70595 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
70596 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
70597 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
70598
70599 ELSE null
70600 END object_name
70601 , CASE r
70602 WHEN 1 THEN 'LINE'
70603 WHEN 2 THEN 'LINE'
70604 WHEN 3 THEN 'LINE'
70605 WHEN 4 THEN 'LINE'
70606 WHEN 5 THEN 'LINE'
70607 WHEN 6 THEN 'LINE'
70608 WHEN 7 THEN 'LINE'
70609 WHEN 8 THEN 'LINE'
70610 WHEN 9 THEN 'LINE'
70611 WHEN 10 THEN 'LINE'
70612 WHEN 11 THEN 'LINE'
70613 WHEN 12 THEN 'LINE'
70614 WHEN 13 THEN 'LINE'
70615 WHEN 14 THEN 'LINE'
70616 WHEN 15 THEN 'LINE'
70617 WHEN 16 THEN 'LINE'
70618 WHEN 17 THEN 'LINE'
70619 WHEN 18 THEN 'LINE'
70620
70621 ELSE null
70622 END object_type_code
70623 , CASE r
70624 WHEN 1 THEN '275'
70625 WHEN 2 THEN '275'
70626 WHEN 3 THEN '275'
70627 WHEN 4 THEN '275'
70628 WHEN 5 THEN '275'
70629 WHEN 6 THEN '275'
70630 WHEN 7 THEN '275'
70631 WHEN 8 THEN '275'
70632 WHEN 9 THEN '275'
70633 WHEN 10 THEN '275'
70634 WHEN 11 THEN '275'
70635 WHEN 12 THEN '275'
70636 WHEN 13 THEN '275'
70637 WHEN 14 THEN '275'
70638 WHEN 15 THEN '275'
70639 WHEN 16 THEN '275'
70640 WHEN 17 THEN '275'
70641 WHEN 18 THEN '275'
70642
70643 ELSE null
70644 END source_application_id
70645 , 'S' source_type_code
70646 , CASE r
70647 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
70648 WHEN 2 THEN 'DESTINATION_CCID'
70649 WHEN 3 THEN 'ADJ_DESTINATION_CCID'
70650 WHEN 4 THEN 'SOURCE_CCID'
70651 WHEN 5 THEN 'ADJ_SOURCE_CCID'
70652 WHEN 6 THEN 'REVERSING_LINE_FLAG'
70653 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
70654 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
70655 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
70656 WHEN 10 THEN 'EXCHANGE_RATE'
70657 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
70661 WHEN 15 THEN 'LINE_TYPE'
70658 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
70659 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
70660 WHEN 14 THEN 'LINE_NUMBER'
70662 WHEN 16 THEN 'LINE_NUM_REVERSED'
70663 WHEN 17 THEN 'ENTERED_AMOUNT'
70664 WHEN 18 THEN 'ACCT_AMOUNT'
70665
70666 ELSE null
70667 END source_code
70668 , CASE r
70669 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
70670 WHEN 2 THEN TO_CHAR(l1.DESTINATION_CCID)
70671 WHEN 3 THEN TO_CHAR(l1.ADJ_DESTINATION_CCID)
70672 WHEN 4 THEN TO_CHAR(l1.SOURCE_CCID)
70673 WHEN 5 THEN TO_CHAR(l1.ADJ_SOURCE_CCID)
70674 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
70675 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
70676 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
70677 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
70678 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
70679 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
70680 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
70681 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
70682 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
70683 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
70684 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
70685 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
70686 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
70687
70688 ELSE null
70689 END source_value
70690 , CASE r
70691 WHEN 1 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
70692 103371
70693 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
70694 ,'ALLOW_OVERRIDE_CCID_FLAG'
70695 ,'S'
70696 ,275)
70697 WHEN 15 THEN fvl34.meaning
70698
70699 ELSE null
70700 END source_meaning
70701 FROM xla_events_gt xet
70702 , PA_XLA_CCDL_LINES_V l1
70703 , fnd_lookup_values fvl34
70704 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
70705 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
70706 AND xet.event_class_code = C_EVENT_CLASS_CODE
70707 AND l1.event_id = xet.event_id
70708 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
70709 AND fvl34.lookup_code(+) = l1.LINE_TYPE
70710 AND fvl34.view_application_id(+) = 275
70711 AND fvl34.language(+) = USERENV('LANG')
70712
70713 )
70714 ;
70715 --
70716 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
70717
70718 trace
70719 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
70720 ,p_level => C_LEVEL_STATEMENT
70721 ,p_module => l_log_module);
70722
70723 END IF;
70724
70725
70726 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70727 trace
70728 (p_msg => 'END of insert_sources_121'
70729 ,p_level => C_LEVEL_PROCEDURE
70730 ,p_module => l_log_module);
70731 END IF;
70732 EXCEPTION
70733 WHEN xla_exceptions_pkg.application_exception THEN
70734 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
70735 trace
70736 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
70737 ,p_level => C_LEVEL_EXCEPTION
70738 ,p_module => l_log_module);
70739 END IF;
70740 RAISE;
70741 WHEN OTHERS THEN
70742 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
70743 trace
70744 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
70745 ,p_level => C_LEVEL_EXCEPTION
70746 ,p_module => l_log_module);
70747 END IF;
70748 xla_exceptions_pkg.raise_message
70749 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_121');
70750 END insert_sources_121;
70751 --
70752
70753 ---------------------------------------
70754 --
70755 -- PRIVATE FUNCTION
70756 -- EventClass_121
70757 --
70758 ----------------------------------------
70759 --
70760 FUNCTION EventClass_121
70761 (p_application_id IN NUMBER
70762 ,p_base_ledger_id IN NUMBER
70763 ,p_target_ledger_id IN NUMBER
70764 ,p_language IN VARCHAR2
70765 ,p_currency_code IN VARCHAR2
70766 ,p_sla_ledger_id IN NUMBER
70767 ,p_pad_start_date IN DATE
70768 ,p_pad_end_date IN DATE
70769 ,p_primary_ledger_id IN NUMBER)
70770 RETURN BOOLEAN IS
70771 --
70772 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ_ALL';
70773 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ADJ';
70774
70775 l_calculate_acctd_flag VARCHAR2(1) :='N';
70776 l_calculate_g_l_flag VARCHAR2(1) :='N';
70777 --
70778 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70782 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70779 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70780 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70781 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70783 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70784 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70785 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70786 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70787 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70788 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70789 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70790 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70791 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
70792 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70793 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70794 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70795 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
70796 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70797 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70798 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70799 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
70800 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
70801 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
70802
70803 l_event_id NUMBER;
70804 l_previous_event_id NUMBER;
70805 l_first_event_id NUMBER;
70806 l_last_event_id NUMBER;
70807
70808 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
70809 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
70810 --
70811 --
70812 l_result BOOLEAN := TRUE;
70813 l_rows NUMBER := 1000;
70814 l_event_type_name VARCHAR2(80) := 'All';
70815 l_event_class_name VARCHAR2(80) := 'Provider and Receiver Reclass Adjustment';
70816 l_description VARCHAR2(4000);
70817 l_transaction_reversal NUMBER;
70818 l_ae_header_id NUMBER;
70819 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
70820 l_log_module VARCHAR2(240);
70821 --
70822 l_acct_reversal_source VARCHAR2(30);
70823 l_trx_reversal_source VARCHAR2(30);
70824
70825 l_continue_with_lines BOOLEAN := TRUE;
70826 --
70827 l_acc_rev_gl_date_source DATE; -- 4262811
70828 --
70829 type t_array_event_id is table of number index by binary_integer;
70830
70831 l_rec_array_event t_rec_array_event;
70832 l_null_rec_array_event t_rec_array_event;
70833 l_array_ae_header_id xla_number_array_type;
70834 l_actual_flag VARCHAR2(1) := NULL;
70835 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
70836 l_balance_type_code VARCHAR2(1) :=NULL;
70837 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
70838
70839 --
70840 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
70841 --
70842
70843 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
70844 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
70845
70846 TYPE t_array_source_4 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
70847 TYPE t_array_source_11 IS TABLE OF PA_XLA_CCDL_LINES_V.DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
70848 TYPE t_array_source_12 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
70849 TYPE t_array_source_13 IS TABLE OF PA_XLA_CCDL_LINES_V.SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
70850 TYPE t_array_source_14 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
70851 TYPE t_array_source_22 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
70852 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
70853 TYPE t_array_source_25 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
70854 TYPE t_array_source_27 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
70855 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
70856 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
70857 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
70858 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
70859 TYPE t_array_source_33 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
70860 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
70861 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
70862 TYPE t_array_source_41 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
70863 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
70864
70868 l_array_source_4 t_array_source_4;
70865 l_array_source_32 t_array_source_32;
70866 l_array_source_87 t_array_source_87;
70867
70869 l_array_source_11 t_array_source_11;
70870 l_array_source_12 t_array_source_12;
70871 l_array_source_13 t_array_source_13;
70872 l_array_source_14 t_array_source_14;
70873 l_array_source_22 t_array_source_22;
70874 l_array_source_23 t_array_source_23;
70875 l_array_source_25 t_array_source_25;
70876 l_array_source_27 t_array_source_27;
70877 l_array_source_28 t_array_source_28;
70878 l_array_source_29 t_array_source_29;
70879 l_array_source_30 t_array_source_30;
70880 l_array_source_31 t_array_source_31;
70881 l_array_source_33 t_array_source_33;
70882 l_array_source_34 t_array_source_34;
70883 l_array_source_34_meaning t_array_lookup_meaning;
70884 l_array_source_35 t_array_source_35;
70885 l_array_source_41 t_array_source_41;
70886 l_array_source_43 t_array_source_43;
70887
70888 --
70889 CURSOR header_cur
70890 IS
70891 SELECT /*+ leading(xet) cardinality(xet,1) */
70892 -- Event Class Code: PRVDR_RECVR_RECLASS_ADJ
70893 xet.entity_id
70894 ,xet.legal_entity_id
70895 ,xet.entity_code
70896 ,xet.transaction_number
70897 ,xet.event_id
70898 ,xet.event_class_code
70899 ,xet.event_type_code
70900 ,xet.event_number
70901 ,xet.event_date
70902 ,xet.transaction_date
70903 ,xet.reference_num_1
70904 ,xet.reference_num_2
70905 ,xet.reference_num_3
70906 ,xet.reference_num_4
70907 ,xet.reference_char_1
70908 ,xet.reference_char_2
70909 ,xet.reference_char_3
70910 ,xet.reference_char_4
70911 ,xet.reference_date_1
70912 ,xet.reference_date_2
70913 ,xet.reference_date_3
70914 ,xet.reference_date_4
70915 ,xet.event_created_by
70916 ,xet.budgetary_control_flag
70917 , h2.EXPENDITURE_ITEM_ID source_32
70918 , h2.GL_DATE source_87
70919 FROM xla_events_gt xet
70920 , PA_XLA_EXP_HEADER_V h2
70921 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
70922 and xet.event_class_code = C_EVENT_CLASS_CODE
70923 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
70924
70925 ORDER BY event_id
70926 ;
70927
70928
70929 --
70930 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
70931 IS
70932 SELECT /*+ leading(xet) cardinality(xet,1) */
70933 -- Event Class Code: PRVDR_RECVR_RECLASS_ADJ
70934 xet.entity_id
70935 ,xet.legal_entity_id
70936 ,xet.entity_code
70937 ,xet.transaction_number
70938 ,xet.event_id
70939 ,xet.event_class_code
70940 ,xet.event_type_code
70941 ,xet.event_number
70942 ,xet.event_date
70943 ,xet.transaction_date
70944 ,xet.reference_num_1
70945 ,xet.reference_num_2
70946 ,xet.reference_num_3
70947 ,xet.reference_num_4
70948 ,xet.reference_char_1
70949 ,xet.reference_char_2
70950 ,xet.reference_char_3
70951 ,xet.reference_char_4
70952 ,xet.reference_date_1
70953 ,xet.reference_date_2
70954 ,xet.reference_date_3
70955 ,xet.reference_date_4
70956 ,xet.event_created_by
70957 ,xet.budgetary_control_flag
70958 , l1.LINE_NUMBER
70959 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
70960 , l1.DESTINATION_CCID source_11
70961 , l1.ADJ_DESTINATION_CCID source_12
70962 , l1.SOURCE_CCID source_13
70963 , l1.ADJ_SOURCE_CCID source_14
70964 , l1.REVERSING_LINE_FLAG source_22
70965 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
70966 , l1.ENTERED_CURRENCY_CODE source_25
70967 , l1.EXCHANGE_RATE_DATE source_27
70968 , l1.EXCHANGE_RATE source_28
70969 , l1.EXCHANGE_RATE_TYPE source_29
70970 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
70971 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
70972 , l1.LINE_NUMBER source_33
70973 , l1.LINE_TYPE source_34
70974 , fvl34.meaning source_34_meaning
70975 , l1.LINE_NUM_REVERSED source_35
70976 , l1.ENTERED_AMOUNT source_41
70977 , l1.ACCT_AMOUNT source_43
70978 FROM xla_events_gt xet
70979 , PA_XLA_CCDL_LINES_V l1
70980 , fnd_lookup_values fvl34
70981 WHERE xet.event_id between x_first_event_id and x_last_event_id
70982 and xet.event_date between p_pad_start_date and p_pad_end_date
70983 and xet.event_class_code = C_EVENT_CLASS_CODE
70984 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
70985 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
70986 AND fvl34.lookup_code(+) = l1.LINE_TYPE
70987 AND fvl34.view_application_id(+) = 275
70988 AND fvl34.language(+) = USERENV('LANG')
70989 ;
70990
70991 --
70992 BEGIN
70993 IF g_log_enabled THEN
70994 l_log_module := C_DEFAULT_MODULE||'.EventClass_121';
70995 END IF;
70996 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
70997 trace
70998 (p_msg => 'BEGIN of EventClass_121'
70999 ,p_level => C_LEVEL_PROCEDURE
71000 ,p_module => l_log_module);
71001 END IF;
71002
71003 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71004 trace
71005 (p_msg => 'p_application_id = '||p_application_id||
71006 ' - p_base_ledger_id = '||p_base_ledger_id||
71007 ' - p_target_ledger_id = '||p_target_ledger_id||
71011 ,p_level => C_LEVEL_STATEMENT
71008 ' - p_language = '||p_language||
71009 ' - p_currency_code = '||p_currency_code||
71010 ' - p_sla_ledger_id = '||p_sla_ledger_id
71012 ,p_module => l_log_module);
71013 END IF;
71014 --
71015 -- initialze arrays
71016 --
71017 g_array_event.DELETE;
71018 l_rec_array_event := l_null_rec_array_event;
71019 --
71020 --------------------------------------
71021 -- 4262811 Initialze MPA Line Number
71022 --------------------------------------
71023 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
71024
71025 --
71026
71027 --
71028 OPEN header_cur;
71029 --
71030 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71031 trace
71032 (p_msg => 'SQL - FETCH header_cur'
71033 ,p_level => C_LEVEL_STATEMENT
71034 ,p_module => l_log_module);
71035 END IF;
71036 --
71037 LOOP
71038 FETCH header_cur BULK COLLECT INTO
71039 l_array_entity_id
71040 , l_array_legal_entity_id
71041 , l_array_entity_code
71042 , l_array_transaction_num
71043 , l_array_event_id
71044 , l_array_class_code
71045 , l_array_event_type
71046 , l_array_event_number
71047 , l_array_event_date
71048 , l_array_transaction_date
71049 , l_array_reference_num_1
71050 , l_array_reference_num_2
71051 , l_array_reference_num_3
71052 , l_array_reference_num_4
71053 , l_array_reference_char_1
71054 , l_array_reference_char_2
71055 , l_array_reference_char_3
71056 , l_array_reference_char_4
71057 , l_array_reference_date_1
71058 , l_array_reference_date_2
71059 , l_array_reference_date_3
71060 , l_array_reference_date_4
71061 , l_array_event_created_by
71062 , l_array_budgetary_control_flag
71063 , l_array_source_32
71064 , l_array_source_87
71065 LIMIT l_rows;
71066 --
71067 IF (C_LEVEL_EVENT >= g_log_level) THEN
71068 trace
71069 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
71070 ,p_level => C_LEVEL_EVENT
71071 ,p_module => l_log_module);
71072 END IF;
71073 --
71074 EXIT WHEN l_array_entity_id.COUNT = 0;
71075
71076 -- initialize arrays
71077 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
71078 XLA_AE_LINES_PKG.g_rec_lines := NULL;
71079
71080 --
71081 -- Bug 4458708
71082 --
71083 XLA_AE_LINES_PKG.g_LineNumber := 0;
71084
71085
71086 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
71087 g_last_hdr_idx := l_array_event_id.LAST;
71088 --
71089 -- loop for the headers. Each iteration is for each header extract row
71090 -- fetched in header cursor
71091 --
71092 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
71093
71094 --
71095 -- set event info as cache for other routines to refer event attributes
71096 --
71097 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
71098 (p_application_id => p_application_id
71099 ,p_primary_ledger_id => p_primary_ledger_id
71100 ,p_base_ledger_id => p_base_ledger_id
71101 ,p_target_ledger_id => p_target_ledger_id
71102 ,p_entity_id => l_array_entity_id(hdr_idx)
71103 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
71104 ,p_entity_code => l_array_entity_code(hdr_idx)
71105 ,p_transaction_num => l_array_transaction_num(hdr_idx)
71106 ,p_event_id => l_array_event_id(hdr_idx)
71107 ,p_event_class_code => l_array_class_code(hdr_idx)
71108 ,p_event_type_code => l_array_event_type(hdr_idx)
71109 ,p_event_number => l_array_event_number(hdr_idx)
71110 ,p_event_date => l_array_event_date(hdr_idx)
71111 ,p_transaction_date => l_array_transaction_date(hdr_idx)
71112 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
71113 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
71114 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
71115 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
71116 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
71117 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
71118 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
71119 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
71120 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
71121 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
71122 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
71123 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
71124 ,p_event_created_by => l_array_event_created_by(hdr_idx)
71125 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
71126
71127 --
71128 -- set the status of entry to C_VALID (0)
71129 --
71130 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
71131
71132 --
71133 -- initialize a row for ae header
71134 --
71135 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
71136
71137 l_event_id := l_array_event_id(hdr_idx);
71138
71139 --
71140 -- storing the hdr_idx for event. May be used by line cursor.
71141 --
71145 -- store sources from header extract. This can be improved to
71142 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
71143
71144 --
71146 -- store only those sources from header extract that may be used in lines
71147 --
71148
71149 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
71150 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
71151
71152 --
71153 -- initilaize the status of ae headers for diffrent balance types
71154 -- the status is initialised to C_NOT_CREATED (2)
71155 --
71156 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71157 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71158 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
71159
71160 --
71161 -- call api to validate and store accounting attributes for header
71162 --
71163
71164 ------------------------------------------------------------
71165 -- Accrual Reversal : to get date for Standard Source (NONE)
71166 ------------------------------------------------------------
71167 l_acc_rev_gl_date_source := NULL;
71168
71169 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
71170 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
71171
71172
71173 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
71174
71175 XLA_AE_HEADER_PKG.SetJeCategoryName;
71176
71177 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
71178 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
71179 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
71180 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
71181 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
71182
71183
71184 -- No header level analytical criteria
71185
71186 --
71187 --accounting attribute enhancement, bug 3612931
71188 --
71189 l_trx_reversal_source := SUBSTR(NULL, 1,30);
71190
71191 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
71192 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
71193
71194 xla_accounting_err_pkg.build_message
71195 (p_appli_s_name => 'XLA'
71196 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
71197 ,p_token_1 => 'ACCT_ATTR_NAME'
71198 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
71199 ,p_token_2 => 'PRODUCT_NAME'
71200 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
71201 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
71202 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71203 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
71204
71205 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
71206 --
71207 -- following sets the accounting attributes needed to reverse
71208 -- accounting for a distributeion
71209 --
71210 xla_ae_lines_pkg.SetTrxReversalAttrs
71211 (p_event_id => l_event_id
71212 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
71213 ,p_trx_reversal_source => l_trx_reversal_source);
71214
71215 END IF;
71216
71217
71218 ----------------------------------------------------------------
71219 -- 4262811 - update the header statuses to invalid in need be
71220 ----------------------------------------------------------------
71221 --
71222 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
71223
71224
71225 -----------------------------------------------
71226 -- No accrual reversal for the event class/type
71227 -----------------------------------------------
71228 ----------------------------------------------------------------
71229
71230 --
71231 -- this ends the header loop iteration for one bulk fetch
71232 --
71233 END LOOP;
71234
71235 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
71236 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
71237
71238 --
71239 -- insert dummy rows into lines gt table that were created due to
71240 -- transaction reversals
71241 --
71242 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
71243 l_result := XLA_AE_LINES_PKG.InsertLines;
71244 END IF;
71245
71246 --
71247 -- reset the temp_line_num for each set of events fetched from header
71248 -- cursor rather than doing it for each new event in line cursor
71249 -- Bug 3939231
71250 --
71251 xla_ae_lines_pkg.g_temp_line_num := 0;
71252
71253
71254
71255 --
71256 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
71257 --
71258 --
71259 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71260
71261 trace
71262 (p_msg => 'SQL - FETCH line_cur'
71263 ,p_level => C_LEVEL_STATEMENT
71264 ,p_module => l_log_module);
71265
71266 END IF;
71267 --
71268 --
71272 l_array_entity_id
71269 LOOP
71270 --
71271 FETCH line_cur BULK COLLECT INTO
71273 , l_array_legal_entity_id
71274 , l_array_entity_code
71275 , l_array_transaction_num
71276 , l_array_event_id
71277 , l_array_class_code
71278 , l_array_event_type
71279 , l_array_event_number
71280 , l_array_event_date
71281 , l_array_transaction_date
71282 , l_array_reference_num_1
71283 , l_array_reference_num_2
71284 , l_array_reference_num_3
71285 , l_array_reference_num_4
71286 , l_array_reference_char_1
71287 , l_array_reference_char_2
71288 , l_array_reference_char_3
71289 , l_array_reference_char_4
71290 , l_array_reference_date_1
71291 , l_array_reference_date_2
71292 , l_array_reference_date_3
71293 , l_array_reference_date_4
71294 , l_array_event_created_by
71295 , l_array_budgetary_control_flag
71296 , l_array_extract_line_num
71297 , l_array_source_4
71298 , l_array_source_11
71299 , l_array_source_12
71300 , l_array_source_13
71301 , l_array_source_14
71302 , l_array_source_22
71303 , l_array_source_23
71304 , l_array_source_25
71305 , l_array_source_27
71306 , l_array_source_28
71307 , l_array_source_29
71308 , l_array_source_30
71309 , l_array_source_31
71310 , l_array_source_33
71311 , l_array_source_34
71312 , l_array_source_34_meaning
71313 , l_array_source_35
71314 , l_array_source_41
71315 , l_array_source_43
71316 LIMIT l_rows;
71317
71318 --
71319 IF (C_LEVEL_EVENT >= g_log_level) THEN
71320 trace
71321 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
71322 ,p_level => C_LEVEL_EVENT
71323 ,p_module => l_log_module);
71324 END IF;
71325 --
71326 EXIT WHEN l_array_entity_id.count = 0;
71327
71328 XLA_AE_LINES_PKG.g_rec_lines := null;
71329
71330 --
71331 -- Bug 4458708
71332 --
71333 XLA_AE_LINES_PKG.g_LineNumber := 0;
71334 --
71335 --
71336
71337 FOR Idx IN 1..l_array_event_id.count LOOP
71338 --
71339 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
71340 --
71341 l_event_id := l_array_event_id(idx); -- 5648433
71342
71343 --
71344 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
71345 --
71346
71347 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
71348 (g_array_event(l_event_id).array_value_num('header_index'))
71349 ,'N'
71350 ) <> 'Y'
71351 THEN
71352 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71353 trace
71354 (p_msg => 'Trancaction revesal option is not Y '
71355 ,p_level => C_LEVEL_STATEMENT
71356 ,p_module => l_log_module);
71357 END IF;
71358
71359 --
71360 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
71361 --
71362 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
71363 --
71364 -- set event info as cache for other routines to refer event attributes
71365 --
71366
71367 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
71368 l_previous_event_id := l_event_id;
71369
71370 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
71371 (p_application_id => p_application_id
71372 ,p_primary_ledger_id => p_primary_ledger_id
71373 ,p_base_ledger_id => p_base_ledger_id
71374 ,p_target_ledger_id => p_target_ledger_id
71375 ,p_entity_id => l_array_entity_id(Idx)
71376 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
71377 ,p_entity_code => l_array_entity_code(Idx)
71378 ,p_transaction_num => l_array_transaction_num(Idx)
71379 ,p_event_id => l_array_event_id(Idx)
71380 ,p_event_class_code => l_array_class_code(Idx)
71381 ,p_event_type_code => l_array_event_type(Idx)
71382 ,p_event_number => l_array_event_number(Idx)
71383 ,p_event_date => l_array_event_date(Idx)
71384 ,p_transaction_date => l_array_transaction_date(Idx)
71385 ,p_reference_num_1 => l_array_reference_num_1(Idx)
71386 ,p_reference_num_2 => l_array_reference_num_2(Idx)
71387 ,p_reference_num_3 => l_array_reference_num_3(Idx)
71388 ,p_reference_num_4 => l_array_reference_num_4(Idx)
71389 ,p_reference_char_1 => l_array_reference_char_1(Idx)
71390 ,p_reference_char_2 => l_array_reference_char_2(Idx)
71391 ,p_reference_char_3 => l_array_reference_char_3(Idx)
71392 ,p_reference_char_4 => l_array_reference_char_4(Idx)
71393 ,p_reference_date_1 => l_array_reference_date_1(Idx)
71394 ,p_reference_date_2 => l_array_reference_date_2(Idx)
71395 ,p_reference_date_3 => l_array_reference_date_3(Idx)
71396 ,p_reference_date_4 => l_array_reference_date_4(Idx)
71397 ,p_event_created_by => l_array_event_created_by(Idx)
71398 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
71399 --
71400 END IF;
71404 --
71401
71402
71403
71405 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
71406
71407 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
71408
71409 IF l_continue_with_lines THEN
71410 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
71411 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
71412
71413 xla_accounting_err_pkg.build_message
71414 (p_appli_s_name => 'XLA'
71415 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
71416 ,p_token_1 => 'LINE_NUMBER'
71417 ,p_value_1 => l_array_extract_line_num(Idx)
71418 ,p_token_2 => 'PRODUCT_NAME'
71419 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
71420 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
71421 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71422 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
71423
71424 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
71425 --
71426 -- following sets the accounting attributes needed to reverse
71427 -- accounting for a distributeion
71428 --
71429
71430 --
71431 -- 5217187
71432 --
71433 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
71434 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
71435 g_array_event(l_event_id).array_value_num('header_index'));
71436 --
71437 --
71438
71439 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
71440 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
71441 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
71442 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
71443 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
71444 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_13(Idx));
71445 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
71446 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_41(Idx);
71447 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
71448 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
71449 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
71450 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
71451 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
71452 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
71453 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
71454 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
71455 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
71456 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
71457 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
71458 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
71459 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
71460 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_11(Idx));
71461 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
71462 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_41(Idx);
71463 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
71464 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
71465 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
71466 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
71467 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
71468 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
71469 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
71470 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
71471 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
71472 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
71473 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
71474 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
71475 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
71476 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
71477 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
71478 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
71479 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
71480 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
71481 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
71482 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
71483 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
71484 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
71485 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
71486 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
71487
71488
71492 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71489 xla_ae_lines_pkg.SetAcctReversalAttrs
71490 (p_event_id => l_event_id
71491 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
71493 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
71494 END IF;
71495
71496 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
71497 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
71498
71499 --
71500 AcctLineType_74 (
71501 p_application_id => p_application_id
71502 ,p_event_id => l_event_id
71503 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71504 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71505 ,p_actual_flag => l_actual_flag
71506 ,p_balance_type_code => l_balance_type_code
71507 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71508
71509 , p_source_4 => l_array_source_4(Idx)
71510 , p_source_11 => l_array_source_11(Idx)
71511 , p_source_12 => l_array_source_12(Idx)
71512 , p_source_13 => l_array_source_13(Idx)
71513 , p_source_22 => l_array_source_22(Idx)
71514 , p_source_23 => l_array_source_23(Idx)
71515 , p_source_25 => l_array_source_25(Idx)
71516 , p_source_27 => l_array_source_27(Idx)
71517 , p_source_28 => l_array_source_28(Idx)
71518 , p_source_29 => l_array_source_29(Idx)
71519 , p_source_30 => l_array_source_30(Idx)
71520 , p_source_31 => l_array_source_31(Idx)
71521 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
71522 , p_source_33 => l_array_source_33(Idx)
71523 , p_source_34 => l_array_source_34(Idx)
71524 , p_source_34_meaning => l_array_source_34_meaning(Idx)
71525 , p_source_35 => l_array_source_35(Idx)
71526 , p_source_41 => l_array_source_41(Idx)
71527 , p_source_43 => l_array_source_43(Idx)
71528 );
71529 If(l_balance_type_code = 'A') THEN
71530 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71531 END IF;
71532
71533 --
71534
71535
71536 --
71537 AcctLineType_76 (
71538 p_application_id => p_application_id
71539 ,p_event_id => l_event_id
71540 ,p_calculate_acctd_flag => l_calculate_acctd_flag
71541 ,p_calculate_g_l_flag => l_calculate_g_l_flag
71542 ,p_actual_flag => l_actual_flag
71543 ,p_balance_type_code => l_balance_type_code
71544 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
71545
71546 , p_source_4 => l_array_source_4(Idx)
71547 , p_source_11 => l_array_source_11(Idx)
71548 , p_source_13 => l_array_source_13(Idx)
71549 , p_source_14 => l_array_source_14(Idx)
71550 , p_source_22 => l_array_source_22(Idx)
71551 , p_source_23 => l_array_source_23(Idx)
71552 , p_source_25 => l_array_source_25(Idx)
71553 , p_source_27 => l_array_source_27(Idx)
71554 , p_source_28 => l_array_source_28(Idx)
71555 , p_source_29 => l_array_source_29(Idx)
71556 , p_source_30 => l_array_source_30(Idx)
71557 , p_source_31 => l_array_source_31(Idx)
71558 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
71559 , p_source_33 => l_array_source_33(Idx)
71560 , p_source_34 => l_array_source_34(Idx)
71561 , p_source_34_meaning => l_array_source_34_meaning(Idx)
71562 , p_source_35 => l_array_source_35(Idx)
71563 , p_source_41 => l_array_source_41(Idx)
71564 , p_source_43 => l_array_source_43(Idx)
71565 );
71566 If(l_balance_type_code = 'A') THEN
71567 l_actual_gain_loss_ref := l_gain_or_loss_ref;
71568 END IF;
71569
71570 --
71571
71572 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
71573 -- or secondary ledger that has different currency with primary
71574 -- or alc that is calculated by sla
71575 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
71576 (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'))
71577
71578 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
71579 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
71580 AND (l_actual_flag = 'A')) THEN
71581 XLA_AE_LINES_PKG.CreateGainOrLossLines(
71582 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
71583 ,p_application_id => p_application_id
71584 ,p_amb_context_code => 'DEFAULT'
71585 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
71586 ,p_event_class_code => C_EVENT_CLASS_CODE
71587 ,p_event_type_code => C_EVENT_TYPE_CODE
71588
71589 ,p_gain_ccid => -1
71590 ,p_loss_ccid => -1
71591
71592 ,p_actual_flag => l_actual_flag
71593 ,p_enc_flag => null
71594 ,p_actual_g_l_ref => l_actual_gain_loss_ref
71595 ,p_enc_g_l_ref => null
71596 );
71597 END IF;
71598 END IF;
71599 END IF;
71600
71601 ELSE
71602 --
71603 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
71604 --
71605 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71606 trace
71607 (p_msg => 'Trancaction revesal option is Y'
71608 ,p_level => C_LEVEL_STATEMENT
71609 ,p_module => l_log_module);
71610 END IF;
71611 END IF;
71612
71613 END LOOP;
71614 l_result := XLA_AE_LINES_PKG.InsertLines ;
71615 end loop;
71616 close line_cur;
71617
71618
71619 --
71620 -- insert headers into xla_ae_headers_gt table
71624 -- insert into errors table here.
71621 --
71622 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
71623
71625
71626 END LOOP;
71627
71628 --
71629 -- 4865292
71630 --
71631 -- Compare g_hdr_extract_count with event count in
71632 -- CreateHeadersAndLines.
71633 --
71634 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
71635
71636 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71637 trace (p_msg => '# rows extracted from header extract objects '
71638 || ' (running total): '
71639 || g_hdr_extract_count
71640 ,p_level => C_LEVEL_STATEMENT
71641 ,p_module => l_log_module);
71642 END IF;
71643
71644 CLOSE header_cur;
71645 --
71646
71647 --
71648 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71649 trace
71650 (p_msg => 'END of EventClass_121'
71651 ,p_level => C_LEVEL_PROCEDURE
71652 ,p_module => l_log_module);
71653 END IF;
71654 --
71655 RETURN l_result;
71656 EXCEPTION
71657 WHEN xla_exceptions_pkg.application_exception THEN
71658
71659 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
71660
71661
71662 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
71663
71664 RAISE;
71665 WHEN OTHERS THEN
71666 xla_exceptions_pkg.raise_message
71667 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_121');
71668 END EventClass_121;
71669 --
71670
71671 ---------------------------------------
71672 --
71673 -- PRIVATE PROCEDURE
71674 -- insert_sources_122
71675 --
71676 ----------------------------------------
71677 --
71678 PROCEDURE insert_sources_122(
71679 p_target_ledger_id IN NUMBER
71680 , p_language IN VARCHAR2
71681 , p_sla_ledger_id IN NUMBER
71682 , p_pad_start_date IN DATE
71683 , p_pad_end_date IN DATE
71684 )
71685 IS
71686
71687 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ALL';
71688 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS';
71689 p_apps_owner VARCHAR2(30);
71690 l_log_module VARCHAR2(240);
71691 BEGIN
71692 IF g_log_enabled THEN
71693 l_log_module := C_DEFAULT_MODULE||'.insert_sources_122';
71694 END IF;
71695 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
71696
71697 trace
71698 (p_msg => 'BEGIN of insert_sources_122'
71699 ,p_level => C_LEVEL_PROCEDURE
71700 ,p_module => l_log_module);
71701
71702 END IF;
71703
71704 -- select APPS owner
71705 SELECT oracle_username
71706 INTO p_apps_owner
71707 FROM fnd_oracle_userid
71708 WHERE read_only_flag = 'U'
71709 ;
71710
71711 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71712 trace
71713 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
71714 ' - p_language = '||p_language||
71715 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
71716 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
71717 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
71718 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
71719 ,p_level => C_LEVEL_STATEMENT
71720 ,p_module => l_log_module);
71721 END IF;
71722
71723
71724 --
71725 INSERT INTO xla_diag_sources --hdr2
71726 (
71727 event_id
71728 , ledger_id
71729 , sla_ledger_id
71730 , description_language
71731 , object_name
71732 , object_type_code
71733 , line_number
71734 , source_application_id
71735 , source_type_code
71736 , source_code
71737 , source_value
71738 , source_meaning
71739 , created_by
71740 , creation_date
71741 , last_update_date
71742 , last_updated_by
71743 , last_update_login
71744 , program_update_date
71745 , program_application_id
71746 , program_id
71747 , request_id
71748 )
71749 SELECT
71750 event_id
71751 , p_target_ledger_id
71752 , p_sla_ledger_id
71753 , p_language
71754 , object_name
71755 , object_type_code
71756 , line_number
71757 , source_application_id
71758 , source_type_code
71759 , source_code
71760 , SUBSTR(source_value ,1,1996)
71761 , SUBSTR(source_meaning ,1,200)
71762 , xla_environment_pkg.g_Usr_Id
71763 , TRUNC(SYSDATE)
71764 , TRUNC(SYSDATE)
71765 , xla_environment_pkg.g_Usr_Id
71766 , xla_environment_pkg.g_Login_Id
71767 , TRUNC(SYSDATE)
71768 , xla_environment_pkg.g_Prog_Appl_Id
71769 , xla_environment_pkg.g_Prog_Id
71770 , xla_environment_pkg.g_Req_Id
71771 FROM (
71772 SELECT xet.event_id event_id
71773 , 0 line_number
71774 , CASE r
71775 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
71779 END object_name
71776 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
71777
71778 ELSE null
71780 , CASE r
71781 WHEN 1 THEN 'HEADER'
71782 WHEN 2 THEN 'HEADER'
71783
71784 ELSE null
71785 END object_type_code
71786 , CASE r
71787 WHEN 1 THEN '275'
71788 WHEN 2 THEN '275'
71789
71790 ELSE null
71791 END source_application_id
71792 , 'S' source_type_code
71793 , CASE r
71794 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
71795 WHEN 2 THEN 'GL_DATE'
71796
71797 ELSE null
71798 END source_code
71799 , CASE r
71800 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
71801 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
71802
71803 ELSE null
71804 END source_value
71805 , null source_meaning
71806 FROM xla_events_gt xet
71807 , PA_XLA_EXP_HEADER_V h2
71808 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
71809 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
71810 AND xet.event_class_code = C_EVENT_CLASS_CODE
71811 AND h2.event_id = xet.event_id
71812
71813 )
71814 ;
71815 --
71816 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
71817
71818 trace
71819 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
71820 ,p_level => C_LEVEL_STATEMENT
71821 ,p_module => l_log_module);
71822
71823 END IF;
71824 --
71825
71826
71827
71828 --
71829 INSERT INTO xla_diag_sources --line2
71830 (
71831 event_id
71832 , ledger_id
71833 , sla_ledger_id
71834 , description_language
71835 , object_name
71836 , object_type_code
71837 , line_number
71838 , source_application_id
71839 , source_type_code
71840 , source_code
71841 , source_value
71842 , source_meaning
71843 , created_by
71844 , creation_date
71845 , last_update_date
71846 , last_updated_by
71847 , last_update_login
71848 , program_update_date
71849 , program_application_id
71850 , program_id
71851 , request_id
71852 )
71853 SELECT event_id
71854 , p_target_ledger_id
71855 , p_sla_ledger_id
71856 , p_language
71857 , object_name
71858 , object_type_code
71859 , line_number
71860 , source_application_id
71861 , source_type_code
71862 , source_code
71863 , SUBSTR(source_value,1,1996)
71864 , SUBSTR(source_meaning ,1,200)
71865 , xla_environment_pkg.g_Usr_Id
71866 , TRUNC(SYSDATE)
71867 , TRUNC(SYSDATE)
71868 , xla_environment_pkg.g_Usr_Id
71869 , xla_environment_pkg.g_Login_Id
71870 , TRUNC(SYSDATE)
71871 , xla_environment_pkg.g_Prog_Appl_Id
71872 , xla_environment_pkg.g_Prog_Id
71873 , xla_environment_pkg.g_Req_Id
71874 FROM (
71875 SELECT xet.event_id event_id
71876 , l1.line_number line_number
71877 , CASE r
71878 WHEN 1 THEN 'PA_XLA_CCDL_LINES_V'
71879 WHEN 2 THEN 'PA_XLA_CCDL_LINES_V'
71880 WHEN 3 THEN 'PA_XLA_CCDL_LINES_V'
71881 WHEN 4 THEN 'PA_XLA_CCDL_LINES_V'
71882 WHEN 5 THEN 'PA_XLA_CCDL_LINES_V'
71883 WHEN 6 THEN 'PA_XLA_CCDL_LINES_V'
71884 WHEN 7 THEN 'PA_XLA_CCDL_LINES_V'
71885 WHEN 8 THEN 'PA_XLA_CCDL_LINES_V'
71886 WHEN 9 THEN 'PA_XLA_CCDL_LINES_V'
71887 WHEN 10 THEN 'PA_XLA_CCDL_LINES_V'
71888 WHEN 11 THEN 'PA_XLA_CCDL_LINES_V'
71889 WHEN 12 THEN 'PA_XLA_CCDL_LINES_V'
71890 WHEN 13 THEN 'PA_XLA_CCDL_LINES_V'
71891 WHEN 14 THEN 'PA_XLA_CCDL_LINES_V'
71892 WHEN 15 THEN 'PA_XLA_CCDL_LINES_V'
71893 WHEN 16 THEN 'PA_XLA_CCDL_LINES_V'
71894 WHEN 17 THEN 'PA_XLA_CCDL_LINES_V'
71895 WHEN 18 THEN 'PA_XLA_CCDL_LINES_V'
71896
71897 ELSE null
71898 END object_name
71899 , CASE r
71900 WHEN 1 THEN 'LINE'
71901 WHEN 2 THEN 'LINE'
71902 WHEN 3 THEN 'LINE'
71903 WHEN 4 THEN 'LINE'
71904 WHEN 5 THEN 'LINE'
71905 WHEN 6 THEN 'LINE'
71906 WHEN 7 THEN 'LINE'
71907 WHEN 8 THEN 'LINE'
71908 WHEN 9 THEN 'LINE'
71909 WHEN 10 THEN 'LINE'
71910 WHEN 11 THEN 'LINE'
71911 WHEN 12 THEN 'LINE'
71912 WHEN 13 THEN 'LINE'
71913 WHEN 14 THEN 'LINE'
71917 WHEN 18 THEN 'LINE'
71914 WHEN 15 THEN 'LINE'
71915 WHEN 16 THEN 'LINE'
71916 WHEN 17 THEN 'LINE'
71918
71919 ELSE null
71920 END object_type_code
71921 , CASE r
71922 WHEN 1 THEN '275'
71923 WHEN 2 THEN '275'
71924 WHEN 3 THEN '275'
71925 WHEN 4 THEN '275'
71926 WHEN 5 THEN '275'
71927 WHEN 6 THEN '275'
71928 WHEN 7 THEN '275'
71929 WHEN 8 THEN '275'
71930 WHEN 9 THEN '275'
71931 WHEN 10 THEN '275'
71932 WHEN 11 THEN '275'
71933 WHEN 12 THEN '275'
71934 WHEN 13 THEN '275'
71935 WHEN 14 THEN '275'
71936 WHEN 15 THEN '275'
71937 WHEN 16 THEN '275'
71938 WHEN 17 THEN '275'
71939 WHEN 18 THEN '275'
71940
71941 ELSE null
71942 END source_application_id
71943 , 'S' source_type_code
71944 , CASE r
71945 WHEN 1 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
71946 WHEN 2 THEN 'DESTINATION_CCID'
71947 WHEN 3 THEN 'ADJ_DESTINATION_CCID'
71948 WHEN 4 THEN 'SOURCE_CCID'
71949 WHEN 5 THEN 'ADJ_SOURCE_CCID'
71950 WHEN 6 THEN 'REVERSING_LINE_FLAG'
71951 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
71952 WHEN 8 THEN 'ENTERED_CURRENCY_CODE'
71953 WHEN 9 THEN 'EXCHANGE_RATE_DATE'
71954 WHEN 10 THEN 'EXCHANGE_RATE'
71955 WHEN 11 THEN 'EXCHANGE_RATE_TYPE'
71956 WHEN 12 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
71957 WHEN 13 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
71958 WHEN 14 THEN 'LINE_NUMBER'
71959 WHEN 15 THEN 'LINE_TYPE'
71960 WHEN 16 THEN 'LINE_NUM_REVERSED'
71961 WHEN 17 THEN 'ENTERED_AMOUNT'
71962 WHEN 18 THEN 'ACCT_AMOUNT'
71963
71964 ELSE null
71965 END source_code
71966 , CASE r
71967 WHEN 1 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
71968 WHEN 2 THEN TO_CHAR(l1.DESTINATION_CCID)
71969 WHEN 3 THEN TO_CHAR(l1.ADJ_DESTINATION_CCID)
71970 WHEN 4 THEN TO_CHAR(l1.SOURCE_CCID)
71971 WHEN 5 THEN TO_CHAR(l1.ADJ_SOURCE_CCID)
71972 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
71973 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
71974 WHEN 8 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
71975 WHEN 9 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
71976 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE)
71977 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
71978 WHEN 12 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
71979 WHEN 13 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
71980 WHEN 14 THEN TO_CHAR(l1.LINE_NUMBER)
71981 WHEN 15 THEN TO_CHAR(l1.LINE_TYPE)
71982 WHEN 16 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
71983 WHEN 17 THEN TO_CHAR(l1.ENTERED_AMOUNT)
71984 WHEN 18 THEN TO_CHAR(l1.ACCT_AMOUNT)
71985
71986 ELSE null
71987 END source_value
71988 , CASE r
71989 WHEN 1 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
71990 103371
71991 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
71992 ,'ALLOW_OVERRIDE_CCID_FLAG'
71993 ,'S'
71994 ,275)
71995 WHEN 15 THEN fvl34.meaning
71996
71997 ELSE null
71998 END source_meaning
71999 FROM xla_events_gt xet
72000 , PA_XLA_CCDL_LINES_V l1
72001 , fnd_lookup_values fvl34
72002 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
72003 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
72004 AND xet.event_class_code = C_EVENT_CLASS_CODE
72005 AND l1.event_id = xet.event_id
72006 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
72007 AND fvl34.lookup_code(+) = l1.LINE_TYPE
72008 AND fvl34.view_application_id(+) = 275
72009 AND fvl34.language(+) = USERENV('LANG')
72010
72011 )
72012 ;
72013 --
72014 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72015
72016 trace
72017 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
72018 ,p_level => C_LEVEL_STATEMENT
72019 ,p_module => l_log_module);
72020
72021 END IF;
72022
72023
72024 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72025 trace
72026 (p_msg => 'END of insert_sources_122'
72027 ,p_level => C_LEVEL_PROCEDURE
72028 ,p_module => l_log_module);
72029 END IF;
72030 EXCEPTION
72031 WHEN xla_exceptions_pkg.application_exception THEN
72032 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
72033 trace
72034 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
72038 RAISE;
72035 ,p_level => C_LEVEL_EXCEPTION
72036 ,p_module => l_log_module);
72037 END IF;
72039 WHEN OTHERS THEN
72040 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
72041 trace
72042 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
72043 ,p_level => C_LEVEL_EXCEPTION
72044 ,p_module => l_log_module);
72045 END IF;
72046 xla_exceptions_pkg.raise_message
72047 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_122');
72048 END insert_sources_122;
72049 --
72050
72051 ---------------------------------------
72052 --
72053 -- PRIVATE FUNCTION
72054 -- EventClass_122
72055 --
72056 ----------------------------------------
72057 --
72058 FUNCTION EventClass_122
72059 (p_application_id IN NUMBER
72060 ,p_base_ledger_id IN NUMBER
72061 ,p_target_ledger_id IN NUMBER
72062 ,p_language IN VARCHAR2
72063 ,p_currency_code IN VARCHAR2
72064 ,p_sla_ledger_id IN NUMBER
72065 ,p_pad_start_date IN DATE
72066 ,p_pad_end_date IN DATE
72067 ,p_primary_ledger_id IN NUMBER)
72068 RETURN BOOLEAN IS
72069 --
72070 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS_ALL';
72071 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'PRVDR_RECVR_RECLASS';
72072
72073 l_calculate_acctd_flag VARCHAR2(1) :='N';
72074 l_calculate_g_l_flag VARCHAR2(1) :='N';
72075 --
72076 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72077 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72078 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72079 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72080 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72081 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72082 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72083 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72084 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72085 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72086 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72087 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72088 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72089 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
72090 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72091 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72092 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72093 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
72094 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72095 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72096 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72097 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
72098 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
72099 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
72100
72101 l_event_id NUMBER;
72102 l_previous_event_id NUMBER;
72103 l_first_event_id NUMBER;
72104 l_last_event_id NUMBER;
72105
72106 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
72107 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
72108 --
72109 --
72110 l_result BOOLEAN := TRUE;
72111 l_rows NUMBER := 1000;
72112 l_event_type_name VARCHAR2(80) := 'All';
72113 l_event_class_name VARCHAR2(80) := 'Provider and Receiver Reclass';
72114 l_description VARCHAR2(4000);
72115 l_transaction_reversal NUMBER;
72116 l_ae_header_id NUMBER;
72117 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
72118 l_log_module VARCHAR2(240);
72119 --
72120 l_acct_reversal_source VARCHAR2(30);
72121 l_trx_reversal_source VARCHAR2(30);
72122
72123 l_continue_with_lines BOOLEAN := TRUE;
72124 --
72125 l_acc_rev_gl_date_source DATE; -- 4262811
72126 --
72127 type t_array_event_id is table of number index by binary_integer;
72128
72129 l_rec_array_event t_rec_array_event;
72130 l_null_rec_array_event t_rec_array_event;
72131 l_array_ae_header_id xla_number_array_type;
72132 l_actual_flag VARCHAR2(1) := NULL;
72133 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
72134 l_balance_type_code VARCHAR2(1) :=NULL;
72135 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
72136
72137 --
72138 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
72139 --
72140
72141 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
72142 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
72143
72147 TYPE t_array_source_13 IS TABLE OF PA_XLA_CCDL_LINES_V.SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
72144 TYPE t_array_source_4 IS TABLE OF PA_XLA_CCDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
72145 TYPE t_array_source_11 IS TABLE OF PA_XLA_CCDL_LINES_V.DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
72146 TYPE t_array_source_12 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_DESTINATION_CCID%TYPE INDEX BY BINARY_INTEGER;
72148 TYPE t_array_source_14 IS TABLE OF PA_XLA_CCDL_LINES_V.ADJ_SOURCE_CCID%TYPE INDEX BY BINARY_INTEGER;
72149 TYPE t_array_source_22 IS TABLE OF PA_XLA_CCDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
72150 TYPE t_array_source_23 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
72151 TYPE t_array_source_25 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
72152 TYPE t_array_source_27 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
72153 TYPE t_array_source_28 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
72154 TYPE t_array_source_29 IS TABLE OF PA_XLA_CCDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
72155 TYPE t_array_source_30 IS TABLE OF PA_XLA_CCDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
72156 TYPE t_array_source_31 IS TABLE OF PA_XLA_CCDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
72157 TYPE t_array_source_33 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
72158 TYPE t_array_source_34 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
72159 TYPE t_array_source_35 IS TABLE OF PA_XLA_CCDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
72160 TYPE t_array_source_41 IS TABLE OF PA_XLA_CCDL_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
72161 TYPE t_array_source_43 IS TABLE OF PA_XLA_CCDL_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
72162
72163 l_array_source_32 t_array_source_32;
72164 l_array_source_87 t_array_source_87;
72165
72166 l_array_source_4 t_array_source_4;
72167 l_array_source_11 t_array_source_11;
72168 l_array_source_12 t_array_source_12;
72169 l_array_source_13 t_array_source_13;
72170 l_array_source_14 t_array_source_14;
72171 l_array_source_22 t_array_source_22;
72172 l_array_source_23 t_array_source_23;
72173 l_array_source_25 t_array_source_25;
72174 l_array_source_27 t_array_source_27;
72175 l_array_source_28 t_array_source_28;
72176 l_array_source_29 t_array_source_29;
72177 l_array_source_30 t_array_source_30;
72178 l_array_source_31 t_array_source_31;
72179 l_array_source_33 t_array_source_33;
72180 l_array_source_34 t_array_source_34;
72181 l_array_source_34_meaning t_array_lookup_meaning;
72182 l_array_source_35 t_array_source_35;
72183 l_array_source_41 t_array_source_41;
72184 l_array_source_43 t_array_source_43;
72185
72186 --
72187 CURSOR header_cur
72188 IS
72189 SELECT /*+ leading(xet) cardinality(xet,1) */
72190 -- Event Class Code: PRVDR_RECVR_RECLASS
72191 xet.entity_id
72192 ,xet.legal_entity_id
72193 ,xet.entity_code
72194 ,xet.transaction_number
72195 ,xet.event_id
72196 ,xet.event_class_code
72197 ,xet.event_type_code
72198 ,xet.event_number
72199 ,xet.event_date
72200 ,xet.transaction_date
72201 ,xet.reference_num_1
72202 ,xet.reference_num_2
72203 ,xet.reference_num_3
72204 ,xet.reference_num_4
72205 ,xet.reference_char_1
72206 ,xet.reference_char_2
72207 ,xet.reference_char_3
72208 ,xet.reference_char_4
72209 ,xet.reference_date_1
72210 ,xet.reference_date_2
72211 ,xet.reference_date_3
72212 ,xet.reference_date_4
72213 ,xet.event_created_by
72214 ,xet.budgetary_control_flag
72215 , h2.EXPENDITURE_ITEM_ID source_32
72216 , h2.GL_DATE source_87
72217 FROM xla_events_gt xet
72218 , PA_XLA_EXP_HEADER_V h2
72219 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
72220 and xet.event_class_code = C_EVENT_CLASS_CODE
72221 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
72222
72223 ORDER BY event_id
72224 ;
72225
72226
72227 --
72228 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
72229 IS
72230 SELECT /*+ leading(xet) cardinality(xet,1) */
72231 -- Event Class Code: PRVDR_RECVR_RECLASS
72232 xet.entity_id
72233 ,xet.legal_entity_id
72234 ,xet.entity_code
72235 ,xet.transaction_number
72236 ,xet.event_id
72237 ,xet.event_class_code
72238 ,xet.event_type_code
72239 ,xet.event_number
72240 ,xet.event_date
72241 ,xet.transaction_date
72242 ,xet.reference_num_1
72243 ,xet.reference_num_2
72244 ,xet.reference_num_3
72245 ,xet.reference_num_4
72246 ,xet.reference_char_1
72247 ,xet.reference_char_2
72248 ,xet.reference_char_3
72249 ,xet.reference_char_4
72250 ,xet.reference_date_1
72251 ,xet.reference_date_2
72252 ,xet.reference_date_3
72253 ,xet.reference_date_4
72254 ,xet.event_created_by
72255 ,xet.budgetary_control_flag
72256 , l1.LINE_NUMBER
72257 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
72258 , l1.DESTINATION_CCID source_11
72259 , l1.ADJ_DESTINATION_CCID source_12
72260 , l1.SOURCE_CCID source_13
72261 , l1.ADJ_SOURCE_CCID source_14
72262 , l1.REVERSING_LINE_FLAG source_22
72266 , l1.EXCHANGE_RATE source_28
72263 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
72264 , l1.ENTERED_CURRENCY_CODE source_25
72265 , l1.EXCHANGE_RATE_DATE source_27
72267 , l1.EXCHANGE_RATE_TYPE source_29
72268 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
72269 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
72270 , l1.LINE_NUMBER source_33
72271 , l1.LINE_TYPE source_34
72272 , fvl34.meaning source_34_meaning
72273 , l1.LINE_NUM_REVERSED source_35
72274 , l1.ENTERED_AMOUNT source_41
72275 , l1.ACCT_AMOUNT source_43
72276 FROM xla_events_gt xet
72277 , PA_XLA_CCDL_LINES_V l1
72278 , fnd_lookup_values fvl34
72279 WHERE xet.event_id between x_first_event_id and x_last_event_id
72280 and xet.event_date between p_pad_start_date and p_pad_end_date
72281 and xet.event_class_code = C_EVENT_CLASS_CODE
72282 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
72283 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
72284 AND fvl34.lookup_code(+) = l1.LINE_TYPE
72285 AND fvl34.view_application_id(+) = 275
72286 AND fvl34.language(+) = USERENV('LANG')
72287 ;
72288
72289 --
72290 BEGIN
72291 IF g_log_enabled THEN
72292 l_log_module := C_DEFAULT_MODULE||'.EventClass_122';
72293 END IF;
72294 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72295 trace
72296 (p_msg => 'BEGIN of EventClass_122'
72297 ,p_level => C_LEVEL_PROCEDURE
72298 ,p_module => l_log_module);
72299 END IF;
72300
72301 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72302 trace
72303 (p_msg => 'p_application_id = '||p_application_id||
72304 ' - p_base_ledger_id = '||p_base_ledger_id||
72305 ' - p_target_ledger_id = '||p_target_ledger_id||
72306 ' - p_language = '||p_language||
72307 ' - p_currency_code = '||p_currency_code||
72308 ' - p_sla_ledger_id = '||p_sla_ledger_id
72309 ,p_level => C_LEVEL_STATEMENT
72310 ,p_module => l_log_module);
72311 END IF;
72312 --
72313 -- initialze arrays
72314 --
72315 g_array_event.DELETE;
72316 l_rec_array_event := l_null_rec_array_event;
72317 --
72318 --------------------------------------
72319 -- 4262811 Initialze MPA Line Number
72320 --------------------------------------
72321 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
72322
72323 --
72324
72325 --
72326 OPEN header_cur;
72327 --
72328 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72329 trace
72330 (p_msg => 'SQL - FETCH header_cur'
72331 ,p_level => C_LEVEL_STATEMENT
72332 ,p_module => l_log_module);
72333 END IF;
72334 --
72335 LOOP
72336 FETCH header_cur BULK COLLECT INTO
72337 l_array_entity_id
72338 , l_array_legal_entity_id
72339 , l_array_entity_code
72340 , l_array_transaction_num
72341 , l_array_event_id
72342 , l_array_class_code
72343 , l_array_event_type
72344 , l_array_event_number
72345 , l_array_event_date
72346 , l_array_transaction_date
72347 , l_array_reference_num_1
72348 , l_array_reference_num_2
72349 , l_array_reference_num_3
72350 , l_array_reference_num_4
72351 , l_array_reference_char_1
72352 , l_array_reference_char_2
72353 , l_array_reference_char_3
72354 , l_array_reference_char_4
72355 , l_array_reference_date_1
72356 , l_array_reference_date_2
72357 , l_array_reference_date_3
72358 , l_array_reference_date_4
72359 , l_array_event_created_by
72360 , l_array_budgetary_control_flag
72361 , l_array_source_32
72362 , l_array_source_87
72363 LIMIT l_rows;
72364 --
72365 IF (C_LEVEL_EVENT >= g_log_level) THEN
72366 trace
72367 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
72368 ,p_level => C_LEVEL_EVENT
72369 ,p_module => l_log_module);
72370 END IF;
72371 --
72372 EXIT WHEN l_array_entity_id.COUNT = 0;
72373
72374 -- initialize arrays
72375 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
72376 XLA_AE_LINES_PKG.g_rec_lines := NULL;
72377
72378 --
72379 -- Bug 4458708
72380 --
72381 XLA_AE_LINES_PKG.g_LineNumber := 0;
72382
72383
72384 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
72385 g_last_hdr_idx := l_array_event_id.LAST;
72386 --
72387 -- loop for the headers. Each iteration is for each header extract row
72388 -- fetched in header cursor
72389 --
72390 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
72391
72392 --
72393 -- set event info as cache for other routines to refer event attributes
72394 --
72395 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
72396 (p_application_id => p_application_id
72397 ,p_primary_ledger_id => p_primary_ledger_id
72398 ,p_base_ledger_id => p_base_ledger_id
72399 ,p_target_ledger_id => p_target_ledger_id
72400 ,p_entity_id => l_array_entity_id(hdr_idx)
72401 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
72402 ,p_entity_code => l_array_entity_code(hdr_idx)
72406 ,p_event_type_code => l_array_event_type(hdr_idx)
72403 ,p_transaction_num => l_array_transaction_num(hdr_idx)
72404 ,p_event_id => l_array_event_id(hdr_idx)
72405 ,p_event_class_code => l_array_class_code(hdr_idx)
72407 ,p_event_number => l_array_event_number(hdr_idx)
72408 ,p_event_date => l_array_event_date(hdr_idx)
72409 ,p_transaction_date => l_array_transaction_date(hdr_idx)
72410 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
72411 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
72412 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
72413 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
72414 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
72415 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
72416 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
72417 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
72418 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
72419 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
72420 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
72421 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
72422 ,p_event_created_by => l_array_event_created_by(hdr_idx)
72423 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
72424
72425 --
72426 -- set the status of entry to C_VALID (0)
72427 --
72428 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
72429
72430 --
72431 -- initialize a row for ae header
72432 --
72433 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
72434
72435 l_event_id := l_array_event_id(hdr_idx);
72436
72437 --
72438 -- storing the hdr_idx for event. May be used by line cursor.
72439 --
72440 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
72441
72442 --
72443 -- store sources from header extract. This can be improved to
72444 -- store only those sources from header extract that may be used in lines
72445 --
72446
72447 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
72448 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
72449
72450 --
72451 -- initilaize the status of ae headers for diffrent balance types
72452 -- the status is initialised to C_NOT_CREATED (2)
72453 --
72454 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72455 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72456 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
72457
72458 --
72459 -- call api to validate and store accounting attributes for header
72460 --
72461
72462 ------------------------------------------------------------
72463 -- Accrual Reversal : to get date for Standard Source (NONE)
72464 ------------------------------------------------------------
72465 l_acc_rev_gl_date_source := NULL;
72466
72467 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
72468 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
72469
72470
72471 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
72472
72473 XLA_AE_HEADER_PKG.SetJeCategoryName;
72474
72475 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
72476 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
72477 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
72478 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
72479 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
72480
72481
72482 -- No header level analytical criteria
72483
72484 --
72485 --accounting attribute enhancement, bug 3612931
72486 --
72487 l_trx_reversal_source := SUBSTR(NULL, 1,30);
72488
72489 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
72490 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
72491
72492 xla_accounting_err_pkg.build_message
72493 (p_appli_s_name => 'XLA'
72494 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
72495 ,p_token_1 => 'ACCT_ATTR_NAME'
72496 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
72497 ,p_token_2 => 'PRODUCT_NAME'
72498 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
72499 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
72500 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72501 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
72502
72503 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
72504 --
72505 -- following sets the accounting attributes needed to reverse
72506 -- accounting for a distributeion
72507 --
72508 xla_ae_lines_pkg.SetTrxReversalAttrs
72509 (p_event_id => l_event_id
72510 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
72511 ,p_trx_reversal_source => l_trx_reversal_source);
72512
72513 END IF;
72514
72515
72519 --
72516 ----------------------------------------------------------------
72517 -- 4262811 - update the header statuses to invalid in need be
72518 ----------------------------------------------------------------
72520 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
72521
72522
72523 -----------------------------------------------
72524 -- No accrual reversal for the event class/type
72525 -----------------------------------------------
72526 ----------------------------------------------------------------
72527
72528 --
72529 -- this ends the header loop iteration for one bulk fetch
72530 --
72531 END LOOP;
72532
72533 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
72534 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
72535
72536 --
72537 -- insert dummy rows into lines gt table that were created due to
72538 -- transaction reversals
72539 --
72540 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
72541 l_result := XLA_AE_LINES_PKG.InsertLines;
72542 END IF;
72543
72544 --
72545 -- reset the temp_line_num for each set of events fetched from header
72546 -- cursor rather than doing it for each new event in line cursor
72547 -- Bug 3939231
72548 --
72549 xla_ae_lines_pkg.g_temp_line_num := 0;
72550
72551
72552
72553 --
72554 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
72555 --
72556 --
72557 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72558
72559 trace
72560 (p_msg => 'SQL - FETCH line_cur'
72561 ,p_level => C_LEVEL_STATEMENT
72562 ,p_module => l_log_module);
72563
72564 END IF;
72565 --
72566 --
72567 LOOP
72568 --
72569 FETCH line_cur BULK COLLECT INTO
72570 l_array_entity_id
72571 , l_array_legal_entity_id
72572 , l_array_entity_code
72573 , l_array_transaction_num
72574 , l_array_event_id
72575 , l_array_class_code
72576 , l_array_event_type
72577 , l_array_event_number
72578 , l_array_event_date
72579 , l_array_transaction_date
72580 , l_array_reference_num_1
72581 , l_array_reference_num_2
72582 , l_array_reference_num_3
72583 , l_array_reference_num_4
72584 , l_array_reference_char_1
72585 , l_array_reference_char_2
72586 , l_array_reference_char_3
72587 , l_array_reference_char_4
72588 , l_array_reference_date_1
72589 , l_array_reference_date_2
72590 , l_array_reference_date_3
72591 , l_array_reference_date_4
72592 , l_array_event_created_by
72593 , l_array_budgetary_control_flag
72594 , l_array_extract_line_num
72595 , l_array_source_4
72596 , l_array_source_11
72597 , l_array_source_12
72598 , l_array_source_13
72599 , l_array_source_14
72600 , l_array_source_22
72601 , l_array_source_23
72602 , l_array_source_25
72603 , l_array_source_27
72604 , l_array_source_28
72605 , l_array_source_29
72606 , l_array_source_30
72607 , l_array_source_31
72608 , l_array_source_33
72609 , l_array_source_34
72610 , l_array_source_34_meaning
72611 , l_array_source_35
72612 , l_array_source_41
72613 , l_array_source_43
72614 LIMIT l_rows;
72615
72616 --
72617 IF (C_LEVEL_EVENT >= g_log_level) THEN
72618 trace
72619 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
72620 ,p_level => C_LEVEL_EVENT
72621 ,p_module => l_log_module);
72622 END IF;
72623 --
72624 EXIT WHEN l_array_entity_id.count = 0;
72625
72626 XLA_AE_LINES_PKG.g_rec_lines := null;
72627
72628 --
72629 -- Bug 4458708
72630 --
72631 XLA_AE_LINES_PKG.g_LineNumber := 0;
72632 --
72633 --
72634
72635 FOR Idx IN 1..l_array_event_id.count LOOP
72636 --
72637 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
72638 --
72639 l_event_id := l_array_event_id(idx); -- 5648433
72640
72641 --
72642 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
72643 --
72644
72645 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
72646 (g_array_event(l_event_id).array_value_num('header_index'))
72647 ,'N'
72648 ) <> 'Y'
72649 THEN
72650 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72651 trace
72652 (p_msg => 'Trancaction revesal option is not Y '
72653 ,p_level => C_LEVEL_STATEMENT
72654 ,p_module => l_log_module);
72655 END IF;
72656
72657 --
72658 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
72659 --
72660 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
72661 --
72662 -- set event info as cache for other routines to refer event attributes
72663 --
72664
72665 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
72666 l_previous_event_id := l_event_id;
72667
72668 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
72669 (p_application_id => p_application_id
72673 ,p_entity_id => l_array_entity_id(Idx)
72670 ,p_primary_ledger_id => p_primary_ledger_id
72671 ,p_base_ledger_id => p_base_ledger_id
72672 ,p_target_ledger_id => p_target_ledger_id
72674 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
72675 ,p_entity_code => l_array_entity_code(Idx)
72676 ,p_transaction_num => l_array_transaction_num(Idx)
72677 ,p_event_id => l_array_event_id(Idx)
72678 ,p_event_class_code => l_array_class_code(Idx)
72679 ,p_event_type_code => l_array_event_type(Idx)
72680 ,p_event_number => l_array_event_number(Idx)
72681 ,p_event_date => l_array_event_date(Idx)
72682 ,p_transaction_date => l_array_transaction_date(Idx)
72683 ,p_reference_num_1 => l_array_reference_num_1(Idx)
72684 ,p_reference_num_2 => l_array_reference_num_2(Idx)
72685 ,p_reference_num_3 => l_array_reference_num_3(Idx)
72686 ,p_reference_num_4 => l_array_reference_num_4(Idx)
72687 ,p_reference_char_1 => l_array_reference_char_1(Idx)
72688 ,p_reference_char_2 => l_array_reference_char_2(Idx)
72689 ,p_reference_char_3 => l_array_reference_char_3(Idx)
72690 ,p_reference_char_4 => l_array_reference_char_4(Idx)
72691 ,p_reference_date_1 => l_array_reference_date_1(Idx)
72692 ,p_reference_date_2 => l_array_reference_date_2(Idx)
72693 ,p_reference_date_3 => l_array_reference_date_3(Idx)
72694 ,p_reference_date_4 => l_array_reference_date_4(Idx)
72695 ,p_event_created_by => l_array_event_created_by(Idx)
72696 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
72697 --
72698 END IF;
72699
72700
72701
72702 --
72703 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
72704
72705 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
72706
72707 IF l_continue_with_lines THEN
72708 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
72709 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
72710
72711 xla_accounting_err_pkg.build_message
72712 (p_appli_s_name => 'XLA'
72713 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
72714 ,p_token_1 => 'LINE_NUMBER'
72715 ,p_value_1 => l_array_extract_line_num(Idx)
72716 ,p_token_2 => 'PRODUCT_NAME'
72717 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
72718 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
72719 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72720 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
72721
72722 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
72723 --
72724 -- following sets the accounting attributes needed to reverse
72725 -- accounting for a distributeion
72726 --
72727
72728 --
72729 -- 5217187
72730 --
72731 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
72732 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
72733 g_array_event(l_event_id).array_value_num('header_index'));
72734 --
72735 --
72736
72737 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
72738 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
72739 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
72740 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
72741 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
72742 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_13(Idx));
72743 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
72744 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_41(Idx);
72745 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
72746 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
72747 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
72748 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_43(Idx);
72749 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
72750 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
72751 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
72752 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
72753 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
72754 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
72755 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
72756 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
72757 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
72758 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_11(Idx));
72759 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
72760 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_41(Idx);
72761 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
72765 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
72762 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
72763 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
72764 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_43(Idx);
72766 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
72767 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
72768 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
72769 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
72770 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
72771 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
72772 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
72773 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
72774 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
72775 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
72776 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
72777 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
72778 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
72779 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
72780 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
72781 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
72782 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
72783 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
72784 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
72785
72786
72787 xla_ae_lines_pkg.SetAcctReversalAttrs
72788 (p_event_id => l_event_id
72789 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
72790 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72791 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
72792 END IF;
72793
72794 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
72795 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
72796
72797 --
72798 AcctLineType_73 (
72799 p_application_id => p_application_id
72800 ,p_event_id => l_event_id
72801 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72802 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72803 ,p_actual_flag => l_actual_flag
72804 ,p_balance_type_code => l_balance_type_code
72805 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72806
72807 , p_source_4 => l_array_source_4(Idx)
72808 , p_source_11 => l_array_source_11(Idx)
72809 , p_source_12 => l_array_source_12(Idx)
72810 , p_source_13 => l_array_source_13(Idx)
72811 , p_source_22 => l_array_source_22(Idx)
72812 , p_source_23 => l_array_source_23(Idx)
72813 , p_source_25 => l_array_source_25(Idx)
72814 , p_source_27 => l_array_source_27(Idx)
72815 , p_source_28 => l_array_source_28(Idx)
72816 , p_source_29 => l_array_source_29(Idx)
72817 , p_source_30 => l_array_source_30(Idx)
72818 , p_source_31 => l_array_source_31(Idx)
72819 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
72820 , p_source_33 => l_array_source_33(Idx)
72821 , p_source_34 => l_array_source_34(Idx)
72822 , p_source_34_meaning => l_array_source_34_meaning(Idx)
72823 , p_source_35 => l_array_source_35(Idx)
72824 , p_source_41 => l_array_source_41(Idx)
72825 , p_source_43 => l_array_source_43(Idx)
72826 );
72827 If(l_balance_type_code = 'A') THEN
72828 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72829 END IF;
72830
72831 --
72832
72833
72834 --
72835 AcctLineType_75 (
72836 p_application_id => p_application_id
72837 ,p_event_id => l_event_id
72838 ,p_calculate_acctd_flag => l_calculate_acctd_flag
72839 ,p_calculate_g_l_flag => l_calculate_g_l_flag
72840 ,p_actual_flag => l_actual_flag
72841 ,p_balance_type_code => l_balance_type_code
72842 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
72843
72844 , p_source_4 => l_array_source_4(Idx)
72845 , p_source_11 => l_array_source_11(Idx)
72846 , p_source_13 => l_array_source_13(Idx)
72847 , p_source_14 => l_array_source_14(Idx)
72848 , p_source_22 => l_array_source_22(Idx)
72849 , p_source_23 => l_array_source_23(Idx)
72850 , p_source_25 => l_array_source_25(Idx)
72851 , p_source_27 => l_array_source_27(Idx)
72852 , p_source_28 => l_array_source_28(Idx)
72853 , p_source_29 => l_array_source_29(Idx)
72854 , p_source_30 => l_array_source_30(Idx)
72855 , p_source_31 => l_array_source_31(Idx)
72856 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
72857 , p_source_33 => l_array_source_33(Idx)
72858 , p_source_34 => l_array_source_34(Idx)
72859 , p_source_34_meaning => l_array_source_34_meaning(Idx)
72860 , p_source_35 => l_array_source_35(Idx)
72861 , p_source_41 => l_array_source_41(Idx)
72862 , p_source_43 => l_array_source_43(Idx)
72863 );
72864 If(l_balance_type_code = 'A') THEN
72865 l_actual_gain_loss_ref := l_gain_or_loss_ref;
72866 END IF;
72867
72868 --
72869
72870 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
72871 -- or secondary ledger that has different currency with primary
72875
72872 -- or alc that is calculated by sla
72873 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
72874 (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'))
72876 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
72877 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
72878 AND (l_actual_flag = 'A')) THEN
72879 XLA_AE_LINES_PKG.CreateGainOrLossLines(
72880 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
72881 ,p_application_id => p_application_id
72882 ,p_amb_context_code => 'DEFAULT'
72883 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
72884 ,p_event_class_code => C_EVENT_CLASS_CODE
72885 ,p_event_type_code => C_EVENT_TYPE_CODE
72886
72887 ,p_gain_ccid => -1
72888 ,p_loss_ccid => -1
72889
72890 ,p_actual_flag => l_actual_flag
72891 ,p_enc_flag => null
72892 ,p_actual_g_l_ref => l_actual_gain_loss_ref
72893 ,p_enc_g_l_ref => null
72894 );
72895 END IF;
72896 END IF;
72897 END IF;
72898
72899 ELSE
72900 --
72901 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
72902 --
72903 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72904 trace
72905 (p_msg => 'Trancaction revesal option is Y'
72906 ,p_level => C_LEVEL_STATEMENT
72907 ,p_module => l_log_module);
72908 END IF;
72909 END IF;
72910
72911 END LOOP;
72912 l_result := XLA_AE_LINES_PKG.InsertLines ;
72913 end loop;
72914 close line_cur;
72915
72916
72917 --
72918 -- insert headers into xla_ae_headers_gt table
72919 --
72920 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
72921
72922 -- insert into errors table here.
72923
72924 END LOOP;
72925
72926 --
72927 -- 4865292
72928 --
72929 -- Compare g_hdr_extract_count with event count in
72930 -- CreateHeadersAndLines.
72931 --
72932 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
72933
72934 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
72935 trace (p_msg => '# rows extracted from header extract objects '
72936 || ' (running total): '
72937 || g_hdr_extract_count
72938 ,p_level => C_LEVEL_STATEMENT
72939 ,p_module => l_log_module);
72940 END IF;
72941
72942 CLOSE header_cur;
72943 --
72944
72945 --
72946 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72947 trace
72948 (p_msg => 'END of EventClass_122'
72949 ,p_level => C_LEVEL_PROCEDURE
72950 ,p_module => l_log_module);
72951 END IF;
72952 --
72953 RETURN l_result;
72954 EXCEPTION
72955 WHEN xla_exceptions_pkg.application_exception THEN
72956
72957 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
72958
72959
72960 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
72961
72962 RAISE;
72963 WHEN OTHERS THEN
72964 xla_exceptions_pkg.raise_message
72965 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_122');
72966 END EventClass_122;
72967 --
72968
72969 ---------------------------------------
72970 --
72971 -- PRIVATE PROCEDURE
72972 -- insert_sources_123
72973 --
72974 ----------------------------------------
72975 --
72976 PROCEDURE insert_sources_123(
72977 p_target_ledger_id IN NUMBER
72978 , p_language IN VARCHAR2
72979 , p_sla_ledger_id IN NUMBER
72980 , p_pad_start_date IN DATE
72981 , p_pad_end_date IN DATE
72982 )
72983 IS
72984
72985 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ_ALL';
72986 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ';
72987 p_apps_owner VARCHAR2(30);
72988 l_log_module VARCHAR2(240);
72989 BEGIN
72990 IF g_log_enabled THEN
72991 l_log_module := C_DEFAULT_MODULE||'.insert_sources_123';
72992 END IF;
72993 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
72994
72995 trace
72996 (p_msg => 'BEGIN of insert_sources_123'
72997 ,p_level => C_LEVEL_PROCEDURE
72998 ,p_module => l_log_module);
72999
73000 END IF;
73001
73002 -- select APPS owner
73003 SELECT oracle_username
73004 INTO p_apps_owner
73005 FROM fnd_oracle_userid
73006 WHERE read_only_flag = 'U'
73007 ;
73008
73009 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73010 trace
73011 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
73012 ' - p_language = '||p_language||
73013 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
73014 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
73015 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
73016 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
73020
73017 ,p_level => C_LEVEL_STATEMENT
73018 ,p_module => l_log_module);
73019 END IF;
73021
73022 --
73023 INSERT INTO xla_diag_sources --hdr2
73024 (
73025 event_id
73026 , ledger_id
73027 , sla_ledger_id
73028 , description_language
73029 , object_name
73030 , object_type_code
73031 , line_number
73032 , source_application_id
73033 , source_type_code
73034 , source_code
73035 , source_value
73036 , source_meaning
73037 , created_by
73038 , creation_date
73039 , last_update_date
73040 , last_updated_by
73041 , last_update_login
73042 , program_update_date
73043 , program_application_id
73044 , program_id
73045 , request_id
73046 )
73047 SELECT
73048 event_id
73049 , p_target_ledger_id
73050 , p_sla_ledger_id
73051 , p_language
73052 , object_name
73053 , object_type_code
73054 , line_number
73055 , source_application_id
73056 , source_type_code
73057 , source_code
73058 , SUBSTR(source_value ,1,1996)
73059 , SUBSTR(source_meaning ,1,200)
73060 , xla_environment_pkg.g_Usr_Id
73061 , TRUNC(SYSDATE)
73062 , TRUNC(SYSDATE)
73063 , xla_environment_pkg.g_Usr_Id
73064 , xla_environment_pkg.g_Login_Id
73065 , TRUNC(SYSDATE)
73066 , xla_environment_pkg.g_Prog_Appl_Id
73067 , xla_environment_pkg.g_Prog_Id
73068 , xla_environment_pkg.g_Req_Id
73069 FROM (
73070 SELECT xet.event_id event_id
73071 , 0 line_number
73072 , CASE r
73073 WHEN 1 THEN 'PA_XLA_REVENUE_HEADERS_V'
73074 WHEN 2 THEN 'PA_XLA_REVENUE_HEADERS_V'
73075 WHEN 3 THEN 'PA_XLA_REVENUE_HEADERS_V'
73076 WHEN 4 THEN 'PA_XLA_REVENUE_HEADERS_V'
73077 WHEN 5 THEN 'PA_XLA_REVENUE_HEADERS_V'
73078
73079 ELSE null
73080 END object_name
73081 , CASE r
73082 WHEN 1 THEN 'HEADER'
73083 WHEN 2 THEN 'HEADER'
73084 WHEN 3 THEN 'HEADER'
73085 WHEN 4 THEN 'HEADER'
73086 WHEN 5 THEN 'HEADER'
73087
73088 ELSE null
73089 END object_type_code
73090 , CASE r
73091 WHEN 1 THEN '275'
73092 WHEN 2 THEN '275'
73093 WHEN 3 THEN '275'
73094 WHEN 4 THEN '275'
73095 WHEN 5 THEN '275'
73096
73097 ELSE null
73098 END source_application_id
73099 , 'S' source_type_code
73100 , CASE r
73101 WHEN 1 THEN 'CREDITING_REVENUE_FLAG'
73102 WHEN 2 THEN 'EVENT_ID'
73103 WHEN 3 THEN 'GL_DATE'
73104 WHEN 4 THEN 'UER_CCID'
73105 WHEN 5 THEN 'UBR_CCID'
73106
73107 ELSE null
73108 END source_code
73109 , CASE r
73110 WHEN 1 THEN TO_CHAR(h2.CREDITING_REVENUE_FLAG)
73111 WHEN 2 THEN TO_CHAR(h2.EVENT_ID)
73112 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
73113 WHEN 4 THEN TO_CHAR(h2.UER_CCID)
73114 WHEN 5 THEN TO_CHAR(h2.UBR_CCID)
73115
73116 ELSE null
73117 END source_value
73118 , CASE r
73119 WHEN 1 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
73120 103371
73121 ,TO_CHAR(h2.CREDITING_REVENUE_FLAG)
73122 ,'CREDITING_REVENUE_FLAG'
73123 ,'S'
73124 ,275)
73125
73126 ELSE null
73127 END source_meaning
73128 FROM xla_events_gt xet
73129 , PA_XLA_REVENUE_HEADERS_V h2
73130 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
73131 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
73132 AND xet.event_class_code = C_EVENT_CLASS_CODE
73133 AND h2.event_id = xet.event_id
73134
73135 )
73136 ;
73137 --
73138 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73139
73140 trace
73141 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
73142 ,p_level => C_LEVEL_STATEMENT
73143 ,p_module => l_log_module);
73144
73145 END IF;
73146 --
73147
73148
73149
73150 --
73151 INSERT INTO xla_diag_sources --line2
73152 (
73153 event_id
73154 , ledger_id
73155 , sla_ledger_id
73156 , description_language
73157 , object_name
73158 , object_type_code
73159 , line_number
73160 , source_application_id
73161 , source_type_code
73162 , source_code
73163 , source_value
73164 , source_meaning
73165 , created_by
73166 , creation_date
73170 , program_update_date
73167 , last_update_date
73168 , last_updated_by
73169 , last_update_login
73171 , program_application_id
73172 , program_id
73173 , request_id
73174 )
73175 SELECT event_id
73176 , p_target_ledger_id
73177 , p_sla_ledger_id
73178 , p_language
73179 , object_name
73180 , object_type_code
73181 , line_number
73182 , source_application_id
73183 , source_type_code
73184 , source_code
73185 , SUBSTR(source_value,1,1996)
73186 , SUBSTR(source_meaning ,1,200)
73187 , xla_environment_pkg.g_Usr_Id
73188 , TRUNC(SYSDATE)
73189 , TRUNC(SYSDATE)
73190 , xla_environment_pkg.g_Usr_Id
73191 , xla_environment_pkg.g_Login_Id
73192 , TRUNC(SYSDATE)
73193 , xla_environment_pkg.g_Prog_Appl_Id
73194 , xla_environment_pkg.g_Prog_Id
73195 , xla_environment_pkg.g_Req_Id
73196 FROM (
73197 SELECT xet.event_id event_id
73198 , l3.line_number line_number
73199 , CASE r
73200 WHEN 1 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73201 WHEN 2 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73202 WHEN 3 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73203 WHEN 4 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73204 WHEN 5 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73205 WHEN 6 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73206 WHEN 7 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73207 WHEN 8 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73208 WHEN 9 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73209 WHEN 10 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73210 WHEN 11 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73211 WHEN 12 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73212 WHEN 13 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73213 WHEN 14 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73214 WHEN 15 THEN 'PA_XLA_EVENT_TYPE_REF_V'
73215 WHEN 16 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73216 WHEN 17 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73217 WHEN 18 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73218 WHEN 19 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73219 WHEN 20 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73220 WHEN 21 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73221 WHEN 22 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73222 WHEN 23 THEN 'PA_XLA_REVENUE_LINES_ADJ_V'
73223
73224 ELSE null
73225 END object_name
73226 , CASE r
73227 WHEN 1 THEN 'LINE'
73228 WHEN 2 THEN 'LINE'
73229 WHEN 3 THEN 'LINE'
73230 WHEN 4 THEN 'LINE'
73231 WHEN 5 THEN 'LINE'
73232 WHEN 6 THEN 'LINE'
73233 WHEN 7 THEN 'LINE'
73234 WHEN 8 THEN 'LINE'
73235 WHEN 9 THEN 'LINE'
73236 WHEN 10 THEN 'LINE'
73237 WHEN 11 THEN 'LINE'
73238 WHEN 12 THEN 'LINE'
73239 WHEN 13 THEN 'LINE'
73240 WHEN 14 THEN 'LINE'
73241 WHEN 15 THEN 'LINE'
73242 WHEN 16 THEN 'LINE'
73243 WHEN 17 THEN 'LINE'
73244 WHEN 18 THEN 'LINE'
73245 WHEN 19 THEN 'LINE'
73246 WHEN 20 THEN 'LINE'
73247 WHEN 21 THEN 'LINE'
73248 WHEN 22 THEN 'LINE'
73249 WHEN 23 THEN 'LINE'
73250
73251 ELSE null
73252 END object_type_code
73253 , CASE r
73254 WHEN 1 THEN '275'
73255 WHEN 2 THEN '275'
73256 WHEN 3 THEN '275'
73257 WHEN 4 THEN '275'
73258 WHEN 5 THEN '275'
73259 WHEN 6 THEN '275'
73260 WHEN 7 THEN '275'
73261 WHEN 8 THEN '275'
73262 WHEN 9 THEN '275'
73263 WHEN 10 THEN '275'
73264 WHEN 11 THEN '275'
73265 WHEN 12 THEN '275'
73266 WHEN 13 THEN '275'
73267 WHEN 14 THEN '275'
73268 WHEN 15 THEN '275'
73269 WHEN 16 THEN '275'
73270 WHEN 17 THEN '275'
73271 WHEN 18 THEN '275'
73272 WHEN 19 THEN '275'
73273 WHEN 20 THEN '275'
73274 WHEN 21 THEN '275'
73275 WHEN 22 THEN '275'
73276 WHEN 23 THEN '275'
73277
73278 ELSE null
73279 END source_application_id
73280 , 'S' source_type_code
73281 , CASE r
73282 WHEN 1 THEN 'PDR_UBR_CCID'
73283 WHEN 2 THEN 'PDR_UER_CCID'
73284 WHEN 3 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
73285 WHEN 4 THEN 'ENTERED_CURRENCY_CODE'
73286 WHEN 5 THEN 'EXCHANGE_RATE_DATE'
73287 WHEN 6 THEN 'EXCHANGE_RATE'
73288 WHEN 7 THEN 'EXCHANGE_RATE_TYPE'
73289 WHEN 8 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
73290 WHEN 9 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
73291 WHEN 10 THEN 'REVENUE_DISTRIBUTION_TYPE'
73292 WHEN 11 THEN 'REVENUE_FIRST_DIST_ID'
73296 WHEN 15 THEN 'REV_EVENT_TYPE_CLASSIFICATION'
73293 WHEN 12 THEN 'REVENUE_SECOND_DIST_ID'
73294 WHEN 13 THEN 'ENTERED_AMOUNT'
73295 WHEN 14 THEN 'ACCT_AMOUNT'
73297 WHEN 16 THEN 'ACTUAL_UPG_CR_CCID'
73298 WHEN 17 THEN 'ACTUAL_UPG_DR_CCID'
73299 WHEN 18 THEN 'APPLICATION_ID'
73300 WHEN 19 THEN 'REVENUE_ENTITY_CODE'
73301 WHEN 20 THEN 'CR_REVENUE_FIRST_DIST_ID'
73302 WHEN 21 THEN 'PROJECT_ID'
73303 WHEN 22 THEN 'CR_REVENUE_SECOND_DIST_ID'
73304 WHEN 23 THEN 'PDR_DRAFT_REV_NUM_CREDITED'
73305
73306 ELSE null
73307 END source_code
73308 , CASE r
73309 WHEN 1 THEN TO_CHAR(l3.PDR_UBR_CCID)
73310 WHEN 2 THEN TO_CHAR(l3.PDR_UER_CCID)
73311 WHEN 3 THEN TO_CHAR(l3.ACTUAL_UPG_CR_ACCT_CLASS)
73312 WHEN 4 THEN TO_CHAR(l3.ENTERED_CURRENCY_CODE)
73313 WHEN 5 THEN TO_CHAR(l3.EXCHANGE_RATE_DATE)
73314 WHEN 6 THEN TO_CHAR(l3.EXCHANGE_RATE)
73315 WHEN 7 THEN TO_CHAR(l3.EXCHANGE_RATE_TYPE)
73316 WHEN 8 THEN TO_CHAR(l3.ACTUAL_UPG_DR_ACCT_CLASS)
73317 WHEN 9 THEN TO_CHAR(l3.USE_ACT_UPG_ATTRIB_FLAG)
73318 WHEN 10 THEN TO_CHAR(l3.REVENUE_DISTRIBUTION_TYPE)
73319 WHEN 11 THEN TO_CHAR(l3.REVENUE_FIRST_DIST_ID)
73320 WHEN 12 THEN TO_CHAR(l3.REVENUE_SECOND_DIST_ID)
73321 WHEN 13 THEN TO_CHAR(l3.ENTERED_AMOUNT)
73322 WHEN 14 THEN TO_CHAR(l3.ACCT_AMOUNT)
73323 WHEN 15 THEN TO_CHAR(l1.REV_EVENT_TYPE_CLASSIFICATION)
73324 WHEN 16 THEN TO_CHAR(l3.ACTUAL_UPG_CR_CCID)
73325 WHEN 17 THEN TO_CHAR(l3.ACTUAL_UPG_DR_CCID)
73326 WHEN 18 THEN TO_CHAR(l3.APPLICATION_ID)
73327 WHEN 19 THEN TO_CHAR(l3.REVENUE_ENTITY_CODE)
73328 WHEN 20 THEN TO_CHAR(l3.CR_REVENUE_FIRST_DIST_ID)
73329 WHEN 21 THEN TO_CHAR(l3.PROJECT_ID)
73330 WHEN 22 THEN TO_CHAR(l3.CR_REVENUE_SECOND_DIST_ID)
73331 WHEN 23 THEN TO_CHAR(l3.PDR_DRAFT_REV_NUM_CREDITED)
73332
73333 ELSE null
73334 END source_value
73335 , CASE r
73336 WHEN 15 THEN fvl58.meaning
73337
73338 ELSE null
73339 END source_meaning
73340 FROM xla_events_gt xet
73341 , PA_XLA_EVENT_TYPE_REF_V l1
73342 , PA_XLA_REVENUE_LINES_ADJ_V l3
73343 , fnd_lookup_values fvl58
73344 , (select rownum r from all_objects where rownum <= 23 and owner = p_apps_owner)
73345 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
73346 AND xet.event_class_code = C_EVENT_CLASS_CODE
73347 AND l3.event_id = xet.event_id
73348 AND l1.rev_event_type (+) =l3.rev_event_type AND fvl58.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
73349 AND fvl58.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
73350 AND fvl58.view_application_id(+) = 275
73351 AND fvl58.language(+) = USERENV('LANG')
73352
73353 )
73354 ;
73355 --
73356 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73357
73358 trace
73359 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
73360 ,p_level => C_LEVEL_STATEMENT
73361 ,p_module => l_log_module);
73362
73363 END IF;
73364
73365
73366 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73367 trace
73368 (p_msg => 'END of insert_sources_123'
73369 ,p_level => C_LEVEL_PROCEDURE
73370 ,p_module => l_log_module);
73371 END IF;
73372 EXCEPTION
73373 WHEN xla_exceptions_pkg.application_exception THEN
73374 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
73375 trace
73376 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
73377 ,p_level => C_LEVEL_EXCEPTION
73378 ,p_module => l_log_module);
73379 END IF;
73380 RAISE;
73381 WHEN OTHERS THEN
73382 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
73383 trace
73384 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
73385 ,p_level => C_LEVEL_EXCEPTION
73386 ,p_module => l_log_module);
73387 END IF;
73388 xla_exceptions_pkg.raise_message
73389 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_123');
73390 END insert_sources_123;
73391 --
73392
73393 ---------------------------------------
73394 --
73395 -- PRIVATE FUNCTION
73396 -- EventClass_123
73397 --
73398 ----------------------------------------
73399 --
73400 FUNCTION EventClass_123
73401 (p_application_id IN NUMBER
73402 ,p_base_ledger_id IN NUMBER
73403 ,p_target_ledger_id IN NUMBER
73404 ,p_language IN VARCHAR2
73405 ,p_currency_code IN VARCHAR2
73406 ,p_sla_ledger_id IN NUMBER
73407 ,p_pad_start_date IN DATE
73408 ,p_pad_end_date IN DATE
73409 ,p_primary_ledger_id IN NUMBER)
73410 RETURN BOOLEAN IS
73411 --
73415 l_calculate_acctd_flag VARCHAR2(1) :='N';
73412 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ_ALL';
73413 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ADJ';
73414
73416 l_calculate_g_l_flag VARCHAR2(1) :='N';
73417 --
73418 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73419 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73420 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73421 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73422 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73423 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73424 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73425 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73426 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73427 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73428 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73429 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73430 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73431 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
73432 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73433 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73434 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73435 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
73436 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73437 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73438 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73439 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
73440 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
73441 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
73442
73443 l_event_id NUMBER;
73444 l_previous_event_id NUMBER;
73445 l_first_event_id NUMBER;
73446 l_last_event_id NUMBER;
73447
73448 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
73449 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
73450 --
73451 --
73452 l_result BOOLEAN := TRUE;
73453 l_rows NUMBER := 1000;
73454 l_event_type_name VARCHAR2(80) := 'All';
73455 l_event_class_name VARCHAR2(80) := 'Revenue Adjustment';
73456 l_description VARCHAR2(4000);
73457 l_transaction_reversal NUMBER;
73458 l_ae_header_id NUMBER;
73459 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
73460 l_log_module VARCHAR2(240);
73461 --
73462 l_acct_reversal_source VARCHAR2(30);
73463 l_trx_reversal_source VARCHAR2(30);
73464
73465 l_continue_with_lines BOOLEAN := TRUE;
73466 --
73467 l_acc_rev_gl_date_source DATE; -- 4262811
73468 --
73469 type t_array_event_id is table of number index by binary_integer;
73470
73471 l_rec_array_event t_rec_array_event;
73472 l_null_rec_array_event t_rec_array_event;
73473 l_array_ae_header_id xla_number_array_type;
73474 l_actual_flag VARCHAR2(1) := NULL;
73475 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
73476 l_balance_type_code VARCHAR2(1) :=NULL;
73477 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
73478
73479 --
73480 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
73481 --
73482
73483 TYPE t_array_source_38 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.CREDITING_REVENUE_FLAG%TYPE INDEX BY BINARY_INTEGER;
73484 TYPE t_array_source_42 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.EVENT_ID%TYPE INDEX BY BINARY_INTEGER;
73485 TYPE t_array_source_87 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
73486 TYPE t_array_source_91 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UER_CCID%TYPE INDEX BY BINARY_INTEGER;
73487 TYPE t_array_source_92 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
73488
73489 TYPE t_array_source_19 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PDR_UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
73490 TYPE t_array_source_20 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PDR_UER_CCID%TYPE INDEX BY BINARY_INTEGER;
73491 TYPE t_array_source_23 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
73492 TYPE t_array_source_25 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
73493 TYPE t_array_source_27 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
73494 TYPE t_array_source_28 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
73495 TYPE t_array_source_29 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
73496 TYPE t_array_source_30 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
73497 TYPE t_array_source_31 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
73498 TYPE t_array_source_36 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
73502 TYPE t_array_source_43 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
73499 TYPE t_array_source_39 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73500 TYPE t_array_source_40 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73501 TYPE t_array_source_41 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
73503 TYPE t_array_source_58 IS TABLE OF PA_XLA_EVENT_TYPE_REF_V.REV_EVENT_TYPE_CLASSIFICATION%TYPE INDEX BY BINARY_INTEGER;
73504 TYPE t_array_source_59 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_CR_CCID%TYPE INDEX BY BINARY_INTEGER;
73505 TYPE t_array_source_60 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.ACTUAL_UPG_DR_CCID%TYPE INDEX BY BINARY_INTEGER;
73506 TYPE t_array_source_61 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
73507 TYPE t_array_source_62 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.REVENUE_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
73508 TYPE t_array_source_63 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.CR_REVENUE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73509 TYPE t_array_source_64 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PROJECT_ID%TYPE INDEX BY BINARY_INTEGER;
73510 TYPE t_array_source_65 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.CR_REVENUE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
73511 TYPE t_array_source_66 IS TABLE OF PA_XLA_REVENUE_LINES_ADJ_V.PDR_DRAFT_REV_NUM_CREDITED%TYPE INDEX BY BINARY_INTEGER;
73512
73513 l_array_source_38 t_array_source_38;
73514 l_array_source_42 t_array_source_42;
73515 l_array_source_87 t_array_source_87;
73516 l_array_source_91 t_array_source_91;
73517 l_array_source_92 t_array_source_92;
73518
73519 l_array_source_19 t_array_source_19;
73520 l_array_source_20 t_array_source_20;
73521 l_array_source_23 t_array_source_23;
73522 l_array_source_25 t_array_source_25;
73523 l_array_source_27 t_array_source_27;
73524 l_array_source_28 t_array_source_28;
73525 l_array_source_29 t_array_source_29;
73526 l_array_source_30 t_array_source_30;
73527 l_array_source_31 t_array_source_31;
73528 l_array_source_36 t_array_source_36;
73529 l_array_source_39 t_array_source_39;
73530 l_array_source_40 t_array_source_40;
73531 l_array_source_41 t_array_source_41;
73532 l_array_source_43 t_array_source_43;
73533 l_array_source_58 t_array_source_58;
73534 l_array_source_58_meaning t_array_lookup_meaning;
73535 l_array_source_59 t_array_source_59;
73536 l_array_source_60 t_array_source_60;
73537 l_array_source_61 t_array_source_61;
73538 l_array_source_62 t_array_source_62;
73539 l_array_source_63 t_array_source_63;
73540 l_array_source_64 t_array_source_64;
73541 l_array_source_65 t_array_source_65;
73542 l_array_source_66 t_array_source_66;
73543
73544 --
73545 CURSOR header_cur
73546 IS
73547 SELECT /*+ leading(xet) cardinality(xet,1) */
73548 -- Event Class Code: REVENUE_ADJ
73549 xet.entity_id
73550 ,xet.legal_entity_id
73551 ,xet.entity_code
73552 ,xet.transaction_number
73553 ,xet.event_id
73554 ,xet.event_class_code
73555 ,xet.event_type_code
73556 ,xet.event_number
73557 ,xet.event_date
73558 ,xet.transaction_date
73559 ,xet.reference_num_1
73560 ,xet.reference_num_2
73561 ,xet.reference_num_3
73562 ,xet.reference_num_4
73563 ,xet.reference_char_1
73564 ,xet.reference_char_2
73565 ,xet.reference_char_3
73566 ,xet.reference_char_4
73567 ,xet.reference_date_1
73568 ,xet.reference_date_2
73569 ,xet.reference_date_3
73570 ,xet.reference_date_4
73571 ,xet.event_created_by
73572 ,xet.budgetary_control_flag
73573 , h2.CREDITING_REVENUE_FLAG source_38
73574 , h2.EVENT_ID source_42
73575 , h2.GL_DATE source_87
73576 , h2.UER_CCID source_91
73577 , h2.UBR_CCID source_92
73578 FROM xla_events_gt xet
73579 , PA_XLA_REVENUE_HEADERS_V h2
73580 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
73581 and xet.event_class_code = C_EVENT_CLASS_CODE
73582 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
73583
73584 ORDER BY event_id
73585 ;
73586
73587
73588 --
73589 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
73590 IS
73591 SELECT /*+ leading(xet) cardinality(xet,1) */
73592 -- Event Class Code: REVENUE_ADJ
73593 xet.entity_id
73594 ,xet.legal_entity_id
73595 ,xet.entity_code
73596 ,xet.transaction_number
73597 ,xet.event_id
73598 ,xet.event_class_code
73599 ,xet.event_type_code
73600 ,xet.event_number
73601 ,xet.event_date
73602 ,xet.transaction_date
73603 ,xet.reference_num_1
73604 ,xet.reference_num_2
73605 ,xet.reference_num_3
73606 ,xet.reference_num_4
73607 ,xet.reference_char_1
73608 ,xet.reference_char_2
73609 ,xet.reference_char_3
73610 ,xet.reference_char_4
73611 ,xet.reference_date_1
73612 ,xet.reference_date_2
73613 ,xet.reference_date_3
73614 ,xet.reference_date_4
73615 ,xet.event_created_by
73616 ,xet.budgetary_control_flag
73617 , l3.LINE_NUMBER
73618 , l3.PDR_UBR_CCID source_19
73619 , l3.PDR_UER_CCID source_20
73620 , l3.ACTUAL_UPG_CR_ACCT_CLASS source_23
73621 , l3.ENTERED_CURRENCY_CODE source_25
73622 , l3.EXCHANGE_RATE_DATE source_27
73626 , l3.USE_ACT_UPG_ATTRIB_FLAG source_31
73623 , l3.EXCHANGE_RATE source_28
73624 , l3.EXCHANGE_RATE_TYPE source_29
73625 , l3.ACTUAL_UPG_DR_ACCT_CLASS source_30
73627 , l3.REVENUE_DISTRIBUTION_TYPE source_36
73628 , l3.REVENUE_FIRST_DIST_ID source_39
73629 , l3.REVENUE_SECOND_DIST_ID source_40
73630 , l3.ENTERED_AMOUNT source_41
73631 , l3.ACCT_AMOUNT source_43
73632 , l1.REV_EVENT_TYPE_CLASSIFICATION source_58
73633 , fvl58.meaning source_58_meaning
73634 , l3.ACTUAL_UPG_CR_CCID source_59
73635 , l3.ACTUAL_UPG_DR_CCID source_60
73636 , l3.APPLICATION_ID source_61
73637 , l3.REVENUE_ENTITY_CODE source_62
73638 , l3.CR_REVENUE_FIRST_DIST_ID source_63
73639 , l3.PROJECT_ID source_64
73640 , l3.CR_REVENUE_SECOND_DIST_ID source_65
73641 , l3.PDR_DRAFT_REV_NUM_CREDITED source_66
73642 FROM xla_events_gt xet
73643 , PA_XLA_EVENT_TYPE_REF_V l1
73644 , PA_XLA_REVENUE_LINES_ADJ_V l3
73645 , fnd_lookup_values fvl58
73646 WHERE xet.event_id between x_first_event_id and x_last_event_id
73647 and xet.event_date between p_pad_start_date and p_pad_end_date
73648 and xet.event_class_code = C_EVENT_CLASS_CODE
73649 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
73650 AND l1.REV_EVENT_TYPE (+) =l3.REV_EVENT_TYPE AND fvl58.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
73651 AND fvl58.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
73652 AND fvl58.view_application_id(+) = 275
73653 AND fvl58.language(+) = USERENV('LANG')
73654 ;
73655
73656 --
73657 BEGIN
73658 IF g_log_enabled THEN
73659 l_log_module := C_DEFAULT_MODULE||'.EventClass_123';
73660 END IF;
73661 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
73662 trace
73663 (p_msg => 'BEGIN of EventClass_123'
73664 ,p_level => C_LEVEL_PROCEDURE
73665 ,p_module => l_log_module);
73666 END IF;
73667
73668 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73669 trace
73670 (p_msg => 'p_application_id = '||p_application_id||
73671 ' - p_base_ledger_id = '||p_base_ledger_id||
73672 ' - p_target_ledger_id = '||p_target_ledger_id||
73673 ' - p_language = '||p_language||
73674 ' - p_currency_code = '||p_currency_code||
73675 ' - p_sla_ledger_id = '||p_sla_ledger_id
73676 ,p_level => C_LEVEL_STATEMENT
73677 ,p_module => l_log_module);
73678 END IF;
73679 --
73680 -- initialze arrays
73681 --
73682 g_array_event.DELETE;
73683 l_rec_array_event := l_null_rec_array_event;
73684 --
73685 --------------------------------------
73686 -- 4262811 Initialze MPA Line Number
73687 --------------------------------------
73688 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
73689
73690 --
73691
73692 --
73693 OPEN header_cur;
73694 --
73695 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73696 trace
73697 (p_msg => 'SQL - FETCH header_cur'
73698 ,p_level => C_LEVEL_STATEMENT
73699 ,p_module => l_log_module);
73700 END IF;
73701 --
73702 LOOP
73703 FETCH header_cur BULK COLLECT INTO
73704 l_array_entity_id
73705 , l_array_legal_entity_id
73706 , l_array_entity_code
73707 , l_array_transaction_num
73708 , l_array_event_id
73709 , l_array_class_code
73710 , l_array_event_type
73711 , l_array_event_number
73712 , l_array_event_date
73713 , l_array_transaction_date
73714 , l_array_reference_num_1
73715 , l_array_reference_num_2
73716 , l_array_reference_num_3
73717 , l_array_reference_num_4
73718 , l_array_reference_char_1
73719 , l_array_reference_char_2
73720 , l_array_reference_char_3
73721 , l_array_reference_char_4
73722 , l_array_reference_date_1
73723 , l_array_reference_date_2
73724 , l_array_reference_date_3
73725 , l_array_reference_date_4
73726 , l_array_event_created_by
73727 , l_array_budgetary_control_flag
73728 , l_array_source_38
73729 , l_array_source_42
73730 , l_array_source_87
73731 , l_array_source_91
73732 , l_array_source_92
73733 LIMIT l_rows;
73734 --
73735 IF (C_LEVEL_EVENT >= g_log_level) THEN
73736 trace
73737 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
73738 ,p_level => C_LEVEL_EVENT
73739 ,p_module => l_log_module);
73740 END IF;
73741 --
73742 EXIT WHEN l_array_entity_id.COUNT = 0;
73743
73744 -- initialize arrays
73745 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
73746 XLA_AE_LINES_PKG.g_rec_lines := NULL;
73747
73748 --
73749 -- Bug 4458708
73750 --
73751 XLA_AE_LINES_PKG.g_LineNumber := 0;
73752
73753
73754 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
73755 g_last_hdr_idx := l_array_event_id.LAST;
73756 --
73757 -- loop for the headers. Each iteration is for each header extract row
73758 -- fetched in header cursor
73759 --
73760 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
73761
73762 --
73763 -- set event info as cache for other routines to refer event attributes
73764 --
73765 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
73769 ,p_target_ledger_id => p_target_ledger_id
73766 (p_application_id => p_application_id
73767 ,p_primary_ledger_id => p_primary_ledger_id
73768 ,p_base_ledger_id => p_base_ledger_id
73770 ,p_entity_id => l_array_entity_id(hdr_idx)
73771 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
73772 ,p_entity_code => l_array_entity_code(hdr_idx)
73773 ,p_transaction_num => l_array_transaction_num(hdr_idx)
73774 ,p_event_id => l_array_event_id(hdr_idx)
73775 ,p_event_class_code => l_array_class_code(hdr_idx)
73776 ,p_event_type_code => l_array_event_type(hdr_idx)
73777 ,p_event_number => l_array_event_number(hdr_idx)
73778 ,p_event_date => l_array_event_date(hdr_idx)
73779 ,p_transaction_date => l_array_transaction_date(hdr_idx)
73780 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
73781 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
73782 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
73783 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
73784 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
73785 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
73786 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
73787 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
73788 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
73789 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
73790 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
73791 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
73792 ,p_event_created_by => l_array_event_created_by(hdr_idx)
73793 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
73794
73795 --
73796 -- set the status of entry to C_VALID (0)
73797 --
73798 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
73799
73800 --
73801 -- initialize a row for ae header
73802 --
73803 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
73804
73805 l_event_id := l_array_event_id(hdr_idx);
73806
73807 --
73808 -- storing the hdr_idx for event. May be used by line cursor.
73809 --
73810 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
73811
73812 --
73813 -- store sources from header extract. This can be improved to
73814 -- store only those sources from header extract that may be used in lines
73815 --
73816
73817 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
73818 g_array_event(l_event_id).array_value_num('source_42') := l_array_source_42(hdr_idx);
73819 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
73820 g_array_event(l_event_id).array_value_num('source_91') := l_array_source_91(hdr_idx);
73821 g_array_event(l_event_id).array_value_num('source_92') := l_array_source_92(hdr_idx);
73822
73823 --
73824 -- initilaize the status of ae headers for diffrent balance types
73825 -- the status is initialised to C_NOT_CREATED (2)
73826 --
73827 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
73828 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
73829 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
73830
73831 --
73832 -- call api to validate and store accounting attributes for header
73833 --
73834
73835 ------------------------------------------------------------
73836 -- Accrual Reversal : to get date for Standard Source (NONE)
73837 ------------------------------------------------------------
73838 l_acc_rev_gl_date_source := NULL;
73839
73840 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
73841 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
73842
73843
73844 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
73845
73846 XLA_AE_HEADER_PKG.SetJeCategoryName;
73847
73848 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
73849 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
73850 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
73851 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
73852 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
73853
73854
73855 -- No header level analytical criteria
73856
73857 --
73858 --accounting attribute enhancement, bug 3612931
73859 --
73860 l_trx_reversal_source := SUBSTR(NULL, 1,30);
73861
73862 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
73863 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
73864
73865 xla_accounting_err_pkg.build_message
73866 (p_appli_s_name => 'XLA'
73867 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
73868 ,p_token_1 => 'ACCT_ATTR_NAME'
73869 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
73870 ,p_token_2 => 'PRODUCT_NAME'
73871 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
73872 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
73873 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
73877 --
73874 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
73875
73876 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
73878 -- following sets the accounting attributes needed to reverse
73879 -- accounting for a distributeion
73880 --
73881 xla_ae_lines_pkg.SetTrxReversalAttrs
73882 (p_event_id => l_event_id
73883 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
73884 ,p_trx_reversal_source => l_trx_reversal_source);
73885
73886 END IF;
73887
73888
73889 ----------------------------------------------------------------
73890 -- 4262811 - update the header statuses to invalid in need be
73891 ----------------------------------------------------------------
73892 --
73893 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
73894
73895
73896 -----------------------------------------------
73897 -- No accrual reversal for the event class/type
73898 -----------------------------------------------
73899 ----------------------------------------------------------------
73900
73901 --
73902 -- this ends the header loop iteration for one bulk fetch
73903 --
73904 END LOOP;
73905
73906 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
73907 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
73908
73909 --
73910 -- insert dummy rows into lines gt table that were created due to
73911 -- transaction reversals
73912 --
73913 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
73914 l_result := XLA_AE_LINES_PKG.InsertLines;
73915 END IF;
73916
73917 --
73918 -- reset the temp_line_num for each set of events fetched from header
73919 -- cursor rather than doing it for each new event in line cursor
73920 -- Bug 3939231
73921 --
73922 xla_ae_lines_pkg.g_temp_line_num := 0;
73923
73924
73925
73926 --
73927 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
73928 --
73929 --
73930 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
73931
73932 trace
73933 (p_msg => 'SQL - FETCH line_cur'
73934 ,p_level => C_LEVEL_STATEMENT
73935 ,p_module => l_log_module);
73936
73937 END IF;
73938 --
73939 --
73940 LOOP
73941 --
73942 FETCH line_cur BULK COLLECT INTO
73943 l_array_entity_id
73944 , l_array_legal_entity_id
73945 , l_array_entity_code
73946 , l_array_transaction_num
73947 , l_array_event_id
73948 , l_array_class_code
73949 , l_array_event_type
73950 , l_array_event_number
73951 , l_array_event_date
73952 , l_array_transaction_date
73953 , l_array_reference_num_1
73954 , l_array_reference_num_2
73955 , l_array_reference_num_3
73956 , l_array_reference_num_4
73957 , l_array_reference_char_1
73958 , l_array_reference_char_2
73959 , l_array_reference_char_3
73960 , l_array_reference_char_4
73961 , l_array_reference_date_1
73962 , l_array_reference_date_2
73963 , l_array_reference_date_3
73964 , l_array_reference_date_4
73965 , l_array_event_created_by
73966 , l_array_budgetary_control_flag
73967 , l_array_extract_line_num
73968 , l_array_source_19
73969 , l_array_source_20
73970 , l_array_source_23
73971 , l_array_source_25
73972 , l_array_source_27
73973 , l_array_source_28
73974 , l_array_source_29
73975 , l_array_source_30
73976 , l_array_source_31
73977 , l_array_source_36
73978 , l_array_source_39
73979 , l_array_source_40
73980 , l_array_source_41
73981 , l_array_source_43
73982 , l_array_source_58
73983 , l_array_source_58_meaning
73984 , l_array_source_59
73985 , l_array_source_60
73986 , l_array_source_61
73987 , l_array_source_62
73988 , l_array_source_63
73989 , l_array_source_64
73990 , l_array_source_65
73991 , l_array_source_66
73992 LIMIT l_rows;
73993
73994 --
73995 IF (C_LEVEL_EVENT >= g_log_level) THEN
73996 trace
73997 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
73998 ,p_level => C_LEVEL_EVENT
73999 ,p_module => l_log_module);
74000 END IF;
74001 --
74002 EXIT WHEN l_array_entity_id.count = 0;
74003
74004 XLA_AE_LINES_PKG.g_rec_lines := null;
74005
74006 --
74007 -- Bug 4458708
74008 --
74009 XLA_AE_LINES_PKG.g_LineNumber := 0;
74010 --
74011 --
74012
74013 FOR Idx IN 1..l_array_event_id.count LOOP
74014 --
74015 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
74016 --
74017 l_event_id := l_array_event_id(idx); -- 5648433
74018
74019 --
74020 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
74021 --
74022
74023 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
74024 (g_array_event(l_event_id).array_value_num('header_index'))
74025 ,'N'
74026 ) <> 'Y'
74027 THEN
74031 ,p_level => C_LEVEL_STATEMENT
74028 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74029 trace
74030 (p_msg => 'Trancaction revesal option is not Y '
74032 ,p_module => l_log_module);
74033 END IF;
74034
74035 --
74036 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
74037 --
74038 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
74039 --
74040 -- set event info as cache for other routines to refer event attributes
74041 --
74042
74043 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
74044 l_previous_event_id := l_event_id;
74045
74046 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
74047 (p_application_id => p_application_id
74048 ,p_primary_ledger_id => p_primary_ledger_id
74049 ,p_base_ledger_id => p_base_ledger_id
74050 ,p_target_ledger_id => p_target_ledger_id
74051 ,p_entity_id => l_array_entity_id(Idx)
74052 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
74053 ,p_entity_code => l_array_entity_code(Idx)
74054 ,p_transaction_num => l_array_transaction_num(Idx)
74055 ,p_event_id => l_array_event_id(Idx)
74056 ,p_event_class_code => l_array_class_code(Idx)
74057 ,p_event_type_code => l_array_event_type(Idx)
74058 ,p_event_number => l_array_event_number(Idx)
74059 ,p_event_date => l_array_event_date(Idx)
74060 ,p_transaction_date => l_array_transaction_date(Idx)
74061 ,p_reference_num_1 => l_array_reference_num_1(Idx)
74062 ,p_reference_num_2 => l_array_reference_num_2(Idx)
74063 ,p_reference_num_3 => l_array_reference_num_3(Idx)
74064 ,p_reference_num_4 => l_array_reference_num_4(Idx)
74065 ,p_reference_char_1 => l_array_reference_char_1(Idx)
74066 ,p_reference_char_2 => l_array_reference_char_2(Idx)
74067 ,p_reference_char_3 => l_array_reference_char_3(Idx)
74068 ,p_reference_char_4 => l_array_reference_char_4(Idx)
74069 ,p_reference_date_1 => l_array_reference_date_1(Idx)
74070 ,p_reference_date_2 => l_array_reference_date_2(Idx)
74071 ,p_reference_date_3 => l_array_reference_date_3(Idx)
74072 ,p_reference_date_4 => l_array_reference_date_4(Idx)
74073 ,p_event_created_by => l_array_event_created_by(Idx)
74074 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
74075 --
74076 END IF;
74077
74078
74079
74080 --
74081 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
74082
74083 l_acct_reversal_source := SUBSTR(NULL, 1,30);
74084
74085 IF l_continue_with_lines THEN
74086 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
74087 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
74088
74089 xla_accounting_err_pkg.build_message
74090 (p_appli_s_name => 'XLA'
74091 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
74092 ,p_token_1 => 'LINE_NUMBER'
74093 ,p_value_1 => l_array_extract_line_num(Idx)
74094 ,p_token_2 => 'PRODUCT_NAME'
74095 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
74096 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
74097 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
74098 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
74099
74100 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
74101 --
74102 -- following sets the accounting attributes needed to reverse
74103 -- accounting for a distributeion
74104 --
74105
74106 --
74107 -- 5217187
74108 --
74109 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
74110 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
74111 g_array_event(l_event_id).array_value_num('header_index'));
74112 --
74113 --
74114
74115 -- No reversal code generated
74116
74117 xla_ae_lines_pkg.SetAcctReversalAttrs
74118 (p_event_id => l_event_id
74119 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
74120 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74121 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
74122 END IF;
74123
74124 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
74125 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
74126
74127 --
74128 AcctLineType_31 (
74129 p_application_id => p_application_id
74130 ,p_event_id => l_event_id
74131 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74132 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74133 ,p_actual_flag => l_actual_flag
74134 ,p_balance_type_code => l_balance_type_code
74135 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74136
74137 , p_source_23 => l_array_source_23(Idx)
74138 , p_source_25 => l_array_source_25(Idx)
74139 , p_source_27 => l_array_source_27(Idx)
74140 , p_source_28 => l_array_source_28(Idx)
74141 , p_source_29 => l_array_source_29(Idx)
74145 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74142 , p_source_30 => l_array_source_30(Idx)
74143 , p_source_31 => l_array_source_31(Idx)
74144 , p_source_36 => l_array_source_36(Idx)
74146 , p_source_39 => l_array_source_39(Idx)
74147 , p_source_40 => l_array_source_40(Idx)
74148 , p_source_41 => l_array_source_41(Idx)
74149 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74150 , p_source_43 => l_array_source_43(Idx)
74151 , p_source_58 => l_array_source_58(Idx)
74152 , p_source_58_meaning => l_array_source_58_meaning(Idx)
74153 , p_source_59 => l_array_source_59(Idx)
74154 , p_source_60 => l_array_source_60(Idx)
74155 , p_source_61 => l_array_source_61(Idx)
74156 , p_source_62 => l_array_source_62(Idx)
74157 , p_source_63 => l_array_source_63(Idx)
74158 , p_source_64 => l_array_source_64(Idx)
74159 , p_source_65 => l_array_source_65(Idx)
74160 , p_source_66 => l_array_source_66(Idx)
74161 );
74162 If(l_balance_type_code = 'A') THEN
74163 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74164 END IF;
74165
74166 --
74167
74168
74169 --
74170 AcctLineType_33 (
74171 p_application_id => p_application_id
74172 ,p_event_id => l_event_id
74173 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74174 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74175 ,p_actual_flag => l_actual_flag
74176 ,p_balance_type_code => l_balance_type_code
74177 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74178
74179 , p_source_23 => l_array_source_23(Idx)
74180 , p_source_25 => l_array_source_25(Idx)
74181 , p_source_27 => l_array_source_27(Idx)
74182 , p_source_28 => l_array_source_28(Idx)
74183 , p_source_29 => l_array_source_29(Idx)
74184 , p_source_30 => l_array_source_30(Idx)
74185 , p_source_31 => l_array_source_31(Idx)
74186 , p_source_36 => l_array_source_36(Idx)
74187 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74188 , p_source_39 => l_array_source_39(Idx)
74189 , p_source_40 => l_array_source_40(Idx)
74190 , p_source_41 => l_array_source_41(Idx)
74191 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74192 , p_source_43 => l_array_source_43(Idx)
74193 , p_source_58 => l_array_source_58(Idx)
74194 , p_source_58_meaning => l_array_source_58_meaning(Idx)
74195 , p_source_59 => l_array_source_59(Idx)
74196 , p_source_60 => l_array_source_60(Idx)
74197 , p_source_61 => l_array_source_61(Idx)
74198 , p_source_62 => l_array_source_62(Idx)
74199 , p_source_63 => l_array_source_63(Idx)
74200 , p_source_64 => l_array_source_64(Idx)
74201 , p_source_65 => l_array_source_65(Idx)
74202 , p_source_66 => l_array_source_66(Idx)
74203 );
74204 If(l_balance_type_code = 'A') THEN
74205 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74206 END IF;
74207
74208 --
74209
74210
74211 --
74212 AcctLineType_66 (
74213 p_application_id => p_application_id
74214 ,p_event_id => l_event_id
74215 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74216 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74217 ,p_actual_flag => l_actual_flag
74218 ,p_balance_type_code => l_balance_type_code
74219 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74220
74221 , p_source_23 => l_array_source_23(Idx)
74222 , p_source_25 => l_array_source_25(Idx)
74223 , p_source_27 => l_array_source_27(Idx)
74224 , p_source_28 => l_array_source_28(Idx)
74225 , p_source_29 => l_array_source_29(Idx)
74226 , p_source_30 => l_array_source_30(Idx)
74227 , p_source_31 => l_array_source_31(Idx)
74228 , p_source_36 => l_array_source_36(Idx)
74229 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74230 , p_source_39 => l_array_source_39(Idx)
74231 , p_source_40 => l_array_source_40(Idx)
74232 , p_source_41 => l_array_source_41(Idx)
74233 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74234 , p_source_43 => l_array_source_43(Idx)
74235 , p_source_59 => l_array_source_59(Idx)
74236 , p_source_60 => l_array_source_60(Idx)
74237 , p_source_61 => l_array_source_61(Idx)
74238 , p_source_62 => l_array_source_62(Idx)
74239 , p_source_63 => l_array_source_63(Idx)
74240 , p_source_64 => l_array_source_64(Idx)
74241 , p_source_65 => l_array_source_65(Idx)
74242 , p_source_66 => l_array_source_66(Idx)
74243 );
74244 If(l_balance_type_code = 'A') THEN
74245 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74246 END IF;
74247
74248 --
74249
74250
74251 --
74252 AcctLineType_68 (
74253 p_application_id => p_application_id
74254 ,p_event_id => l_event_id
74255 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74256 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74257 ,p_actual_flag => l_actual_flag
74258 ,p_balance_type_code => l_balance_type_code
74259 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74260
74261 , p_source_23 => l_array_source_23(Idx)
74262 , p_source_25 => l_array_source_25(Idx)
74263 , p_source_27 => l_array_source_27(Idx)
74264 , p_source_28 => l_array_source_28(Idx)
74265 , p_source_29 => l_array_source_29(Idx)
74266 , p_source_30 => l_array_source_30(Idx)
74267 , p_source_31 => l_array_source_31(Idx)
74268 , p_source_36 => l_array_source_36(Idx)
74269 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74270 , p_source_39 => l_array_source_39(Idx)
74271 , p_source_40 => l_array_source_40(Idx)
74275 , p_source_59 => l_array_source_59(Idx)
74272 , p_source_41 => l_array_source_41(Idx)
74273 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74274 , p_source_43 => l_array_source_43(Idx)
74276 , p_source_60 => l_array_source_60(Idx)
74277 , p_source_61 => l_array_source_61(Idx)
74278 , p_source_62 => l_array_source_62(Idx)
74279 , p_source_63 => l_array_source_63(Idx)
74280 , p_source_64 => l_array_source_64(Idx)
74281 , p_source_65 => l_array_source_65(Idx)
74282 , p_source_66 => l_array_source_66(Idx)
74283 );
74284 If(l_balance_type_code = 'A') THEN
74285 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74286 END IF;
74287
74288 --
74289
74290
74291 --
74292 AcctLineType_77 (
74293 p_application_id => p_application_id
74294 ,p_event_id => l_event_id
74295 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74296 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74297 ,p_actual_flag => l_actual_flag
74298 ,p_balance_type_code => l_balance_type_code
74299 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74300
74301 , p_source_23 => l_array_source_23(Idx)
74302 , p_source_25 => l_array_source_25(Idx)
74303 , p_source_27 => l_array_source_27(Idx)
74304 , p_source_28 => l_array_source_28(Idx)
74305 , p_source_29 => l_array_source_29(Idx)
74306 , p_source_30 => l_array_source_30(Idx)
74307 , p_source_31 => l_array_source_31(Idx)
74308 , p_source_36 => l_array_source_36(Idx)
74309 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74310 , p_source_39 => l_array_source_39(Idx)
74311 , p_source_40 => l_array_source_40(Idx)
74312 , p_source_41 => l_array_source_41(Idx)
74313 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74314 , p_source_43 => l_array_source_43(Idx)
74315 , p_source_59 => l_array_source_59(Idx)
74316 , p_source_60 => l_array_source_60(Idx)
74317 , p_source_61 => l_array_source_61(Idx)
74318 , p_source_62 => l_array_source_62(Idx)
74319 , p_source_63 => l_array_source_63(Idx)
74320 , p_source_64 => l_array_source_64(Idx)
74321 , p_source_65 => l_array_source_65(Idx)
74322 , p_source_66 => l_array_source_66(Idx)
74323 );
74324 If(l_balance_type_code = 'A') THEN
74325 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74326 END IF;
74327
74328 --
74329
74330
74331 --
74332 AcctLineType_83 (
74333 p_application_id => p_application_id
74334 ,p_event_id => l_event_id
74335 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74336 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74337 ,p_actual_flag => l_actual_flag
74338 ,p_balance_type_code => l_balance_type_code
74339 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74340
74341 , p_source_19 => l_array_source_19(Idx)
74342 , p_source_23 => l_array_source_23(Idx)
74343 , p_source_25 => l_array_source_25(Idx)
74344 , p_source_27 => l_array_source_27(Idx)
74345 , p_source_28 => l_array_source_28(Idx)
74346 , p_source_29 => l_array_source_29(Idx)
74347 , p_source_30 => l_array_source_30(Idx)
74348 , p_source_31 => l_array_source_31(Idx)
74349 , p_source_36 => l_array_source_36(Idx)
74350 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74351 , p_source_39 => l_array_source_39(Idx)
74352 , p_source_40 => l_array_source_40(Idx)
74353 , p_source_41 => l_array_source_41(Idx)
74354 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74355 , p_source_43 => l_array_source_43(Idx)
74356 , p_source_59 => l_array_source_59(Idx)
74357 , p_source_60 => l_array_source_60(Idx)
74358 , p_source_61 => l_array_source_61(Idx)
74359 , p_source_62 => l_array_source_62(Idx)
74360 , p_source_63 => l_array_source_63(Idx)
74361 , p_source_64 => l_array_source_64(Idx)
74362 , p_source_65 => l_array_source_65(Idx)
74363 , p_source_66 => l_array_source_66(Idx)
74364 );
74365 If(l_balance_type_code = 'A') THEN
74366 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74367 END IF;
74368
74369 --
74370
74371
74372 --
74373 AcctLineType_85 (
74374 p_application_id => p_application_id
74375 ,p_event_id => l_event_id
74376 ,p_calculate_acctd_flag => l_calculate_acctd_flag
74377 ,p_calculate_g_l_flag => l_calculate_g_l_flag
74378 ,p_actual_flag => l_actual_flag
74379 ,p_balance_type_code => l_balance_type_code
74380 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
74381
74382 , p_source_20 => l_array_source_20(Idx)
74383 , p_source_23 => l_array_source_23(Idx)
74384 , p_source_25 => l_array_source_25(Idx)
74385 , p_source_27 => l_array_source_27(Idx)
74386 , p_source_28 => l_array_source_28(Idx)
74387 , p_source_29 => l_array_source_29(Idx)
74388 , p_source_30 => l_array_source_30(Idx)
74389 , p_source_31 => l_array_source_31(Idx)
74390 , p_source_36 => l_array_source_36(Idx)
74391 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
74392 , p_source_39 => l_array_source_39(Idx)
74393 , p_source_40 => l_array_source_40(Idx)
74394 , p_source_41 => l_array_source_41(Idx)
74395 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
74396 , p_source_43 => l_array_source_43(Idx)
74397 , p_source_59 => l_array_source_59(Idx)
74398 , p_source_60 => l_array_source_60(Idx)
74399 , p_source_61 => l_array_source_61(Idx)
74400 , p_source_62 => l_array_source_62(Idx)
74401 , p_source_63 => l_array_source_63(Idx)
74402 , p_source_64 => l_array_source_64(Idx)
74403 , p_source_65 => l_array_source_65(Idx)
74404 , p_source_66 => l_array_source_66(Idx)
74405 );
74409
74406 If(l_balance_type_code = 'A') THEN
74407 l_actual_gain_loss_ref := l_gain_or_loss_ref;
74408 END IF;
74410 --
74411
74412 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
74413 -- or secondary ledger that has different currency with primary
74414 -- or alc that is calculated by sla
74415 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
74416 (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'))
74417
74418 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
74419 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
74420 AND (l_actual_flag = 'A')) THEN
74421 XLA_AE_LINES_PKG.CreateGainOrLossLines(
74422 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
74423 ,p_application_id => p_application_id
74424 ,p_amb_context_code => 'DEFAULT'
74425 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
74426 ,p_event_class_code => C_EVENT_CLASS_CODE
74427 ,p_event_type_code => C_EVENT_TYPE_CODE
74428
74429 ,p_gain_ccid => g_array_event(l_event_id).array_value_num('source_91')
74430 ,p_loss_ccid => g_array_event(l_event_id).array_value_num('source_92')
74431
74432 ,p_actual_flag => l_actual_flag
74433 ,p_enc_flag => null
74434 ,p_actual_g_l_ref => l_actual_gain_loss_ref
74435 ,p_enc_g_l_ref => null
74436 );
74437 END IF;
74438 END IF;
74439 END IF;
74440
74441 ELSE
74442 --
74443 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
74444 --
74445 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74446 trace
74447 (p_msg => 'Trancaction revesal option is Y'
74448 ,p_level => C_LEVEL_STATEMENT
74449 ,p_module => l_log_module);
74450 END IF;
74451 END IF;
74452
74453 END LOOP;
74454 l_result := XLA_AE_LINES_PKG.InsertLines ;
74455 end loop;
74456 close line_cur;
74457
74458
74459 --
74460 -- insert headers into xla_ae_headers_gt table
74461 --
74462 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
74463
74464 -- insert into errors table here.
74465
74466 END LOOP;
74467
74468 --
74469 -- 4865292
74470 --
74471 -- Compare g_hdr_extract_count with event count in
74472 -- CreateHeadersAndLines.
74473 --
74474 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
74475
74476 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74477 trace (p_msg => '# rows extracted from header extract objects '
74478 || ' (running total): '
74479 || g_hdr_extract_count
74480 ,p_level => C_LEVEL_STATEMENT
74481 ,p_module => l_log_module);
74482 END IF;
74483
74484 CLOSE header_cur;
74485 --
74486
74487 --
74488 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74489 trace
74490 (p_msg => 'END of EventClass_123'
74491 ,p_level => C_LEVEL_PROCEDURE
74492 ,p_module => l_log_module);
74493 END IF;
74494 --
74495 RETURN l_result;
74496 EXCEPTION
74497 WHEN xla_exceptions_pkg.application_exception THEN
74498
74499 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
74500
74501
74502 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
74503
74504 RAISE;
74505 WHEN OTHERS THEN
74506 xla_exceptions_pkg.raise_message
74507 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_123');
74508 END EventClass_123;
74509 --
74510
74511 ---------------------------------------
74512 --
74513 -- PRIVATE PROCEDURE
74514 -- insert_sources_124
74515 --
74516 ----------------------------------------
74517 --
74518 PROCEDURE insert_sources_124(
74519 p_target_ledger_id IN NUMBER
74520 , p_language IN VARCHAR2
74521 , p_sla_ledger_id IN NUMBER
74522 , p_pad_start_date IN DATE
74523 , p_pad_end_date IN DATE
74524 )
74525 IS
74526
74527 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ALL';
74528 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE';
74529 p_apps_owner VARCHAR2(30);
74530 l_log_module VARCHAR2(240);
74531 BEGIN
74532 IF g_log_enabled THEN
74533 l_log_module := C_DEFAULT_MODULE||'.insert_sources_124';
74534 END IF;
74535 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74536
74537 trace
74538 (p_msg => 'BEGIN of insert_sources_124'
74539 ,p_level => C_LEVEL_PROCEDURE
74540 ,p_module => l_log_module);
74541
74542 END IF;
74543
74544 -- select APPS owner
74545 SELECT oracle_username
74546 INTO p_apps_owner
74547 FROM fnd_oracle_userid
74548 WHERE read_only_flag = 'U'
74549 ;
74550
74551 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74552 trace
74556 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
74553 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
74554 ' - p_language = '||p_language||
74555 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
74557 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
74558 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
74559 ,p_level => C_LEVEL_STATEMENT
74560 ,p_module => l_log_module);
74561 END IF;
74562
74563
74564 --
74565 INSERT INTO xla_diag_sources --hdr2
74566 (
74567 event_id
74568 , ledger_id
74569 , sla_ledger_id
74570 , description_language
74571 , object_name
74572 , object_type_code
74573 , line_number
74574 , source_application_id
74575 , source_type_code
74576 , source_code
74577 , source_value
74578 , source_meaning
74579 , created_by
74580 , creation_date
74581 , last_update_date
74582 , last_updated_by
74583 , last_update_login
74584 , program_update_date
74585 , program_application_id
74586 , program_id
74587 , request_id
74588 )
74589 SELECT
74590 event_id
74591 , p_target_ledger_id
74592 , p_sla_ledger_id
74593 , p_language
74594 , object_name
74595 , object_type_code
74596 , line_number
74597 , source_application_id
74598 , source_type_code
74599 , source_code
74600 , SUBSTR(source_value ,1,1996)
74601 , SUBSTR(source_meaning ,1,200)
74602 , xla_environment_pkg.g_Usr_Id
74603 , TRUNC(SYSDATE)
74604 , TRUNC(SYSDATE)
74605 , xla_environment_pkg.g_Usr_Id
74606 , xla_environment_pkg.g_Login_Id
74607 , TRUNC(SYSDATE)
74608 , xla_environment_pkg.g_Prog_Appl_Id
74609 , xla_environment_pkg.g_Prog_Id
74610 , xla_environment_pkg.g_Req_Id
74611 FROM (
74612 SELECT xet.event_id event_id
74613 , 0 line_number
74614 , CASE r
74615 WHEN 1 THEN 'PA_XLA_REVENUE_HEADERS_V'
74616 WHEN 2 THEN 'PA_XLA_REVENUE_HEADERS_V'
74617 WHEN 3 THEN 'PA_XLA_REVENUE_HEADERS_V'
74618 WHEN 4 THEN 'PA_XLA_REVENUE_HEADERS_V'
74619 WHEN 5 THEN 'PA_XLA_REVENUE_HEADERS_V'
74620
74621 ELSE null
74622 END object_name
74623 , CASE r
74624 WHEN 1 THEN 'HEADER'
74625 WHEN 2 THEN 'HEADER'
74626 WHEN 3 THEN 'HEADER'
74627 WHEN 4 THEN 'HEADER'
74628 WHEN 5 THEN 'HEADER'
74629
74630 ELSE null
74631 END object_type_code
74632 , CASE r
74633 WHEN 1 THEN '275'
74634 WHEN 2 THEN '275'
74635 WHEN 3 THEN '275'
74636 WHEN 4 THEN '275'
74637 WHEN 5 THEN '275'
74638
74639 ELSE null
74640 END source_application_id
74641 , 'S' source_type_code
74642 , CASE r
74643 WHEN 1 THEN 'CREDITING_REVENUE_FLAG'
74644 WHEN 2 THEN 'EVENT_ID'
74645 WHEN 3 THEN 'GL_DATE'
74646 WHEN 4 THEN 'UER_CCID'
74647 WHEN 5 THEN 'UBR_CCID'
74648
74649 ELSE null
74650 END source_code
74651 , CASE r
74652 WHEN 1 THEN TO_CHAR(h2.CREDITING_REVENUE_FLAG)
74653 WHEN 2 THEN TO_CHAR(h2.EVENT_ID)
74654 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
74655 WHEN 4 THEN TO_CHAR(h2.UER_CCID)
74656 WHEN 5 THEN TO_CHAR(h2.UBR_CCID)
74657
74658 ELSE null
74659 END source_value
74660 , CASE r
74661 WHEN 1 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
74662 103371
74663 ,TO_CHAR(h2.CREDITING_REVENUE_FLAG)
74664 ,'CREDITING_REVENUE_FLAG'
74665 ,'S'
74666 ,275)
74667
74668 ELSE null
74669 END source_meaning
74670 FROM xla_events_gt xet
74671 , PA_XLA_REVENUE_HEADERS_V h2
74672 ,(select rownum r from all_objects where rownum <= 5 and owner = p_apps_owner)
74673 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
74674 AND xet.event_class_code = C_EVENT_CLASS_CODE
74675 AND h2.event_id = xet.event_id
74676
74677 )
74678 ;
74679 --
74680 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74681
74682 trace
74683 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
74684 ,p_level => C_LEVEL_STATEMENT
74685 ,p_module => l_log_module);
74686
74687 END IF;
74688 --
74689
74690
74694 (
74691
74692 --
74693 INSERT INTO xla_diag_sources --line2
74695 event_id
74696 , ledger_id
74697 , sla_ledger_id
74698 , description_language
74699 , object_name
74700 , object_type_code
74701 , line_number
74702 , source_application_id
74703 , source_type_code
74704 , source_code
74705 , source_value
74706 , source_meaning
74707 , created_by
74708 , creation_date
74709 , last_update_date
74710 , last_updated_by
74711 , last_update_login
74712 , program_update_date
74713 , program_application_id
74714 , program_id
74715 , request_id
74716 )
74717 SELECT event_id
74718 , p_target_ledger_id
74719 , p_sla_ledger_id
74720 , p_language
74721 , object_name
74722 , object_type_code
74723 , line_number
74724 , source_application_id
74725 , source_type_code
74726 , source_code
74727 , SUBSTR(source_value,1,1996)
74728 , SUBSTR(source_meaning ,1,200)
74729 , xla_environment_pkg.g_Usr_Id
74730 , TRUNC(SYSDATE)
74731 , TRUNC(SYSDATE)
74732 , xla_environment_pkg.g_Usr_Id
74733 , xla_environment_pkg.g_Login_Id
74734 , TRUNC(SYSDATE)
74735 , xla_environment_pkg.g_Prog_Appl_Id
74736 , xla_environment_pkg.g_Prog_Id
74737 , xla_environment_pkg.g_Req_Id
74738 FROM (
74739 SELECT xet.event_id event_id
74740 , l3.line_number line_number
74741 , CASE r
74742 WHEN 1 THEN 'PA_XLA_REVENUE_LINES_V'
74743 WHEN 2 THEN 'PA_XLA_REVENUE_LINES_V'
74744 WHEN 3 THEN 'PA_XLA_REVENUE_LINES_V'
74745 WHEN 4 THEN 'PA_XLA_REVENUE_LINES_V'
74746 WHEN 5 THEN 'PA_XLA_REVENUE_LINES_V'
74747 WHEN 6 THEN 'PA_XLA_REVENUE_LINES_V'
74748 WHEN 7 THEN 'PA_XLA_REVENUE_LINES_V'
74749 WHEN 8 THEN 'PA_XLA_REVENUE_LINES_V'
74750 WHEN 9 THEN 'PA_XLA_REVENUE_LINES_V'
74751 WHEN 10 THEN 'PA_XLA_REVENUE_LINES_V'
74752 WHEN 11 THEN 'PA_XLA_REVENUE_LINES_V'
74753 WHEN 12 THEN 'PA_XLA_REVENUE_LINES_V'
74754 WHEN 13 THEN 'PA_XLA_REVENUE_LINES_V'
74755 WHEN 14 THEN 'PA_XLA_REVENUE_LINES_V'
74756 WHEN 15 THEN 'PA_XLA_REVENUE_LINES_V'
74757 WHEN 16 THEN 'PA_XLA_REVENUE_LINES_V'
74758 WHEN 17 THEN 'PA_XLA_EVENT_TYPE_REF_V'
74759
74760 ELSE null
74761 END object_name
74762 , CASE r
74763 WHEN 1 THEN 'LINE'
74764 WHEN 2 THEN 'LINE'
74765 WHEN 3 THEN 'LINE'
74766 WHEN 4 THEN 'LINE'
74767 WHEN 5 THEN 'LINE'
74768 WHEN 6 THEN 'LINE'
74769 WHEN 7 THEN 'LINE'
74770 WHEN 8 THEN 'LINE'
74771 WHEN 9 THEN 'LINE'
74772 WHEN 10 THEN 'LINE'
74773 WHEN 11 THEN 'LINE'
74774 WHEN 12 THEN 'LINE'
74775 WHEN 13 THEN 'LINE'
74776 WHEN 14 THEN 'LINE'
74777 WHEN 15 THEN 'LINE'
74778 WHEN 16 THEN 'LINE'
74779 WHEN 17 THEN 'LINE'
74780
74781 ELSE null
74782 END object_type_code
74783 , CASE r
74784 WHEN 1 THEN '275'
74785 WHEN 2 THEN '275'
74786 WHEN 3 THEN '275'
74787 WHEN 4 THEN '275'
74788 WHEN 5 THEN '275'
74789 WHEN 6 THEN '275'
74790 WHEN 7 THEN '275'
74791 WHEN 8 THEN '275'
74792 WHEN 9 THEN '275'
74793 WHEN 10 THEN '275'
74794 WHEN 11 THEN '275'
74795 WHEN 12 THEN '275'
74796 WHEN 13 THEN '275'
74797 WHEN 14 THEN '275'
74798 WHEN 15 THEN '275'
74799 WHEN 16 THEN '275'
74800 WHEN 17 THEN '275'
74801
74802 ELSE null
74803 END source_application_id
74804 , 'S' source_type_code
74805 , CASE r
74806 WHEN 1 THEN 'PERDL_CODE_COMBINATION_ID'
74807 WHEN 2 THEN 'PDR_REALIZED_GAINS_CCID'
74808 WHEN 3 THEN 'PDR_REALIZED_LOSSES_CCID'
74809 WHEN 4 THEN 'PRDL_CODE_COMBINATION_ID'
74810 WHEN 5 THEN 'PDR_UBR_CCID'
74811 WHEN 6 THEN 'PDR_UER_CCID'
74812 WHEN 7 THEN 'ENTERED_CURRENCY_CODE'
74813 WHEN 8 THEN 'EXCHANGE_RATE_DATE'
74814 WHEN 9 THEN 'EXCHANGE_RATE'
74815 WHEN 10 THEN 'EXCHANGE_RATE_TYPE'
74816 WHEN 11 THEN 'REVENUE_DISTRIBUTION_TYPE'
74817 WHEN 12 THEN 'SYSTEM_LINKAGE_FUNCTION'
74818 WHEN 13 THEN 'REVENUE_FIRST_DIST_ID'
74819 WHEN 14 THEN 'REVENUE_SECOND_DIST_ID'
74820 WHEN 15 THEN 'ENTERED_AMOUNT'
74824 ELSE null
74821 WHEN 16 THEN 'ACCT_AMOUNT'
74822 WHEN 17 THEN 'REV_EVENT_TYPE_CLASSIFICATION'
74823
74825 END source_code
74826 , CASE r
74827 WHEN 1 THEN TO_CHAR(l3.PERDL_CODE_COMBINATION_ID)
74828 WHEN 2 THEN TO_CHAR(l3.PDR_REALIZED_GAINS_CCID)
74829 WHEN 3 THEN TO_CHAR(l3.PDR_REALIZED_LOSSES_CCID)
74830 WHEN 4 THEN TO_CHAR(l3.PRDL_CODE_COMBINATION_ID)
74831 WHEN 5 THEN TO_CHAR(l3.PDR_UBR_CCID)
74832 WHEN 6 THEN TO_CHAR(l3.PDR_UER_CCID)
74833 WHEN 7 THEN TO_CHAR(l3.ENTERED_CURRENCY_CODE)
74834 WHEN 8 THEN TO_CHAR(l3.EXCHANGE_RATE_DATE)
74835 WHEN 9 THEN TO_CHAR(l3.EXCHANGE_RATE)
74836 WHEN 10 THEN TO_CHAR(l3.EXCHANGE_RATE_TYPE)
74837 WHEN 11 THEN TO_CHAR(l3.REVENUE_DISTRIBUTION_TYPE)
74838 WHEN 12 THEN TO_CHAR(l3.SYSTEM_LINKAGE_FUNCTION)
74839 WHEN 13 THEN TO_CHAR(l3.REVENUE_FIRST_DIST_ID)
74840 WHEN 14 THEN TO_CHAR(l3.REVENUE_SECOND_DIST_ID)
74841 WHEN 15 THEN TO_CHAR(l3.ENTERED_AMOUNT)
74842 WHEN 16 THEN TO_CHAR(l3.ACCT_AMOUNT)
74843 WHEN 17 THEN TO_CHAR(l1.REV_EVENT_TYPE_CLASSIFICATION)
74844
74845 ELSE null
74846 END source_value
74847 , CASE r
74848 WHEN 17 THEN fvl58.meaning
74849
74850 ELSE null
74851 END source_meaning
74852 FROM xla_events_gt xet
74853 , PA_XLA_EVENT_TYPE_REF_V l1
74854 , PA_XLA_REVENUE_LINES_V l3
74855 , fnd_lookup_values fvl58
74856 , (select rownum r from all_objects where rownum <= 17 and owner = p_apps_owner)
74857 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
74858 AND xet.event_class_code = C_EVENT_CLASS_CODE
74859 AND l3.event_id = xet.event_id
74860 AND l1.rev_event_type (+) =l3.rev_event_type AND fvl58.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
74861 AND fvl58.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
74862 AND fvl58.view_application_id(+) = 275
74863 AND fvl58.language(+) = USERENV('LANG')
74864
74865 )
74866 ;
74867 --
74868 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
74869
74870 trace
74871 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
74872 ,p_level => C_LEVEL_STATEMENT
74873 ,p_module => l_log_module);
74874
74875 END IF;
74876
74877
74878 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
74879 trace
74880 (p_msg => 'END of insert_sources_124'
74881 ,p_level => C_LEVEL_PROCEDURE
74882 ,p_module => l_log_module);
74883 END IF;
74884 EXCEPTION
74885 WHEN xla_exceptions_pkg.application_exception THEN
74886 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
74887 trace
74888 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
74889 ,p_level => C_LEVEL_EXCEPTION
74890 ,p_module => l_log_module);
74891 END IF;
74892 RAISE;
74893 WHEN OTHERS THEN
74894 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
74895 trace
74896 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
74897 ,p_level => C_LEVEL_EXCEPTION
74898 ,p_module => l_log_module);
74899 END IF;
74900 xla_exceptions_pkg.raise_message
74901 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_124');
74902 END insert_sources_124;
74903 --
74904
74905 ---------------------------------------
74906 --
74907 -- PRIVATE FUNCTION
74908 -- EventClass_124
74909 --
74910 ----------------------------------------
74911 --
74912 FUNCTION EventClass_124
74913 (p_application_id IN NUMBER
74914 ,p_base_ledger_id IN NUMBER
74915 ,p_target_ledger_id IN NUMBER
74916 ,p_language IN VARCHAR2
74917 ,p_currency_code IN VARCHAR2
74918 ,p_sla_ledger_id IN NUMBER
74919 ,p_pad_start_date IN DATE
74920 ,p_pad_end_date IN DATE
74921 ,p_primary_ledger_id IN NUMBER)
74922 RETURN BOOLEAN IS
74923 --
74924 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'REVENUE_ALL';
74925 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'REVENUE';
74926
74927 l_calculate_acctd_flag VARCHAR2(1) :='N';
74928 l_calculate_g_l_flag VARCHAR2(1) :='N';
74929 --
74930 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74931 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74932 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74933 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74934 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74935 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74936 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74937 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74938 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74939 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74943 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74940 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74941 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74942 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
74944 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74945 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74946 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74947 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
74948 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74949 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74950 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74951 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
74952 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
74953 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
74954
74955 l_event_id NUMBER;
74956 l_previous_event_id NUMBER;
74957 l_first_event_id NUMBER;
74958 l_last_event_id NUMBER;
74959
74960 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
74961 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
74962 --
74963 --
74964 l_result BOOLEAN := TRUE;
74965 l_rows NUMBER := 1000;
74966 l_event_type_name VARCHAR2(80) := 'All';
74967 l_event_class_name VARCHAR2(80) := 'Revenue';
74968 l_description VARCHAR2(4000);
74969 l_transaction_reversal NUMBER;
74970 l_ae_header_id NUMBER;
74971 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
74972 l_log_module VARCHAR2(240);
74973 --
74974 l_acct_reversal_source VARCHAR2(30);
74975 l_trx_reversal_source VARCHAR2(30);
74976
74977 l_continue_with_lines BOOLEAN := TRUE;
74978 --
74979 l_acc_rev_gl_date_source DATE; -- 4262811
74980 --
74981 type t_array_event_id is table of number index by binary_integer;
74982
74983 l_rec_array_event t_rec_array_event;
74984 l_null_rec_array_event t_rec_array_event;
74985 l_array_ae_header_id xla_number_array_type;
74986 l_actual_flag VARCHAR2(1) := NULL;
74987 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
74988 l_balance_type_code VARCHAR2(1) :=NULL;
74989 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
74990
74991 --
74992 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
74993 --
74994
74995 TYPE t_array_source_38 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.CREDITING_REVENUE_FLAG%TYPE INDEX BY BINARY_INTEGER;
74996 TYPE t_array_source_42 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.EVENT_ID%TYPE INDEX BY BINARY_INTEGER;
74997 TYPE t_array_source_87 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
74998 TYPE t_array_source_91 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UER_CCID%TYPE INDEX BY BINARY_INTEGER;
74999 TYPE t_array_source_92 IS TABLE OF PA_XLA_REVENUE_HEADERS_V.UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
75000
75001 TYPE t_array_source_1 IS TABLE OF PA_XLA_REVENUE_LINES_V.PERDL_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
75002 TYPE t_array_source_16 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_REALIZED_GAINS_CCID%TYPE INDEX BY BINARY_INTEGER;
75003 TYPE t_array_source_17 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_REALIZED_LOSSES_CCID%TYPE INDEX BY BINARY_INTEGER;
75004 TYPE t_array_source_18 IS TABLE OF PA_XLA_REVENUE_LINES_V.PRDL_CODE_COMBINATION_ID%TYPE INDEX BY BINARY_INTEGER;
75005 TYPE t_array_source_19 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_UBR_CCID%TYPE INDEX BY BINARY_INTEGER;
75006 TYPE t_array_source_20 IS TABLE OF PA_XLA_REVENUE_LINES_V.PDR_UER_CCID%TYPE INDEX BY BINARY_INTEGER;
75007 TYPE t_array_source_25 IS TABLE OF PA_XLA_REVENUE_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
75008 TYPE t_array_source_27 IS TABLE OF PA_XLA_REVENUE_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
75009 TYPE t_array_source_28 IS TABLE OF PA_XLA_REVENUE_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
75010 TYPE t_array_source_29 IS TABLE OF PA_XLA_REVENUE_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
75011 TYPE t_array_source_36 IS TABLE OF PA_XLA_REVENUE_LINES_V.REVENUE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
75012 TYPE t_array_source_37 IS TABLE OF PA_XLA_REVENUE_LINES_V.SYSTEM_LINKAGE_FUNCTION%TYPE INDEX BY BINARY_INTEGER;
75013 TYPE t_array_source_39 IS TABLE OF PA_XLA_REVENUE_LINES_V.REVENUE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
75014 TYPE t_array_source_40 IS TABLE OF PA_XLA_REVENUE_LINES_V.REVENUE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
75015 TYPE t_array_source_41 IS TABLE OF PA_XLA_REVENUE_LINES_V.ENTERED_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
75016 TYPE t_array_source_43 IS TABLE OF PA_XLA_REVENUE_LINES_V.ACCT_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
75017 TYPE t_array_source_58 IS TABLE OF PA_XLA_EVENT_TYPE_REF_V.REV_EVENT_TYPE_CLASSIFICATION%TYPE INDEX BY BINARY_INTEGER;
75018
75019 l_array_source_38 t_array_source_38;
75020 l_array_source_42 t_array_source_42;
75021 l_array_source_87 t_array_source_87;
75022 l_array_source_91 t_array_source_91;
75023 l_array_source_92 t_array_source_92;
75024
75025 l_array_source_1 t_array_source_1;
75026 l_array_source_16 t_array_source_16;
75027 l_array_source_17 t_array_source_17;
75031 l_array_source_25 t_array_source_25;
75028 l_array_source_18 t_array_source_18;
75029 l_array_source_19 t_array_source_19;
75030 l_array_source_20 t_array_source_20;
75032 l_array_source_27 t_array_source_27;
75033 l_array_source_28 t_array_source_28;
75034 l_array_source_29 t_array_source_29;
75035 l_array_source_36 t_array_source_36;
75036 l_array_source_37 t_array_source_37;
75037 l_array_source_39 t_array_source_39;
75038 l_array_source_40 t_array_source_40;
75039 l_array_source_41 t_array_source_41;
75040 l_array_source_43 t_array_source_43;
75041 l_array_source_58 t_array_source_58;
75042 l_array_source_58_meaning t_array_lookup_meaning;
75043
75044 --
75045 CURSOR header_cur
75046 IS
75047 SELECT /*+ leading(xet) cardinality(xet,1) */
75048 -- Event Class Code: REVENUE
75049 xet.entity_id
75050 ,xet.legal_entity_id
75051 ,xet.entity_code
75052 ,xet.transaction_number
75053 ,xet.event_id
75054 ,xet.event_class_code
75055 ,xet.event_type_code
75056 ,xet.event_number
75057 ,xet.event_date
75058 ,xet.transaction_date
75059 ,xet.reference_num_1
75060 ,xet.reference_num_2
75061 ,xet.reference_num_3
75062 ,xet.reference_num_4
75063 ,xet.reference_char_1
75064 ,xet.reference_char_2
75065 ,xet.reference_char_3
75066 ,xet.reference_char_4
75067 ,xet.reference_date_1
75068 ,xet.reference_date_2
75069 ,xet.reference_date_3
75070 ,xet.reference_date_4
75071 ,xet.event_created_by
75072 ,xet.budgetary_control_flag
75073 , h2.CREDITING_REVENUE_FLAG source_38
75074 , h2.EVENT_ID source_42
75075 , h2.GL_DATE source_87
75076 , h2.UER_CCID source_91
75077 , h2.UBR_CCID source_92
75078 FROM xla_events_gt xet
75079 , PA_XLA_REVENUE_HEADERS_V h2
75080 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
75081 and xet.event_class_code = C_EVENT_CLASS_CODE
75082 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
75083
75084 ORDER BY event_id
75085 ;
75086
75087
75088 --
75089 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
75090 IS
75091 SELECT /*+ leading(xet) cardinality(xet,1) */
75092 -- Event Class Code: REVENUE
75093 xet.entity_id
75094 ,xet.legal_entity_id
75095 ,xet.entity_code
75096 ,xet.transaction_number
75097 ,xet.event_id
75098 ,xet.event_class_code
75099 ,xet.event_type_code
75100 ,xet.event_number
75101 ,xet.event_date
75102 ,xet.transaction_date
75103 ,xet.reference_num_1
75104 ,xet.reference_num_2
75105 ,xet.reference_num_3
75106 ,xet.reference_num_4
75107 ,xet.reference_char_1
75108 ,xet.reference_char_2
75109 ,xet.reference_char_3
75110 ,xet.reference_char_4
75111 ,xet.reference_date_1
75112 ,xet.reference_date_2
75113 ,xet.reference_date_3
75114 ,xet.reference_date_4
75115 ,xet.event_created_by
75116 ,xet.budgetary_control_flag
75117 , l3.LINE_NUMBER
75118 , l3.PERDL_CODE_COMBINATION_ID source_1
75119 , l3.PDR_REALIZED_GAINS_CCID source_16
75120 , l3.PDR_REALIZED_LOSSES_CCID source_17
75121 , l3.PRDL_CODE_COMBINATION_ID source_18
75122 , l3.PDR_UBR_CCID source_19
75123 , l3.PDR_UER_CCID source_20
75124 , l3.ENTERED_CURRENCY_CODE source_25
75125 , l3.EXCHANGE_RATE_DATE source_27
75126 , l3.EXCHANGE_RATE source_28
75127 , l3.EXCHANGE_RATE_TYPE source_29
75128 , l3.REVENUE_DISTRIBUTION_TYPE source_36
75129 , l3.SYSTEM_LINKAGE_FUNCTION source_37
75130 , l3.REVENUE_FIRST_DIST_ID source_39
75131 , l3.REVENUE_SECOND_DIST_ID source_40
75132 , l3.ENTERED_AMOUNT source_41
75133 , l3.ACCT_AMOUNT source_43
75134 , l1.REV_EVENT_TYPE_CLASSIFICATION source_58
75135 , fvl58.meaning source_58_meaning
75136 FROM xla_events_gt xet
75137 , PA_XLA_EVENT_TYPE_REF_V l1
75138 , PA_XLA_REVENUE_LINES_V l3
75139 , fnd_lookup_values fvl58
75140 WHERE xet.event_id between x_first_event_id and x_last_event_id
75141 and xet.event_date between p_pad_start_date and p_pad_end_date
75142 and xet.event_class_code = C_EVENT_CLASS_CODE
75143 and xet.event_status_code <> 'N' AND l3.event_id = xet.event_id
75144 AND l1.REV_EVENT_TYPE (+) =l3.REV_EVENT_TYPE AND fvl58.lookup_type(+) = 'EVENT TYPE CLASSIFICATION'
75145 AND fvl58.lookup_code(+) = l1.REV_EVENT_TYPE_CLASSIFICATION
75146 AND fvl58.view_application_id(+) = 275
75147 AND fvl58.language(+) = USERENV('LANG')
75148 ;
75149
75150 --
75151 BEGIN
75152 IF g_log_enabled THEN
75153 l_log_module := C_DEFAULT_MODULE||'.EventClass_124';
75154 END IF;
75155 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
75156 trace
75157 (p_msg => 'BEGIN of EventClass_124'
75158 ,p_level => C_LEVEL_PROCEDURE
75159 ,p_module => l_log_module);
75160 END IF;
75161
75162 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75163 trace
75164 (p_msg => 'p_application_id = '||p_application_id||
75165 ' - p_base_ledger_id = '||p_base_ledger_id||
75166 ' - p_target_ledger_id = '||p_target_ledger_id||
75167 ' - p_language = '||p_language||
75168 ' - p_currency_code = '||p_currency_code||
75172 END IF;
75169 ' - p_sla_ledger_id = '||p_sla_ledger_id
75170 ,p_level => C_LEVEL_STATEMENT
75171 ,p_module => l_log_module);
75173 --
75174 -- initialze arrays
75175 --
75176 g_array_event.DELETE;
75177 l_rec_array_event := l_null_rec_array_event;
75178 --
75179 --------------------------------------
75180 -- 4262811 Initialze MPA Line Number
75181 --------------------------------------
75182 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
75183
75184 --
75185
75186 --
75187 OPEN header_cur;
75188 --
75189 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75190 trace
75191 (p_msg => 'SQL - FETCH header_cur'
75192 ,p_level => C_LEVEL_STATEMENT
75193 ,p_module => l_log_module);
75194 END IF;
75195 --
75196 LOOP
75197 FETCH header_cur BULK COLLECT INTO
75198 l_array_entity_id
75199 , l_array_legal_entity_id
75200 , l_array_entity_code
75201 , l_array_transaction_num
75202 , l_array_event_id
75203 , l_array_class_code
75204 , l_array_event_type
75205 , l_array_event_number
75206 , l_array_event_date
75207 , l_array_transaction_date
75208 , l_array_reference_num_1
75209 , l_array_reference_num_2
75210 , l_array_reference_num_3
75211 , l_array_reference_num_4
75212 , l_array_reference_char_1
75213 , l_array_reference_char_2
75214 , l_array_reference_char_3
75215 , l_array_reference_char_4
75216 , l_array_reference_date_1
75217 , l_array_reference_date_2
75218 , l_array_reference_date_3
75219 , l_array_reference_date_4
75220 , l_array_event_created_by
75221 , l_array_budgetary_control_flag
75222 , l_array_source_38
75223 , l_array_source_42
75224 , l_array_source_87
75225 , l_array_source_91
75226 , l_array_source_92
75227 LIMIT l_rows;
75228 --
75229 IF (C_LEVEL_EVENT >= g_log_level) THEN
75230 trace
75231 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
75232 ,p_level => C_LEVEL_EVENT
75233 ,p_module => l_log_module);
75234 END IF;
75235 --
75236 EXIT WHEN l_array_entity_id.COUNT = 0;
75237
75238 -- initialize arrays
75239 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
75240 XLA_AE_LINES_PKG.g_rec_lines := NULL;
75241
75242 --
75243 -- Bug 4458708
75244 --
75245 XLA_AE_LINES_PKG.g_LineNumber := 0;
75246
75247
75248 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
75249 g_last_hdr_idx := l_array_event_id.LAST;
75250 --
75251 -- loop for the headers. Each iteration is for each header extract row
75252 -- fetched in header cursor
75253 --
75254 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
75255
75256 --
75257 -- set event info as cache for other routines to refer event attributes
75258 --
75259 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
75260 (p_application_id => p_application_id
75261 ,p_primary_ledger_id => p_primary_ledger_id
75262 ,p_base_ledger_id => p_base_ledger_id
75263 ,p_target_ledger_id => p_target_ledger_id
75264 ,p_entity_id => l_array_entity_id(hdr_idx)
75265 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
75266 ,p_entity_code => l_array_entity_code(hdr_idx)
75267 ,p_transaction_num => l_array_transaction_num(hdr_idx)
75268 ,p_event_id => l_array_event_id(hdr_idx)
75269 ,p_event_class_code => l_array_class_code(hdr_idx)
75270 ,p_event_type_code => l_array_event_type(hdr_idx)
75271 ,p_event_number => l_array_event_number(hdr_idx)
75272 ,p_event_date => l_array_event_date(hdr_idx)
75273 ,p_transaction_date => l_array_transaction_date(hdr_idx)
75274 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
75275 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
75276 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
75277 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
75278 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
75279 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
75280 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
75281 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
75282 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
75283 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
75284 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
75285 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
75286 ,p_event_created_by => l_array_event_created_by(hdr_idx)
75287 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
75288
75289 --
75290 -- set the status of entry to C_VALID (0)
75291 --
75292 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
75293
75294 --
75295 -- initialize a row for ae header
75296 --
75297 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
75298
75299 l_event_id := l_array_event_id(hdr_idx);
75300
75301 --
75302 -- storing the hdr_idx for event. May be used by line cursor.
75303 --
75307 -- store sources from header extract. This can be improved to
75304 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
75305
75306 --
75308 -- store only those sources from header extract that may be used in lines
75309 --
75310
75311 g_array_event(l_event_id).array_value_char('source_38') := l_array_source_38(hdr_idx);
75312 g_array_event(l_event_id).array_value_num('source_42') := l_array_source_42(hdr_idx);
75313 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
75314 g_array_event(l_event_id).array_value_num('source_91') := l_array_source_91(hdr_idx);
75315 g_array_event(l_event_id).array_value_num('source_92') := l_array_source_92(hdr_idx);
75316
75317 --
75318 -- initilaize the status of ae headers for diffrent balance types
75319 -- the status is initialised to C_NOT_CREATED (2)
75320 --
75321 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
75322 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
75323 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
75324
75325 --
75326 -- call api to validate and store accounting attributes for header
75327 --
75328
75329 ------------------------------------------------------------
75330 -- Accrual Reversal : to get date for Standard Source (NONE)
75331 ------------------------------------------------------------
75332 l_acc_rev_gl_date_source := NULL;
75333
75334 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
75335 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
75336
75337
75338 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
75339
75340 XLA_AE_HEADER_PKG.SetJeCategoryName;
75341
75342 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
75343 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
75344 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
75345 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
75346 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
75347
75348
75349 -- No header level analytical criteria
75350
75351 --
75352 --accounting attribute enhancement, bug 3612931
75353 --
75354 l_trx_reversal_source := SUBSTR(NULL, 1,30);
75355
75356 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
75357 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
75358
75359 xla_accounting_err_pkg.build_message
75360 (p_appli_s_name => 'XLA'
75361 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
75362 ,p_token_1 => 'ACCT_ATTR_NAME'
75363 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
75364 ,p_token_2 => 'PRODUCT_NAME'
75365 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
75366 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
75367 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75368 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
75369
75370 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
75371 --
75372 -- following sets the accounting attributes needed to reverse
75373 -- accounting for a distributeion
75374 --
75375 xla_ae_lines_pkg.SetTrxReversalAttrs
75376 (p_event_id => l_event_id
75377 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
75378 ,p_trx_reversal_source => l_trx_reversal_source);
75379
75380 END IF;
75381
75382
75383 ----------------------------------------------------------------
75384 -- 4262811 - update the header statuses to invalid in need be
75385 ----------------------------------------------------------------
75386 --
75387 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
75388
75389
75390 -----------------------------------------------
75391 -- No accrual reversal for the event class/type
75392 -----------------------------------------------
75393 ----------------------------------------------------------------
75394
75395 --
75396 -- this ends the header loop iteration for one bulk fetch
75397 --
75398 END LOOP;
75399
75400 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
75401 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
75402
75403 --
75404 -- insert dummy rows into lines gt table that were created due to
75405 -- transaction reversals
75406 --
75407 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
75408 l_result := XLA_AE_LINES_PKG.InsertLines;
75409 END IF;
75410
75411 --
75412 -- reset the temp_line_num for each set of events fetched from header
75413 -- cursor rather than doing it for each new event in line cursor
75414 -- Bug 3939231
75415 --
75416 xla_ae_lines_pkg.g_temp_line_num := 0;
75417
75418
75419
75420 --
75421 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
75422 --
75423 --
75424 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75425
75426 trace
75430
75427 (p_msg => 'SQL - FETCH line_cur'
75428 ,p_level => C_LEVEL_STATEMENT
75429 ,p_module => l_log_module);
75431 END IF;
75432 --
75433 --
75434 LOOP
75435 --
75436 FETCH line_cur BULK COLLECT INTO
75437 l_array_entity_id
75438 , l_array_legal_entity_id
75439 , l_array_entity_code
75440 , l_array_transaction_num
75441 , l_array_event_id
75442 , l_array_class_code
75443 , l_array_event_type
75444 , l_array_event_number
75445 , l_array_event_date
75446 , l_array_transaction_date
75447 , l_array_reference_num_1
75448 , l_array_reference_num_2
75449 , l_array_reference_num_3
75450 , l_array_reference_num_4
75451 , l_array_reference_char_1
75452 , l_array_reference_char_2
75453 , l_array_reference_char_3
75454 , l_array_reference_char_4
75455 , l_array_reference_date_1
75456 , l_array_reference_date_2
75457 , l_array_reference_date_3
75458 , l_array_reference_date_4
75459 , l_array_event_created_by
75460 , l_array_budgetary_control_flag
75461 , l_array_extract_line_num
75462 , l_array_source_1
75463 , l_array_source_16
75464 , l_array_source_17
75465 , l_array_source_18
75466 , l_array_source_19
75467 , l_array_source_20
75468 , l_array_source_25
75469 , l_array_source_27
75470 , l_array_source_28
75471 , l_array_source_29
75472 , l_array_source_36
75473 , l_array_source_37
75474 , l_array_source_39
75475 , l_array_source_40
75476 , l_array_source_41
75477 , l_array_source_43
75478 , l_array_source_58
75479 , l_array_source_58_meaning
75480 LIMIT l_rows;
75481
75482 --
75483 IF (C_LEVEL_EVENT >= g_log_level) THEN
75484 trace
75485 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
75486 ,p_level => C_LEVEL_EVENT
75487 ,p_module => l_log_module);
75488 END IF;
75489 --
75490 EXIT WHEN l_array_entity_id.count = 0;
75491
75492 XLA_AE_LINES_PKG.g_rec_lines := null;
75493
75494 --
75495 -- Bug 4458708
75496 --
75497 XLA_AE_LINES_PKG.g_LineNumber := 0;
75498 --
75499 --
75500
75501 FOR Idx IN 1..l_array_event_id.count LOOP
75502 --
75503 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
75504 --
75505 l_event_id := l_array_event_id(idx); -- 5648433
75506
75507 --
75508 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
75509 --
75510
75511 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
75512 (g_array_event(l_event_id).array_value_num('header_index'))
75513 ,'N'
75514 ) <> 'Y'
75515 THEN
75516 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
75517 trace
75518 (p_msg => 'Trancaction revesal option is not Y '
75519 ,p_level => C_LEVEL_STATEMENT
75520 ,p_module => l_log_module);
75521 END IF;
75522
75523 --
75524 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
75525 --
75526 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
75527 --
75528 -- set event info as cache for other routines to refer event attributes
75529 --
75530
75531 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
75532 l_previous_event_id := l_event_id;
75533
75534 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
75535 (p_application_id => p_application_id
75536 ,p_primary_ledger_id => p_primary_ledger_id
75537 ,p_base_ledger_id => p_base_ledger_id
75538 ,p_target_ledger_id => p_target_ledger_id
75539 ,p_entity_id => l_array_entity_id(Idx)
75540 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
75541 ,p_entity_code => l_array_entity_code(Idx)
75542 ,p_transaction_num => l_array_transaction_num(Idx)
75543 ,p_event_id => l_array_event_id(Idx)
75544 ,p_event_class_code => l_array_class_code(Idx)
75545 ,p_event_type_code => l_array_event_type(Idx)
75546 ,p_event_number => l_array_event_number(Idx)
75547 ,p_event_date => l_array_event_date(Idx)
75548 ,p_transaction_date => l_array_transaction_date(Idx)
75549 ,p_reference_num_1 => l_array_reference_num_1(Idx)
75550 ,p_reference_num_2 => l_array_reference_num_2(Idx)
75551 ,p_reference_num_3 => l_array_reference_num_3(Idx)
75552 ,p_reference_num_4 => l_array_reference_num_4(Idx)
75553 ,p_reference_char_1 => l_array_reference_char_1(Idx)
75554 ,p_reference_char_2 => l_array_reference_char_2(Idx)
75555 ,p_reference_char_3 => l_array_reference_char_3(Idx)
75556 ,p_reference_char_4 => l_array_reference_char_4(Idx)
75557 ,p_reference_date_1 => l_array_reference_date_1(Idx)
75558 ,p_reference_date_2 => l_array_reference_date_2(Idx)
75559 ,p_reference_date_3 => l_array_reference_date_3(Idx)
75560 ,p_reference_date_4 => l_array_reference_date_4(Idx)
75564 END IF;
75561 ,p_event_created_by => l_array_event_created_by(Idx)
75562 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
75563 --
75565
75566
75567
75568 --
75569 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
75570
75571 l_acct_reversal_source := SUBSTR(NULL, 1,30);
75572
75573 IF l_continue_with_lines THEN
75574 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
75575 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
75576
75577 xla_accounting_err_pkg.build_message
75578 (p_appli_s_name => 'XLA'
75579 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
75580 ,p_token_1 => 'LINE_NUMBER'
75581 ,p_value_1 => l_array_extract_line_num(Idx)
75582 ,p_token_2 => 'PRODUCT_NAME'
75583 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
75584 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
75585 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
75586 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
75587
75588 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
75589 --
75590 -- following sets the accounting attributes needed to reverse
75591 -- accounting for a distributeion
75592 --
75593
75594 --
75595 -- 5217187
75596 --
75597 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
75598 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
75599 g_array_event(l_event_id).array_value_num('header_index'));
75600 --
75601 --
75602
75603 -- No reversal code generated
75604
75605 xla_ae_lines_pkg.SetAcctReversalAttrs
75606 (p_event_id => l_event_id
75607 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
75608 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75609 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
75610 END IF;
75611
75612 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
75613 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
75614
75615 --
75616 AcctLineType_24 (
75617 p_application_id => p_application_id
75618 ,p_event_id => l_event_id
75619 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75620 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75621 ,p_actual_flag => l_actual_flag
75622 ,p_balance_type_code => l_balance_type_code
75623 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75624
75625 , p_source_18 => l_array_source_18(Idx)
75626 , p_source_25 => l_array_source_25(Idx)
75627 , p_source_27 => l_array_source_27(Idx)
75628 , p_source_28 => l_array_source_28(Idx)
75629 , p_source_29 => l_array_source_29(Idx)
75630 , p_source_36 => l_array_source_36(Idx)
75631 , p_source_37 => l_array_source_37(Idx)
75632 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75633 , p_source_39 => l_array_source_39(Idx)
75634 , p_source_40 => l_array_source_40(Idx)
75635 , p_source_41 => l_array_source_41(Idx)
75636 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75637 , p_source_43 => l_array_source_43(Idx)
75638 );
75639 If(l_balance_type_code = 'A') THEN
75640 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75641 END IF;
75642
75643 --
75644
75645
75646 --
75647 AcctLineType_29 (
75648 p_application_id => p_application_id
75649 ,p_event_id => l_event_id
75650 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75651 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75652 ,p_actual_flag => l_actual_flag
75653 ,p_balance_type_code => l_balance_type_code
75654 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75655
75656 , p_source_18 => l_array_source_18(Idx)
75657 , p_source_25 => l_array_source_25(Idx)
75658 , p_source_27 => l_array_source_27(Idx)
75659 , p_source_28 => l_array_source_28(Idx)
75660 , p_source_29 => l_array_source_29(Idx)
75661 , p_source_36 => l_array_source_36(Idx)
75662 , p_source_37 => l_array_source_37(Idx)
75663 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75664 , p_source_39 => l_array_source_39(Idx)
75665 , p_source_40 => l_array_source_40(Idx)
75666 , p_source_41 => l_array_source_41(Idx)
75667 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75668 , p_source_43 => l_array_source_43(Idx)
75669 );
75670 If(l_balance_type_code = 'A') THEN
75671 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75672 END IF;
75673
75674 --
75675
75676
75677 --
75678 AcctLineType_30 (
75679 p_application_id => p_application_id
75680 ,p_event_id => l_event_id
75681 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75682 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75683 ,p_actual_flag => l_actual_flag
75684 ,p_balance_type_code => l_balance_type_code
75685 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75686
75687 , p_source_1 => l_array_source_1(Idx)
75688 , p_source_25 => l_array_source_25(Idx)
75689 , p_source_27 => l_array_source_27(Idx)
75690 , p_source_28 => l_array_source_28(Idx)
75691 , p_source_29 => l_array_source_29(Idx)
75692 , p_source_36 => l_array_source_36(Idx)
75696 , p_source_41 => l_array_source_41(Idx)
75693 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75694 , p_source_39 => l_array_source_39(Idx)
75695 , p_source_40 => l_array_source_40(Idx)
75697 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75698 , p_source_43 => l_array_source_43(Idx)
75699 , p_source_58 => l_array_source_58(Idx)
75700 , p_source_58_meaning => l_array_source_58_meaning(Idx)
75701 );
75702 If(l_balance_type_code = 'A') THEN
75703 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75704 END IF;
75705
75706 --
75707
75708
75709 --
75710 AcctLineType_32 (
75711 p_application_id => p_application_id
75712 ,p_event_id => l_event_id
75713 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75714 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75715 ,p_actual_flag => l_actual_flag
75716 ,p_balance_type_code => l_balance_type_code
75717 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75718
75719 , p_source_1 => l_array_source_1(Idx)
75720 , p_source_25 => l_array_source_25(Idx)
75721 , p_source_27 => l_array_source_27(Idx)
75722 , p_source_28 => l_array_source_28(Idx)
75723 , p_source_29 => l_array_source_29(Idx)
75724 , p_source_36 => l_array_source_36(Idx)
75725 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75726 , p_source_39 => l_array_source_39(Idx)
75727 , p_source_40 => l_array_source_40(Idx)
75728 , p_source_41 => l_array_source_41(Idx)
75729 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75730 , p_source_43 => l_array_source_43(Idx)
75731 , p_source_58 => l_array_source_58(Idx)
75732 , p_source_58_meaning => l_array_source_58_meaning(Idx)
75733 );
75734 If(l_balance_type_code = 'A') THEN
75735 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75736 END IF;
75737
75738 --
75739
75740
75741 --
75742 AcctLineType_34 (
75743 p_application_id => p_application_id
75744 ,p_event_id => l_event_id
75745 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75746 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75747 ,p_actual_flag => l_actual_flag
75748 ,p_balance_type_code => l_balance_type_code
75749 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75750
75751 , p_source_18 => l_array_source_18(Idx)
75752 , p_source_25 => l_array_source_25(Idx)
75753 , p_source_27 => l_array_source_27(Idx)
75754 , p_source_28 => l_array_source_28(Idx)
75755 , p_source_29 => l_array_source_29(Idx)
75756 , p_source_36 => l_array_source_36(Idx)
75757 , p_source_37 => l_array_source_37(Idx)
75758 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75759 , p_source_39 => l_array_source_39(Idx)
75760 , p_source_40 => l_array_source_40(Idx)
75761 , p_source_41 => l_array_source_41(Idx)
75762 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75763 , p_source_43 => l_array_source_43(Idx)
75764 );
75765 If(l_balance_type_code = 'A') THEN
75766 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75767 END IF;
75768
75769 --
75770
75771
75772 --
75773 AcctLineType_35 (
75774 p_application_id => p_application_id
75775 ,p_event_id => l_event_id
75776 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75777 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75778 ,p_actual_flag => l_actual_flag
75779 ,p_balance_type_code => l_balance_type_code
75780 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75781
75782 , p_source_18 => l_array_source_18(Idx)
75783 , p_source_25 => l_array_source_25(Idx)
75784 , p_source_27 => l_array_source_27(Idx)
75785 , p_source_28 => l_array_source_28(Idx)
75786 , p_source_29 => l_array_source_29(Idx)
75787 , p_source_36 => l_array_source_36(Idx)
75788 , p_source_37 => l_array_source_37(Idx)
75789 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75790 , p_source_39 => l_array_source_39(Idx)
75791 , p_source_40 => l_array_source_40(Idx)
75792 , p_source_41 => l_array_source_41(Idx)
75793 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75794 , p_source_43 => l_array_source_43(Idx)
75795 );
75796 If(l_balance_type_code = 'A') THEN
75797 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75798 END IF;
75799
75800 --
75801
75802
75803 --
75804 AcctLineType_36 (
75805 p_application_id => p_application_id
75806 ,p_event_id => l_event_id
75807 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75808 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75809 ,p_actual_flag => l_actual_flag
75810 ,p_balance_type_code => l_balance_type_code
75811 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75812
75813 , p_source_18 => l_array_source_18(Idx)
75814 , p_source_25 => l_array_source_25(Idx)
75815 , p_source_27 => l_array_source_27(Idx)
75816 , p_source_28 => l_array_source_28(Idx)
75817 , p_source_29 => l_array_source_29(Idx)
75818 , p_source_36 => l_array_source_36(Idx)
75819 , p_source_37 => l_array_source_37(Idx)
75820 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75821 , p_source_39 => l_array_source_39(Idx)
75822 , p_source_40 => l_array_source_40(Idx)
75823 , p_source_41 => l_array_source_41(Idx)
75824 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75825 , p_source_43 => l_array_source_43(Idx)
75826 );
75827 If(l_balance_type_code = 'A') THEN
75831 --
75828 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75829 END IF;
75830
75832
75833
75834 --
75835 AcctLineType_65 (
75836 p_application_id => p_application_id
75837 ,p_event_id => l_event_id
75838 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75839 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75840 ,p_actual_flag => l_actual_flag
75841 ,p_balance_type_code => l_balance_type_code
75842 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75843
75844 , p_source_16 => l_array_source_16(Idx)
75845 , p_source_25 => l_array_source_25(Idx)
75846 , p_source_27 => l_array_source_27(Idx)
75847 , p_source_28 => l_array_source_28(Idx)
75848 , p_source_29 => l_array_source_29(Idx)
75849 , p_source_36 => l_array_source_36(Idx)
75850 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75851 , p_source_39 => l_array_source_39(Idx)
75852 , p_source_40 => l_array_source_40(Idx)
75853 , p_source_41 => l_array_source_41(Idx)
75854 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75855 , p_source_43 => l_array_source_43(Idx)
75856 );
75857 If(l_balance_type_code = 'A') THEN
75858 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75859 END IF;
75860
75861 --
75862
75863
75864 --
75865 AcctLineType_67 (
75866 p_application_id => p_application_id
75867 ,p_event_id => l_event_id
75868 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75869 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75870 ,p_actual_flag => l_actual_flag
75871 ,p_balance_type_code => l_balance_type_code
75872 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75873
75874 , p_source_17 => l_array_source_17(Idx)
75875 , p_source_25 => l_array_source_25(Idx)
75876 , p_source_27 => l_array_source_27(Idx)
75877 , p_source_28 => l_array_source_28(Idx)
75878 , p_source_29 => l_array_source_29(Idx)
75879 , p_source_36 => l_array_source_36(Idx)
75880 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75881 , p_source_39 => l_array_source_39(Idx)
75882 , p_source_40 => l_array_source_40(Idx)
75883 , p_source_41 => l_array_source_41(Idx)
75884 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75885 , p_source_43 => l_array_source_43(Idx)
75886 );
75887 If(l_balance_type_code = 'A') THEN
75888 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75889 END IF;
75890
75891 --
75892
75893
75894 --
75895 AcctLineType_82 (
75896 p_application_id => p_application_id
75897 ,p_event_id => l_event_id
75898 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75899 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75900 ,p_actual_flag => l_actual_flag
75901 ,p_balance_type_code => l_balance_type_code
75902 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75903
75904 , p_source_19 => l_array_source_19(Idx)
75905 , p_source_25 => l_array_source_25(Idx)
75906 , p_source_27 => l_array_source_27(Idx)
75907 , p_source_28 => l_array_source_28(Idx)
75908 , p_source_29 => l_array_source_29(Idx)
75909 , p_source_36 => l_array_source_36(Idx)
75910 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75911 , p_source_39 => l_array_source_39(Idx)
75912 , p_source_40 => l_array_source_40(Idx)
75913 , p_source_41 => l_array_source_41(Idx)
75914 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75915 , p_source_43 => l_array_source_43(Idx)
75916 );
75917 If(l_balance_type_code = 'A') THEN
75918 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75919 END IF;
75920
75921 --
75922
75923
75924 --
75925 AcctLineType_84 (
75926 p_application_id => p_application_id
75927 ,p_event_id => l_event_id
75928 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75929 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75930 ,p_actual_flag => l_actual_flag
75931 ,p_balance_type_code => l_balance_type_code
75932 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75933
75934 , p_source_20 => l_array_source_20(Idx)
75935 , p_source_25 => l_array_source_25(Idx)
75936 , p_source_27 => l_array_source_27(Idx)
75937 , p_source_28 => l_array_source_28(Idx)
75938 , p_source_29 => l_array_source_29(Idx)
75939 , p_source_36 => l_array_source_36(Idx)
75940 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75941 , p_source_39 => l_array_source_39(Idx)
75942 , p_source_40 => l_array_source_40(Idx)
75943 , p_source_41 => l_array_source_41(Idx)
75944 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75945 , p_source_43 => l_array_source_43(Idx)
75946 );
75947 If(l_balance_type_code = 'A') THEN
75948 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75949 END IF;
75950
75951 --
75952
75953
75954 --
75955 AcctLineType_86 (
75956 p_application_id => p_application_id
75957 ,p_event_id => l_event_id
75958 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75959 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75960 ,p_actual_flag => l_actual_flag
75961 ,p_balance_type_code => l_balance_type_code
75962 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75963
75964 , p_source_18 => l_array_source_18(Idx)
75965 , p_source_25 => l_array_source_25(Idx)
75966 , p_source_27 => l_array_source_27(Idx)
75967 , p_source_28 => l_array_source_28(Idx)
75971 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
75968 , p_source_29 => l_array_source_29(Idx)
75969 , p_source_36 => l_array_source_36(Idx)
75970 , p_source_37 => l_array_source_37(Idx)
75972 , p_source_39 => l_array_source_39(Idx)
75973 , p_source_40 => l_array_source_40(Idx)
75974 , p_source_41 => l_array_source_41(Idx)
75975 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
75976 , p_source_43 => l_array_source_43(Idx)
75977 );
75978 If(l_balance_type_code = 'A') THEN
75979 l_actual_gain_loss_ref := l_gain_or_loss_ref;
75980 END IF;
75981
75982 --
75983
75984
75985 --
75986 AcctLineType_87 (
75987 p_application_id => p_application_id
75988 ,p_event_id => l_event_id
75989 ,p_calculate_acctd_flag => l_calculate_acctd_flag
75990 ,p_calculate_g_l_flag => l_calculate_g_l_flag
75991 ,p_actual_flag => l_actual_flag
75992 ,p_balance_type_code => l_balance_type_code
75993 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
75994
75995 , p_source_18 => l_array_source_18(Idx)
75996 , p_source_25 => l_array_source_25(Idx)
75997 , p_source_27 => l_array_source_27(Idx)
75998 , p_source_28 => l_array_source_28(Idx)
75999 , p_source_29 => l_array_source_29(Idx)
76000 , p_source_36 => l_array_source_36(Idx)
76001 , p_source_37 => l_array_source_37(Idx)
76002 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
76003 , p_source_39 => l_array_source_39(Idx)
76004 , p_source_40 => l_array_source_40(Idx)
76005 , p_source_41 => l_array_source_41(Idx)
76006 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
76007 , p_source_43 => l_array_source_43(Idx)
76008 );
76009 If(l_balance_type_code = 'A') THEN
76010 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76011 END IF;
76012
76013 --
76014
76015
76016 --
76017 AcctLineType_88 (
76018 p_application_id => p_application_id
76019 ,p_event_id => l_event_id
76020 ,p_calculate_acctd_flag => l_calculate_acctd_flag
76021 ,p_calculate_g_l_flag => l_calculate_g_l_flag
76022 ,p_actual_flag => l_actual_flag
76023 ,p_balance_type_code => l_balance_type_code
76024 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
76025
76026 , p_source_18 => l_array_source_18(Idx)
76027 , p_source_25 => l_array_source_25(Idx)
76028 , p_source_27 => l_array_source_27(Idx)
76029 , p_source_28 => l_array_source_28(Idx)
76030 , p_source_29 => l_array_source_29(Idx)
76031 , p_source_36 => l_array_source_36(Idx)
76032 , p_source_37 => l_array_source_37(Idx)
76033 , p_source_38 => g_array_event(l_event_id).array_value_char('source_38')
76034 , p_source_39 => l_array_source_39(Idx)
76035 , p_source_40 => l_array_source_40(Idx)
76036 , p_source_41 => l_array_source_41(Idx)
76037 , p_source_42 => g_array_event(l_event_id).array_value_num('source_42')
76038 , p_source_43 => l_array_source_43(Idx)
76039 );
76040 If(l_balance_type_code = 'A') THEN
76041 l_actual_gain_loss_ref := l_gain_or_loss_ref;
76042 END IF;
76043
76044 --
76045
76046 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
76047 -- or secondary ledger that has different currency with primary
76048 -- or alc that is calculated by sla
76049 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
76050 (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'))
76051
76052 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
76053 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
76054 AND (l_actual_flag = 'A')) THEN
76055 XLA_AE_LINES_PKG.CreateGainOrLossLines(
76056 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76057 ,p_application_id => p_application_id
76058 ,p_amb_context_code => 'DEFAULT'
76059 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
76060 ,p_event_class_code => C_EVENT_CLASS_CODE
76061 ,p_event_type_code => C_EVENT_TYPE_CODE
76062
76063 ,p_gain_ccid => g_array_event(l_event_id).array_value_num('source_91')
76064 ,p_loss_ccid => g_array_event(l_event_id).array_value_num('source_92')
76065
76066 ,p_actual_flag => l_actual_flag
76067 ,p_enc_flag => null
76068 ,p_actual_g_l_ref => l_actual_gain_loss_ref
76069 ,p_enc_g_l_ref => null
76070 );
76071 END IF;
76072 END IF;
76073 END IF;
76074
76075 ELSE
76076 --
76077 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
76078 --
76079 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76080 trace
76081 (p_msg => 'Trancaction revesal option is Y'
76082 ,p_level => C_LEVEL_STATEMENT
76083 ,p_module => l_log_module);
76084 END IF;
76085 END IF;
76086
76087 END LOOP;
76088 l_result := XLA_AE_LINES_PKG.InsertLines ;
76089 end loop;
76090 close line_cur;
76091
76092
76093 --
76094 -- insert headers into xla_ae_headers_gt table
76095 --
76096 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
76097
76098 -- insert into errors table here.
76099
76100 END LOOP;
76101
76102 --
76103 -- 4865292
76107 --
76104 --
76105 -- Compare g_hdr_extract_count with event count in
76106 -- CreateHeadersAndLines.
76108 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
76109
76110 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76111 trace (p_msg => '# rows extracted from header extract objects '
76112 || ' (running total): '
76113 || g_hdr_extract_count
76114 ,p_level => C_LEVEL_STATEMENT
76115 ,p_module => l_log_module);
76116 END IF;
76117
76118 CLOSE header_cur;
76119 --
76120
76121 --
76122 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76123 trace
76124 (p_msg => 'END of EventClass_124'
76125 ,p_level => C_LEVEL_PROCEDURE
76126 ,p_module => l_log_module);
76127 END IF;
76128 --
76129 RETURN l_result;
76130 EXCEPTION
76131 WHEN xla_exceptions_pkg.application_exception THEN
76132
76133 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
76134
76135
76136 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
76137
76138 RAISE;
76139 WHEN OTHERS THEN
76140 xla_exceptions_pkg.raise_message
76141 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_124');
76142 END EventClass_124;
76143 --
76144
76145 ---------------------------------------
76146 --
76147 -- PRIVATE PROCEDURE
76148 -- insert_sources_125
76149 --
76150 ----------------------------------------
76151 --
76152 PROCEDURE insert_sources_125(
76153 p_target_ledger_id IN NUMBER
76154 , p_language IN VARCHAR2
76155 , p_sla_ledger_id IN NUMBER
76156 , p_pad_start_date IN DATE
76157 , p_pad_end_date IN DATE
76158 )
76159 IS
76160
76161 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ_ALL';
76162 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ';
76163 p_apps_owner VARCHAR2(30);
76164 l_log_module VARCHAR2(240);
76165 BEGIN
76166 IF g_log_enabled THEN
76167 l_log_module := C_DEFAULT_MODULE||'.insert_sources_125';
76168 END IF;
76169 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76170
76171 trace
76172 (p_msg => 'BEGIN of insert_sources_125'
76173 ,p_level => C_LEVEL_PROCEDURE
76174 ,p_module => l_log_module);
76175
76176 END IF;
76177
76178 -- select APPS owner
76179 SELECT oracle_username
76180 INTO p_apps_owner
76181 FROM fnd_oracle_userid
76182 WHERE read_only_flag = 'U'
76183 ;
76184
76185 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76186 trace
76187 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
76188 ' - p_language = '||p_language||
76189 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
76190 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
76191 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
76192 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
76193 ,p_level => C_LEVEL_STATEMENT
76194 ,p_module => l_log_module);
76195 END IF;
76196
76197
76198 --
76199 INSERT INTO xla_diag_sources --hdr2
76200 (
76201 event_id
76202 , ledger_id
76203 , sla_ledger_id
76204 , description_language
76205 , object_name
76206 , object_type_code
76207 , line_number
76208 , source_application_id
76209 , source_type_code
76210 , source_code
76211 , source_value
76212 , source_meaning
76213 , created_by
76214 , creation_date
76215 , last_update_date
76216 , last_updated_by
76217 , last_update_login
76218 , program_update_date
76219 , program_application_id
76220 , program_id
76221 , request_id
76222 )
76223 SELECT
76224 event_id
76225 , p_target_ledger_id
76226 , p_sla_ledger_id
76227 , p_language
76228 , object_name
76229 , object_type_code
76230 , line_number
76231 , source_application_id
76232 , source_type_code
76233 , source_code
76234 , SUBSTR(source_value ,1,1996)
76235 , SUBSTR(source_meaning ,1,200)
76236 , xla_environment_pkg.g_Usr_Id
76237 , TRUNC(SYSDATE)
76238 , TRUNC(SYSDATE)
76239 , xla_environment_pkg.g_Usr_Id
76240 , xla_environment_pkg.g_Login_Id
76241 , TRUNC(SYSDATE)
76242 , xla_environment_pkg.g_Prog_Appl_Id
76243 , xla_environment_pkg.g_Prog_Id
76244 , xla_environment_pkg.g_Req_Id
76245 FROM (
76246 SELECT xet.event_id event_id
76247 , 0 line_number
76248 , CASE r
76249 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
76250 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
76251 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
76252
76253 ELSE null
76254 END object_name
76255 , CASE r
76256 WHEN 1 THEN 'HEADER'
76257 WHEN 2 THEN 'HEADER'
76261 END object_type_code
76258 WHEN 3 THEN 'HEADER'
76259
76260 ELSE null
76262 , CASE r
76263 WHEN 1 THEN '275'
76264 WHEN 2 THEN '275'
76265 WHEN 3 THEN '275'
76266
76267 ELSE null
76268 END source_application_id
76269 , 'S' source_type_code
76270 , CASE r
76271 WHEN 1 THEN 'EXCHANGE_RATE_VARIANCE_FLAG'
76272 WHEN 2 THEN 'EXPENDITURE_ITEM_ID'
76273 WHEN 3 THEN 'GL_DATE'
76274
76275 ELSE null
76276 END source_code
76277 , CASE r
76278 WHEN 1 THEN TO_CHAR(h2.EXCHANGE_RATE_VARIANCE_FLAG)
76279 WHEN 2 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
76280 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
76281
76282 ELSE null
76283 END source_value
76284 , CASE r
76285 WHEN 1 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
76286 103371
76287 ,TO_CHAR(h2.EXCHANGE_RATE_VARIANCE_FLAG)
76288 ,'EXCHANGE_RATE_VARIANCE_FLAG'
76289 ,'S'
76290 ,275)
76291
76292 ELSE null
76293 END source_meaning
76294 FROM xla_events_gt xet
76295 , PA_XLA_EXP_HEADER_V h2
76296 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
76297 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
76298 AND xet.event_class_code = C_EVENT_CLASS_CODE
76299 AND h2.event_id = xet.event_id
76300
76301 )
76302 ;
76303 --
76304 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76305
76306 trace
76307 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
76308 ,p_level => C_LEVEL_STATEMENT
76309 ,p_module => l_log_module);
76310
76311 END IF;
76312 --
76313
76314
76315
76316 --
76317 INSERT INTO xla_diag_sources --line2
76318 (
76319 event_id
76320 , ledger_id
76321 , sla_ledger_id
76322 , description_language
76323 , object_name
76324 , object_type_code
76325 , line_number
76326 , source_application_id
76327 , source_type_code
76328 , source_code
76329 , source_value
76330 , source_meaning
76331 , created_by
76332 , creation_date
76333 , last_update_date
76334 , last_updated_by
76335 , last_update_login
76336 , program_update_date
76337 , program_application_id
76338 , program_id
76339 , request_id
76340 )
76341 SELECT event_id
76342 , p_target_ledger_id
76343 , p_sla_ledger_id
76344 , p_language
76345 , object_name
76346 , object_type_code
76347 , line_number
76348 , source_application_id
76349 , source_type_code
76350 , source_code
76351 , SUBSTR(source_value,1,1996)
76352 , SUBSTR(source_meaning ,1,200)
76353 , xla_environment_pkg.g_Usr_Id
76354 , TRUNC(SYSDATE)
76355 , TRUNC(SYSDATE)
76356 , xla_environment_pkg.g_Usr_Id
76357 , xla_environment_pkg.g_Login_Id
76358 , TRUNC(SYSDATE)
76359 , xla_environment_pkg.g_Prog_Appl_Id
76360 , xla_environment_pkg.g_Prog_Id
76361 , xla_environment_pkg.g_Req_Id
76362 FROM (
76363 SELECT xet.event_id event_id
76364 , l1.line_number line_number
76365 , CASE r
76366 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
76367 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
76368 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
76369 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
76370 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
76371 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
76372 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
76373 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
76374 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
76375 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
76376 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
76377 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
76378 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
76379 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
76380 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
76381 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
76382 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
76383 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
76384
76385 ELSE null
76386 END object_name
76387 , CASE r
76388 WHEN 1 THEN 'LINE'
76389 WHEN 2 THEN 'LINE'
76390 WHEN 3 THEN 'LINE'
76391 WHEN 4 THEN 'LINE'
76392 WHEN 5 THEN 'LINE'
76393 WHEN 6 THEN 'LINE'
76394 WHEN 7 THEN 'LINE'
76395 WHEN 8 THEN 'LINE'
76396 WHEN 9 THEN 'LINE'
76397 WHEN 10 THEN 'LINE'
76401 WHEN 14 THEN 'LINE'
76398 WHEN 11 THEN 'LINE'
76399 WHEN 12 THEN 'LINE'
76400 WHEN 13 THEN 'LINE'
76402 WHEN 15 THEN 'LINE'
76403 WHEN 16 THEN 'LINE'
76404 WHEN 17 THEN 'LINE'
76405 WHEN 18 THEN 'LINE'
76406
76407 ELSE null
76408 END object_type_code
76409 , CASE r
76410 WHEN 1 THEN '275'
76411 WHEN 2 THEN '275'
76412 WHEN 3 THEN '275'
76413 WHEN 4 THEN '275'
76414 WHEN 5 THEN '275'
76415 WHEN 6 THEN '275'
76416 WHEN 7 THEN '275'
76417 WHEN 8 THEN '275'
76418 WHEN 9 THEN '275'
76419 WHEN 10 THEN '275'
76420 WHEN 11 THEN '275'
76421 WHEN 12 THEN '275'
76422 WHEN 13 THEN '275'
76423 WHEN 14 THEN '275'
76424 WHEN 15 THEN '275'
76425 WHEN 16 THEN '275'
76426 WHEN 17 THEN '275'
76427 WHEN 18 THEN '275'
76428
76429 ELSE null
76430 END source_application_id
76431 , 'S' source_type_code
76432 , CASE r
76433 WHEN 1 THEN 'COST_CCID'
76434 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
76435 WHEN 3 THEN 'ADJ_COST_CCID'
76436 WHEN 4 THEN 'COST_CLEARING_CCID'
76437 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
76438 WHEN 6 THEN 'REVERSING_LINE_FLAG'
76439 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
76440 WHEN 8 THEN 'ENTERED_RAW_COST'
76441 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
76442 WHEN 10 THEN 'ACCT_RAW_COST'
76443 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
76444 WHEN 12 THEN 'EXCHANGE_RATE'
76445 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
76446 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
76447 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
76448 WHEN 16 THEN 'LINE_NUMBER'
76449 WHEN 17 THEN 'LINE_TYPE'
76450 WHEN 18 THEN 'LINE_NUM_REVERSED'
76451
76452 ELSE null
76453 END source_code
76454 , CASE r
76455 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
76456 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
76457 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
76458 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
76459 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
76460 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
76461 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
76462 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
76463 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
76464 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
76465 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
76466 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
76467 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
76468 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
76469 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
76470 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
76471 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
76472 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
76473
76474 ELSE null
76475 END source_value
76476 , CASE r
76477 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
76478 103371
76479 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
76480 ,'ALLOW_OVERRIDE_CCID_FLAG'
76481 ,'S'
76482 ,275)
76483 WHEN 17 THEN fvl34.meaning
76484
76485 ELSE null
76486 END source_meaning
76487 FROM xla_events_gt xet
76488 , PA_XLA_CDL_LINES_V l1
76489 , fnd_lookup_values fvl34
76490 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
76491 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
76492 AND xet.event_class_code = C_EVENT_CLASS_CODE
76493 AND l1.event_id = xet.event_id
76494 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
76495 AND fvl34.lookup_code(+) = l1.LINE_TYPE
76496 AND fvl34.view_application_id(+) = 275
76497 AND fvl34.language(+) = USERENV('LANG')
76498
76499 )
76500 ;
76501 --
76502 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76503
76504 trace
76505 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
76506 ,p_level => C_LEVEL_STATEMENT
76507 ,p_module => l_log_module);
76508
76509 END IF;
76510
76511
76512 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76513 trace
76514 (p_msg => 'END of insert_sources_125'
76515 ,p_level => C_LEVEL_PROCEDURE
76519 WHEN xla_exceptions_pkg.application_exception THEN
76516 ,p_module => l_log_module);
76517 END IF;
76518 EXCEPTION
76520 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
76521 trace
76522 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
76523 ,p_level => C_LEVEL_EXCEPTION
76524 ,p_module => l_log_module);
76525 END IF;
76526 RAISE;
76527 WHEN OTHERS THEN
76528 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
76529 trace
76530 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
76531 ,p_level => C_LEVEL_EXCEPTION
76532 ,p_module => l_log_module);
76533 END IF;
76534 xla_exceptions_pkg.raise_message
76535 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_125');
76536 END insert_sources_125;
76537 --
76538
76539 ---------------------------------------
76540 --
76541 -- PRIVATE FUNCTION
76542 -- EventClass_125
76543 --
76544 ----------------------------------------
76545 --
76546 FUNCTION EventClass_125
76547 (p_application_id IN NUMBER
76548 ,p_base_ledger_id IN NUMBER
76549 ,p_target_ledger_id IN NUMBER
76550 ,p_language IN VARCHAR2
76551 ,p_currency_code IN VARCHAR2
76552 ,p_sla_ledger_id IN NUMBER
76553 ,p_pad_start_date IN DATE
76554 ,p_pad_end_date IN DATE
76555 ,p_primary_ledger_id IN NUMBER)
76556 RETURN BOOLEAN IS
76557 --
76558 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ_ALL';
76559 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ADJ';
76560
76561 l_calculate_acctd_flag VARCHAR2(1) :='N';
76562 l_calculate_g_l_flag VARCHAR2(1) :='N';
76563 --
76564 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76565 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76566 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76567 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76568 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76569 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76570 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76571 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76572 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76573 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76574 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76575 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76576 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76577 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
76578 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76579 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76580 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76581 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
76582 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76583 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76584 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76585 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
76586 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
76587 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
76588
76589 l_event_id NUMBER;
76590 l_previous_event_id NUMBER;
76591 l_first_event_id NUMBER;
76592 l_last_event_id NUMBER;
76593
76594 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
76595 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
76596 --
76597 --
76598 l_result BOOLEAN := TRUE;
76599 l_rows NUMBER := 1000;
76600 l_event_type_name VARCHAR2(80) := 'All';
76601 l_event_class_name VARCHAR2(80) := 'Supplier Cost Adjustment';
76602 l_description VARCHAR2(4000);
76603 l_transaction_reversal NUMBER;
76604 l_ae_header_id NUMBER;
76605 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
76606 l_log_module VARCHAR2(240);
76607 --
76608 l_acct_reversal_source VARCHAR2(30);
76609 l_trx_reversal_source VARCHAR2(30);
76610
76611 l_continue_with_lines BOOLEAN := TRUE;
76612 --
76613 l_acc_rev_gl_date_source DATE; -- 4262811
76614 --
76615 type t_array_event_id is table of number index by binary_integer;
76616
76617 l_rec_array_event t_rec_array_event;
76618 l_null_rec_array_event t_rec_array_event;
76619 l_array_ae_header_id xla_number_array_type;
76620 l_actual_flag VARCHAR2(1) := NULL;
76621 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
76622 l_balance_type_code VARCHAR2(1) :=NULL;
76623 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
76624
76625 --
76629 TYPE t_array_source_21 IS TABLE OF PA_XLA_EXP_HEADER_V.EXCHANGE_RATE_VARIANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
76626 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
76627 --
76628
76630 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
76631 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
76632
76633 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
76634 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
76635 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
76636 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
76637 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
76638 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
76639 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
76640 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
76641 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
76642 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
76643 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
76644 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
76645 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
76646 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
76647 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
76648 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
76649 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
76650 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
76651
76652 l_array_source_21 t_array_source_21;
76653 l_array_source_32 t_array_source_32;
76654 l_array_source_87 t_array_source_87;
76655
76656 l_array_source_3 t_array_source_3;
76657 l_array_source_4 t_array_source_4;
76658 l_array_source_5 t_array_source_5;
76659 l_array_source_6 t_array_source_6;
76660 l_array_source_7 t_array_source_7;
76661 l_array_source_22 t_array_source_22;
76662 l_array_source_23 t_array_source_23;
76663 l_array_source_24 t_array_source_24;
76664 l_array_source_25 t_array_source_25;
76665 l_array_source_26 t_array_source_26;
76666 l_array_source_27 t_array_source_27;
76667 l_array_source_28 t_array_source_28;
76668 l_array_source_29 t_array_source_29;
76669 l_array_source_30 t_array_source_30;
76670 l_array_source_31 t_array_source_31;
76671 l_array_source_33 t_array_source_33;
76672 l_array_source_34 t_array_source_34;
76673 l_array_source_34_meaning t_array_lookup_meaning;
76674 l_array_source_35 t_array_source_35;
76675
76676 --
76677 CURSOR header_cur
76678 IS
76679 SELECT /*+ leading(xet) cardinality(xet,1) */
76680 -- Event Class Code: SUPPLIER_COST_ADJ
76681 xet.entity_id
76682 ,xet.legal_entity_id
76683 ,xet.entity_code
76684 ,xet.transaction_number
76685 ,xet.event_id
76686 ,xet.event_class_code
76687 ,xet.event_type_code
76688 ,xet.event_number
76689 ,xet.event_date
76690 ,xet.transaction_date
76691 ,xet.reference_num_1
76692 ,xet.reference_num_2
76693 ,xet.reference_num_3
76694 ,xet.reference_num_4
76695 ,xet.reference_char_1
76696 ,xet.reference_char_2
76697 ,xet.reference_char_3
76698 ,xet.reference_char_4
76699 ,xet.reference_date_1
76700 ,xet.reference_date_2
76701 ,xet.reference_date_3
76702 ,xet.reference_date_4
76703 ,xet.event_created_by
76704 ,xet.budgetary_control_flag
76705 , h2.EXCHANGE_RATE_VARIANCE_FLAG source_21
76706 , h2.EXPENDITURE_ITEM_ID source_32
76707 , h2.GL_DATE source_87
76708 FROM xla_events_gt xet
76709 , PA_XLA_EXP_HEADER_V h2
76710 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
76711 and xet.event_class_code = C_EVENT_CLASS_CODE
76712 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
76713
76714 ORDER BY event_id
76715 ;
76716
76717
76718 --
76719 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
76720 IS
76721 SELECT /*+ leading(xet) cardinality(xet,1) */
76722 -- Event Class Code: SUPPLIER_COST_ADJ
76723 xet.entity_id
76724 ,xet.legal_entity_id
76725 ,xet.entity_code
76726 ,xet.transaction_number
76727 ,xet.event_id
76728 ,xet.event_class_code
76729 ,xet.event_type_code
76730 ,xet.event_number
76731 ,xet.event_date
76732 ,xet.transaction_date
76733 ,xet.reference_num_1
76734 ,xet.reference_num_2
76735 ,xet.reference_num_3
76736 ,xet.reference_num_4
76737 ,xet.reference_char_1
76738 ,xet.reference_char_2
76739 ,xet.reference_char_3
76740 ,xet.reference_char_4
76741 ,xet.reference_date_1
76742 ,xet.reference_date_2
76743 ,xet.reference_date_3
76744 ,xet.reference_date_4
76745 ,xet.event_created_by
76749 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
76746 ,xet.budgetary_control_flag
76747 , l1.LINE_NUMBER
76748 , l1.COST_CCID source_3
76750 , l1.ADJ_COST_CCID source_5
76751 , l1.COST_CLEARING_CCID source_6
76752 , l1.ADJ_COST_CLEARING_CCID source_7
76753 , l1.REVERSING_LINE_FLAG source_22
76754 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
76755 , l1.ENTERED_RAW_COST source_24
76756 , l1.ENTERED_CURRENCY_CODE source_25
76757 , l1.ACCT_RAW_COST source_26
76758 , l1.EXCHANGE_RATE_DATE source_27
76759 , l1.EXCHANGE_RATE source_28
76760 , l1.EXCHANGE_RATE_TYPE source_29
76761 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
76762 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
76763 , l1.LINE_NUMBER source_33
76764 , l1.LINE_TYPE source_34
76765 , fvl34.meaning source_34_meaning
76766 , l1.LINE_NUM_REVERSED source_35
76767 FROM xla_events_gt xet
76768 , PA_XLA_CDL_LINES_V l1
76769 , fnd_lookup_values fvl34
76770 WHERE xet.event_id between x_first_event_id and x_last_event_id
76771 and xet.event_date between p_pad_start_date and p_pad_end_date
76772 and xet.event_class_code = C_EVENT_CLASS_CODE
76773 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
76774 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
76775 AND fvl34.lookup_code(+) = l1.LINE_TYPE
76776 AND fvl34.view_application_id(+) = 275
76777 AND fvl34.language(+) = USERENV('LANG')
76778 ;
76779
76780 --
76781 BEGIN
76782 IF g_log_enabled THEN
76783 l_log_module := C_DEFAULT_MODULE||'.EventClass_125';
76784 END IF;
76785 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
76786 trace
76787 (p_msg => 'BEGIN of EventClass_125'
76788 ,p_level => C_LEVEL_PROCEDURE
76789 ,p_module => l_log_module);
76790 END IF;
76791
76792 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76793 trace
76794 (p_msg => 'p_application_id = '||p_application_id||
76795 ' - p_base_ledger_id = '||p_base_ledger_id||
76796 ' - p_target_ledger_id = '||p_target_ledger_id||
76797 ' - p_language = '||p_language||
76798 ' - p_currency_code = '||p_currency_code||
76799 ' - p_sla_ledger_id = '||p_sla_ledger_id
76800 ,p_level => C_LEVEL_STATEMENT
76801 ,p_module => l_log_module);
76802 END IF;
76803 --
76804 -- initialze arrays
76805 --
76806 g_array_event.DELETE;
76807 l_rec_array_event := l_null_rec_array_event;
76808 --
76809 --------------------------------------
76810 -- 4262811 Initialze MPA Line Number
76811 --------------------------------------
76812 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
76813
76814 --
76815
76816 --
76817 OPEN header_cur;
76818 --
76819 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
76820 trace
76821 (p_msg => 'SQL - FETCH header_cur'
76822 ,p_level => C_LEVEL_STATEMENT
76823 ,p_module => l_log_module);
76824 END IF;
76825 --
76826 LOOP
76827 FETCH header_cur BULK COLLECT INTO
76828 l_array_entity_id
76829 , l_array_legal_entity_id
76830 , l_array_entity_code
76831 , l_array_transaction_num
76832 , l_array_event_id
76833 , l_array_class_code
76834 , l_array_event_type
76835 , l_array_event_number
76836 , l_array_event_date
76837 , l_array_transaction_date
76838 , l_array_reference_num_1
76839 , l_array_reference_num_2
76840 , l_array_reference_num_3
76841 , l_array_reference_num_4
76842 , l_array_reference_char_1
76843 , l_array_reference_char_2
76844 , l_array_reference_char_3
76845 , l_array_reference_char_4
76846 , l_array_reference_date_1
76847 , l_array_reference_date_2
76848 , l_array_reference_date_3
76849 , l_array_reference_date_4
76850 , l_array_event_created_by
76851 , l_array_budgetary_control_flag
76852 , l_array_source_21
76853 , l_array_source_32
76854 , l_array_source_87
76855 LIMIT l_rows;
76856 --
76857 IF (C_LEVEL_EVENT >= g_log_level) THEN
76858 trace
76859 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
76860 ,p_level => C_LEVEL_EVENT
76861 ,p_module => l_log_module);
76862 END IF;
76863 --
76864 EXIT WHEN l_array_entity_id.COUNT = 0;
76865
76866 -- initialize arrays
76867 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
76868 XLA_AE_LINES_PKG.g_rec_lines := NULL;
76869
76870 --
76871 -- Bug 4458708
76872 --
76873 XLA_AE_LINES_PKG.g_LineNumber := 0;
76874
76875
76876 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
76877 g_last_hdr_idx := l_array_event_id.LAST;
76878 --
76879 -- loop for the headers. Each iteration is for each header extract row
76880 -- fetched in header cursor
76881 --
76882 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
76883
76884 --
76885 -- set event info as cache for other routines to refer event attributes
76886 --
76887 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
76888 (p_application_id => p_application_id
76889 ,p_primary_ledger_id => p_primary_ledger_id
76893 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
76890 ,p_base_ledger_id => p_base_ledger_id
76891 ,p_target_ledger_id => p_target_ledger_id
76892 ,p_entity_id => l_array_entity_id(hdr_idx)
76894 ,p_entity_code => l_array_entity_code(hdr_idx)
76895 ,p_transaction_num => l_array_transaction_num(hdr_idx)
76896 ,p_event_id => l_array_event_id(hdr_idx)
76897 ,p_event_class_code => l_array_class_code(hdr_idx)
76898 ,p_event_type_code => l_array_event_type(hdr_idx)
76899 ,p_event_number => l_array_event_number(hdr_idx)
76900 ,p_event_date => l_array_event_date(hdr_idx)
76901 ,p_transaction_date => l_array_transaction_date(hdr_idx)
76902 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
76903 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
76904 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
76905 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
76906 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
76907 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
76908 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
76909 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
76910 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
76911 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
76912 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
76913 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
76914 ,p_event_created_by => l_array_event_created_by(hdr_idx)
76915 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
76916
76917 --
76918 -- set the status of entry to C_VALID (0)
76919 --
76920 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
76921
76922 --
76923 -- initialize a row for ae header
76924 --
76925 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
76926
76927 l_event_id := l_array_event_id(hdr_idx);
76928
76929 --
76930 -- storing the hdr_idx for event. May be used by line cursor.
76931 --
76932 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
76933
76934 --
76935 -- store sources from header extract. This can be improved to
76936 -- store only those sources from header extract that may be used in lines
76937 --
76938
76939 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
76940 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
76941 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
76942
76943 --
76944 -- initilaize the status of ae headers for diffrent balance types
76945 -- the status is initialised to C_NOT_CREATED (2)
76946 --
76947 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76948 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76949 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
76950
76951 --
76952 -- call api to validate and store accounting attributes for header
76953 --
76954
76955 ------------------------------------------------------------
76956 -- Accrual Reversal : to get date for Standard Source (NONE)
76957 ------------------------------------------------------------
76958 l_acc_rev_gl_date_source := NULL;
76959
76960 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
76961 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
76962
76963
76964 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
76965
76966 XLA_AE_HEADER_PKG.SetJeCategoryName;
76967
76968 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
76969 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
76970 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
76971 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
76972 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
76973
76974
76975 -- No header level analytical criteria
76976
76977 --
76978 --accounting attribute enhancement, bug 3612931
76979 --
76980 l_trx_reversal_source := SUBSTR(NULL, 1,30);
76981
76982 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
76983 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
76984
76985 xla_accounting_err_pkg.build_message
76986 (p_appli_s_name => 'XLA'
76987 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
76988 ,p_token_1 => 'ACCT_ATTR_NAME'
76989 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
76990 ,p_token_2 => 'PRODUCT_NAME'
76991 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
76992 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
76993 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
76994 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
76995
76996 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
76997 --
77001 xla_ae_lines_pkg.SetTrxReversalAttrs
76998 -- following sets the accounting attributes needed to reverse
76999 -- accounting for a distributeion
77000 --
77002 (p_event_id => l_event_id
77003 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
77004 ,p_trx_reversal_source => l_trx_reversal_source);
77005
77006 END IF;
77007
77008
77009 ----------------------------------------------------------------
77010 -- 4262811 - update the header statuses to invalid in need be
77011 ----------------------------------------------------------------
77012 --
77013 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
77014
77015
77016 -----------------------------------------------
77017 -- No accrual reversal for the event class/type
77018 -----------------------------------------------
77019 ----------------------------------------------------------------
77020
77021 --
77022 -- this ends the header loop iteration for one bulk fetch
77023 --
77024 END LOOP;
77025
77026 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
77027 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
77028
77029 --
77030 -- insert dummy rows into lines gt table that were created due to
77031 -- transaction reversals
77032 --
77033 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
77034 l_result := XLA_AE_LINES_PKG.InsertLines;
77035 END IF;
77036
77037 --
77038 -- reset the temp_line_num for each set of events fetched from header
77039 -- cursor rather than doing it for each new event in line cursor
77040 -- Bug 3939231
77041 --
77042 xla_ae_lines_pkg.g_temp_line_num := 0;
77043
77044
77045
77046 --
77047 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
77048 --
77049 --
77050 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77051
77052 trace
77053 (p_msg => 'SQL - FETCH line_cur'
77054 ,p_level => C_LEVEL_STATEMENT
77055 ,p_module => l_log_module);
77056
77057 END IF;
77058 --
77059 --
77060 LOOP
77061 --
77062 FETCH line_cur BULK COLLECT INTO
77063 l_array_entity_id
77064 , l_array_legal_entity_id
77065 , l_array_entity_code
77066 , l_array_transaction_num
77067 , l_array_event_id
77068 , l_array_class_code
77069 , l_array_event_type
77070 , l_array_event_number
77071 , l_array_event_date
77072 , l_array_transaction_date
77073 , l_array_reference_num_1
77074 , l_array_reference_num_2
77075 , l_array_reference_num_3
77076 , l_array_reference_num_4
77077 , l_array_reference_char_1
77078 , l_array_reference_char_2
77079 , l_array_reference_char_3
77080 , l_array_reference_char_4
77081 , l_array_reference_date_1
77082 , l_array_reference_date_2
77083 , l_array_reference_date_3
77084 , l_array_reference_date_4
77085 , l_array_event_created_by
77086 , l_array_budgetary_control_flag
77087 , l_array_extract_line_num
77088 , l_array_source_3
77089 , l_array_source_4
77090 , l_array_source_5
77091 , l_array_source_6
77092 , l_array_source_7
77093 , l_array_source_22
77094 , l_array_source_23
77095 , l_array_source_24
77096 , l_array_source_25
77097 , l_array_source_26
77098 , l_array_source_27
77099 , l_array_source_28
77100 , l_array_source_29
77101 , l_array_source_30
77102 , l_array_source_31
77103 , l_array_source_33
77104 , l_array_source_34
77105 , l_array_source_34_meaning
77106 , l_array_source_35
77107 LIMIT l_rows;
77108
77109 --
77110 IF (C_LEVEL_EVENT >= g_log_level) THEN
77111 trace
77112 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
77113 ,p_level => C_LEVEL_EVENT
77114 ,p_module => l_log_module);
77115 END IF;
77116 --
77117 EXIT WHEN l_array_entity_id.count = 0;
77118
77119 XLA_AE_LINES_PKG.g_rec_lines := null;
77120
77121 --
77122 -- Bug 4458708
77123 --
77124 XLA_AE_LINES_PKG.g_LineNumber := 0;
77125 --
77126 --
77127
77128 FOR Idx IN 1..l_array_event_id.count LOOP
77129 --
77130 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
77131 --
77132 l_event_id := l_array_event_id(idx); -- 5648433
77133
77134 --
77135 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
77136 --
77137
77138 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
77139 (g_array_event(l_event_id).array_value_num('header_index'))
77140 ,'N'
77141 ) <> 'Y'
77142 THEN
77143 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77144 trace
77145 (p_msg => 'Trancaction revesal option is not Y '
77146 ,p_level => C_LEVEL_STATEMENT
77147 ,p_module => l_log_module);
77148 END IF;
77149
77150 --
77154 --
77151 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
77152 --
77153 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
77155 -- set event info as cache for other routines to refer event attributes
77156 --
77157
77158 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
77159 l_previous_event_id := l_event_id;
77160
77161 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
77162 (p_application_id => p_application_id
77163 ,p_primary_ledger_id => p_primary_ledger_id
77164 ,p_base_ledger_id => p_base_ledger_id
77165 ,p_target_ledger_id => p_target_ledger_id
77166 ,p_entity_id => l_array_entity_id(Idx)
77167 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
77168 ,p_entity_code => l_array_entity_code(Idx)
77169 ,p_transaction_num => l_array_transaction_num(Idx)
77170 ,p_event_id => l_array_event_id(Idx)
77171 ,p_event_class_code => l_array_class_code(Idx)
77172 ,p_event_type_code => l_array_event_type(Idx)
77173 ,p_event_number => l_array_event_number(Idx)
77174 ,p_event_date => l_array_event_date(Idx)
77175 ,p_transaction_date => l_array_transaction_date(Idx)
77176 ,p_reference_num_1 => l_array_reference_num_1(Idx)
77177 ,p_reference_num_2 => l_array_reference_num_2(Idx)
77178 ,p_reference_num_3 => l_array_reference_num_3(Idx)
77179 ,p_reference_num_4 => l_array_reference_num_4(Idx)
77180 ,p_reference_char_1 => l_array_reference_char_1(Idx)
77181 ,p_reference_char_2 => l_array_reference_char_2(Idx)
77182 ,p_reference_char_3 => l_array_reference_char_3(Idx)
77183 ,p_reference_char_4 => l_array_reference_char_4(Idx)
77184 ,p_reference_date_1 => l_array_reference_date_1(Idx)
77185 ,p_reference_date_2 => l_array_reference_date_2(Idx)
77186 ,p_reference_date_3 => l_array_reference_date_3(Idx)
77187 ,p_reference_date_4 => l_array_reference_date_4(Idx)
77188 ,p_event_created_by => l_array_event_created_by(Idx)
77189 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
77190 --
77191 END IF;
77192
77193
77194
77195 --
77196 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
77197
77198 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
77199
77200 IF l_continue_with_lines THEN
77201 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
77202 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
77203
77204 xla_accounting_err_pkg.build_message
77205 (p_appli_s_name => 'XLA'
77206 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
77207 ,p_token_1 => 'LINE_NUMBER'
77208 ,p_value_1 => l_array_extract_line_num(Idx)
77209 ,p_token_2 => 'PRODUCT_NAME'
77210 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
77211 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
77212 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77213 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
77214
77215 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
77216 --
77217 -- following sets the accounting attributes needed to reverse
77218 -- accounting for a distributeion
77219 --
77220
77221 --
77222 -- 5217187
77223 --
77224 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
77225 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
77226 g_array_event(l_event_id).array_value_num('header_index'));
77227 --
77228 --
77229
77230 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
77231 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
77232 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
77233 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
77234 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
77235 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
77236 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
77237 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
77238 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
77239 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
77240 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
77241 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
77242 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
77243 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
77244 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
77245 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
77246 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
77247 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
77251 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
77248 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
77249 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
77250 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
77252 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
77253 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
77254 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
77255 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
77256 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
77257 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
77258 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
77259 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
77260 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
77261 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
77262 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
77263 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
77264 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
77265 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
77266 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
77267 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
77268 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
77269 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
77270 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
77271 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
77272 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
77273 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
77274 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
77275 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
77276 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
77277 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
77278
77279
77280 xla_ae_lines_pkg.SetAcctReversalAttrs
77281 (p_event_id => l_event_id
77282 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
77283 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77284 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
77285 END IF;
77286
77287 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
77288 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
77289
77290 --
77291 AcctLineType_21 (
77292 p_application_id => p_application_id
77293 ,p_event_id => l_event_id
77294 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77295 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77296 ,p_actual_flag => l_actual_flag
77297 ,p_balance_type_code => l_balance_type_code
77298 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77299
77300 , p_source_3 => l_array_source_3(Idx)
77301 , p_source_4 => l_array_source_4(Idx)
77302 , p_source_5 => l_array_source_5(Idx)
77303 , p_source_6 => l_array_source_6(Idx)
77304 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
77305 , p_source_22 => l_array_source_22(Idx)
77306 , p_source_23 => l_array_source_23(Idx)
77307 , p_source_24 => l_array_source_24(Idx)
77308 , p_source_25 => l_array_source_25(Idx)
77309 , p_source_26 => l_array_source_26(Idx)
77310 , p_source_27 => l_array_source_27(Idx)
77311 , p_source_28 => l_array_source_28(Idx)
77312 , p_source_29 => l_array_source_29(Idx)
77313 , p_source_30 => l_array_source_30(Idx)
77314 , p_source_31 => l_array_source_31(Idx)
77315 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
77316 , p_source_33 => l_array_source_33(Idx)
77317 , p_source_34 => l_array_source_34(Idx)
77318 , p_source_34_meaning => l_array_source_34_meaning(Idx)
77319 , p_source_35 => l_array_source_35(Idx)
77320 );
77321 If(l_balance_type_code = 'A') THEN
77322 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77323 END IF;
77324
77325 --
77326
77327
77328 --
77329 AcctLineType_22 (
77330 p_application_id => p_application_id
77331 ,p_event_id => l_event_id
77332 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77333 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77334 ,p_actual_flag => l_actual_flag
77335 ,p_balance_type_code => l_balance_type_code
77336 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77337
77338 , p_source_3 => l_array_source_3(Idx)
77339 , p_source_4 => l_array_source_4(Idx)
77340 , p_source_6 => l_array_source_6(Idx)
77341 , p_source_7 => l_array_source_7(Idx)
77342 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
77343 , p_source_22 => l_array_source_22(Idx)
77344 , p_source_23 => l_array_source_23(Idx)
77345 , p_source_24 => l_array_source_24(Idx)
77346 , p_source_25 => l_array_source_25(Idx)
77347 , p_source_26 => l_array_source_26(Idx)
77348 , p_source_27 => l_array_source_27(Idx)
77349 , p_source_28 => l_array_source_28(Idx)
77350 , p_source_29 => l_array_source_29(Idx)
77351 , p_source_30 => l_array_source_30(Idx)
77352 , p_source_31 => l_array_source_31(Idx)
77356 , p_source_34_meaning => l_array_source_34_meaning(Idx)
77353 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
77354 , p_source_33 => l_array_source_33(Idx)
77355 , p_source_34 => l_array_source_34(Idx)
77357 , p_source_35 => l_array_source_35(Idx)
77358 );
77359 If(l_balance_type_code = 'A') THEN
77360 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77361 END IF;
77362
77363 --
77364
77365
77366 --
77367 AcctLineType_48 (
77368 p_application_id => p_application_id
77369 ,p_event_id => l_event_id
77370 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77371 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77372 ,p_actual_flag => l_actual_flag
77373 ,p_balance_type_code => l_balance_type_code
77374 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77375
77376 , p_source_3 => l_array_source_3(Idx)
77377 , p_source_4 => l_array_source_4(Idx)
77378 , p_source_5 => l_array_source_5(Idx)
77379 , p_source_6 => l_array_source_6(Idx)
77380 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
77381 , p_source_22 => l_array_source_22(Idx)
77382 , p_source_23 => l_array_source_23(Idx)
77383 , p_source_24 => l_array_source_24(Idx)
77384 , p_source_25 => l_array_source_25(Idx)
77385 , p_source_26 => l_array_source_26(Idx)
77386 , p_source_27 => l_array_source_27(Idx)
77387 , p_source_28 => l_array_source_28(Idx)
77388 , p_source_29 => l_array_source_29(Idx)
77389 , p_source_30 => l_array_source_30(Idx)
77390 , p_source_31 => l_array_source_31(Idx)
77391 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
77392 , p_source_33 => l_array_source_33(Idx)
77393 , p_source_34 => l_array_source_34(Idx)
77394 , p_source_34_meaning => l_array_source_34_meaning(Idx)
77395 , p_source_35 => l_array_source_35(Idx)
77396 );
77397 If(l_balance_type_code = 'A') THEN
77398 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77399 END IF;
77400
77401 --
77402
77403
77404 --
77405 AcctLineType_59 (
77406 p_application_id => p_application_id
77407 ,p_event_id => l_event_id
77408 ,p_calculate_acctd_flag => l_calculate_acctd_flag
77409 ,p_calculate_g_l_flag => l_calculate_g_l_flag
77410 ,p_actual_flag => l_actual_flag
77411 ,p_balance_type_code => l_balance_type_code
77412 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
77413
77414 , p_source_3 => l_array_source_3(Idx)
77415 , p_source_4 => l_array_source_4(Idx)
77416 , p_source_6 => l_array_source_6(Idx)
77417 , p_source_7 => l_array_source_7(Idx)
77418 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
77419 , p_source_22 => l_array_source_22(Idx)
77420 , p_source_23 => l_array_source_23(Idx)
77421 , p_source_24 => l_array_source_24(Idx)
77422 , p_source_25 => l_array_source_25(Idx)
77423 , p_source_26 => l_array_source_26(Idx)
77424 , p_source_27 => l_array_source_27(Idx)
77425 , p_source_28 => l_array_source_28(Idx)
77426 , p_source_29 => l_array_source_29(Idx)
77427 , p_source_30 => l_array_source_30(Idx)
77428 , p_source_31 => l_array_source_31(Idx)
77429 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
77430 , p_source_33 => l_array_source_33(Idx)
77431 , p_source_34 => l_array_source_34(Idx)
77432 , p_source_34_meaning => l_array_source_34_meaning(Idx)
77433 , p_source_35 => l_array_source_35(Idx)
77434 );
77435 If(l_balance_type_code = 'A') THEN
77436 l_actual_gain_loss_ref := l_gain_or_loss_ref;
77437 END IF;
77438
77439 --
77440
77441 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
77442 -- or secondary ledger that has different currency with primary
77443 -- or alc that is calculated by sla
77444 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
77445 (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'))
77446
77447 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
77448 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
77449 AND (l_actual_flag = 'A')) THEN
77450 XLA_AE_LINES_PKG.CreateGainOrLossLines(
77451 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
77452 ,p_application_id => p_application_id
77453 ,p_amb_context_code => 'DEFAULT'
77454 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
77455 ,p_event_class_code => C_EVENT_CLASS_CODE
77456 ,p_event_type_code => C_EVENT_TYPE_CODE
77457
77458 ,p_gain_ccid => -1
77459 ,p_loss_ccid => -1
77460
77461 ,p_actual_flag => l_actual_flag
77462 ,p_enc_flag => null
77463 ,p_actual_g_l_ref => l_actual_gain_loss_ref
77464 ,p_enc_g_l_ref => null
77465 );
77466 END IF;
77467 END IF;
77468 END IF;
77469
77470 ELSE
77471 --
77472 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
77473 --
77474 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77475 trace
77476 (p_msg => 'Trancaction revesal option is Y'
77477 ,p_level => C_LEVEL_STATEMENT
77478 ,p_module => l_log_module);
77479 END IF;
77480 END IF;
77481
77485 close line_cur;
77482 END LOOP;
77483 l_result := XLA_AE_LINES_PKG.InsertLines ;
77484 end loop;
77486
77487
77488 --
77489 -- insert headers into xla_ae_headers_gt table
77490 --
77491 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
77492
77493 -- insert into errors table here.
77494
77495 END LOOP;
77496
77497 --
77498 -- 4865292
77499 --
77500 -- Compare g_hdr_extract_count with event count in
77501 -- CreateHeadersAndLines.
77502 --
77503 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
77504
77505 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77506 trace (p_msg => '# rows extracted from header extract objects '
77507 || ' (running total): '
77508 || g_hdr_extract_count
77509 ,p_level => C_LEVEL_STATEMENT
77510 ,p_module => l_log_module);
77511 END IF;
77512
77513 CLOSE header_cur;
77514 --
77515
77516 --
77517 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77518 trace
77519 (p_msg => 'END of EventClass_125'
77520 ,p_level => C_LEVEL_PROCEDURE
77521 ,p_module => l_log_module);
77522 END IF;
77523 --
77524 RETURN l_result;
77525 EXCEPTION
77526 WHEN xla_exceptions_pkg.application_exception THEN
77527
77528 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
77529
77530
77531 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
77532
77533 RAISE;
77534 WHEN OTHERS THEN
77535 xla_exceptions_pkg.raise_message
77536 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_125');
77537 END EventClass_125;
77538 --
77539
77540 ---------------------------------------
77541 --
77542 -- PRIVATE PROCEDURE
77543 -- insert_sources_126
77544 --
77545 ----------------------------------------
77546 --
77547 PROCEDURE insert_sources_126(
77548 p_target_ledger_id IN NUMBER
77549 , p_language IN VARCHAR2
77550 , p_sla_ledger_id IN NUMBER
77551 , p_pad_start_date IN DATE
77552 , p_pad_end_date IN DATE
77553 )
77554 IS
77555
77556 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ALL';
77557 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST';
77558 p_apps_owner VARCHAR2(30);
77559 l_log_module VARCHAR2(240);
77560 BEGIN
77561 IF g_log_enabled THEN
77562 l_log_module := C_DEFAULT_MODULE||'.insert_sources_126';
77563 END IF;
77564 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77565
77566 trace
77567 (p_msg => 'BEGIN of insert_sources_126'
77568 ,p_level => C_LEVEL_PROCEDURE
77569 ,p_module => l_log_module);
77570
77571 END IF;
77572
77573 -- select APPS owner
77574 SELECT oracle_username
77575 INTO p_apps_owner
77576 FROM fnd_oracle_userid
77577 WHERE read_only_flag = 'U'
77578 ;
77579
77580 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77581 trace
77582 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
77583 ' - p_language = '||p_language||
77584 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
77585 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
77586 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
77587 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
77588 ,p_level => C_LEVEL_STATEMENT
77589 ,p_module => l_log_module);
77590 END IF;
77591
77592
77593 --
77594 INSERT INTO xla_diag_sources --hdr2
77595 (
77596 event_id
77597 , ledger_id
77598 , sla_ledger_id
77599 , description_language
77600 , object_name
77601 , object_type_code
77602 , line_number
77603 , source_application_id
77604 , source_type_code
77605 , source_code
77606 , source_value
77607 , source_meaning
77608 , created_by
77609 , creation_date
77610 , last_update_date
77611 , last_updated_by
77612 , last_update_login
77613 , program_update_date
77614 , program_application_id
77615 , program_id
77616 , request_id
77617 )
77618 SELECT
77619 event_id
77620 , p_target_ledger_id
77621 , p_sla_ledger_id
77622 , p_language
77623 , object_name
77624 , object_type_code
77625 , line_number
77626 , source_application_id
77627 , source_type_code
77628 , source_code
77629 , SUBSTR(source_value ,1,1996)
77630 , SUBSTR(source_meaning ,1,200)
77631 , xla_environment_pkg.g_Usr_Id
77632 , TRUNC(SYSDATE)
77633 , TRUNC(SYSDATE)
77634 , xla_environment_pkg.g_Usr_Id
77635 , xla_environment_pkg.g_Login_Id
77636 , TRUNC(SYSDATE)
77637 , xla_environment_pkg.g_Prog_Appl_Id
77638 , xla_environment_pkg.g_Prog_Id
77639 , xla_environment_pkg.g_Req_Id
77640 FROM (
77641 SELECT xet.event_id event_id
77645 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
77642 , 0 line_number
77643 , CASE r
77644 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
77646 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
77647
77648 ELSE null
77649 END object_name
77650 , CASE r
77651 WHEN 1 THEN 'HEADER'
77652 WHEN 2 THEN 'HEADER'
77653 WHEN 3 THEN 'HEADER'
77654
77655 ELSE null
77656 END object_type_code
77657 , CASE r
77658 WHEN 1 THEN '275'
77659 WHEN 2 THEN '275'
77660 WHEN 3 THEN '275'
77661
77662 ELSE null
77663 END source_application_id
77664 , 'S' source_type_code
77665 , CASE r
77666 WHEN 1 THEN 'EXCHANGE_RATE_VARIANCE_FLAG'
77667 WHEN 2 THEN 'EXPENDITURE_ITEM_ID'
77668 WHEN 3 THEN 'GL_DATE'
77669
77670 ELSE null
77671 END source_code
77672 , CASE r
77673 WHEN 1 THEN TO_CHAR(h2.EXCHANGE_RATE_VARIANCE_FLAG)
77674 WHEN 2 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
77675 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
77676
77677 ELSE null
77678 END source_value
77679 , CASE r
77680 WHEN 1 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
77681 103371
77682 ,TO_CHAR(h2.EXCHANGE_RATE_VARIANCE_FLAG)
77683 ,'EXCHANGE_RATE_VARIANCE_FLAG'
77684 ,'S'
77685 ,275)
77686
77687 ELSE null
77688 END source_meaning
77689 FROM xla_events_gt xet
77690 , PA_XLA_EXP_HEADER_V h2
77691 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
77692 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77693 AND xet.event_class_code = C_EVENT_CLASS_CODE
77694 AND h2.event_id = xet.event_id
77695
77696 )
77697 ;
77698 --
77699 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77700
77701 trace
77702 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
77703 ,p_level => C_LEVEL_STATEMENT
77704 ,p_module => l_log_module);
77705
77706 END IF;
77707 --
77708
77709
77710
77711 --
77712 INSERT INTO xla_diag_sources --line2
77713 (
77714 event_id
77715 , ledger_id
77716 , sla_ledger_id
77717 , description_language
77718 , object_name
77719 , object_type_code
77720 , line_number
77721 , source_application_id
77722 , source_type_code
77723 , source_code
77724 , source_value
77725 , source_meaning
77726 , created_by
77727 , creation_date
77728 , last_update_date
77729 , last_updated_by
77730 , last_update_login
77731 , program_update_date
77732 , program_application_id
77733 , program_id
77734 , request_id
77735 )
77736 SELECT event_id
77737 , p_target_ledger_id
77738 , p_sla_ledger_id
77739 , p_language
77740 , object_name
77741 , object_type_code
77742 , line_number
77743 , source_application_id
77744 , source_type_code
77745 , source_code
77746 , SUBSTR(source_value,1,1996)
77747 , SUBSTR(source_meaning ,1,200)
77748 , xla_environment_pkg.g_Usr_Id
77749 , TRUNC(SYSDATE)
77750 , TRUNC(SYSDATE)
77751 , xla_environment_pkg.g_Usr_Id
77752 , xla_environment_pkg.g_Login_Id
77753 , TRUNC(SYSDATE)
77754 , xla_environment_pkg.g_Prog_Appl_Id
77755 , xla_environment_pkg.g_Prog_Id
77756 , xla_environment_pkg.g_Req_Id
77757 FROM (
77758 SELECT xet.event_id event_id
77759 , l1.line_number line_number
77760 , CASE r
77761 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
77762 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
77763 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
77764 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
77765 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
77766 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
77767 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
77768 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
77769 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
77770 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
77771 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
77772 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
77773 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
77774 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
77775 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
77776 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
77777 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
77781 END object_name
77778 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
77779
77780 ELSE null
77782 , CASE r
77783 WHEN 1 THEN 'LINE'
77784 WHEN 2 THEN 'LINE'
77785 WHEN 3 THEN 'LINE'
77786 WHEN 4 THEN 'LINE'
77787 WHEN 5 THEN 'LINE'
77788 WHEN 6 THEN 'LINE'
77789 WHEN 7 THEN 'LINE'
77790 WHEN 8 THEN 'LINE'
77791 WHEN 9 THEN 'LINE'
77792 WHEN 10 THEN 'LINE'
77793 WHEN 11 THEN 'LINE'
77794 WHEN 12 THEN 'LINE'
77795 WHEN 13 THEN 'LINE'
77796 WHEN 14 THEN 'LINE'
77797 WHEN 15 THEN 'LINE'
77798 WHEN 16 THEN 'LINE'
77799 WHEN 17 THEN 'LINE'
77800 WHEN 18 THEN 'LINE'
77801
77802 ELSE null
77803 END object_type_code
77804 , CASE r
77805 WHEN 1 THEN '275'
77806 WHEN 2 THEN '275'
77807 WHEN 3 THEN '275'
77808 WHEN 4 THEN '275'
77809 WHEN 5 THEN '275'
77810 WHEN 6 THEN '275'
77811 WHEN 7 THEN '275'
77812 WHEN 8 THEN '275'
77813 WHEN 9 THEN '275'
77814 WHEN 10 THEN '275'
77815 WHEN 11 THEN '275'
77816 WHEN 12 THEN '275'
77817 WHEN 13 THEN '275'
77818 WHEN 14 THEN '275'
77819 WHEN 15 THEN '275'
77820 WHEN 16 THEN '275'
77821 WHEN 17 THEN '275'
77822 WHEN 18 THEN '275'
77823
77824 ELSE null
77825 END source_application_id
77826 , 'S' source_type_code
77827 , CASE r
77828 WHEN 1 THEN 'COST_CCID'
77829 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
77830 WHEN 3 THEN 'ADJ_COST_CCID'
77831 WHEN 4 THEN 'COST_CLEARING_CCID'
77832 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
77833 WHEN 6 THEN 'REVERSING_LINE_FLAG'
77834 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
77835 WHEN 8 THEN 'ENTERED_RAW_COST'
77836 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
77837 WHEN 10 THEN 'ACCT_RAW_COST'
77838 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
77839 WHEN 12 THEN 'EXCHANGE_RATE'
77840 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
77841 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
77842 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
77843 WHEN 16 THEN 'LINE_NUMBER'
77844 WHEN 17 THEN 'LINE_TYPE'
77845 WHEN 18 THEN 'LINE_NUM_REVERSED'
77846
77847 ELSE null
77848 END source_code
77849 , CASE r
77850 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
77851 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
77852 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
77853 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
77854 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
77855 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
77856 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
77857 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
77858 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
77859 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
77860 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
77861 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
77862 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
77863 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
77864 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
77865 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
77866 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
77867 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
77868
77869 ELSE null
77870 END source_value
77871 , CASE r
77872 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
77873 103371
77874 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
77875 ,'ALLOW_OVERRIDE_CCID_FLAG'
77876 ,'S'
77877 ,275)
77878 WHEN 17 THEN fvl34.meaning
77879
77880 ELSE null
77881 END source_meaning
77882 FROM xla_events_gt xet
77883 , PA_XLA_CDL_LINES_V l1
77884 , fnd_lookup_values fvl34
77885 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
77886 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
77887 AND xet.event_class_code = C_EVENT_CLASS_CODE
77888 AND l1.event_id = xet.event_id
77889 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
77890 AND fvl34.lookup_code(+) = l1.LINE_TYPE
77891 AND fvl34.view_application_id(+) = 275
77895 ;
77892 AND fvl34.language(+) = USERENV('LANG')
77893
77894 )
77896 --
77897 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
77898
77899 trace
77900 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
77901 ,p_level => C_LEVEL_STATEMENT
77902 ,p_module => l_log_module);
77903
77904 END IF;
77905
77906
77907 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
77908 trace
77909 (p_msg => 'END of insert_sources_126'
77910 ,p_level => C_LEVEL_PROCEDURE
77911 ,p_module => l_log_module);
77912 END IF;
77913 EXCEPTION
77914 WHEN xla_exceptions_pkg.application_exception THEN
77915 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
77916 trace
77917 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
77918 ,p_level => C_LEVEL_EXCEPTION
77919 ,p_module => l_log_module);
77920 END IF;
77921 RAISE;
77922 WHEN OTHERS THEN
77923 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
77924 trace
77925 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
77926 ,p_level => C_LEVEL_EXCEPTION
77927 ,p_module => l_log_module);
77928 END IF;
77929 xla_exceptions_pkg.raise_message
77930 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_126');
77931 END insert_sources_126;
77932 --
77933
77934 ---------------------------------------
77935 --
77936 -- PRIVATE FUNCTION
77937 -- EventClass_126
77938 --
77939 ----------------------------------------
77940 --
77941 FUNCTION EventClass_126
77942 (p_application_id IN NUMBER
77943 ,p_base_ledger_id IN NUMBER
77944 ,p_target_ledger_id IN NUMBER
77945 ,p_language IN VARCHAR2
77946 ,p_currency_code IN VARCHAR2
77947 ,p_sla_ledger_id IN NUMBER
77948 ,p_pad_start_date IN DATE
77949 ,p_pad_end_date IN DATE
77950 ,p_primary_ledger_id IN NUMBER)
77951 RETURN BOOLEAN IS
77952 --
77953 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST_ALL';
77954 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'SUPPLIER_COST';
77955
77956 l_calculate_acctd_flag VARCHAR2(1) :='N';
77957 l_calculate_g_l_flag VARCHAR2(1) :='N';
77958 --
77959 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77960 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77961 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77962 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77963 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77964 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77965 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77966 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77967 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77968 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77969 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77970 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77971 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77972 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
77973 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77974 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77975 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77976 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
77977 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77978 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77979 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77980 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
77981 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
77982 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
77983
77984 l_event_id NUMBER;
77985 l_previous_event_id NUMBER;
77986 l_first_event_id NUMBER;
77987 l_last_event_id NUMBER;
77988
77989 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
77990 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
77991 --
77992 --
77993 l_result BOOLEAN := TRUE;
77994 l_rows NUMBER := 1000;
77995 l_event_type_name VARCHAR2(80) := 'All';
77996 l_event_class_name VARCHAR2(80) := 'Supplier Cost';
77997 l_description VARCHAR2(4000);
77998 l_transaction_reversal NUMBER;
77999 l_ae_header_id NUMBER;
78000 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
78001 l_log_module VARCHAR2(240);
78002 --
78003 l_acct_reversal_source VARCHAR2(30);
78004 l_trx_reversal_source VARCHAR2(30);
78005
78006 l_continue_with_lines BOOLEAN := TRUE;
78007 --
78008 l_acc_rev_gl_date_source DATE; -- 4262811
78009 --
78013 l_null_rec_array_event t_rec_array_event;
78010 type t_array_event_id is table of number index by binary_integer;
78011
78012 l_rec_array_event t_rec_array_event;
78014 l_array_ae_header_id xla_number_array_type;
78015 l_actual_flag VARCHAR2(1) := NULL;
78016 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
78017 l_balance_type_code VARCHAR2(1) :=NULL;
78018 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
78019
78020 --
78021 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
78022 --
78023
78024 TYPE t_array_source_21 IS TABLE OF PA_XLA_EXP_HEADER_V.EXCHANGE_RATE_VARIANCE_FLAG%TYPE INDEX BY BINARY_INTEGER;
78025 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
78026 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
78027
78028 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
78029 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
78030 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
78031 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
78032 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
78033 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
78034 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
78035 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
78036 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
78037 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
78038 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
78039 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
78040 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
78041 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
78042 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
78043 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
78044 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
78045 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
78046
78047 l_array_source_21 t_array_source_21;
78048 l_array_source_32 t_array_source_32;
78049 l_array_source_87 t_array_source_87;
78050
78051 l_array_source_3 t_array_source_3;
78052 l_array_source_4 t_array_source_4;
78053 l_array_source_5 t_array_source_5;
78054 l_array_source_6 t_array_source_6;
78055 l_array_source_7 t_array_source_7;
78056 l_array_source_22 t_array_source_22;
78057 l_array_source_23 t_array_source_23;
78058 l_array_source_24 t_array_source_24;
78059 l_array_source_25 t_array_source_25;
78060 l_array_source_26 t_array_source_26;
78061 l_array_source_27 t_array_source_27;
78062 l_array_source_28 t_array_source_28;
78063 l_array_source_29 t_array_source_29;
78064 l_array_source_30 t_array_source_30;
78065 l_array_source_31 t_array_source_31;
78066 l_array_source_33 t_array_source_33;
78067 l_array_source_34 t_array_source_34;
78068 l_array_source_34_meaning t_array_lookup_meaning;
78069 l_array_source_35 t_array_source_35;
78070
78071 --
78072 CURSOR header_cur
78073 IS
78074 SELECT /*+ leading(xet) cardinality(xet,1) */
78075 -- Event Class Code: SUPPLIER_COST
78076 xet.entity_id
78077 ,xet.legal_entity_id
78078 ,xet.entity_code
78079 ,xet.transaction_number
78080 ,xet.event_id
78081 ,xet.event_class_code
78082 ,xet.event_type_code
78083 ,xet.event_number
78084 ,xet.event_date
78085 ,xet.transaction_date
78086 ,xet.reference_num_1
78087 ,xet.reference_num_2
78088 ,xet.reference_num_3
78089 ,xet.reference_num_4
78090 ,xet.reference_char_1
78091 ,xet.reference_char_2
78092 ,xet.reference_char_3
78093 ,xet.reference_char_4
78094 ,xet.reference_date_1
78095 ,xet.reference_date_2
78096 ,xet.reference_date_3
78097 ,xet.reference_date_4
78098 ,xet.event_created_by
78099 ,xet.budgetary_control_flag
78100 , h2.EXCHANGE_RATE_VARIANCE_FLAG source_21
78101 , h2.EXPENDITURE_ITEM_ID source_32
78102 , h2.GL_DATE source_87
78103 FROM xla_events_gt xet
78104 , PA_XLA_EXP_HEADER_V h2
78105 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
78106 and xet.event_class_code = C_EVENT_CLASS_CODE
78107 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
78108
78109 ORDER BY event_id
78110 ;
78111
78112
78113 --
78114 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
78115 IS
78116 SELECT /*+ leading(xet) cardinality(xet,1) */
78117 -- Event Class Code: SUPPLIER_COST
78118 xet.entity_id
78119 ,xet.legal_entity_id
78120 ,xet.entity_code
78121 ,xet.transaction_number
78125 ,xet.event_number
78122 ,xet.event_id
78123 ,xet.event_class_code
78124 ,xet.event_type_code
78126 ,xet.event_date
78127 ,xet.transaction_date
78128 ,xet.reference_num_1
78129 ,xet.reference_num_2
78130 ,xet.reference_num_3
78131 ,xet.reference_num_4
78132 ,xet.reference_char_1
78133 ,xet.reference_char_2
78134 ,xet.reference_char_3
78135 ,xet.reference_char_4
78136 ,xet.reference_date_1
78137 ,xet.reference_date_2
78138 ,xet.reference_date_3
78139 ,xet.reference_date_4
78140 ,xet.event_created_by
78141 ,xet.budgetary_control_flag
78142 , l1.LINE_NUMBER
78143 , l1.COST_CCID source_3
78144 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
78145 , l1.ADJ_COST_CCID source_5
78146 , l1.COST_CLEARING_CCID source_6
78147 , l1.ADJ_COST_CLEARING_CCID source_7
78148 , l1.REVERSING_LINE_FLAG source_22
78149 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
78150 , l1.ENTERED_RAW_COST source_24
78151 , l1.ENTERED_CURRENCY_CODE source_25
78152 , l1.ACCT_RAW_COST source_26
78153 , l1.EXCHANGE_RATE_DATE source_27
78154 , l1.EXCHANGE_RATE source_28
78155 , l1.EXCHANGE_RATE_TYPE source_29
78156 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
78157 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
78158 , l1.LINE_NUMBER source_33
78159 , l1.LINE_TYPE source_34
78160 , fvl34.meaning source_34_meaning
78161 , l1.LINE_NUM_REVERSED source_35
78162 FROM xla_events_gt xet
78163 , PA_XLA_CDL_LINES_V l1
78164 , fnd_lookup_values fvl34
78165 WHERE xet.event_id between x_first_event_id and x_last_event_id
78166 and xet.event_date between p_pad_start_date and p_pad_end_date
78167 and xet.event_class_code = C_EVENT_CLASS_CODE
78168 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
78169 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
78170 AND fvl34.lookup_code(+) = l1.LINE_TYPE
78171 AND fvl34.view_application_id(+) = 275
78172 AND fvl34.language(+) = USERENV('LANG')
78173 ;
78174
78175 --
78176 BEGIN
78177 IF g_log_enabled THEN
78178 l_log_module := C_DEFAULT_MODULE||'.EventClass_126';
78179 END IF;
78180 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78181 trace
78182 (p_msg => 'BEGIN of EventClass_126'
78183 ,p_level => C_LEVEL_PROCEDURE
78184 ,p_module => l_log_module);
78185 END IF;
78186
78187 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78188 trace
78189 (p_msg => 'p_application_id = '||p_application_id||
78190 ' - p_base_ledger_id = '||p_base_ledger_id||
78191 ' - p_target_ledger_id = '||p_target_ledger_id||
78192 ' - p_language = '||p_language||
78193 ' - p_currency_code = '||p_currency_code||
78194 ' - p_sla_ledger_id = '||p_sla_ledger_id
78195 ,p_level => C_LEVEL_STATEMENT
78196 ,p_module => l_log_module);
78197 END IF;
78198 --
78199 -- initialze arrays
78200 --
78201 g_array_event.DELETE;
78202 l_rec_array_event := l_null_rec_array_event;
78203 --
78204 --------------------------------------
78205 -- 4262811 Initialze MPA Line Number
78206 --------------------------------------
78207 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
78208
78209 --
78210
78211 --
78212 OPEN header_cur;
78213 --
78214 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78215 trace
78216 (p_msg => 'SQL - FETCH header_cur'
78217 ,p_level => C_LEVEL_STATEMENT
78218 ,p_module => l_log_module);
78219 END IF;
78220 --
78221 LOOP
78222 FETCH header_cur BULK COLLECT INTO
78223 l_array_entity_id
78224 , l_array_legal_entity_id
78225 , l_array_entity_code
78226 , l_array_transaction_num
78227 , l_array_event_id
78228 , l_array_class_code
78229 , l_array_event_type
78230 , l_array_event_number
78231 , l_array_event_date
78232 , l_array_transaction_date
78233 , l_array_reference_num_1
78234 , l_array_reference_num_2
78235 , l_array_reference_num_3
78236 , l_array_reference_num_4
78237 , l_array_reference_char_1
78238 , l_array_reference_char_2
78239 , l_array_reference_char_3
78240 , l_array_reference_char_4
78241 , l_array_reference_date_1
78242 , l_array_reference_date_2
78243 , l_array_reference_date_3
78244 , l_array_reference_date_4
78245 , l_array_event_created_by
78246 , l_array_budgetary_control_flag
78247 , l_array_source_21
78248 , l_array_source_32
78249 , l_array_source_87
78250 LIMIT l_rows;
78251 --
78252 IF (C_LEVEL_EVENT >= g_log_level) THEN
78253 trace
78254 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
78255 ,p_level => C_LEVEL_EVENT
78256 ,p_module => l_log_module);
78257 END IF;
78258 --
78259 EXIT WHEN l_array_entity_id.COUNT = 0;
78260
78261 -- initialize arrays
78262 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
78263 XLA_AE_LINES_PKG.g_rec_lines := NULL;
78264
78265 --
78266 -- Bug 4458708
78267 --
78268 XLA_AE_LINES_PKG.g_LineNumber := 0;
78269
78270
78274 -- loop for the headers. Each iteration is for each header extract row
78271 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
78272 g_last_hdr_idx := l_array_event_id.LAST;
78273 --
78275 -- fetched in header cursor
78276 --
78277 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
78278
78279 --
78280 -- set event info as cache for other routines to refer event attributes
78281 --
78282 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78283 (p_application_id => p_application_id
78284 ,p_primary_ledger_id => p_primary_ledger_id
78285 ,p_base_ledger_id => p_base_ledger_id
78286 ,p_target_ledger_id => p_target_ledger_id
78287 ,p_entity_id => l_array_entity_id(hdr_idx)
78288 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
78289 ,p_entity_code => l_array_entity_code(hdr_idx)
78290 ,p_transaction_num => l_array_transaction_num(hdr_idx)
78291 ,p_event_id => l_array_event_id(hdr_idx)
78292 ,p_event_class_code => l_array_class_code(hdr_idx)
78293 ,p_event_type_code => l_array_event_type(hdr_idx)
78294 ,p_event_number => l_array_event_number(hdr_idx)
78295 ,p_event_date => l_array_event_date(hdr_idx)
78296 ,p_transaction_date => l_array_transaction_date(hdr_idx)
78297 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
78298 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
78299 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
78300 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
78301 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
78302 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
78303 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
78304 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
78305 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
78306 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
78307 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
78308 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
78309 ,p_event_created_by => l_array_event_created_by(hdr_idx)
78310 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
78311
78312 --
78313 -- set the status of entry to C_VALID (0)
78314 --
78315 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78316
78317 --
78318 -- initialize a row for ae header
78319 --
78320 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
78321
78322 l_event_id := l_array_event_id(hdr_idx);
78323
78324 --
78325 -- storing the hdr_idx for event. May be used by line cursor.
78326 --
78327 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
78328
78329 --
78330 -- store sources from header extract. This can be improved to
78331 -- store only those sources from header extract that may be used in lines
78332 --
78333
78334 g_array_event(l_event_id).array_value_char('source_21') := l_array_source_21(hdr_idx);
78335 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
78336 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
78337
78338 --
78339 -- initilaize the status of ae headers for diffrent balance types
78340 -- the status is initialised to C_NOT_CREATED (2)
78341 --
78342 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78343 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78344 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
78345
78346 --
78347 -- call api to validate and store accounting attributes for header
78348 --
78349
78350 ------------------------------------------------------------
78351 -- Accrual Reversal : to get date for Standard Source (NONE)
78352 ------------------------------------------------------------
78353 l_acc_rev_gl_date_source := NULL;
78354
78355 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
78356 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
78357
78358
78359 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
78360
78361 XLA_AE_HEADER_PKG.SetJeCategoryName;
78362
78363 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
78364 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
78365 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
78366 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
78367 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
78368
78369
78370 -- No header level analytical criteria
78371
78372 --
78373 --accounting attribute enhancement, bug 3612931
78374 --
78375 l_trx_reversal_source := SUBSTR(NULL, 1,30);
78376
78377 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
78378 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
78379
78380 xla_accounting_err_pkg.build_message
78381 (p_appli_s_name => 'XLA'
78382 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
78386 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78383 ,p_token_1 => 'ACCT_ATTR_NAME'
78384 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
78385 ,p_token_2 => 'PRODUCT_NAME'
78387 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78388 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78389 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78390
78391 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
78392 --
78393 -- following sets the accounting attributes needed to reverse
78394 -- accounting for a distributeion
78395 --
78396 xla_ae_lines_pkg.SetTrxReversalAttrs
78397 (p_event_id => l_event_id
78398 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
78399 ,p_trx_reversal_source => l_trx_reversal_source);
78400
78401 END IF;
78402
78403
78404 ----------------------------------------------------------------
78405 -- 4262811 - update the header statuses to invalid in need be
78406 ----------------------------------------------------------------
78407 --
78408 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
78409
78410
78411 -----------------------------------------------
78412 -- No accrual reversal for the event class/type
78413 -----------------------------------------------
78414 ----------------------------------------------------------------
78415
78416 --
78417 -- this ends the header loop iteration for one bulk fetch
78418 --
78419 END LOOP;
78420
78421 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
78422 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
78423
78424 --
78425 -- insert dummy rows into lines gt table that were created due to
78426 -- transaction reversals
78427 --
78428 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
78429 l_result := XLA_AE_LINES_PKG.InsertLines;
78430 END IF;
78431
78432 --
78433 -- reset the temp_line_num for each set of events fetched from header
78434 -- cursor rather than doing it for each new event in line cursor
78435 -- Bug 3939231
78436 --
78437 xla_ae_lines_pkg.g_temp_line_num := 0;
78438
78439
78440
78441 --
78442 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
78443 --
78444 --
78445 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78446
78447 trace
78448 (p_msg => 'SQL - FETCH line_cur'
78449 ,p_level => C_LEVEL_STATEMENT
78450 ,p_module => l_log_module);
78451
78452 END IF;
78453 --
78454 --
78455 LOOP
78456 --
78457 FETCH line_cur BULK COLLECT INTO
78458 l_array_entity_id
78459 , l_array_legal_entity_id
78460 , l_array_entity_code
78461 , l_array_transaction_num
78462 , l_array_event_id
78463 , l_array_class_code
78464 , l_array_event_type
78465 , l_array_event_number
78466 , l_array_event_date
78467 , l_array_transaction_date
78468 , l_array_reference_num_1
78469 , l_array_reference_num_2
78470 , l_array_reference_num_3
78471 , l_array_reference_num_4
78472 , l_array_reference_char_1
78473 , l_array_reference_char_2
78474 , l_array_reference_char_3
78475 , l_array_reference_char_4
78476 , l_array_reference_date_1
78477 , l_array_reference_date_2
78478 , l_array_reference_date_3
78479 , l_array_reference_date_4
78480 , l_array_event_created_by
78481 , l_array_budgetary_control_flag
78482 , l_array_extract_line_num
78483 , l_array_source_3
78484 , l_array_source_4
78485 , l_array_source_5
78486 , l_array_source_6
78487 , l_array_source_7
78488 , l_array_source_22
78489 , l_array_source_23
78490 , l_array_source_24
78491 , l_array_source_25
78492 , l_array_source_26
78493 , l_array_source_27
78494 , l_array_source_28
78495 , l_array_source_29
78496 , l_array_source_30
78497 , l_array_source_31
78498 , l_array_source_33
78499 , l_array_source_34
78500 , l_array_source_34_meaning
78501 , l_array_source_35
78502 LIMIT l_rows;
78503
78504 --
78505 IF (C_LEVEL_EVENT >= g_log_level) THEN
78506 trace
78507 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
78508 ,p_level => C_LEVEL_EVENT
78509 ,p_module => l_log_module);
78510 END IF;
78511 --
78512 EXIT WHEN l_array_entity_id.count = 0;
78513
78514 XLA_AE_LINES_PKG.g_rec_lines := null;
78515
78516 --
78517 -- Bug 4458708
78518 --
78519 XLA_AE_LINES_PKG.g_LineNumber := 0;
78520 --
78521 --
78522
78523 FOR Idx IN 1..l_array_event_id.count LOOP
78524 --
78525 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
78526 --
78527 l_event_id := l_array_event_id(idx); -- 5648433
78528
78529 --
78533 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
78530 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
78531 --
78532
78534 (g_array_event(l_event_id).array_value_num('header_index'))
78535 ,'N'
78536 ) <> 'Y'
78537 THEN
78538 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78539 trace
78540 (p_msg => 'Trancaction revesal option is not Y '
78541 ,p_level => C_LEVEL_STATEMENT
78542 ,p_module => l_log_module);
78543 END IF;
78544
78545 --
78546 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
78547 --
78548 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
78549 --
78550 -- set event info as cache for other routines to refer event attributes
78551 --
78552
78553 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
78554 l_previous_event_id := l_event_id;
78555
78556 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
78557 (p_application_id => p_application_id
78558 ,p_primary_ledger_id => p_primary_ledger_id
78559 ,p_base_ledger_id => p_base_ledger_id
78560 ,p_target_ledger_id => p_target_ledger_id
78561 ,p_entity_id => l_array_entity_id(Idx)
78562 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
78563 ,p_entity_code => l_array_entity_code(Idx)
78564 ,p_transaction_num => l_array_transaction_num(Idx)
78565 ,p_event_id => l_array_event_id(Idx)
78566 ,p_event_class_code => l_array_class_code(Idx)
78567 ,p_event_type_code => l_array_event_type(Idx)
78568 ,p_event_number => l_array_event_number(Idx)
78569 ,p_event_date => l_array_event_date(Idx)
78570 ,p_transaction_date => l_array_transaction_date(Idx)
78571 ,p_reference_num_1 => l_array_reference_num_1(Idx)
78572 ,p_reference_num_2 => l_array_reference_num_2(Idx)
78573 ,p_reference_num_3 => l_array_reference_num_3(Idx)
78574 ,p_reference_num_4 => l_array_reference_num_4(Idx)
78575 ,p_reference_char_1 => l_array_reference_char_1(Idx)
78576 ,p_reference_char_2 => l_array_reference_char_2(Idx)
78577 ,p_reference_char_3 => l_array_reference_char_3(Idx)
78578 ,p_reference_char_4 => l_array_reference_char_4(Idx)
78579 ,p_reference_date_1 => l_array_reference_date_1(Idx)
78580 ,p_reference_date_2 => l_array_reference_date_2(Idx)
78581 ,p_reference_date_3 => l_array_reference_date_3(Idx)
78582 ,p_reference_date_4 => l_array_reference_date_4(Idx)
78583 ,p_event_created_by => l_array_event_created_by(Idx)
78584 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
78585 --
78586 END IF;
78587
78588
78589
78590 --
78591 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
78592
78593 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
78594
78595 IF l_continue_with_lines THEN
78596 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
78597 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
78598
78599 xla_accounting_err_pkg.build_message
78600 (p_appli_s_name => 'XLA'
78601 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
78602 ,p_token_1 => 'LINE_NUMBER'
78603 ,p_value_1 => l_array_extract_line_num(Idx)
78604 ,p_token_2 => 'PRODUCT_NAME'
78605 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
78606 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
78607 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78608 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
78609
78610 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
78611 --
78612 -- following sets the accounting attributes needed to reverse
78613 -- accounting for a distributeion
78614 --
78615
78616 --
78617 -- 5217187
78618 --
78619 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
78620 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
78621 g_array_event(l_event_id).array_value_num('header_index'));
78622 --
78623 --
78624
78625 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
78626 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
78627 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
78628 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
78629 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
78630 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
78631 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
78632 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
78633 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
78634 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
78638 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
78635 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
78636 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
78637 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
78639 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
78640 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
78641 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
78642 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
78643 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
78644 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
78645 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
78646 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
78647 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
78648 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
78649 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
78650 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
78651 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
78652 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
78653 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
78654 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
78655 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
78656 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
78657 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
78658 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
78659 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
78660 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
78661 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
78662 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
78663 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
78664 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
78665 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
78666 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
78667 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
78668 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
78669 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
78670 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
78671 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
78672 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
78673
78674
78675 xla_ae_lines_pkg.SetAcctReversalAttrs
78676 (p_event_id => l_event_id
78677 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
78678 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78679 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
78680 END IF;
78681
78682 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
78683 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
78684
78685 --
78686 AcctLineType_20 (
78687 p_application_id => p_application_id
78688 ,p_event_id => l_event_id
78689 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78690 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78691 ,p_actual_flag => l_actual_flag
78692 ,p_balance_type_code => l_balance_type_code
78693 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78694
78695 , p_source_3 => l_array_source_3(Idx)
78696 , p_source_4 => l_array_source_4(Idx)
78697 , p_source_5 => l_array_source_5(Idx)
78698 , p_source_6 => l_array_source_6(Idx)
78699 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
78700 , p_source_22 => l_array_source_22(Idx)
78701 , p_source_23 => l_array_source_23(Idx)
78702 , p_source_24 => l_array_source_24(Idx)
78703 , p_source_25 => l_array_source_25(Idx)
78704 , p_source_26 => l_array_source_26(Idx)
78705 , p_source_27 => l_array_source_27(Idx)
78706 , p_source_28 => l_array_source_28(Idx)
78707 , p_source_29 => l_array_source_29(Idx)
78708 , p_source_30 => l_array_source_30(Idx)
78709 , p_source_31 => l_array_source_31(Idx)
78710 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
78711 , p_source_33 => l_array_source_33(Idx)
78712 , p_source_34 => l_array_source_34(Idx)
78713 , p_source_34_meaning => l_array_source_34_meaning(Idx)
78714 , p_source_35 => l_array_source_35(Idx)
78715 );
78716 If(l_balance_type_code = 'A') THEN
78717 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78718 END IF;
78719
78720 --
78721
78722
78723 --
78724 AcctLineType_23 (
78725 p_application_id => p_application_id
78726 ,p_event_id => l_event_id
78727 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78728 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78729 ,p_actual_flag => l_actual_flag
78730 ,p_balance_type_code => l_balance_type_code
78731 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78732
78733 , p_source_3 => l_array_source_3(Idx)
78737 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
78734 , p_source_4 => l_array_source_4(Idx)
78735 , p_source_6 => l_array_source_6(Idx)
78736 , p_source_7 => l_array_source_7(Idx)
78738 , p_source_22 => l_array_source_22(Idx)
78739 , p_source_23 => l_array_source_23(Idx)
78740 , p_source_24 => l_array_source_24(Idx)
78741 , p_source_25 => l_array_source_25(Idx)
78742 , p_source_26 => l_array_source_26(Idx)
78743 , p_source_27 => l_array_source_27(Idx)
78744 , p_source_28 => l_array_source_28(Idx)
78745 , p_source_29 => l_array_source_29(Idx)
78746 , p_source_30 => l_array_source_30(Idx)
78747 , p_source_31 => l_array_source_31(Idx)
78748 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
78749 , p_source_33 => l_array_source_33(Idx)
78750 , p_source_34 => l_array_source_34(Idx)
78751 , p_source_34_meaning => l_array_source_34_meaning(Idx)
78752 , p_source_35 => l_array_source_35(Idx)
78753 );
78754 If(l_balance_type_code = 'A') THEN
78755 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78756 END IF;
78757
78758 --
78759
78760
78761 --
78762 AcctLineType_44 (
78763 p_application_id => p_application_id
78764 ,p_event_id => l_event_id
78765 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78766 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78767 ,p_actual_flag => l_actual_flag
78768 ,p_balance_type_code => l_balance_type_code
78769 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78770
78771 , p_source_3 => l_array_source_3(Idx)
78772 , p_source_4 => l_array_source_4(Idx)
78773 , p_source_5 => l_array_source_5(Idx)
78774 , p_source_6 => l_array_source_6(Idx)
78775 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
78776 , p_source_22 => l_array_source_22(Idx)
78777 , p_source_23 => l_array_source_23(Idx)
78778 , p_source_24 => l_array_source_24(Idx)
78779 , p_source_25 => l_array_source_25(Idx)
78780 , p_source_26 => l_array_source_26(Idx)
78781 , p_source_27 => l_array_source_27(Idx)
78782 , p_source_28 => l_array_source_28(Idx)
78783 , p_source_29 => l_array_source_29(Idx)
78784 , p_source_30 => l_array_source_30(Idx)
78785 , p_source_31 => l_array_source_31(Idx)
78786 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
78787 , p_source_33 => l_array_source_33(Idx)
78788 , p_source_34 => l_array_source_34(Idx)
78789 , p_source_34_meaning => l_array_source_34_meaning(Idx)
78790 , p_source_35 => l_array_source_35(Idx)
78791 );
78792 If(l_balance_type_code = 'A') THEN
78793 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78794 END IF;
78795
78796 --
78797
78798
78799 --
78800 AcctLineType_56 (
78801 p_application_id => p_application_id
78802 ,p_event_id => l_event_id
78803 ,p_calculate_acctd_flag => l_calculate_acctd_flag
78804 ,p_calculate_g_l_flag => l_calculate_g_l_flag
78805 ,p_actual_flag => l_actual_flag
78806 ,p_balance_type_code => l_balance_type_code
78807 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
78808
78809 , p_source_3 => l_array_source_3(Idx)
78810 , p_source_4 => l_array_source_4(Idx)
78811 , p_source_6 => l_array_source_6(Idx)
78812 , p_source_7 => l_array_source_7(Idx)
78813 , p_source_21 => g_array_event(l_event_id).array_value_char('source_21')
78814 , p_source_22 => l_array_source_22(Idx)
78815 , p_source_23 => l_array_source_23(Idx)
78816 , p_source_24 => l_array_source_24(Idx)
78817 , p_source_25 => l_array_source_25(Idx)
78818 , p_source_26 => l_array_source_26(Idx)
78819 , p_source_27 => l_array_source_27(Idx)
78820 , p_source_28 => l_array_source_28(Idx)
78821 , p_source_29 => l_array_source_29(Idx)
78822 , p_source_30 => l_array_source_30(Idx)
78823 , p_source_31 => l_array_source_31(Idx)
78824 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
78825 , p_source_33 => l_array_source_33(Idx)
78826 , p_source_34 => l_array_source_34(Idx)
78827 , p_source_34_meaning => l_array_source_34_meaning(Idx)
78828 , p_source_35 => l_array_source_35(Idx)
78829 );
78830 If(l_balance_type_code = 'A') THEN
78831 l_actual_gain_loss_ref := l_gain_or_loss_ref;
78832 END IF;
78833
78834 --
78835
78836 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
78837 -- or secondary ledger that has different currency with primary
78838 -- or alc that is calculated by sla
78839 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
78840 (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'))
78841
78842 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
78843 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
78844 AND (l_actual_flag = 'A')) THEN
78845 XLA_AE_LINES_PKG.CreateGainOrLossLines(
78846 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
78847 ,p_application_id => p_application_id
78848 ,p_amb_context_code => 'DEFAULT'
78849 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
78850 ,p_event_class_code => C_EVENT_CLASS_CODE
78851 ,p_event_type_code => C_EVENT_TYPE_CODE
78852
78853 ,p_gain_ccid => -1
78854 ,p_loss_ccid => -1
78855
78856 ,p_actual_flag => l_actual_flag
78860 );
78857 ,p_enc_flag => null
78858 ,p_actual_g_l_ref => l_actual_gain_loss_ref
78859 ,p_enc_g_l_ref => null
78861 END IF;
78862 END IF;
78863 END IF;
78864
78865 ELSE
78866 --
78867 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
78868 --
78869 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78870 trace
78871 (p_msg => 'Trancaction revesal option is Y'
78872 ,p_level => C_LEVEL_STATEMENT
78873 ,p_module => l_log_module);
78874 END IF;
78875 END IF;
78876
78877 END LOOP;
78878 l_result := XLA_AE_LINES_PKG.InsertLines ;
78879 end loop;
78880 close line_cur;
78881
78882
78883 --
78884 -- insert headers into xla_ae_headers_gt table
78885 --
78886 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
78887
78888 -- insert into errors table here.
78889
78890 END LOOP;
78891
78892 --
78893 -- 4865292
78894 --
78895 -- Compare g_hdr_extract_count with event count in
78896 -- CreateHeadersAndLines.
78897 --
78898 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
78899
78900 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78901 trace (p_msg => '# rows extracted from header extract objects '
78902 || ' (running total): '
78903 || g_hdr_extract_count
78904 ,p_level => C_LEVEL_STATEMENT
78905 ,p_module => l_log_module);
78906 END IF;
78907
78908 CLOSE header_cur;
78909 --
78910
78911 --
78912 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78913 trace
78914 (p_msg => 'END of EventClass_126'
78915 ,p_level => C_LEVEL_PROCEDURE
78916 ,p_module => l_log_module);
78917 END IF;
78918 --
78919 RETURN l_result;
78920 EXCEPTION
78921 WHEN xla_exceptions_pkg.application_exception THEN
78922
78923 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
78924
78925
78926 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
78927
78928 RAISE;
78929 WHEN OTHERS THEN
78930 xla_exceptions_pkg.raise_message
78931 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_126');
78932 END EventClass_126;
78933 --
78934
78935 ---------------------------------------
78936 --
78937 -- PRIVATE PROCEDURE
78938 -- insert_sources_127
78939 --
78940 ----------------------------------------
78941 --
78942 PROCEDURE insert_sources_127(
78943 p_target_ledger_id IN NUMBER
78944 , p_language IN VARCHAR2
78945 , p_sla_ledger_id IN NUMBER
78946 , p_pad_start_date IN DATE
78947 , p_pad_end_date IN DATE
78948 )
78949 IS
78950
78951 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ_ALL';
78952 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ';
78953 p_apps_owner VARCHAR2(30);
78954 l_log_module VARCHAR2(240);
78955 BEGIN
78956 IF g_log_enabled THEN
78957 l_log_module := C_DEFAULT_MODULE||'.insert_sources_127';
78958 END IF;
78959 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
78960
78961 trace
78962 (p_msg => 'BEGIN of insert_sources_127'
78963 ,p_level => C_LEVEL_PROCEDURE
78964 ,p_module => l_log_module);
78965
78966 END IF;
78967
78968 -- select APPS owner
78969 SELECT oracle_username
78970 INTO p_apps_owner
78971 FROM fnd_oracle_userid
78972 WHERE read_only_flag = 'U'
78973 ;
78974
78975 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
78976 trace
78977 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
78978 ' - p_language = '||p_language||
78979 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
78980 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
78981 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
78982 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
78983 ,p_level => C_LEVEL_STATEMENT
78984 ,p_module => l_log_module);
78985 END IF;
78986
78987
78988 --
78989 INSERT INTO xla_diag_sources --hdr2
78990 (
78991 event_id
78992 , ledger_id
78993 , sla_ledger_id
78994 , description_language
78995 , object_name
78996 , object_type_code
78997 , line_number
78998 , source_application_id
78999 , source_type_code
79000 , source_code
79001 , source_value
79002 , source_meaning
79003 , created_by
79004 , creation_date
79005 , last_update_date
79006 , last_updated_by
79007 , last_update_login
79008 , program_update_date
79009 , program_application_id
79010 , program_id
79011 , request_id
79012 )
79013 SELECT
79014 event_id
79015 , p_target_ledger_id
79016 , p_sla_ledger_id
79017 , p_language
79018 , object_name
79022 , source_type_code
79019 , object_type_code
79020 , line_number
79021 , source_application_id
79023 , source_code
79024 , SUBSTR(source_value ,1,1996)
79025 , SUBSTR(source_meaning ,1,200)
79026 , xla_environment_pkg.g_Usr_Id
79027 , TRUNC(SYSDATE)
79028 , TRUNC(SYSDATE)
79029 , xla_environment_pkg.g_Usr_Id
79030 , xla_environment_pkg.g_Login_Id
79031 , TRUNC(SYSDATE)
79032 , xla_environment_pkg.g_Prog_Appl_Id
79033 , xla_environment_pkg.g_Prog_Id
79034 , xla_environment_pkg.g_Req_Id
79035 FROM (
79036 SELECT xet.event_id event_id
79037 , 0 line_number
79038 , CASE r
79039 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
79040 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
79041 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
79042
79043 ELSE null
79044 END object_name
79045 , CASE r
79046 WHEN 1 THEN 'HEADER'
79047 WHEN 2 THEN 'HEADER'
79048 WHEN 3 THEN 'HEADER'
79049
79050 ELSE null
79051 END object_type_code
79052 , CASE r
79053 WHEN 1 THEN '275'
79054 WHEN 2 THEN '275'
79055 WHEN 3 THEN '275'
79056
79057 ELSE null
79058 END source_application_id
79059 , 'S' source_type_code
79060 , CASE r
79061 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
79062 WHEN 2 THEN 'SYSTEM_LINKAGE_FUNCTION'
79063 WHEN 3 THEN 'GL_DATE'
79064
79065 ELSE null
79066 END source_code
79067 , CASE r
79068 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
79069 WHEN 2 THEN TO_CHAR(h2.SYSTEM_LINKAGE_FUNCTION)
79070 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
79071
79072 ELSE null
79073 END source_value
79074 , null source_meaning
79075 FROM xla_events_gt xet
79076 , PA_XLA_EXP_HEADER_V h2
79077 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
79078 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
79079 AND xet.event_class_code = C_EVENT_CLASS_CODE
79080 AND h2.event_id = xet.event_id
79081
79082 )
79083 ;
79084 --
79085 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79086
79087 trace
79088 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
79089 ,p_level => C_LEVEL_STATEMENT
79090 ,p_module => l_log_module);
79091
79092 END IF;
79093 --
79094
79095
79096
79097 --
79098 INSERT INTO xla_diag_sources --line2
79099 (
79100 event_id
79101 , ledger_id
79102 , sla_ledger_id
79103 , description_language
79104 , object_name
79105 , object_type_code
79106 , line_number
79107 , source_application_id
79108 , source_type_code
79109 , source_code
79110 , source_value
79111 , source_meaning
79112 , created_by
79113 , creation_date
79114 , last_update_date
79115 , last_updated_by
79116 , last_update_login
79117 , program_update_date
79118 , program_application_id
79119 , program_id
79120 , request_id
79121 )
79122 SELECT 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 , l1.line_number line_number
79146 , CASE r
79147 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
79148 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
79149 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
79150 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
79151 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
79152 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
79153 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
79154 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
79155 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
79156 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
79157 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
79158 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
79159 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
79163 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
79160 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
79161 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
79162 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
79164 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
79165 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
79166 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
79167 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
79168 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
79169 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
79170 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
79171 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
79172 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
79173 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
79174 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
79175 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
79176 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
79177 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
79178 WHEN 32 THEN 'PA_XLA_CDL_LINES_V'
79179 WHEN 33 THEN 'PA_XLA_CDL_LINES_V'
79180 WHEN 34 THEN 'PA_XLA_CDL_LINES_V'
79181 WHEN 35 THEN 'PA_XLA_CDL_LINES_V'
79182 WHEN 36 THEN 'PA_XLA_CDL_LINES_V'
79183 WHEN 37 THEN 'PA_XLA_CDL_LINES_V'
79184 WHEN 38 THEN 'PA_XLA_CDL_LINES_V'
79185 WHEN 39 THEN 'PA_XLA_CDL_LINES_V'
79186 WHEN 40 THEN 'PA_XLA_CDL_LINES_V'
79187 WHEN 41 THEN 'PA_XLA_CDL_LINES_V'
79188 WHEN 42 THEN 'PA_XLA_CDL_LINES_V'
79189 WHEN 43 THEN 'PA_XLA_CDL_LINES_V'
79190 WHEN 44 THEN 'PA_XLA_CDL_LINES_V'
79191 WHEN 45 THEN 'PA_XLA_CDL_LINES_V'
79192 WHEN 46 THEN 'PA_XLA_CDL_LINES_V'
79193 WHEN 47 THEN 'PA_XLA_CDL_LINES_V'
79194 WHEN 48 THEN 'PA_XLA_CDL_LINES_V'
79195
79196 ELSE null
79197 END object_name
79198 , CASE r
79199 WHEN 1 THEN 'LINE'
79200 WHEN 2 THEN 'LINE'
79201 WHEN 3 THEN 'LINE'
79202 WHEN 4 THEN 'LINE'
79203 WHEN 5 THEN 'LINE'
79204 WHEN 6 THEN 'LINE'
79205 WHEN 7 THEN 'LINE'
79206 WHEN 8 THEN 'LINE'
79207 WHEN 9 THEN 'LINE'
79208 WHEN 10 THEN 'LINE'
79209 WHEN 11 THEN 'LINE'
79210 WHEN 12 THEN 'LINE'
79211 WHEN 13 THEN 'LINE'
79212 WHEN 14 THEN 'LINE'
79213 WHEN 15 THEN 'LINE'
79214 WHEN 16 THEN 'LINE'
79215 WHEN 17 THEN 'LINE'
79216 WHEN 18 THEN 'LINE'
79217 WHEN 19 THEN 'LINE'
79218 WHEN 20 THEN 'LINE'
79219 WHEN 21 THEN 'LINE'
79220 WHEN 22 THEN 'LINE'
79221 WHEN 23 THEN 'LINE'
79222 WHEN 24 THEN 'LINE'
79223 WHEN 25 THEN 'LINE'
79224 WHEN 26 THEN 'LINE'
79225 WHEN 27 THEN 'LINE'
79226 WHEN 28 THEN 'LINE'
79227 WHEN 29 THEN 'LINE'
79228 WHEN 30 THEN 'LINE'
79229 WHEN 31 THEN 'LINE'
79230 WHEN 32 THEN 'LINE'
79231 WHEN 33 THEN 'LINE'
79232 WHEN 34 THEN 'LINE'
79233 WHEN 35 THEN 'LINE'
79234 WHEN 36 THEN 'LINE'
79235 WHEN 37 THEN 'LINE'
79236 WHEN 38 THEN 'LINE'
79237 WHEN 39 THEN 'LINE'
79238 WHEN 40 THEN 'LINE'
79239 WHEN 41 THEN 'LINE'
79240 WHEN 42 THEN 'LINE'
79241 WHEN 43 THEN 'LINE'
79242 WHEN 44 THEN 'LINE'
79243 WHEN 45 THEN 'LINE'
79244 WHEN 46 THEN 'LINE'
79245 WHEN 47 THEN 'LINE'
79246 WHEN 48 THEN 'LINE'
79247
79248 ELSE null
79249 END object_type_code
79250 , CASE r
79251 WHEN 1 THEN '275'
79252 WHEN 2 THEN '275'
79253 WHEN 3 THEN '275'
79254 WHEN 4 THEN '275'
79255 WHEN 5 THEN '275'
79256 WHEN 6 THEN '275'
79257 WHEN 7 THEN '275'
79258 WHEN 8 THEN '275'
79259 WHEN 9 THEN '275'
79260 WHEN 10 THEN '275'
79261 WHEN 11 THEN '275'
79262 WHEN 12 THEN '275'
79263 WHEN 13 THEN '275'
79264 WHEN 14 THEN '275'
79265 WHEN 15 THEN '275'
79266 WHEN 16 THEN '275'
79267 WHEN 17 THEN '275'
79268 WHEN 18 THEN '275'
79269 WHEN 19 THEN '275'
79270 WHEN 20 THEN '275'
79271 WHEN 21 THEN '275'
79272 WHEN 22 THEN '275'
79273 WHEN 23 THEN '275'
79274 WHEN 24 THEN '275'
79275 WHEN 25 THEN '275'
79276 WHEN 26 THEN '275'
79277 WHEN 27 THEN '275'
79278 WHEN 28 THEN '275'
79279 WHEN 29 THEN '275'
79283 WHEN 33 THEN '275'
79280 WHEN 30 THEN '275'
79281 WHEN 31 THEN '275'
79282 WHEN 32 THEN '275'
79284 WHEN 34 THEN '275'
79285 WHEN 35 THEN '275'
79286 WHEN 36 THEN '275'
79287 WHEN 37 THEN '275'
79288 WHEN 38 THEN '275'
79289 WHEN 39 THEN '275'
79290 WHEN 40 THEN '275'
79291 WHEN 41 THEN '275'
79292 WHEN 42 THEN '275'
79293 WHEN 43 THEN '275'
79294 WHEN 44 THEN '275'
79295 WHEN 45 THEN '275'
79296 WHEN 46 THEN '275'
79297 WHEN 47 THEN '275'
79298 WHEN 48 THEN '275'
79299
79300 ELSE null
79301 END source_application_id
79302 , 'S' source_type_code
79303 , CASE r
79304 WHEN 1 THEN 'BUDGET_CCID'
79305 WHEN 2 THEN 'COST_CCID'
79306 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
79307 WHEN 4 THEN 'ADJ_COST_CCID'
79308 WHEN 5 THEN 'COST_CLEARING_CCID'
79309 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
79310 WHEN 7 THEN 'REVERSING_LINE_FLAG'
79311 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
79312 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
79313 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
79314 WHEN 11 THEN 'EXCHANGE_RATE'
79315 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
79316 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
79317 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
79318 WHEN 15 THEN 'LINE_NUMBER'
79319 WHEN 16 THEN 'LINE_TYPE'
79320 WHEN 17 THEN 'LINE_NUM_REVERSED'
79321 WHEN 18 THEN 'ENTERED_BURDENED_COST'
79322 WHEN 19 THEN 'ACCT_BURDENED_COST'
79323 WHEN 20 THEN 'ENCUMBRANCE_AMOUNT'
79324 WHEN 21 THEN 'PA_APPLICATION_ID'
79325 WHEN 22 THEN 'PA_DISTRIBUTION_TYPE'
79326 WHEN 23 THEN 'PA_ENTITY_CODE'
79327 WHEN 24 THEN 'PA_FIRST_DIST_ID'
79328 WHEN 25 THEN 'PA_FIRST_SYS_TRANS_ID'
79329 WHEN 26 THEN 'PA_SECOND_DIST_ID'
79330 WHEN 27 THEN 'ENC_UPG_CR_ACCT_CLASS'
79331 WHEN 28 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
79332 WHEN 29 THEN 'ENCUMBRANCE_TYPE_ID'
79333 WHEN 30 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
79334 WHEN 31 THEN 'DOCUMENT_TYPE'
79335 WHEN 32 THEN 'ENC_JE_LINES_REVERSED_FLAG'
79336 WHEN 33 THEN 'PO_RELEASE_ID'
79337 WHEN 34 THEN 'CWK_RATE_BASED_TC_FLAG'
79338 WHEN 35 THEN 'INVOICE_APPLICATION_ID'
79339 WHEN 36 THEN 'INVOICE_DISTRIBUTION_TYPE'
79340 WHEN 37 THEN 'INVOICE_ENTITY_CODE'
79341 WHEN 38 THEN 'INVOICE_FIRST_DIST_ID'
79342 WHEN 39 THEN 'INVOICE_FIRST_SYS_TRANS_ID'
79343 WHEN 40 THEN 'INVOICE_SECOND_DIST_ID'
79344 WHEN 41 THEN 'PO_APPLICATION_ID'
79345 WHEN 42 THEN 'PO_DISTRIBUTION_TYPE'
79346 WHEN 43 THEN 'PO_ENTITY_CODE'
79347 WHEN 44 THEN 'PO_FIRST_DIST_ID'
79348 WHEN 45 THEN 'PO_FIRST_SYS_TRANS_ID'
79349 WHEN 46 THEN 'PO_SECOND_DIST_ID'
79350 WHEN 47 THEN 'ENC_ACCT_ENABLED'
79351 WHEN 48 THEN 'LIQUIDATE_ENCUM_FLAG'
79352
79353 ELSE null
79354 END source_code
79355 , CASE r
79356 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
79357 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
79358 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
79359 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
79360 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
79361 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
79362 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
79363 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
79364 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
79365 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
79366 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
79367 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
79368 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
79369 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
79370 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
79371 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
79372 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
79373 WHEN 18 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
79374 WHEN 19 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
79375 WHEN 20 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
79376 WHEN 21 THEN TO_CHAR(l1.PA_APPLICATION_ID)
79377 WHEN 22 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
79378 WHEN 23 THEN TO_CHAR(l1.PA_ENTITY_CODE)
79379 WHEN 24 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
79380 WHEN 25 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
79381 WHEN 26 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
79385 WHEN 30 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
79382 WHEN 27 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
79383 WHEN 28 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
79384 WHEN 29 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
79386 WHEN 31 THEN TO_CHAR(l1.DOCUMENT_TYPE)
79387 WHEN 32 THEN TO_CHAR(l1.ENC_JE_LINES_REVERSED_FLAG)
79388 WHEN 33 THEN TO_CHAR(l1.PO_RELEASE_ID)
79389 WHEN 34 THEN TO_CHAR(l1.CWK_RATE_BASED_TC_FLAG)
79390 WHEN 35 THEN TO_CHAR(l1.INVOICE_APPLICATION_ID)
79391 WHEN 36 THEN TO_CHAR(l1.INVOICE_DISTRIBUTION_TYPE)
79392 WHEN 37 THEN TO_CHAR(l1.INVOICE_ENTITY_CODE)
79393 WHEN 38 THEN TO_CHAR(l1.INVOICE_FIRST_DIST_ID)
79394 WHEN 39 THEN TO_CHAR(l1.INVOICE_FIRST_SYS_TRANS_ID)
79395 WHEN 40 THEN TO_CHAR(l1.INVOICE_SECOND_DIST_ID)
79396 WHEN 41 THEN TO_CHAR(l1.PO_APPLICATION_ID)
79397 WHEN 42 THEN TO_CHAR(l1.PO_DISTRIBUTION_TYPE)
79398 WHEN 43 THEN TO_CHAR(l1.PO_ENTITY_CODE)
79399 WHEN 44 THEN TO_CHAR(l1.PO_FIRST_DIST_ID)
79400 WHEN 45 THEN TO_CHAR(l1.PO_FIRST_SYS_TRANS_ID)
79401 WHEN 46 THEN TO_CHAR(l1.PO_SECOND_DIST_ID)
79402 WHEN 47 THEN TO_CHAR(l1.ENC_ACCT_ENABLED)
79403 WHEN 48 THEN TO_CHAR(l1.LIQUIDATE_ENCUM_FLAG)
79404
79405 ELSE null
79406 END source_value
79407 , CASE r
79408 WHEN 3 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
79409 103371
79410 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
79411 ,'ALLOW_OVERRIDE_CCID_FLAG'
79412 ,'S'
79413 ,275)
79414 WHEN 16 THEN fvl34.meaning
79415 WHEN 31 THEN fvl69.meaning
79416
79417 ELSE null
79418 END source_meaning
79419 FROM xla_events_gt xet
79420 , PA_XLA_CDL_LINES_V l1
79421 , fnd_lookup_values fvl34
79422 , fnd_lookup_values fvl69
79423 , (select rownum r from all_objects where rownum <= 48 and owner = p_apps_owner)
79424 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
79425 AND xet.event_class_code = C_EVENT_CLASS_CODE
79426 AND l1.event_id = xet.event_id
79427 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
79428 AND fvl34.lookup_code(+) = l1.LINE_TYPE
79429 AND fvl34.view_application_id(+) = 275
79430 AND fvl34.language(+) = USERENV('LANG')
79431 AND fvl69.lookup_type(+) = 'FC_DOC_TYPE'
79432 AND fvl69.lookup_code(+) = l1.DOCUMENT_TYPE
79433 AND fvl69.view_application_id(+) = 275
79434 AND fvl69.language(+) = USERENV('LANG')
79435
79436 )
79437 ;
79438 --
79439 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79440
79441 trace
79442 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
79443 ,p_level => C_LEVEL_STATEMENT
79444 ,p_module => l_log_module);
79445
79446 END IF;
79447
79448
79449 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79450 trace
79451 (p_msg => 'END of insert_sources_127'
79452 ,p_level => C_LEVEL_PROCEDURE
79453 ,p_module => l_log_module);
79454 END IF;
79455 EXCEPTION
79456 WHEN xla_exceptions_pkg.application_exception THEN
79457 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
79458 trace
79459 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
79460 ,p_level => C_LEVEL_EXCEPTION
79461 ,p_module => l_log_module);
79462 END IF;
79463 RAISE;
79464 WHEN OTHERS THEN
79465 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
79466 trace
79467 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
79468 ,p_level => C_LEVEL_EXCEPTION
79469 ,p_module => l_log_module);
79470 END IF;
79471 xla_exceptions_pkg.raise_message
79472 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_127');
79473 END insert_sources_127;
79474 --
79475
79476 ---------------------------------------
79477 --
79478 -- PRIVATE FUNCTION
79479 -- EventClass_127
79480 --
79481 ----------------------------------------
79482 --
79483 FUNCTION EventClass_127
79484 (p_application_id IN NUMBER
79485 ,p_base_ledger_id IN NUMBER
79486 ,p_target_ledger_id IN NUMBER
79487 ,p_language IN VARCHAR2
79488 ,p_currency_code IN VARCHAR2
79489 ,p_sla_ledger_id IN NUMBER
79490 ,p_pad_start_date IN DATE
79491 ,p_pad_end_date IN DATE
79492 ,p_primary_ledger_id IN NUMBER)
79493 RETURN BOOLEAN IS
79494 --
79495 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ_ALL';
79496 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ADJ';
79497
79498 l_calculate_acctd_flag VARCHAR2(1) :='N';
79499 l_calculate_g_l_flag VARCHAR2(1) :='N';
79500 --
79501 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79505 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79502 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79503 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79504 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79506 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79507 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79508 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79509 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79510 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79511 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79512 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79513 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79514 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
79515 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79516 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79517 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79518 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
79519 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79520 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79521 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79522 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
79523 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
79524 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
79525
79526 l_event_id NUMBER;
79527 l_previous_event_id NUMBER;
79528 l_first_event_id NUMBER;
79529 l_last_event_id NUMBER;
79530
79531 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
79532 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
79533 --
79534 --
79535 l_result BOOLEAN := TRUE;
79536 l_rows NUMBER := 1000;
79537 l_event_type_name VARCHAR2(80) := 'All';
79538 l_event_class_name VARCHAR2(80) := 'Total Burdened Cost Adjustment';
79539 l_description VARCHAR2(4000);
79540 l_transaction_reversal NUMBER;
79541 l_ae_header_id NUMBER;
79542 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
79543 l_log_module VARCHAR2(240);
79544 --
79545 l_acct_reversal_source VARCHAR2(30);
79546 l_trx_reversal_source VARCHAR2(30);
79547
79548 l_continue_with_lines BOOLEAN := TRUE;
79549 --
79550 l_acc_rev_gl_date_source DATE; -- 4262811
79551 --
79552 type t_array_event_id is table of number index by binary_integer;
79553
79554 l_rec_array_event t_rec_array_event;
79555 l_null_rec_array_event t_rec_array_event;
79556 l_array_ae_header_id xla_number_array_type;
79557 l_actual_flag VARCHAR2(1) := NULL;
79558 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
79559 l_balance_type_code VARCHAR2(1) :=NULL;
79560 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
79561
79562 --
79563 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
79564 --
79565
79566 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
79567 TYPE t_array_source_37 IS TABLE OF PA_XLA_EXP_HEADER_V.SYSTEM_LINKAGE_FUNCTION%TYPE INDEX BY BINARY_INTEGER;
79568 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
79569
79570 TYPE t_array_source_2 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
79571 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
79572 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
79573 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
79574 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
79575 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
79576 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
79577 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
79578 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
79579 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
79580 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
79581 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
79582 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
79583 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
79584 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
79585 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
79586 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
79587 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
79591 TYPE t_array_source_48 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79588 TYPE t_array_source_45 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
79589 TYPE t_array_source_46 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
79590 TYPE t_array_source_47 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
79592 TYPE t_array_source_49 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
79593 TYPE t_array_source_50 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79594 TYPE t_array_source_51 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
79595 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79596 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
79597 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
79598 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
79599 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
79600 TYPE t_array_source_69 IS TABLE OF PA_XLA_CDL_LINES_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
79601 TYPE t_array_source_70 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_JE_LINES_REVERSED_FLAG%TYPE INDEX BY BINARY_INTEGER;
79602 TYPE t_array_source_71 IS TABLE OF PA_XLA_CDL_LINES_V.PO_RELEASE_ID%TYPE INDEX BY BINARY_INTEGER;
79603 TYPE t_array_source_72 IS TABLE OF PA_XLA_CDL_LINES_V.CWK_RATE_BASED_TC_FLAG%TYPE INDEX BY BINARY_INTEGER;
79604 TYPE t_array_source_73 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
79605 TYPE t_array_source_74 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79606 TYPE t_array_source_75 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
79607 TYPE t_array_source_76 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79608 TYPE t_array_source_77 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
79609 TYPE t_array_source_78 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79610 TYPE t_array_source_79 IS TABLE OF PA_XLA_CDL_LINES_V.PO_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
79611 TYPE t_array_source_80 IS TABLE OF PA_XLA_CDL_LINES_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
79612 TYPE t_array_source_81 IS TABLE OF PA_XLA_CDL_LINES_V.PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
79613 TYPE t_array_source_82 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79614 TYPE t_array_source_83 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
79615 TYPE t_array_source_84 IS TABLE OF PA_XLA_CDL_LINES_V.PO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
79616 TYPE t_array_source_85 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_ACCT_ENABLED%TYPE INDEX BY BINARY_INTEGER;
79617 TYPE t_array_source_86 IS TABLE OF PA_XLA_CDL_LINES_V.LIQUIDATE_ENCUM_FLAG%TYPE INDEX BY BINARY_INTEGER;
79618
79619 l_array_source_32 t_array_source_32;
79620 l_array_source_37 t_array_source_37;
79621 l_array_source_87 t_array_source_87;
79622
79623 l_array_source_2 t_array_source_2;
79624 l_array_source_3 t_array_source_3;
79625 l_array_source_4 t_array_source_4;
79626 l_array_source_5 t_array_source_5;
79627 l_array_source_6 t_array_source_6;
79628 l_array_source_7 t_array_source_7;
79629 l_array_source_22 t_array_source_22;
79630 l_array_source_23 t_array_source_23;
79631 l_array_source_25 t_array_source_25;
79632 l_array_source_27 t_array_source_27;
79633 l_array_source_28 t_array_source_28;
79634 l_array_source_29 t_array_source_29;
79635 l_array_source_30 t_array_source_30;
79636 l_array_source_31 t_array_source_31;
79637 l_array_source_33 t_array_source_33;
79638 l_array_source_34 t_array_source_34;
79639 l_array_source_34_meaning t_array_lookup_meaning;
79640 l_array_source_35 t_array_source_35;
79641 l_array_source_44 t_array_source_44;
79642 l_array_source_45 t_array_source_45;
79643 l_array_source_46 t_array_source_46;
79644 l_array_source_47 t_array_source_47;
79645 l_array_source_48 t_array_source_48;
79646 l_array_source_49 t_array_source_49;
79647 l_array_source_50 t_array_source_50;
79648 l_array_source_51 t_array_source_51;
79649 l_array_source_52 t_array_source_52;
79650 l_array_source_54 t_array_source_54;
79651 l_array_source_55 t_array_source_55;
79652 l_array_source_56 t_array_source_56;
79653 l_array_source_57 t_array_source_57;
79654 l_array_source_69 t_array_source_69;
79655 l_array_source_69_meaning t_array_lookup_meaning;
79656 l_array_source_70 t_array_source_70;
79657 l_array_source_71 t_array_source_71;
79658 l_array_source_72 t_array_source_72;
79659 l_array_source_73 t_array_source_73;
79660 l_array_source_74 t_array_source_74;
79661 l_array_source_75 t_array_source_75;
79662 l_array_source_76 t_array_source_76;
79666 l_array_source_80 t_array_source_80;
79663 l_array_source_77 t_array_source_77;
79664 l_array_source_78 t_array_source_78;
79665 l_array_source_79 t_array_source_79;
79667 l_array_source_81 t_array_source_81;
79668 l_array_source_82 t_array_source_82;
79669 l_array_source_83 t_array_source_83;
79670 l_array_source_84 t_array_source_84;
79671 l_array_source_85 t_array_source_85;
79672 l_array_source_86 t_array_source_86;
79673
79674 --
79675 CURSOR header_cur
79676 IS
79677 SELECT /*+ leading(xet) cardinality(xet,1) */
79678 -- Event Class Code: TOT_BURDENED_COST_ADJ
79679 xet.entity_id
79680 ,xet.legal_entity_id
79681 ,xet.entity_code
79682 ,xet.transaction_number
79683 ,xet.event_id
79684 ,xet.event_class_code
79685 ,xet.event_type_code
79686 ,xet.event_number
79687 ,xet.event_date
79688 ,xet.transaction_date
79689 ,xet.reference_num_1
79690 ,xet.reference_num_2
79691 ,xet.reference_num_3
79692 ,xet.reference_num_4
79693 ,xet.reference_char_1
79694 ,xet.reference_char_2
79695 ,xet.reference_char_3
79696 ,xet.reference_char_4
79697 ,xet.reference_date_1
79698 ,xet.reference_date_2
79699 ,xet.reference_date_3
79700 ,xet.reference_date_4
79701 ,xet.event_created_by
79702 ,xet.budgetary_control_flag
79703 , h2.EXPENDITURE_ITEM_ID source_32
79704 , h2.SYSTEM_LINKAGE_FUNCTION source_37
79705 , h2.GL_DATE source_87
79706 FROM xla_events_gt xet
79707 , PA_XLA_EXP_HEADER_V h2
79708 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
79709 and xet.event_class_code = C_EVENT_CLASS_CODE
79710 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
79711
79712 ORDER BY event_id
79713 ;
79714
79715
79716 --
79717 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
79718 IS
79719 SELECT /*+ leading(xet) cardinality(xet,1) */
79720 -- Event Class Code: TOT_BURDENED_COST_ADJ
79721 xet.entity_id
79722 ,xet.legal_entity_id
79723 ,xet.entity_code
79724 ,xet.transaction_number
79725 ,xet.event_id
79726 ,xet.event_class_code
79727 ,xet.event_type_code
79728 ,xet.event_number
79729 ,xet.event_date
79730 ,xet.transaction_date
79731 ,xet.reference_num_1
79732 ,xet.reference_num_2
79733 ,xet.reference_num_3
79734 ,xet.reference_num_4
79735 ,xet.reference_char_1
79736 ,xet.reference_char_2
79737 ,xet.reference_char_3
79738 ,xet.reference_char_4
79739 ,xet.reference_date_1
79740 ,xet.reference_date_2
79741 ,xet.reference_date_3
79742 ,xet.reference_date_4
79743 ,xet.event_created_by
79744 ,xet.budgetary_control_flag
79745 , l1.LINE_NUMBER
79746 , l1.BUDGET_CCID source_2
79747 , l1.COST_CCID source_3
79748 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
79749 , l1.ADJ_COST_CCID source_5
79750 , l1.COST_CLEARING_CCID source_6
79751 , l1.ADJ_COST_CLEARING_CCID source_7
79752 , l1.REVERSING_LINE_FLAG source_22
79753 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
79754 , l1.ENTERED_CURRENCY_CODE source_25
79755 , l1.EXCHANGE_RATE_DATE source_27
79756 , l1.EXCHANGE_RATE source_28
79757 , l1.EXCHANGE_RATE_TYPE source_29
79758 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
79759 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
79760 , l1.LINE_NUMBER source_33
79761 , l1.LINE_TYPE source_34
79762 , fvl34.meaning source_34_meaning
79763 , l1.LINE_NUM_REVERSED source_35
79764 , l1.ENTERED_BURDENED_COST source_44
79765 , l1.ACCT_BURDENED_COST source_45
79766 , l1.ENCUMBRANCE_AMOUNT source_46
79767 , l1.PA_APPLICATION_ID source_47
79768 , l1.PA_DISTRIBUTION_TYPE source_48
79769 , l1.PA_ENTITY_CODE source_49
79770 , l1.PA_FIRST_DIST_ID source_50
79771 , l1.PA_FIRST_SYS_TRANS_ID source_51
79772 , l1.PA_SECOND_DIST_ID source_52
79773 , l1.ENC_UPG_CR_ACCT_CLASS source_54
79774 , l1.USE_ENC_UPG_ATTRIB_FLAG source_55
79775 , l1.ENCUMBRANCE_TYPE_ID source_56
79776 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_57
79777 , l1.DOCUMENT_TYPE source_69
79778 , fvl69.meaning source_69_meaning
79779 , l1.ENC_JE_LINES_REVERSED_FLAG source_70
79780 , l1.PO_RELEASE_ID source_71
79781 , l1.CWK_RATE_BASED_TC_FLAG source_72
79782 , l1.INVOICE_APPLICATION_ID source_73
79783 , l1.INVOICE_DISTRIBUTION_TYPE source_74
79784 , l1.INVOICE_ENTITY_CODE source_75
79785 , l1.INVOICE_FIRST_DIST_ID source_76
79786 , l1.INVOICE_FIRST_SYS_TRANS_ID source_77
79787 , l1.INVOICE_SECOND_DIST_ID source_78
79788 , l1.PO_APPLICATION_ID source_79
79789 , l1.PO_DISTRIBUTION_TYPE source_80
79790 , l1.PO_ENTITY_CODE source_81
79791 , l1.PO_FIRST_DIST_ID source_82
79792 , l1.PO_FIRST_SYS_TRANS_ID source_83
79793 , l1.PO_SECOND_DIST_ID source_84
79794 , l1.ENC_ACCT_ENABLED source_85
79795 , l1.LIQUIDATE_ENCUM_FLAG source_86
79796 FROM xla_events_gt xet
79797 , PA_XLA_CDL_LINES_V l1
79798 , fnd_lookup_values fvl34
79799 , fnd_lookup_values fvl69
79800 WHERE xet.event_id between x_first_event_id and x_last_event_id
79801 and xet.event_date between p_pad_start_date and p_pad_end_date
79802 and xet.event_class_code = C_EVENT_CLASS_CODE
79803 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
79804 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
79805 AND fvl34.lookup_code(+) = l1.LINE_TYPE
79806 AND fvl34.view_application_id(+) = 275
79807 AND fvl34.language(+) = USERENV('LANG')
79808 AND fvl69.lookup_type(+) = 'FC_DOC_TYPE'
79809 AND fvl69.lookup_code(+) = l1.DOCUMENT_TYPE
79813
79810 AND fvl69.view_application_id(+) = 275
79811 AND fvl69.language(+) = USERENV('LANG')
79812 ;
79814 --
79815 BEGIN
79816 IF g_log_enabled THEN
79817 l_log_module := C_DEFAULT_MODULE||'.EventClass_127';
79818 END IF;
79819 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
79820 trace
79821 (p_msg => 'BEGIN of EventClass_127'
79822 ,p_level => C_LEVEL_PROCEDURE
79823 ,p_module => l_log_module);
79824 END IF;
79825
79826 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79827 trace
79828 (p_msg => 'p_application_id = '||p_application_id||
79829 ' - p_base_ledger_id = '||p_base_ledger_id||
79830 ' - p_target_ledger_id = '||p_target_ledger_id||
79831 ' - p_language = '||p_language||
79832 ' - p_currency_code = '||p_currency_code||
79833 ' - p_sla_ledger_id = '||p_sla_ledger_id
79834 ,p_level => C_LEVEL_STATEMENT
79835 ,p_module => l_log_module);
79836 END IF;
79837 --
79838 -- initialze arrays
79839 --
79840 g_array_event.DELETE;
79841 l_rec_array_event := l_null_rec_array_event;
79842 --
79843 --------------------------------------
79844 -- 4262811 Initialze MPA Line Number
79845 --------------------------------------
79846 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
79847
79848 --
79849
79850 --
79851 OPEN header_cur;
79852 --
79853 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
79854 trace
79855 (p_msg => 'SQL - FETCH header_cur'
79856 ,p_level => C_LEVEL_STATEMENT
79857 ,p_module => l_log_module);
79858 END IF;
79859 --
79860 LOOP
79861 FETCH header_cur BULK COLLECT INTO
79862 l_array_entity_id
79863 , l_array_legal_entity_id
79864 , l_array_entity_code
79865 , l_array_transaction_num
79866 , l_array_event_id
79867 , l_array_class_code
79868 , l_array_event_type
79869 , l_array_event_number
79870 , l_array_event_date
79871 , l_array_transaction_date
79872 , l_array_reference_num_1
79873 , l_array_reference_num_2
79874 , l_array_reference_num_3
79875 , l_array_reference_num_4
79876 , l_array_reference_char_1
79877 , l_array_reference_char_2
79878 , l_array_reference_char_3
79879 , l_array_reference_char_4
79880 , l_array_reference_date_1
79881 , l_array_reference_date_2
79882 , l_array_reference_date_3
79883 , l_array_reference_date_4
79884 , l_array_event_created_by
79885 , l_array_budgetary_control_flag
79886 , l_array_source_32
79887 , l_array_source_37
79888 , l_array_source_87
79889 LIMIT l_rows;
79890 --
79891 IF (C_LEVEL_EVENT >= g_log_level) THEN
79892 trace
79893 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
79894 ,p_level => C_LEVEL_EVENT
79895 ,p_module => l_log_module);
79896 END IF;
79897 --
79898 EXIT WHEN l_array_entity_id.COUNT = 0;
79899
79900 -- initialize arrays
79901 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
79902 XLA_AE_LINES_PKG.g_rec_lines := NULL;
79903
79904 --
79905 -- Bug 4458708
79906 --
79907 XLA_AE_LINES_PKG.g_LineNumber := 0;
79908
79909
79910 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
79911 g_last_hdr_idx := l_array_event_id.LAST;
79912 --
79913 -- loop for the headers. Each iteration is for each header extract row
79914 -- fetched in header cursor
79915 --
79916 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
79917
79918 --
79919 -- set event info as cache for other routines to refer event attributes
79920 --
79921 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
79922 (p_application_id => p_application_id
79923 ,p_primary_ledger_id => p_primary_ledger_id
79924 ,p_base_ledger_id => p_base_ledger_id
79925 ,p_target_ledger_id => p_target_ledger_id
79926 ,p_entity_id => l_array_entity_id(hdr_idx)
79927 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
79928 ,p_entity_code => l_array_entity_code(hdr_idx)
79929 ,p_transaction_num => l_array_transaction_num(hdr_idx)
79930 ,p_event_id => l_array_event_id(hdr_idx)
79931 ,p_event_class_code => l_array_class_code(hdr_idx)
79932 ,p_event_type_code => l_array_event_type(hdr_idx)
79933 ,p_event_number => l_array_event_number(hdr_idx)
79934 ,p_event_date => l_array_event_date(hdr_idx)
79935 ,p_transaction_date => l_array_transaction_date(hdr_idx)
79936 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
79937 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
79938 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
79939 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
79940 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
79941 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
79942 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
79943 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
79944 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
79945 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
79946 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
79947 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
79948 ,p_event_created_by => l_array_event_created_by(hdr_idx)
79949 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
79950
79951 --
79952 -- set the status of entry to C_VALID (0)
79953 --
79957 -- initialize a row for ae header
79954 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
79955
79956 --
79958 --
79959 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
79960
79961 l_event_id := l_array_event_id(hdr_idx);
79962
79963 --
79964 -- storing the hdr_idx for event. May be used by line cursor.
79965 --
79966 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
79967
79968 --
79969 -- store sources from header extract. This can be improved to
79970 -- store only those sources from header extract that may be used in lines
79971 --
79972
79973 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
79974 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
79975 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
79976
79977 --
79978 -- initilaize the status of ae headers for diffrent balance types
79979 -- the status is initialised to C_NOT_CREATED (2)
79980 --
79981 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
79982 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
79983 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
79984
79985 --
79986 -- call api to validate and store accounting attributes for header
79987 --
79988
79989 ------------------------------------------------------------
79990 -- Accrual Reversal : to get date for Standard Source (NONE)
79991 ------------------------------------------------------------
79992 l_acc_rev_gl_date_source := NULL;
79993
79994 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
79995 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
79996
79997
79998 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
79999
80000 XLA_AE_HEADER_PKG.SetJeCategoryName;
80001
80002 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
80003 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
80004 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
80005 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
80006 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
80007
80008
80009 -- No header level analytical criteria
80010
80011 --
80012 --accounting attribute enhancement, bug 3612931
80013 --
80014 l_trx_reversal_source := SUBSTR(NULL, 1,30);
80015
80016 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
80017 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
80018
80019 xla_accounting_err_pkg.build_message
80020 (p_appli_s_name => 'XLA'
80021 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
80022 ,p_token_1 => 'ACCT_ATTR_NAME'
80023 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
80024 ,p_token_2 => 'PRODUCT_NAME'
80025 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
80026 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
80027 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80028 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
80029
80030 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
80031 --
80032 -- following sets the accounting attributes needed to reverse
80033 -- accounting for a distributeion
80034 --
80035 xla_ae_lines_pkg.SetTrxReversalAttrs
80036 (p_event_id => l_event_id
80037 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
80038 ,p_trx_reversal_source => l_trx_reversal_source);
80039
80040 END IF;
80041
80042
80043 ----------------------------------------------------------------
80044 -- 4262811 - update the header statuses to invalid in need be
80045 ----------------------------------------------------------------
80046 --
80047 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
80048
80049
80050 -----------------------------------------------
80051 -- No accrual reversal for the event class/type
80052 -----------------------------------------------
80053 ----------------------------------------------------------------
80054
80055 --
80056 -- this ends the header loop iteration for one bulk fetch
80057 --
80058 END LOOP;
80059
80060 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
80061 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
80062
80063 --
80064 -- insert dummy rows into lines gt table that were created due to
80065 -- transaction reversals
80066 --
80067 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
80068 l_result := XLA_AE_LINES_PKG.InsertLines;
80069 END IF;
80070
80071 --
80072 -- reset the temp_line_num for each set of events fetched from header
80073 -- cursor rather than doing it for each new event in line cursor
80074 -- Bug 3939231
80075 --
80076 xla_ae_lines_pkg.g_temp_line_num := 0;
80077
80078
80079
80080 --
80081 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
80082 --
80083 --
80084 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80085
80086 trace
80087 (p_msg => 'SQL - FETCH line_cur'
80088 ,p_level => C_LEVEL_STATEMENT
80089 ,p_module => l_log_module);
80090
80091 END IF;
80092 --
80093 --
80097 l_array_entity_id
80094 LOOP
80095 --
80096 FETCH line_cur BULK COLLECT INTO
80098 , l_array_legal_entity_id
80099 , l_array_entity_code
80100 , l_array_transaction_num
80101 , l_array_event_id
80102 , l_array_class_code
80103 , l_array_event_type
80104 , l_array_event_number
80105 , l_array_event_date
80106 , l_array_transaction_date
80107 , l_array_reference_num_1
80108 , l_array_reference_num_2
80109 , l_array_reference_num_3
80110 , l_array_reference_num_4
80111 , l_array_reference_char_1
80112 , l_array_reference_char_2
80113 , l_array_reference_char_3
80114 , l_array_reference_char_4
80115 , l_array_reference_date_1
80116 , l_array_reference_date_2
80117 , l_array_reference_date_3
80118 , l_array_reference_date_4
80119 , l_array_event_created_by
80120 , l_array_budgetary_control_flag
80121 , l_array_extract_line_num
80122 , l_array_source_2
80123 , l_array_source_3
80124 , l_array_source_4
80125 , l_array_source_5
80126 , l_array_source_6
80127 , l_array_source_7
80128 , l_array_source_22
80129 , l_array_source_23
80130 , l_array_source_25
80131 , l_array_source_27
80132 , l_array_source_28
80133 , l_array_source_29
80134 , l_array_source_30
80135 , l_array_source_31
80136 , l_array_source_33
80137 , l_array_source_34
80138 , l_array_source_34_meaning
80139 , l_array_source_35
80140 , l_array_source_44
80141 , l_array_source_45
80142 , l_array_source_46
80143 , l_array_source_47
80144 , l_array_source_48
80145 , l_array_source_49
80146 , l_array_source_50
80147 , l_array_source_51
80148 , l_array_source_52
80149 , l_array_source_54
80150 , l_array_source_55
80151 , l_array_source_56
80152 , l_array_source_57
80153 , l_array_source_69
80154 , l_array_source_69_meaning
80155 , l_array_source_70
80156 , l_array_source_71
80157 , l_array_source_72
80158 , l_array_source_73
80159 , l_array_source_74
80160 , l_array_source_75
80161 , l_array_source_76
80162 , l_array_source_77
80163 , l_array_source_78
80164 , l_array_source_79
80165 , l_array_source_80
80166 , l_array_source_81
80167 , l_array_source_82
80168 , l_array_source_83
80169 , l_array_source_84
80170 , l_array_source_85
80171 , l_array_source_86
80172 LIMIT l_rows;
80173
80174 --
80175 IF (C_LEVEL_EVENT >= g_log_level) THEN
80176 trace
80177 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
80178 ,p_level => C_LEVEL_EVENT
80179 ,p_module => l_log_module);
80180 END IF;
80181 --
80182 EXIT WHEN l_array_entity_id.count = 0;
80183
80184 XLA_AE_LINES_PKG.g_rec_lines := null;
80185
80186 --
80187 -- Bug 4458708
80188 --
80189 XLA_AE_LINES_PKG.g_LineNumber := 0;
80190 --
80191 --
80192
80193 FOR Idx IN 1..l_array_event_id.count LOOP
80194 --
80195 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
80196 --
80197 l_event_id := l_array_event_id(idx); -- 5648433
80198
80199 --
80200 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
80201 --
80202
80203 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
80204 (g_array_event(l_event_id).array_value_num('header_index'))
80205 ,'N'
80206 ) <> 'Y'
80207 THEN
80208 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80209 trace
80210 (p_msg => 'Trancaction revesal option is not Y '
80211 ,p_level => C_LEVEL_STATEMENT
80212 ,p_module => l_log_module);
80213 END IF;
80214
80215 --
80216 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
80217 --
80218 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
80219 --
80220 -- set event info as cache for other routines to refer event attributes
80221 --
80222
80223 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
80224 l_previous_event_id := l_event_id;
80225
80226 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
80227 (p_application_id => p_application_id
80228 ,p_primary_ledger_id => p_primary_ledger_id
80229 ,p_base_ledger_id => p_base_ledger_id
80230 ,p_target_ledger_id => p_target_ledger_id
80231 ,p_entity_id => l_array_entity_id(Idx)
80232 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
80233 ,p_entity_code => l_array_entity_code(Idx)
80234 ,p_transaction_num => l_array_transaction_num(Idx)
80235 ,p_event_id => l_array_event_id(Idx)
80236 ,p_event_class_code => l_array_class_code(Idx)
80237 ,p_event_type_code => l_array_event_type(Idx)
80238 ,p_event_number => l_array_event_number(Idx)
80239 ,p_event_date => l_array_event_date(Idx)
80240 ,p_transaction_date => l_array_transaction_date(Idx)
80241 ,p_reference_num_1 => l_array_reference_num_1(Idx)
80242 ,p_reference_num_2 => l_array_reference_num_2(Idx)
80243 ,p_reference_num_3 => l_array_reference_num_3(Idx)
80244 ,p_reference_num_4 => l_array_reference_num_4(Idx)
80245 ,p_reference_char_1 => l_array_reference_char_1(Idx)
80249 ,p_reference_date_1 => l_array_reference_date_1(Idx)
80246 ,p_reference_char_2 => l_array_reference_char_2(Idx)
80247 ,p_reference_char_3 => l_array_reference_char_3(Idx)
80248 ,p_reference_char_4 => l_array_reference_char_4(Idx)
80250 ,p_reference_date_2 => l_array_reference_date_2(Idx)
80251 ,p_reference_date_3 => l_array_reference_date_3(Idx)
80252 ,p_reference_date_4 => l_array_reference_date_4(Idx)
80253 ,p_event_created_by => l_array_event_created_by(Idx)
80254 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
80255 --
80256 END IF;
80257
80258
80259
80260 --
80261 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
80262
80263 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
80264
80265 IF l_continue_with_lines THEN
80266 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
80267 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
80268
80269 xla_accounting_err_pkg.build_message
80270 (p_appli_s_name => 'XLA'
80271 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
80272 ,p_token_1 => 'LINE_NUMBER'
80273 ,p_value_1 => l_array_extract_line_num(Idx)
80274 ,p_token_2 => 'PRODUCT_NAME'
80275 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
80276 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
80277 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80278 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
80279
80280 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
80281 --
80282 -- following sets the accounting attributes needed to reverse
80283 -- accounting for a distributeion
80284 --
80285
80286 --
80287 -- 5217187
80288 --
80289 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
80290 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
80291 g_array_event(l_event_id).array_value_num('header_index'));
80292 --
80293 --
80294
80295 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
80296 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
80297 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
80298 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
80299 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
80300 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
80301 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
80302 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_44(Idx);
80303 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
80304 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
80305 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
80306 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_45(Idx);
80307 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
80308 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
80309 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
80310 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
80311 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
80312 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
80313 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
80314 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
80315 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
80316 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
80317 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
80318 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_44(Idx);
80319 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
80320 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
80321 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
80322 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_45(Idx);
80323 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
80324 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
80325 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
80326 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
80327 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
80328 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
80329 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
80330 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
80331 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
80332 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
80333 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
80334 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
80335 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
80336 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
80337 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_DR_ACCT_CLASS';
80338 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_54(Idx);
80339 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_DR_CCID';
80343 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_DR_ENTERED_CURR';
80340 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_2(Idx);
80341 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_DR_ENTERED_AMT';
80342 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_46(Idx);
80344 l_rec_rev_acct_attrs.array_char_value(26) :=
80345 xla_ae_sources_pkg.GetSystemSourceChar(
80346 p_source_code => 'XLA_CURRENCY_CODE'
80347 , p_source_type_code => 'Y'
80348 , p_source_application_id => 602
80349 );
80350 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_DR_LEDGER_AMT';
80351 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_46(Idx);
80352 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_OPTION';
80353 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_55(Idx);
80354 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'REVERSED_DISTRIBUTION_ID1';
80355 l_rec_rev_acct_attrs.array_num_value(29) := g_array_event(l_event_id).array_value_num('source_32');
80356 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'REVERSED_DISTRIBUTION_ID2';
80357 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_35(Idx);
80358 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'REVERSED_DISTRIBUTION_TYPE';
80359 l_rec_rev_acct_attrs.array_char_value(31) := l_array_source_34(Idx);
80360 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'UPG_CR_ENC_TYPE_ID';
80361 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_56(Idx);
80362 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'UPG_DR_ENC_TYPE_ID';
80363 l_rec_rev_acct_attrs.array_num_value(33) := l_array_source_57(Idx);
80364
80365
80366 xla_ae_lines_pkg.SetAcctReversalAttrs
80367 (p_event_id => l_event_id
80368 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
80369 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80370 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
80371 END IF;
80372
80373 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
80374 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
80375
80376 --
80377 AcctLineType_79 (
80378 p_application_id => p_application_id
80379 ,p_event_id => l_event_id
80380 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80381 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80382 ,p_actual_flag => l_actual_flag
80383 ,p_balance_type_code => l_balance_type_code
80384 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80385
80386 , p_source_2 => l_array_source_2(Idx)
80387 , p_source_3 => l_array_source_3(Idx)
80388 , p_source_4 => l_array_source_4(Idx)
80389 , p_source_5 => l_array_source_5(Idx)
80390 , p_source_6 => l_array_source_6(Idx)
80391 , p_source_22 => l_array_source_22(Idx)
80392 , p_source_23 => l_array_source_23(Idx)
80393 , p_source_25 => l_array_source_25(Idx)
80394 , p_source_27 => l_array_source_27(Idx)
80395 , p_source_28 => l_array_source_28(Idx)
80396 , p_source_29 => l_array_source_29(Idx)
80397 , p_source_30 => l_array_source_30(Idx)
80398 , p_source_31 => l_array_source_31(Idx)
80399 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80400 , p_source_33 => l_array_source_33(Idx)
80401 , p_source_34 => l_array_source_34(Idx)
80402 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80403 , p_source_35 => l_array_source_35(Idx)
80404 , p_source_44 => l_array_source_44(Idx)
80405 , p_source_45 => l_array_source_45(Idx)
80406 , p_source_46 => l_array_source_46(Idx)
80407 , p_source_47 => l_array_source_47(Idx)
80408 , p_source_48 => l_array_source_48(Idx)
80409 , p_source_49 => l_array_source_49(Idx)
80410 , p_source_50 => l_array_source_50(Idx)
80411 , p_source_51 => l_array_source_51(Idx)
80412 , p_source_52 => l_array_source_52(Idx)
80413 , p_source_54 => l_array_source_54(Idx)
80414 , p_source_55 => l_array_source_55(Idx)
80415 , p_source_56 => l_array_source_56(Idx)
80416 , p_source_57 => l_array_source_57(Idx)
80417 );
80418 If(l_balance_type_code = 'A') THEN
80419 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80420 END IF;
80421
80422 --
80423
80424
80425 --
80426 AcctLineType_81 (
80427 p_application_id => p_application_id
80428 ,p_event_id => l_event_id
80429 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80430 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80431 ,p_actual_flag => l_actual_flag
80432 ,p_balance_type_code => l_balance_type_code
80433 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80434
80435 , p_source_2 => l_array_source_2(Idx)
80436 , p_source_3 => l_array_source_3(Idx)
80437 , p_source_4 => l_array_source_4(Idx)
80438 , p_source_6 => l_array_source_6(Idx)
80439 , p_source_7 => l_array_source_7(Idx)
80440 , p_source_22 => l_array_source_22(Idx)
80441 , p_source_23 => l_array_source_23(Idx)
80442 , p_source_25 => l_array_source_25(Idx)
80443 , p_source_27 => l_array_source_27(Idx)
80444 , p_source_28 => l_array_source_28(Idx)
80445 , p_source_29 => l_array_source_29(Idx)
80446 , p_source_30 => l_array_source_30(Idx)
80447 , p_source_31 => l_array_source_31(Idx)
80448 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80449 , p_source_33 => l_array_source_33(Idx)
80450 , p_source_34 => l_array_source_34(Idx)
80451 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80452 , p_source_35 => l_array_source_35(Idx)
80453 , p_source_44 => l_array_source_44(Idx)
80454 , p_source_45 => l_array_source_45(Idx)
80455 , p_source_46 => l_array_source_46(Idx)
80456 , p_source_47 => l_array_source_47(Idx)
80457 , p_source_48 => l_array_source_48(Idx)
80458 , p_source_49 => l_array_source_49(Idx)
80459 , p_source_50 => l_array_source_50(Idx)
80460 , p_source_51 => l_array_source_51(Idx)
80461 , p_source_52 => l_array_source_52(Idx)
80462 , p_source_54 => l_array_source_54(Idx)
80463 , p_source_55 => l_array_source_55(Idx)
80467 If(l_balance_type_code = 'A') THEN
80464 , p_source_56 => l_array_source_56(Idx)
80465 , p_source_57 => l_array_source_57(Idx)
80466 );
80468 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80469 END IF;
80470
80471 --
80472
80473
80474 --
80475 AcctLineType_89 (
80476 p_application_id => p_application_id
80477 ,p_event_id => l_event_id
80478 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80479 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80480 ,p_actual_flag => l_actual_flag
80481 ,p_balance_type_code => l_balance_type_code
80482 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80483
80484 , p_source_2 => l_array_source_2(Idx)
80485 , p_source_3 => l_array_source_3(Idx)
80486 , p_source_6 => l_array_source_6(Idx)
80487 , p_source_22 => l_array_source_22(Idx)
80488 , p_source_23 => l_array_source_23(Idx)
80489 , p_source_25 => l_array_source_25(Idx)
80490 , p_source_27 => l_array_source_27(Idx)
80491 , p_source_28 => l_array_source_28(Idx)
80492 , p_source_29 => l_array_source_29(Idx)
80493 , p_source_30 => l_array_source_30(Idx)
80494 , p_source_31 => l_array_source_31(Idx)
80495 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80496 , p_source_33 => l_array_source_33(Idx)
80497 , p_source_34 => l_array_source_34(Idx)
80498 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80499 , p_source_35 => l_array_source_35(Idx)
80500 , p_source_44 => l_array_source_44(Idx)
80501 , p_source_45 => l_array_source_45(Idx)
80502 , p_source_46 => l_array_source_46(Idx)
80503 , p_source_47 => l_array_source_47(Idx)
80504 , p_source_48 => l_array_source_48(Idx)
80505 , p_source_49 => l_array_source_49(Idx)
80506 , p_source_50 => l_array_source_50(Idx)
80507 , p_source_51 => l_array_source_51(Idx)
80508 , p_source_52 => l_array_source_52(Idx)
80509 , p_source_54 => l_array_source_54(Idx)
80510 , p_source_55 => l_array_source_55(Idx)
80511 , p_source_56 => l_array_source_56(Idx)
80512 , p_source_57 => l_array_source_57(Idx)
80513 );
80514 If(l_balance_type_code = 'A') THEN
80515 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80516 END IF;
80517
80518 --
80519
80520
80521 --
80522 AcctLineType_92 (
80523 p_application_id => p_application_id
80524 ,p_event_id => l_event_id
80525 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80526 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80527 ,p_actual_flag => l_actual_flag
80528 ,p_balance_type_code => l_balance_type_code
80529 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80530
80531 , p_source_2 => l_array_source_2(Idx)
80532 , p_source_3 => l_array_source_3(Idx)
80533 , p_source_6 => l_array_source_6(Idx)
80534 , p_source_22 => l_array_source_22(Idx)
80535 , p_source_23 => l_array_source_23(Idx)
80536 , p_source_25 => l_array_source_25(Idx)
80537 , p_source_27 => l_array_source_27(Idx)
80538 , p_source_28 => l_array_source_28(Idx)
80539 , p_source_29 => l_array_source_29(Idx)
80540 , p_source_30 => l_array_source_30(Idx)
80541 , p_source_31 => l_array_source_31(Idx)
80542 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80543 , p_source_33 => l_array_source_33(Idx)
80544 , p_source_34 => l_array_source_34(Idx)
80545 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80546 , p_source_35 => l_array_source_35(Idx)
80547 , p_source_44 => l_array_source_44(Idx)
80548 , p_source_45 => l_array_source_45(Idx)
80549 , p_source_46 => l_array_source_46(Idx)
80550 , p_source_47 => l_array_source_47(Idx)
80551 , p_source_48 => l_array_source_48(Idx)
80552 , p_source_49 => l_array_source_49(Idx)
80553 , p_source_50 => l_array_source_50(Idx)
80554 , p_source_51 => l_array_source_51(Idx)
80555 , p_source_52 => l_array_source_52(Idx)
80556 , p_source_54 => l_array_source_54(Idx)
80557 , p_source_55 => l_array_source_55(Idx)
80558 , p_source_56 => l_array_source_56(Idx)
80559 , p_source_57 => l_array_source_57(Idx)
80560 , p_source_69 => l_array_source_69(Idx)
80561 , p_source_69_meaning => l_array_source_69_meaning(Idx)
80562 , p_source_70 => l_array_source_70(Idx)
80563 );
80564 If(l_balance_type_code = 'A') THEN
80565 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80566 END IF;
80567
80568 --
80569
80570
80571 --
80572 AcctLineType_95 (
80573 p_application_id => p_application_id
80574 ,p_event_id => l_event_id
80575 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80576 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80577 ,p_actual_flag => l_actual_flag
80578 ,p_balance_type_code => l_balance_type_code
80579 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80580
80581 , p_source_2 => l_array_source_2(Idx)
80582 , p_source_3 => l_array_source_3(Idx)
80583 , p_source_6 => l_array_source_6(Idx)
80584 , p_source_22 => l_array_source_22(Idx)
80585 , p_source_23 => l_array_source_23(Idx)
80586 , p_source_25 => l_array_source_25(Idx)
80587 , p_source_27 => l_array_source_27(Idx)
80588 , p_source_28 => l_array_source_28(Idx)
80589 , p_source_29 => l_array_source_29(Idx)
80590 , p_source_30 => l_array_source_30(Idx)
80591 , p_source_31 => l_array_source_31(Idx)
80592 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80593 , p_source_33 => l_array_source_33(Idx)
80594 , p_source_34 => l_array_source_34(Idx)
80595 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80596 , p_source_35 => l_array_source_35(Idx)
80597 , p_source_44 => l_array_source_44(Idx)
80598 , p_source_45 => l_array_source_45(Idx)
80599 , p_source_46 => l_array_source_46(Idx)
80600 , p_source_47 => l_array_source_47(Idx)
80601 , p_source_48 => l_array_source_48(Idx)
80602 , p_source_49 => l_array_source_49(Idx)
80603 , p_source_50 => l_array_source_50(Idx)
80604 , p_source_51 => l_array_source_51(Idx)
80605 , p_source_52 => l_array_source_52(Idx)
80609 , p_source_57 => l_array_source_57(Idx)
80606 , p_source_54 => l_array_source_54(Idx)
80607 , p_source_55 => l_array_source_55(Idx)
80608 , p_source_56 => l_array_source_56(Idx)
80610 , p_source_69 => l_array_source_69(Idx)
80611 , p_source_69_meaning => l_array_source_69_meaning(Idx)
80612 , p_source_71 => l_array_source_71(Idx)
80613 , p_source_72 => l_array_source_72(Idx)
80614 );
80615 If(l_balance_type_code = 'A') THEN
80616 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80617 END IF;
80618
80619 --
80620
80621
80622 --
80623 AcctLineType_99 (
80624 p_application_id => p_application_id
80625 ,p_event_id => l_event_id
80626 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80627 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80628 ,p_actual_flag => l_actual_flag
80629 ,p_balance_type_code => l_balance_type_code
80630 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80631
80632 , p_source_2 => l_array_source_2(Idx)
80633 , p_source_3 => l_array_source_3(Idx)
80634 , p_source_6 => l_array_source_6(Idx)
80635 , p_source_22 => l_array_source_22(Idx)
80636 , p_source_23 => l_array_source_23(Idx)
80637 , p_source_25 => l_array_source_25(Idx)
80638 , p_source_27 => l_array_source_27(Idx)
80639 , p_source_28 => l_array_source_28(Idx)
80640 , p_source_29 => l_array_source_29(Idx)
80641 , p_source_30 => l_array_source_30(Idx)
80642 , p_source_31 => l_array_source_31(Idx)
80643 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80644 , p_source_33 => l_array_source_33(Idx)
80645 , p_source_34 => l_array_source_34(Idx)
80646 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80647 , p_source_35 => l_array_source_35(Idx)
80648 , p_source_44 => l_array_source_44(Idx)
80649 , p_source_45 => l_array_source_45(Idx)
80650 , p_source_46 => l_array_source_46(Idx)
80651 , p_source_54 => l_array_source_54(Idx)
80652 , p_source_55 => l_array_source_55(Idx)
80653 , p_source_56 => l_array_source_56(Idx)
80654 , p_source_57 => l_array_source_57(Idx)
80655 , p_source_69 => l_array_source_69(Idx)
80656 , p_source_69_meaning => l_array_source_69_meaning(Idx)
80657 , p_source_70 => l_array_source_70(Idx)
80658 , p_source_73 => l_array_source_73(Idx)
80659 , p_source_74 => l_array_source_74(Idx)
80660 , p_source_75 => l_array_source_75(Idx)
80661 , p_source_76 => l_array_source_76(Idx)
80662 , p_source_77 => l_array_source_77(Idx)
80663 , p_source_78 => l_array_source_78(Idx)
80664 );
80665 If(l_balance_type_code = 'A') THEN
80666 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80667 END IF;
80668
80669 --
80670
80671
80672 --
80673 AcctLineType_101 (
80674 p_application_id => p_application_id
80675 ,p_event_id => l_event_id
80676 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80677 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80678 ,p_actual_flag => l_actual_flag
80679 ,p_balance_type_code => l_balance_type_code
80680 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80681
80682 , p_source_2 => l_array_source_2(Idx)
80683 , p_source_3 => l_array_source_3(Idx)
80684 , p_source_6 => l_array_source_6(Idx)
80685 , p_source_22 => l_array_source_22(Idx)
80686 , p_source_23 => l_array_source_23(Idx)
80687 , p_source_25 => l_array_source_25(Idx)
80688 , p_source_27 => l_array_source_27(Idx)
80689 , p_source_28 => l_array_source_28(Idx)
80690 , p_source_29 => l_array_source_29(Idx)
80691 , p_source_30 => l_array_source_30(Idx)
80692 , p_source_31 => l_array_source_31(Idx)
80693 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80694 , p_source_33 => l_array_source_33(Idx)
80695 , p_source_34 => l_array_source_34(Idx)
80696 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80697 , p_source_35 => l_array_source_35(Idx)
80698 , p_source_44 => l_array_source_44(Idx)
80699 , p_source_45 => l_array_source_45(Idx)
80700 , p_source_46 => l_array_source_46(Idx)
80701 , p_source_54 => l_array_source_54(Idx)
80702 , p_source_55 => l_array_source_55(Idx)
80703 , p_source_56 => l_array_source_56(Idx)
80704 , p_source_57 => l_array_source_57(Idx)
80705 , p_source_69 => l_array_source_69(Idx)
80706 , p_source_69_meaning => l_array_source_69_meaning(Idx)
80707 , p_source_71 => l_array_source_71(Idx)
80708 , p_source_72 => l_array_source_72(Idx)
80709 , p_source_79 => l_array_source_79(Idx)
80710 , p_source_80 => l_array_source_80(Idx)
80711 , p_source_81 => l_array_source_81(Idx)
80712 , p_source_82 => l_array_source_82(Idx)
80713 , p_source_83 => l_array_source_83(Idx)
80714 , p_source_84 => l_array_source_84(Idx)
80715 );
80716 If(l_balance_type_code = 'A') THEN
80717 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80718 END IF;
80719
80720 --
80721
80722
80723 --
80724 AcctLineType_104 (
80725 p_application_id => p_application_id
80726 ,p_event_id => l_event_id
80727 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80728 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80729 ,p_actual_flag => l_actual_flag
80730 ,p_balance_type_code => l_balance_type_code
80731 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80732
80733 , p_source_2 => l_array_source_2(Idx)
80734 , p_source_3 => l_array_source_3(Idx)
80735 , p_source_6 => l_array_source_6(Idx)
80736 , p_source_22 => l_array_source_22(Idx)
80737 , p_source_23 => l_array_source_23(Idx)
80738 , p_source_25 => l_array_source_25(Idx)
80739 , p_source_27 => l_array_source_27(Idx)
80740 , p_source_28 => l_array_source_28(Idx)
80741 , p_source_29 => l_array_source_29(Idx)
80742 , p_source_30 => l_array_source_30(Idx)
80743 , p_source_31 => l_array_source_31(Idx)
80744 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80745 , p_source_33 => l_array_source_33(Idx)
80746 , p_source_34 => l_array_source_34(Idx)
80747 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80751 , p_source_45 => l_array_source_45(Idx)
80748 , p_source_35 => l_array_source_35(Idx)
80749 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
80750 , p_source_44 => l_array_source_44(Idx)
80752 , p_source_46 => l_array_source_46(Idx)
80753 , p_source_47 => l_array_source_47(Idx)
80754 , p_source_48 => l_array_source_48(Idx)
80755 , p_source_49 => l_array_source_49(Idx)
80756 , p_source_50 => l_array_source_50(Idx)
80757 , p_source_51 => l_array_source_51(Idx)
80758 , p_source_52 => l_array_source_52(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_72 => l_array_source_72(Idx)
80764 , p_source_85 => l_array_source_85(Idx)
80765 , p_source_86 => l_array_source_86(Idx)
80766 );
80767 If(l_balance_type_code = 'A') THEN
80768 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80769 END IF;
80770
80771 --
80772
80773
80774 --
80775 AcctLineType_108 (
80776 p_application_id => p_application_id
80777 ,p_event_id => l_event_id
80778 ,p_calculate_acctd_flag => l_calculate_acctd_flag
80779 ,p_calculate_g_l_flag => l_calculate_g_l_flag
80780 ,p_actual_flag => l_actual_flag
80781 ,p_balance_type_code => l_balance_type_code
80782 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
80783
80784 , p_source_2 => l_array_source_2(Idx)
80785 , p_source_3 => l_array_source_3(Idx)
80786 , p_source_6 => l_array_source_6(Idx)
80787 , p_source_22 => l_array_source_22(Idx)
80788 , p_source_23 => l_array_source_23(Idx)
80789 , p_source_25 => l_array_source_25(Idx)
80790 , p_source_27 => l_array_source_27(Idx)
80791 , p_source_28 => l_array_source_28(Idx)
80792 , p_source_29 => l_array_source_29(Idx)
80793 , p_source_30 => l_array_source_30(Idx)
80794 , p_source_31 => l_array_source_31(Idx)
80795 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
80796 , p_source_33 => l_array_source_33(Idx)
80797 , p_source_34 => l_array_source_34(Idx)
80798 , p_source_34_meaning => l_array_source_34_meaning(Idx)
80799 , p_source_35 => l_array_source_35(Idx)
80800 , p_source_44 => l_array_source_44(Idx)
80801 , p_source_45 => l_array_source_45(Idx)
80802 , p_source_46 => l_array_source_46(Idx)
80803 , p_source_54 => l_array_source_54(Idx)
80804 , p_source_55 => l_array_source_55(Idx)
80805 , p_source_56 => l_array_source_56(Idx)
80806 , p_source_57 => l_array_source_57(Idx)
80807 , p_source_69 => l_array_source_69(Idx)
80808 , p_source_69_meaning => l_array_source_69_meaning(Idx)
80809 , p_source_71 => l_array_source_71(Idx)
80810 , p_source_72 => l_array_source_72(Idx)
80811 , p_source_79 => l_array_source_79(Idx)
80812 , p_source_80 => l_array_source_80(Idx)
80813 , p_source_81 => l_array_source_81(Idx)
80814 , p_source_82 => l_array_source_82(Idx)
80815 , p_source_83 => l_array_source_83(Idx)
80816 , p_source_84 => l_array_source_84(Idx)
80817 );
80818 If(l_balance_type_code = 'A') THEN
80819 l_actual_gain_loss_ref := l_gain_or_loss_ref;
80820 END IF;
80821
80822 --
80823
80824 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
80825 -- or secondary ledger that has different currency with primary
80826 -- or alc that is calculated by sla
80827 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
80828 (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'))
80829
80830 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
80831 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
80832 AND (l_actual_flag = 'A')) THEN
80833 XLA_AE_LINES_PKG.CreateGainOrLossLines(
80834 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
80835 ,p_application_id => p_application_id
80836 ,p_amb_context_code => 'DEFAULT'
80837 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
80838 ,p_event_class_code => C_EVENT_CLASS_CODE
80839 ,p_event_type_code => C_EVENT_TYPE_CODE
80840
80841 ,p_gain_ccid => -1
80842 ,p_loss_ccid => -1
80843
80844 ,p_actual_flag => l_actual_flag
80845 ,p_enc_flag => null
80846 ,p_actual_g_l_ref => l_actual_gain_loss_ref
80847 ,p_enc_g_l_ref => null
80848 );
80849 END IF;
80850 END IF;
80851 END IF;
80852
80853 ELSE
80854 --
80855 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
80856 --
80857 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80858 trace
80859 (p_msg => 'Trancaction revesal option is Y'
80860 ,p_level => C_LEVEL_STATEMENT
80861 ,p_module => l_log_module);
80862 END IF;
80863 END IF;
80864
80865 END LOOP;
80866 l_result := XLA_AE_LINES_PKG.InsertLines ;
80867 end loop;
80868 close line_cur;
80869
80870
80871 --
80872 -- insert headers into xla_ae_headers_gt table
80873 --
80874 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
80875
80876 -- insert into errors table here.
80877
80878 END LOOP;
80879
80880 --
80881 -- 4865292
80882 --
80883 -- Compare g_hdr_extract_count with event count in
80884 -- CreateHeadersAndLines.
80885 --
80886 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
80887
80888 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80889 trace (p_msg => '# rows extracted from header extract objects '
80893 ,p_module => l_log_module);
80890 || ' (running total): '
80891 || g_hdr_extract_count
80892 ,p_level => C_LEVEL_STATEMENT
80894 END IF;
80895
80896 CLOSE header_cur;
80897 --
80898
80899 --
80900 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80901 trace
80902 (p_msg => 'END of EventClass_127'
80903 ,p_level => C_LEVEL_PROCEDURE
80904 ,p_module => l_log_module);
80905 END IF;
80906 --
80907 RETURN l_result;
80908 EXCEPTION
80909 WHEN xla_exceptions_pkg.application_exception THEN
80910
80911 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
80912
80913
80914 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
80915
80916 RAISE;
80917 WHEN OTHERS THEN
80918 xla_exceptions_pkg.raise_message
80919 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_127');
80920 END EventClass_127;
80921 --
80922
80923 ---------------------------------------
80924 --
80925 -- PRIVATE PROCEDURE
80926 -- insert_sources_128
80927 --
80928 ----------------------------------------
80929 --
80930 PROCEDURE insert_sources_128(
80931 p_target_ledger_id IN NUMBER
80932 , p_language IN VARCHAR2
80933 , p_sla_ledger_id IN NUMBER
80934 , p_pad_start_date IN DATE
80935 , p_pad_end_date IN DATE
80936 )
80937 IS
80938
80939 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ALL';
80940 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST';
80941 p_apps_owner VARCHAR2(30);
80942 l_log_module VARCHAR2(240);
80943 BEGIN
80944 IF g_log_enabled THEN
80945 l_log_module := C_DEFAULT_MODULE||'.insert_sources_128';
80946 END IF;
80947 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
80948
80949 trace
80950 (p_msg => 'BEGIN of insert_sources_128'
80951 ,p_level => C_LEVEL_PROCEDURE
80952 ,p_module => l_log_module);
80953
80954 END IF;
80955
80956 -- select APPS owner
80957 SELECT oracle_username
80958 INTO p_apps_owner
80959 FROM fnd_oracle_userid
80960 WHERE read_only_flag = 'U'
80961 ;
80962
80963 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
80964 trace
80965 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
80966 ' - p_language = '||p_language||
80967 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
80968 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
80969 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
80970 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
80971 ,p_level => C_LEVEL_STATEMENT
80972 ,p_module => l_log_module);
80973 END IF;
80974
80975
80976 --
80977 INSERT INTO xla_diag_sources --hdr2
80978 (
80979 event_id
80980 , ledger_id
80981 , sla_ledger_id
80982 , description_language
80983 , object_name
80984 , object_type_code
80985 , line_number
80986 , source_application_id
80987 , source_type_code
80988 , source_code
80989 , source_value
80990 , source_meaning
80991 , created_by
80992 , creation_date
80993 , last_update_date
80994 , last_updated_by
80995 , last_update_login
80996 , program_update_date
80997 , program_application_id
80998 , program_id
80999 , request_id
81000 )
81001 SELECT
81002 event_id
81003 , p_target_ledger_id
81004 , p_sla_ledger_id
81005 , p_language
81006 , object_name
81007 , object_type_code
81008 , line_number
81009 , source_application_id
81010 , source_type_code
81011 , source_code
81012 , SUBSTR(source_value ,1,1996)
81013 , SUBSTR(source_meaning ,1,200)
81014 , xla_environment_pkg.g_Usr_Id
81015 , TRUNC(SYSDATE)
81016 , TRUNC(SYSDATE)
81017 , xla_environment_pkg.g_Usr_Id
81018 , xla_environment_pkg.g_Login_Id
81019 , TRUNC(SYSDATE)
81020 , xla_environment_pkg.g_Prog_Appl_Id
81021 , xla_environment_pkg.g_Prog_Id
81022 , xla_environment_pkg.g_Req_Id
81023 FROM (
81024 SELECT xet.event_id event_id
81025 , 0 line_number
81026 , CASE r
81027 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
81028 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
81029 WHEN 3 THEN 'PA_XLA_EXP_HEADER_V'
81030
81031 ELSE null
81032 END object_name
81033 , CASE r
81034 WHEN 1 THEN 'HEADER'
81035 WHEN 2 THEN 'HEADER'
81036 WHEN 3 THEN 'HEADER'
81037
81038 ELSE null
81039 END object_type_code
81040 , CASE r
81041 WHEN 1 THEN '275'
81042 WHEN 2 THEN '275'
81043 WHEN 3 THEN '275'
81044
81045 ELSE null
81046 END source_application_id
81047 , 'S' source_type_code
81048 , CASE r
81049 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
81050 WHEN 2 THEN 'SYSTEM_LINKAGE_FUNCTION'
81051 WHEN 3 THEN 'GL_DATE'
81055 , CASE r
81052
81053 ELSE null
81054 END source_code
81056 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
81057 WHEN 2 THEN TO_CHAR(h2.SYSTEM_LINKAGE_FUNCTION)
81058 WHEN 3 THEN TO_CHAR(h2.GL_DATE)
81059
81060 ELSE null
81061 END source_value
81062 , null source_meaning
81063 FROM xla_events_gt xet
81064 , PA_XLA_EXP_HEADER_V h2
81065 ,(select rownum r from all_objects where rownum <= 3 and owner = p_apps_owner)
81066 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
81067 AND xet.event_class_code = C_EVENT_CLASS_CODE
81068 AND h2.event_id = xet.event_id
81069
81070 )
81071 ;
81072 --
81073 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81074
81075 trace
81076 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
81077 ,p_level => C_LEVEL_STATEMENT
81078 ,p_module => l_log_module);
81079
81080 END IF;
81081 --
81082
81083
81084
81085 --
81086 INSERT INTO xla_diag_sources --line2
81087 (
81088 event_id
81089 , ledger_id
81090 , sla_ledger_id
81091 , description_language
81092 , object_name
81093 , object_type_code
81094 , line_number
81095 , source_application_id
81096 , source_type_code
81097 , source_code
81098 , source_value
81099 , source_meaning
81100 , created_by
81101 , creation_date
81102 , last_update_date
81103 , last_updated_by
81104 , last_update_login
81105 , program_update_date
81106 , program_application_id
81107 , program_id
81108 , request_id
81109 )
81110 SELECT 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 , l1.line_number line_number
81134 , CASE r
81135 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
81136 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
81137 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
81138 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
81139 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
81140 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
81141 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
81142 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
81143 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
81144 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
81145 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
81146 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
81147 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
81148 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
81149 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
81150 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
81151 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
81152 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
81153 WHEN 19 THEN 'PA_XLA_CDL_LINES_V'
81154 WHEN 20 THEN 'PA_XLA_CDL_LINES_V'
81155 WHEN 21 THEN 'PA_XLA_CDL_LINES_V'
81156 WHEN 22 THEN 'PA_XLA_CDL_LINES_V'
81157 WHEN 23 THEN 'PA_XLA_CDL_LINES_V'
81158 WHEN 24 THEN 'PA_XLA_CDL_LINES_V'
81159 WHEN 25 THEN 'PA_XLA_CDL_LINES_V'
81160 WHEN 26 THEN 'PA_XLA_CDL_LINES_V'
81161 WHEN 27 THEN 'PA_XLA_CDL_LINES_V'
81162 WHEN 28 THEN 'PA_XLA_CDL_LINES_V'
81163 WHEN 29 THEN 'PA_XLA_CDL_LINES_V'
81164 WHEN 30 THEN 'PA_XLA_CDL_LINES_V'
81165 WHEN 31 THEN 'PA_XLA_CDL_LINES_V'
81166 WHEN 32 THEN 'PA_XLA_CDL_LINES_V'
81167 WHEN 33 THEN 'PA_XLA_CDL_LINES_V'
81168 WHEN 34 THEN 'PA_XLA_CDL_LINES_V'
81169 WHEN 35 THEN 'PA_XLA_CDL_LINES_V'
81170 WHEN 36 THEN 'PA_XLA_CDL_LINES_V'
81171 WHEN 37 THEN 'PA_XLA_CDL_LINES_V'
81172 WHEN 38 THEN 'PA_XLA_CDL_LINES_V'
81173 WHEN 39 THEN 'PA_XLA_CDL_LINES_V'
81174 WHEN 40 THEN 'PA_XLA_CDL_LINES_V'
81175 WHEN 41 THEN 'PA_XLA_CDL_LINES_V'
81176 WHEN 42 THEN 'PA_XLA_CDL_LINES_V'
81177 WHEN 43 THEN 'PA_XLA_CDL_LINES_V'
81178 WHEN 44 THEN 'PA_XLA_CDL_LINES_V'
81179 WHEN 45 THEN 'PA_XLA_CDL_LINES_V'
81180 WHEN 46 THEN 'PA_XLA_CDL_LINES_V'
81181 WHEN 47 THEN 'PA_XLA_CDL_LINES_V'
81182 WHEN 48 THEN 'PA_XLA_CDL_LINES_V'
81183 WHEN 49 THEN 'PA_XLA_CDL_LINES_V'
81184
81185 ELSE null
81186 END object_name
81187 , CASE r
81188 WHEN 1 THEN 'LINE'
81189 WHEN 2 THEN 'LINE'
81190 WHEN 3 THEN 'LINE'
81191 WHEN 4 THEN 'LINE'
81195 WHEN 8 THEN 'LINE'
81192 WHEN 5 THEN 'LINE'
81193 WHEN 6 THEN 'LINE'
81194 WHEN 7 THEN 'LINE'
81196 WHEN 9 THEN 'LINE'
81197 WHEN 10 THEN 'LINE'
81198 WHEN 11 THEN 'LINE'
81199 WHEN 12 THEN 'LINE'
81200 WHEN 13 THEN 'LINE'
81201 WHEN 14 THEN 'LINE'
81202 WHEN 15 THEN 'LINE'
81203 WHEN 16 THEN 'LINE'
81204 WHEN 17 THEN 'LINE'
81205 WHEN 18 THEN 'LINE'
81206 WHEN 19 THEN 'LINE'
81207 WHEN 20 THEN 'LINE'
81208 WHEN 21 THEN 'LINE'
81209 WHEN 22 THEN 'LINE'
81210 WHEN 23 THEN 'LINE'
81211 WHEN 24 THEN 'LINE'
81212 WHEN 25 THEN 'LINE'
81213 WHEN 26 THEN 'LINE'
81214 WHEN 27 THEN 'LINE'
81215 WHEN 28 THEN 'LINE'
81216 WHEN 29 THEN 'LINE'
81217 WHEN 30 THEN 'LINE'
81218 WHEN 31 THEN 'LINE'
81219 WHEN 32 THEN 'LINE'
81220 WHEN 33 THEN 'LINE'
81221 WHEN 34 THEN 'LINE'
81222 WHEN 35 THEN 'LINE'
81223 WHEN 36 THEN 'LINE'
81224 WHEN 37 THEN 'LINE'
81225 WHEN 38 THEN 'LINE'
81226 WHEN 39 THEN 'LINE'
81227 WHEN 40 THEN 'LINE'
81228 WHEN 41 THEN 'LINE'
81229 WHEN 42 THEN 'LINE'
81230 WHEN 43 THEN 'LINE'
81231 WHEN 44 THEN 'LINE'
81232 WHEN 45 THEN 'LINE'
81233 WHEN 46 THEN 'LINE'
81234 WHEN 47 THEN 'LINE'
81235 WHEN 48 THEN 'LINE'
81236 WHEN 49 THEN 'LINE'
81237
81238 ELSE null
81239 END object_type_code
81240 , CASE r
81241 WHEN 1 THEN '275'
81242 WHEN 2 THEN '275'
81243 WHEN 3 THEN '275'
81244 WHEN 4 THEN '275'
81245 WHEN 5 THEN '275'
81246 WHEN 6 THEN '275'
81247 WHEN 7 THEN '275'
81248 WHEN 8 THEN '275'
81249 WHEN 9 THEN '275'
81250 WHEN 10 THEN '275'
81251 WHEN 11 THEN '275'
81252 WHEN 12 THEN '275'
81253 WHEN 13 THEN '275'
81254 WHEN 14 THEN '275'
81255 WHEN 15 THEN '275'
81256 WHEN 16 THEN '275'
81257 WHEN 17 THEN '275'
81258 WHEN 18 THEN '275'
81259 WHEN 19 THEN '275'
81260 WHEN 20 THEN '275'
81261 WHEN 21 THEN '275'
81262 WHEN 22 THEN '275'
81263 WHEN 23 THEN '275'
81264 WHEN 24 THEN '275'
81265 WHEN 25 THEN '275'
81266 WHEN 26 THEN '275'
81267 WHEN 27 THEN '275'
81268 WHEN 28 THEN '275'
81269 WHEN 29 THEN '275'
81270 WHEN 30 THEN '275'
81271 WHEN 31 THEN '275'
81272 WHEN 32 THEN '275'
81273 WHEN 33 THEN '275'
81274 WHEN 34 THEN '275'
81275 WHEN 35 THEN '275'
81276 WHEN 36 THEN '275'
81277 WHEN 37 THEN '275'
81278 WHEN 38 THEN '275'
81279 WHEN 39 THEN '275'
81280 WHEN 40 THEN '275'
81281 WHEN 41 THEN '275'
81282 WHEN 42 THEN '275'
81283 WHEN 43 THEN '275'
81284 WHEN 44 THEN '275'
81285 WHEN 45 THEN '275'
81286 WHEN 46 THEN '275'
81287 WHEN 47 THEN '275'
81288 WHEN 48 THEN '275'
81289 WHEN 49 THEN '275'
81290
81291 ELSE null
81292 END source_application_id
81293 , 'S' source_type_code
81294 , CASE r
81295 WHEN 1 THEN 'BUDGET_CCID'
81296 WHEN 2 THEN 'COST_CCID'
81297 WHEN 3 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
81298 WHEN 4 THEN 'ADJ_COST_CCID'
81299 WHEN 5 THEN 'COST_CLEARING_CCID'
81300 WHEN 6 THEN 'ADJ_COST_CLEARING_CCID'
81301 WHEN 7 THEN 'REVERSING_LINE_FLAG'
81302 WHEN 8 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
81303 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
81304 WHEN 10 THEN 'EXCHANGE_RATE_DATE'
81305 WHEN 11 THEN 'EXCHANGE_RATE'
81306 WHEN 12 THEN 'EXCHANGE_RATE_TYPE'
81307 WHEN 13 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
81308 WHEN 14 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
81309 WHEN 15 THEN 'LINE_NUMBER'
81310 WHEN 16 THEN 'LINE_TYPE'
81311 WHEN 17 THEN 'LINE_NUM_REVERSED'
81312 WHEN 18 THEN 'ENTERED_BURDENED_COST'
81313 WHEN 19 THEN 'ACCT_BURDENED_COST'
81314 WHEN 20 THEN 'ENCUMBRANCE_AMOUNT'
81315 WHEN 21 THEN 'PA_APPLICATION_ID'
81316 WHEN 22 THEN 'PA_DISTRIBUTION_TYPE'
81317 WHEN 23 THEN 'PA_ENTITY_CODE'
81318 WHEN 24 THEN 'PA_FIRST_DIST_ID'
81319 WHEN 25 THEN 'PA_FIRST_SYS_TRANS_ID'
81320 WHEN 26 THEN 'PA_SECOND_DIST_ID'
81321 WHEN 27 THEN 'ENC_UPG_DR_ACCT_CLASS'
81322 WHEN 28 THEN 'ENC_UPG_CR_ACCT_CLASS'
81326 WHEN 32 THEN 'DOCUMENT_TYPE'
81323 WHEN 29 THEN 'USE_ENC_UPG_ATTRIB_FLAG'
81324 WHEN 30 THEN 'ENCUMBRANCE_TYPE_ID'
81325 WHEN 31 THEN 'PROJ_ENCUMBRANCE_TYPE_ID'
81327 WHEN 33 THEN 'ENC_JE_LINES_REVERSED_FLAG'
81328 WHEN 34 THEN 'PO_RELEASE_ID'
81329 WHEN 35 THEN 'CWK_RATE_BASED_TC_FLAG'
81330 WHEN 36 THEN 'INVOICE_APPLICATION_ID'
81331 WHEN 37 THEN 'INVOICE_DISTRIBUTION_TYPE'
81332 WHEN 38 THEN 'INVOICE_ENTITY_CODE'
81333 WHEN 39 THEN 'INVOICE_FIRST_DIST_ID'
81334 WHEN 40 THEN 'INVOICE_FIRST_SYS_TRANS_ID'
81335 WHEN 41 THEN 'INVOICE_SECOND_DIST_ID'
81336 WHEN 42 THEN 'PO_APPLICATION_ID'
81337 WHEN 43 THEN 'PO_DISTRIBUTION_TYPE'
81338 WHEN 44 THEN 'PO_ENTITY_CODE'
81339 WHEN 45 THEN 'PO_FIRST_DIST_ID'
81340 WHEN 46 THEN 'PO_FIRST_SYS_TRANS_ID'
81341 WHEN 47 THEN 'PO_SECOND_DIST_ID'
81342 WHEN 48 THEN 'ENC_ACCT_ENABLED'
81343 WHEN 49 THEN 'LIQUIDATE_ENCUM_FLAG'
81344
81345 ELSE null
81346 END source_code
81347 , CASE r
81348 WHEN 1 THEN TO_CHAR(l1.BUDGET_CCID)
81349 WHEN 2 THEN TO_CHAR(l1.COST_CCID)
81350 WHEN 3 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
81351 WHEN 4 THEN TO_CHAR(l1.ADJ_COST_CCID)
81352 WHEN 5 THEN TO_CHAR(l1.COST_CLEARING_CCID)
81353 WHEN 6 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
81354 WHEN 7 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
81355 WHEN 8 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
81356 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
81357 WHEN 10 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
81358 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE)
81359 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
81360 WHEN 13 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
81361 WHEN 14 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
81362 WHEN 15 THEN TO_CHAR(l1.LINE_NUMBER)
81363 WHEN 16 THEN TO_CHAR(l1.LINE_TYPE)
81364 WHEN 17 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
81365 WHEN 18 THEN TO_CHAR(l1.ENTERED_BURDENED_COST)
81366 WHEN 19 THEN TO_CHAR(l1.ACCT_BURDENED_COST)
81367 WHEN 20 THEN TO_CHAR(l1.ENCUMBRANCE_AMOUNT)
81368 WHEN 21 THEN TO_CHAR(l1.PA_APPLICATION_ID)
81369 WHEN 22 THEN TO_CHAR(l1.PA_DISTRIBUTION_TYPE)
81370 WHEN 23 THEN TO_CHAR(l1.PA_ENTITY_CODE)
81371 WHEN 24 THEN TO_CHAR(l1.PA_FIRST_DIST_ID)
81372 WHEN 25 THEN TO_CHAR(l1.PA_FIRST_SYS_TRANS_ID)
81373 WHEN 26 THEN TO_CHAR(l1.PA_SECOND_DIST_ID)
81374 WHEN 27 THEN TO_CHAR(l1.ENC_UPG_DR_ACCT_CLASS)
81375 WHEN 28 THEN TO_CHAR(l1.ENC_UPG_CR_ACCT_CLASS)
81376 WHEN 29 THEN TO_CHAR(l1.USE_ENC_UPG_ATTRIB_FLAG)
81377 WHEN 30 THEN TO_CHAR(l1.ENCUMBRANCE_TYPE_ID)
81378 WHEN 31 THEN TO_CHAR(l1.PROJ_ENCUMBRANCE_TYPE_ID)
81379 WHEN 32 THEN TO_CHAR(l1.DOCUMENT_TYPE)
81380 WHEN 33 THEN TO_CHAR(l1.ENC_JE_LINES_REVERSED_FLAG)
81381 WHEN 34 THEN TO_CHAR(l1.PO_RELEASE_ID)
81382 WHEN 35 THEN TO_CHAR(l1.CWK_RATE_BASED_TC_FLAG)
81383 WHEN 36 THEN TO_CHAR(l1.INVOICE_APPLICATION_ID)
81384 WHEN 37 THEN TO_CHAR(l1.INVOICE_DISTRIBUTION_TYPE)
81385 WHEN 38 THEN TO_CHAR(l1.INVOICE_ENTITY_CODE)
81386 WHEN 39 THEN TO_CHAR(l1.INVOICE_FIRST_DIST_ID)
81387 WHEN 40 THEN TO_CHAR(l1.INVOICE_FIRST_SYS_TRANS_ID)
81388 WHEN 41 THEN TO_CHAR(l1.INVOICE_SECOND_DIST_ID)
81389 WHEN 42 THEN TO_CHAR(l1.PO_APPLICATION_ID)
81390 WHEN 43 THEN TO_CHAR(l1.PO_DISTRIBUTION_TYPE)
81391 WHEN 44 THEN TO_CHAR(l1.PO_ENTITY_CODE)
81392 WHEN 45 THEN TO_CHAR(l1.PO_FIRST_DIST_ID)
81393 WHEN 46 THEN TO_CHAR(l1.PO_FIRST_SYS_TRANS_ID)
81394 WHEN 47 THEN TO_CHAR(l1.PO_SECOND_DIST_ID)
81395 WHEN 48 THEN TO_CHAR(l1.ENC_ACCT_ENABLED)
81396 WHEN 49 THEN TO_CHAR(l1.LIQUIDATE_ENCUM_FLAG)
81397
81398 ELSE null
81399 END source_value
81400 , CASE r
81401 WHEN 3 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
81402 103371
81403 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
81404 ,'ALLOW_OVERRIDE_CCID_FLAG'
81405 ,'S'
81406 ,275)
81407 WHEN 16 THEN fvl34.meaning
81408 WHEN 32 THEN fvl69.meaning
81409
81410 ELSE null
81411 END source_meaning
81412 FROM xla_events_gt xet
81413 , PA_XLA_CDL_LINES_V l1
81414 , fnd_lookup_values fvl34
81415 , fnd_lookup_values fvl69
81416 , (select rownum r from all_objects where rownum <= 49 and owner = p_apps_owner)
81417 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
81418 AND xet.event_class_code = C_EVENT_CLASS_CODE
81419 AND l1.event_id = xet.event_id
81420 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
81421 AND fvl34.lookup_code(+) = l1.LINE_TYPE
81422 AND fvl34.view_application_id(+) = 275
81423 AND fvl34.language(+) = USERENV('LANG')
81424 AND fvl69.lookup_type(+) = 'FC_DOC_TYPE'
81425 AND fvl69.lookup_code(+) = l1.DOCUMENT_TYPE
81426 AND fvl69.view_application_id(+) = 275
81427 AND fvl69.language(+) = USERENV('LANG')
81428
81432 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81429 )
81430 ;
81431 --
81433
81434 trace
81435 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
81436 ,p_level => C_LEVEL_STATEMENT
81437 ,p_module => l_log_module);
81438
81439 END IF;
81440
81441
81442 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81443 trace
81444 (p_msg => 'END of insert_sources_128'
81445 ,p_level => C_LEVEL_PROCEDURE
81446 ,p_module => l_log_module);
81447 END IF;
81448 EXCEPTION
81449 WHEN xla_exceptions_pkg.application_exception THEN
81450 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
81451 trace
81452 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
81453 ,p_level => C_LEVEL_EXCEPTION
81454 ,p_module => l_log_module);
81455 END IF;
81456 RAISE;
81457 WHEN OTHERS THEN
81458 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
81459 trace
81460 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
81461 ,p_level => C_LEVEL_EXCEPTION
81462 ,p_module => l_log_module);
81463 END IF;
81464 xla_exceptions_pkg.raise_message
81465 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_128');
81466 END insert_sources_128;
81467 --
81468
81469 ---------------------------------------
81470 --
81471 -- PRIVATE FUNCTION
81472 -- EventClass_128
81473 --
81474 ----------------------------------------
81475 --
81476 FUNCTION EventClass_128
81477 (p_application_id IN NUMBER
81478 ,p_base_ledger_id IN NUMBER
81479 ,p_target_ledger_id IN NUMBER
81480 ,p_language IN VARCHAR2
81481 ,p_currency_code IN VARCHAR2
81482 ,p_sla_ledger_id IN NUMBER
81483 ,p_pad_start_date IN DATE
81484 ,p_pad_end_date IN DATE
81485 ,p_primary_ledger_id IN NUMBER)
81486 RETURN BOOLEAN IS
81487 --
81488 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST_ALL';
81489 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'TOT_BURDENED_COST';
81490
81491 l_calculate_acctd_flag VARCHAR2(1) :='N';
81492 l_calculate_g_l_flag VARCHAR2(1) :='N';
81493 --
81494 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81495 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81496 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81497 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81498 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81499 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81500 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81501 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81502 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81503 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81504 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81505 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81506 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81507 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
81508 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81509 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81510 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81511 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
81512 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81513 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81514 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81515 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
81516 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
81517 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
81518
81519 l_event_id NUMBER;
81520 l_previous_event_id NUMBER;
81521 l_first_event_id NUMBER;
81522 l_last_event_id NUMBER;
81523
81524 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
81525 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
81526 --
81527 --
81528 l_result BOOLEAN := TRUE;
81529 l_rows NUMBER := 1000;
81530 l_event_type_name VARCHAR2(80) := 'All';
81531 l_event_class_name VARCHAR2(80) := 'Total Burdened Cost';
81532 l_description VARCHAR2(4000);
81533 l_transaction_reversal NUMBER;
81534 l_ae_header_id NUMBER;
81535 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
81536 l_log_module VARCHAR2(240);
81537 --
81538 l_acct_reversal_source VARCHAR2(30);
81539 l_trx_reversal_source VARCHAR2(30);
81540
81541 l_continue_with_lines BOOLEAN := TRUE;
81542 --
81543 l_acc_rev_gl_date_source DATE; -- 4262811
81544 --
81545 type t_array_event_id is table of number index by binary_integer;
81546
81547 l_rec_array_event t_rec_array_event;
81548 l_null_rec_array_event t_rec_array_event;
81549 l_array_ae_header_id xla_number_array_type;
81550 l_actual_flag VARCHAR2(1) := NULL;
81551 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
81552 l_balance_type_code VARCHAR2(1) :=NULL;
81553 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
81557 --
81554
81555 --
81556 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
81558
81559 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
81560 TYPE t_array_source_37 IS TABLE OF PA_XLA_EXP_HEADER_V.SYSTEM_LINKAGE_FUNCTION%TYPE INDEX BY BINARY_INTEGER;
81561 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
81562
81563 TYPE t_array_source_2 IS TABLE OF PA_XLA_CDL_LINES_V.BUDGET_CCID%TYPE INDEX BY BINARY_INTEGER;
81564 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
81565 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
81566 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
81567 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
81568 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
81569 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
81570 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81571 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
81572 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
81573 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
81574 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
81575 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81576 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
81577 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
81578 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
81579 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
81580 TYPE t_array_source_44 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
81581 TYPE t_array_source_45 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_BURDENED_COST%TYPE INDEX BY BINARY_INTEGER;
81582 TYPE t_array_source_46 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_AMOUNT%TYPE INDEX BY BINARY_INTEGER;
81583 TYPE t_array_source_47 IS TABLE OF PA_XLA_CDL_LINES_V.PA_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
81584 TYPE t_array_source_48 IS TABLE OF PA_XLA_CDL_LINES_V.PA_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
81585 TYPE t_array_source_49 IS TABLE OF PA_XLA_CDL_LINES_V.PA_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
81586 TYPE t_array_source_50 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81587 TYPE t_array_source_51 IS TABLE OF PA_XLA_CDL_LINES_V.PA_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
81588 TYPE t_array_source_52 IS TABLE OF PA_XLA_CDL_LINES_V.PA_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81589 TYPE t_array_source_53 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81590 TYPE t_array_source_54 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
81591 TYPE t_array_source_55 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ENC_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
81592 TYPE t_array_source_56 IS TABLE OF PA_XLA_CDL_LINES_V.ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
81593 TYPE t_array_source_57 IS TABLE OF PA_XLA_CDL_LINES_V.PROJ_ENCUMBRANCE_TYPE_ID%TYPE INDEX BY BINARY_INTEGER;
81594 TYPE t_array_source_69 IS TABLE OF PA_XLA_CDL_LINES_V.DOCUMENT_TYPE%TYPE INDEX BY BINARY_INTEGER;
81595 TYPE t_array_source_70 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_JE_LINES_REVERSED_FLAG%TYPE INDEX BY BINARY_INTEGER;
81596 TYPE t_array_source_71 IS TABLE OF PA_XLA_CDL_LINES_V.PO_RELEASE_ID%TYPE INDEX BY BINARY_INTEGER;
81597 TYPE t_array_source_72 IS TABLE OF PA_XLA_CDL_LINES_V.CWK_RATE_BASED_TC_FLAG%TYPE INDEX BY BINARY_INTEGER;
81598 TYPE t_array_source_73 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
81599 TYPE t_array_source_74 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
81600 TYPE t_array_source_75 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
81601 TYPE t_array_source_76 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81602 TYPE t_array_source_77 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
81603 TYPE t_array_source_78 IS TABLE OF PA_XLA_CDL_LINES_V.INVOICE_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81604 TYPE t_array_source_79 IS TABLE OF PA_XLA_CDL_LINES_V.PO_APPLICATION_ID%TYPE INDEX BY BINARY_INTEGER;
81605 TYPE t_array_source_80 IS TABLE OF PA_XLA_CDL_LINES_V.PO_DISTRIBUTION_TYPE%TYPE INDEX BY BINARY_INTEGER;
81606 TYPE t_array_source_81 IS TABLE OF PA_XLA_CDL_LINES_V.PO_ENTITY_CODE%TYPE INDEX BY BINARY_INTEGER;
81607 TYPE t_array_source_82 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81608 TYPE t_array_source_83 IS TABLE OF PA_XLA_CDL_LINES_V.PO_FIRST_SYS_TRANS_ID%TYPE INDEX BY BINARY_INTEGER;
81609 TYPE t_array_source_84 IS TABLE OF PA_XLA_CDL_LINES_V.PO_SECOND_DIST_ID%TYPE INDEX BY BINARY_INTEGER;
81610 TYPE t_array_source_85 IS TABLE OF PA_XLA_CDL_LINES_V.ENC_ACCT_ENABLED%TYPE INDEX BY BINARY_INTEGER;
81611 TYPE t_array_source_86 IS TABLE OF PA_XLA_CDL_LINES_V.LIQUIDATE_ENCUM_FLAG%TYPE INDEX BY BINARY_INTEGER;
81612
81613 l_array_source_32 t_array_source_32;
81614 l_array_source_37 t_array_source_37;
81615 l_array_source_87 t_array_source_87;
81616
81617 l_array_source_2 t_array_source_2;
81618 l_array_source_3 t_array_source_3;
81619 l_array_source_4 t_array_source_4;
81620 l_array_source_5 t_array_source_5;
81621 l_array_source_6 t_array_source_6;
81622 l_array_source_7 t_array_source_7;
81623 l_array_source_22 t_array_source_22;
81624 l_array_source_23 t_array_source_23;
81625 l_array_source_25 t_array_source_25;
81626 l_array_source_27 t_array_source_27;
81627 l_array_source_28 t_array_source_28;
81631 l_array_source_33 t_array_source_33;
81628 l_array_source_29 t_array_source_29;
81629 l_array_source_30 t_array_source_30;
81630 l_array_source_31 t_array_source_31;
81632 l_array_source_34 t_array_source_34;
81633 l_array_source_34_meaning t_array_lookup_meaning;
81634 l_array_source_35 t_array_source_35;
81635 l_array_source_44 t_array_source_44;
81636 l_array_source_45 t_array_source_45;
81637 l_array_source_46 t_array_source_46;
81638 l_array_source_47 t_array_source_47;
81639 l_array_source_48 t_array_source_48;
81640 l_array_source_49 t_array_source_49;
81641 l_array_source_50 t_array_source_50;
81642 l_array_source_51 t_array_source_51;
81643 l_array_source_52 t_array_source_52;
81644 l_array_source_53 t_array_source_53;
81645 l_array_source_54 t_array_source_54;
81646 l_array_source_55 t_array_source_55;
81647 l_array_source_56 t_array_source_56;
81648 l_array_source_57 t_array_source_57;
81649 l_array_source_69 t_array_source_69;
81650 l_array_source_69_meaning t_array_lookup_meaning;
81651 l_array_source_70 t_array_source_70;
81652 l_array_source_71 t_array_source_71;
81653 l_array_source_72 t_array_source_72;
81654 l_array_source_73 t_array_source_73;
81655 l_array_source_74 t_array_source_74;
81656 l_array_source_75 t_array_source_75;
81657 l_array_source_76 t_array_source_76;
81658 l_array_source_77 t_array_source_77;
81659 l_array_source_78 t_array_source_78;
81660 l_array_source_79 t_array_source_79;
81661 l_array_source_80 t_array_source_80;
81662 l_array_source_81 t_array_source_81;
81663 l_array_source_82 t_array_source_82;
81664 l_array_source_83 t_array_source_83;
81665 l_array_source_84 t_array_source_84;
81666 l_array_source_85 t_array_source_85;
81667 l_array_source_86 t_array_source_86;
81668
81669 --
81670 CURSOR header_cur
81671 IS
81672 SELECT /*+ leading(xet) cardinality(xet,1) */
81673 -- Event Class Code: TOT_BURDENED_COST
81674 xet.entity_id
81675 ,xet.legal_entity_id
81676 ,xet.entity_code
81677 ,xet.transaction_number
81678 ,xet.event_id
81679 ,xet.event_class_code
81680 ,xet.event_type_code
81681 ,xet.event_number
81682 ,xet.event_date
81683 ,xet.transaction_date
81684 ,xet.reference_num_1
81685 ,xet.reference_num_2
81686 ,xet.reference_num_3
81687 ,xet.reference_num_4
81688 ,xet.reference_char_1
81689 ,xet.reference_char_2
81690 ,xet.reference_char_3
81691 ,xet.reference_char_4
81692 ,xet.reference_date_1
81693 ,xet.reference_date_2
81694 ,xet.reference_date_3
81695 ,xet.reference_date_4
81696 ,xet.event_created_by
81697 ,xet.budgetary_control_flag
81698 , h2.EXPENDITURE_ITEM_ID source_32
81699 , h2.SYSTEM_LINKAGE_FUNCTION source_37
81700 , h2.GL_DATE source_87
81701 FROM xla_events_gt xet
81702 , PA_XLA_EXP_HEADER_V h2
81703 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
81704 and xet.event_class_code = C_EVENT_CLASS_CODE
81705 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
81706
81707 ORDER BY event_id
81708 ;
81709
81710
81711 --
81712 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
81713 IS
81714 SELECT /*+ leading(xet) cardinality(xet,1) */
81715 -- Event Class Code: TOT_BURDENED_COST
81716 xet.entity_id
81717 ,xet.legal_entity_id
81718 ,xet.entity_code
81719 ,xet.transaction_number
81720 ,xet.event_id
81721 ,xet.event_class_code
81722 ,xet.event_type_code
81723 ,xet.event_number
81724 ,xet.event_date
81725 ,xet.transaction_date
81726 ,xet.reference_num_1
81727 ,xet.reference_num_2
81728 ,xet.reference_num_3
81729 ,xet.reference_num_4
81730 ,xet.reference_char_1
81731 ,xet.reference_char_2
81732 ,xet.reference_char_3
81733 ,xet.reference_char_4
81734 ,xet.reference_date_1
81735 ,xet.reference_date_2
81736 ,xet.reference_date_3
81737 ,xet.reference_date_4
81738 ,xet.event_created_by
81739 ,xet.budgetary_control_flag
81740 , l1.LINE_NUMBER
81741 , l1.BUDGET_CCID source_2
81742 , l1.COST_CCID source_3
81743 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
81744 , l1.ADJ_COST_CCID source_5
81745 , l1.COST_CLEARING_CCID source_6
81746 , l1.ADJ_COST_CLEARING_CCID source_7
81747 , l1.REVERSING_LINE_FLAG source_22
81748 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
81749 , l1.ENTERED_CURRENCY_CODE source_25
81750 , l1.EXCHANGE_RATE_DATE source_27
81751 , l1.EXCHANGE_RATE source_28
81752 , l1.EXCHANGE_RATE_TYPE source_29
81753 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
81754 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
81755 , l1.LINE_NUMBER source_33
81756 , l1.LINE_TYPE source_34
81757 , fvl34.meaning source_34_meaning
81758 , l1.LINE_NUM_REVERSED source_35
81759 , l1.ENTERED_BURDENED_COST source_44
81760 , l1.ACCT_BURDENED_COST source_45
81761 , l1.ENCUMBRANCE_AMOUNT source_46
81762 , l1.PA_APPLICATION_ID source_47
81763 , l1.PA_DISTRIBUTION_TYPE source_48
81764 , l1.PA_ENTITY_CODE source_49
81765 , l1.PA_FIRST_DIST_ID source_50
81766 , l1.PA_FIRST_SYS_TRANS_ID source_51
81767 , l1.PA_SECOND_DIST_ID source_52
81768 , l1.ENC_UPG_DR_ACCT_CLASS source_53
81769 , l1.ENC_UPG_CR_ACCT_CLASS source_54
81770 , l1.USE_ENC_UPG_ATTRIB_FLAG source_55
81771 , l1.ENCUMBRANCE_TYPE_ID source_56
81772 , l1.PROJ_ENCUMBRANCE_TYPE_ID source_57
81773 , l1.DOCUMENT_TYPE source_69
81774 , fvl69.meaning source_69_meaning
81775 , l1.ENC_JE_LINES_REVERSED_FLAG source_70
81779 , l1.INVOICE_DISTRIBUTION_TYPE source_74
81776 , l1.PO_RELEASE_ID source_71
81777 , l1.CWK_RATE_BASED_TC_FLAG source_72
81778 , l1.INVOICE_APPLICATION_ID source_73
81780 , l1.INVOICE_ENTITY_CODE source_75
81781 , l1.INVOICE_FIRST_DIST_ID source_76
81782 , l1.INVOICE_FIRST_SYS_TRANS_ID source_77
81783 , l1.INVOICE_SECOND_DIST_ID source_78
81784 , l1.PO_APPLICATION_ID source_79
81785 , l1.PO_DISTRIBUTION_TYPE source_80
81786 , l1.PO_ENTITY_CODE source_81
81787 , l1.PO_FIRST_DIST_ID source_82
81788 , l1.PO_FIRST_SYS_TRANS_ID source_83
81789 , l1.PO_SECOND_DIST_ID source_84
81790 , l1.ENC_ACCT_ENABLED source_85
81791 , l1.LIQUIDATE_ENCUM_FLAG source_86
81792 FROM xla_events_gt xet
81793 , PA_XLA_CDL_LINES_V l1
81794 , fnd_lookup_values fvl34
81795 , fnd_lookup_values fvl69
81796 WHERE xet.event_id between x_first_event_id and x_last_event_id
81797 and xet.event_date between p_pad_start_date and p_pad_end_date
81798 and xet.event_class_code = C_EVENT_CLASS_CODE
81799 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
81800 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
81801 AND fvl34.lookup_code(+) = l1.LINE_TYPE
81802 AND fvl34.view_application_id(+) = 275
81803 AND fvl34.language(+) = USERENV('LANG')
81804 AND fvl69.lookup_type(+) = 'FC_DOC_TYPE'
81805 AND fvl69.lookup_code(+) = l1.DOCUMENT_TYPE
81806 AND fvl69.view_application_id(+) = 275
81807 AND fvl69.language(+) = USERENV('LANG')
81808 ;
81809
81810 --
81811 BEGIN
81812 IF g_log_enabled THEN
81813 l_log_module := C_DEFAULT_MODULE||'.EventClass_128';
81814 END IF;
81815 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
81816 trace
81817 (p_msg => 'BEGIN of EventClass_128'
81818 ,p_level => C_LEVEL_PROCEDURE
81819 ,p_module => l_log_module);
81820 END IF;
81821
81822 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81823 trace
81824 (p_msg => 'p_application_id = '||p_application_id||
81825 ' - p_base_ledger_id = '||p_base_ledger_id||
81826 ' - p_target_ledger_id = '||p_target_ledger_id||
81827 ' - p_language = '||p_language||
81828 ' - p_currency_code = '||p_currency_code||
81829 ' - p_sla_ledger_id = '||p_sla_ledger_id
81830 ,p_level => C_LEVEL_STATEMENT
81831 ,p_module => l_log_module);
81832 END IF;
81833 --
81834 -- initialze arrays
81835 --
81836 g_array_event.DELETE;
81837 l_rec_array_event := l_null_rec_array_event;
81838 --
81839 --------------------------------------
81840 -- 4262811 Initialze MPA Line Number
81841 --------------------------------------
81842 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
81843
81844 --
81845
81846 --
81847 OPEN header_cur;
81848 --
81849 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
81850 trace
81851 (p_msg => 'SQL - FETCH header_cur'
81852 ,p_level => C_LEVEL_STATEMENT
81853 ,p_module => l_log_module);
81854 END IF;
81855 --
81856 LOOP
81857 FETCH header_cur BULK COLLECT INTO
81858 l_array_entity_id
81859 , l_array_legal_entity_id
81860 , l_array_entity_code
81861 , l_array_transaction_num
81862 , l_array_event_id
81863 , l_array_class_code
81864 , l_array_event_type
81865 , l_array_event_number
81866 , l_array_event_date
81867 , l_array_transaction_date
81868 , l_array_reference_num_1
81869 , l_array_reference_num_2
81870 , l_array_reference_num_3
81871 , l_array_reference_num_4
81872 , l_array_reference_char_1
81873 , l_array_reference_char_2
81874 , l_array_reference_char_3
81875 , l_array_reference_char_4
81876 , l_array_reference_date_1
81877 , l_array_reference_date_2
81878 , l_array_reference_date_3
81879 , l_array_reference_date_4
81880 , l_array_event_created_by
81881 , l_array_budgetary_control_flag
81882 , l_array_source_32
81883 , l_array_source_37
81884 , l_array_source_87
81885 LIMIT l_rows;
81886 --
81887 IF (C_LEVEL_EVENT >= g_log_level) THEN
81888 trace
81889 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
81890 ,p_level => C_LEVEL_EVENT
81891 ,p_module => l_log_module);
81892 END IF;
81893 --
81894 EXIT WHEN l_array_entity_id.COUNT = 0;
81895
81896 -- initialize arrays
81897 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
81898 XLA_AE_LINES_PKG.g_rec_lines := NULL;
81899
81900 --
81901 -- Bug 4458708
81902 --
81903 XLA_AE_LINES_PKG.g_LineNumber := 0;
81904
81905
81906 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
81907 g_last_hdr_idx := l_array_event_id.LAST;
81908 --
81909 -- loop for the headers. Each iteration is for each header extract row
81910 -- fetched in header cursor
81911 --
81912 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
81913
81914 --
81915 -- set event info as cache for other routines to refer event attributes
81916 --
81917 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
81918 (p_application_id => p_application_id
81919 ,p_primary_ledger_id => p_primary_ledger_id
81920 ,p_base_ledger_id => p_base_ledger_id
81921 ,p_target_ledger_id => p_target_ledger_id
81922 ,p_entity_id => l_array_entity_id(hdr_idx)
81923 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
81924 ,p_entity_code => l_array_entity_code(hdr_idx)
81928 ,p_event_type_code => l_array_event_type(hdr_idx)
81925 ,p_transaction_num => l_array_transaction_num(hdr_idx)
81926 ,p_event_id => l_array_event_id(hdr_idx)
81927 ,p_event_class_code => l_array_class_code(hdr_idx)
81929 ,p_event_number => l_array_event_number(hdr_idx)
81930 ,p_event_date => l_array_event_date(hdr_idx)
81931 ,p_transaction_date => l_array_transaction_date(hdr_idx)
81932 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
81933 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
81934 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
81935 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
81936 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
81937 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
81938 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
81939 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
81940 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
81941 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
81942 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
81943 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
81944 ,p_event_created_by => l_array_event_created_by(hdr_idx)
81945 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
81946
81947 --
81948 -- set the status of entry to C_VALID (0)
81949 --
81950 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
81951
81952 --
81953 -- initialize a row for ae header
81954 --
81955 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
81956
81957 l_event_id := l_array_event_id(hdr_idx);
81958
81959 --
81960 -- storing the hdr_idx for event. May be used by line cursor.
81961 --
81962 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
81963
81964 --
81965 -- store sources from header extract. This can be improved to
81966 -- store only those sources from header extract that may be used in lines
81967 --
81968
81969 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
81970 g_array_event(l_event_id).array_value_char('source_37') := l_array_source_37(hdr_idx);
81971 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
81972
81973 --
81974 -- initilaize the status of ae headers for diffrent balance types
81975 -- the status is initialised to C_NOT_CREATED (2)
81976 --
81977 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
81978 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
81979 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
81980
81981 --
81982 -- call api to validate and store accounting attributes for header
81983 --
81984
81985 ------------------------------------------------------------
81986 -- Accrual Reversal : to get date for Standard Source (NONE)
81987 ------------------------------------------------------------
81988 l_acc_rev_gl_date_source := NULL;
81989
81990 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
81991 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
81992
81993
81994 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
81995
81996 XLA_AE_HEADER_PKG.SetJeCategoryName;
81997
81998 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
81999 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
82000 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
82001 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
82002 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
82003
82004
82005 -- No header level analytical criteria
82006
82007 --
82008 --accounting attribute enhancement, bug 3612931
82009 --
82010 l_trx_reversal_source := SUBSTR(NULL, 1,30);
82011
82012 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
82013 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
82014
82015 xla_accounting_err_pkg.build_message
82016 (p_appli_s_name => 'XLA'
82017 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
82018 ,p_token_1 => 'ACCT_ATTR_NAME'
82019 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
82020 ,p_token_2 => 'PRODUCT_NAME'
82021 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82022 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82023 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82024 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82025
82026 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
82027 --
82028 -- following sets the accounting attributes needed to reverse
82029 -- accounting for a distributeion
82030 --
82031 xla_ae_lines_pkg.SetTrxReversalAttrs
82032 (p_event_id => l_event_id
82033 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
82034 ,p_trx_reversal_source => l_trx_reversal_source);
82035
82036 END IF;
82037
82038
82039 ----------------------------------------------------------------
82040 -- 4262811 - update the header statuses to invalid in need be
82041 ----------------------------------------------------------------
82042 --
82043 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
82044
82048 -----------------------------------------------
82045
82046 -----------------------------------------------
82047 -- No accrual reversal for the event class/type
82049 ----------------------------------------------------------------
82050
82051 --
82052 -- this ends the header loop iteration for one bulk fetch
82053 --
82054 END LOOP;
82055
82056 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
82057 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
82058
82059 --
82060 -- insert dummy rows into lines gt table that were created due to
82061 -- transaction reversals
82062 --
82063 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
82064 l_result := XLA_AE_LINES_PKG.InsertLines;
82065 END IF;
82066
82067 --
82068 -- reset the temp_line_num for each set of events fetched from header
82069 -- cursor rather than doing it for each new event in line cursor
82070 -- Bug 3939231
82071 --
82072 xla_ae_lines_pkg.g_temp_line_num := 0;
82073
82074
82075
82076 --
82077 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
82078 --
82079 --
82080 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82081
82082 trace
82083 (p_msg => 'SQL - FETCH line_cur'
82084 ,p_level => C_LEVEL_STATEMENT
82085 ,p_module => l_log_module);
82086
82087 END IF;
82088 --
82089 --
82090 LOOP
82091 --
82092 FETCH line_cur BULK COLLECT INTO
82093 l_array_entity_id
82094 , l_array_legal_entity_id
82095 , l_array_entity_code
82096 , l_array_transaction_num
82097 , l_array_event_id
82098 , l_array_class_code
82099 , l_array_event_type
82100 , l_array_event_number
82101 , l_array_event_date
82102 , l_array_transaction_date
82103 , l_array_reference_num_1
82104 , l_array_reference_num_2
82105 , l_array_reference_num_3
82106 , l_array_reference_num_4
82107 , l_array_reference_char_1
82108 , l_array_reference_char_2
82109 , l_array_reference_char_3
82110 , l_array_reference_char_4
82111 , l_array_reference_date_1
82112 , l_array_reference_date_2
82113 , l_array_reference_date_3
82114 , l_array_reference_date_4
82115 , l_array_event_created_by
82116 , l_array_budgetary_control_flag
82117 , l_array_extract_line_num
82118 , l_array_source_2
82119 , l_array_source_3
82120 , l_array_source_4
82121 , l_array_source_5
82122 , l_array_source_6
82123 , l_array_source_7
82124 , l_array_source_22
82125 , l_array_source_23
82126 , l_array_source_25
82127 , l_array_source_27
82128 , l_array_source_28
82129 , l_array_source_29
82130 , l_array_source_30
82131 , l_array_source_31
82132 , l_array_source_33
82133 , l_array_source_34
82134 , l_array_source_34_meaning
82135 , l_array_source_35
82136 , l_array_source_44
82137 , l_array_source_45
82138 , l_array_source_46
82139 , l_array_source_47
82140 , l_array_source_48
82141 , l_array_source_49
82142 , l_array_source_50
82143 , l_array_source_51
82144 , l_array_source_52
82145 , l_array_source_53
82146 , l_array_source_54
82147 , l_array_source_55
82148 , l_array_source_56
82149 , l_array_source_57
82150 , l_array_source_69
82151 , l_array_source_69_meaning
82152 , l_array_source_70
82153 , l_array_source_71
82154 , l_array_source_72
82155 , l_array_source_73
82156 , l_array_source_74
82157 , l_array_source_75
82158 , l_array_source_76
82159 , l_array_source_77
82160 , l_array_source_78
82161 , l_array_source_79
82162 , l_array_source_80
82163 , l_array_source_81
82164 , l_array_source_82
82165 , l_array_source_83
82166 , l_array_source_84
82167 , l_array_source_85
82168 , l_array_source_86
82169 LIMIT l_rows;
82170
82171 --
82172 IF (C_LEVEL_EVENT >= g_log_level) THEN
82173 trace
82174 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
82175 ,p_level => C_LEVEL_EVENT
82176 ,p_module => l_log_module);
82177 END IF;
82178 --
82179 EXIT WHEN l_array_entity_id.count = 0;
82180
82181 XLA_AE_LINES_PKG.g_rec_lines := null;
82182
82183 --
82184 -- Bug 4458708
82185 --
82186 XLA_AE_LINES_PKG.g_LineNumber := 0;
82187 --
82188 --
82189
82190 FOR Idx IN 1..l_array_event_id.count LOOP
82191 --
82192 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
82193 --
82194 l_event_id := l_array_event_id(idx); -- 5648433
82195
82196 --
82197 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
82198 --
82199
82200 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
82201 (g_array_event(l_event_id).array_value_num('header_index'))
82202 ,'N'
82203 ) <> 'Y'
82204 THEN
82205 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82206 trace
82207 (p_msg => 'Trancaction revesal option is not Y '
82208 ,p_level => C_LEVEL_STATEMENT
82209 ,p_module => l_log_module);
82210 END IF;
82211
82212 --
82213 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
82214 --
82218 --
82215 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
82216 --
82217 -- set event info as cache for other routines to refer event attributes
82219
82220 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
82221 l_previous_event_id := l_event_id;
82222
82223 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
82224 (p_application_id => p_application_id
82225 ,p_primary_ledger_id => p_primary_ledger_id
82226 ,p_base_ledger_id => p_base_ledger_id
82227 ,p_target_ledger_id => p_target_ledger_id
82228 ,p_entity_id => l_array_entity_id(Idx)
82229 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
82230 ,p_entity_code => l_array_entity_code(Idx)
82231 ,p_transaction_num => l_array_transaction_num(Idx)
82232 ,p_event_id => l_array_event_id(Idx)
82233 ,p_event_class_code => l_array_class_code(Idx)
82234 ,p_event_type_code => l_array_event_type(Idx)
82235 ,p_event_number => l_array_event_number(Idx)
82236 ,p_event_date => l_array_event_date(Idx)
82237 ,p_transaction_date => l_array_transaction_date(Idx)
82238 ,p_reference_num_1 => l_array_reference_num_1(Idx)
82239 ,p_reference_num_2 => l_array_reference_num_2(Idx)
82240 ,p_reference_num_3 => l_array_reference_num_3(Idx)
82241 ,p_reference_num_4 => l_array_reference_num_4(Idx)
82242 ,p_reference_char_1 => l_array_reference_char_1(Idx)
82243 ,p_reference_char_2 => l_array_reference_char_2(Idx)
82244 ,p_reference_char_3 => l_array_reference_char_3(Idx)
82245 ,p_reference_char_4 => l_array_reference_char_4(Idx)
82246 ,p_reference_date_1 => l_array_reference_date_1(Idx)
82247 ,p_reference_date_2 => l_array_reference_date_2(Idx)
82248 ,p_reference_date_3 => l_array_reference_date_3(Idx)
82249 ,p_reference_date_4 => l_array_reference_date_4(Idx)
82250 ,p_event_created_by => l_array_event_created_by(Idx)
82251 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
82252 --
82253 END IF;
82254
82255
82256
82257 --
82258 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
82259
82260 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
82261
82262 IF l_continue_with_lines THEN
82263 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
82264 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
82265
82266 xla_accounting_err_pkg.build_message
82267 (p_appli_s_name => 'XLA'
82268 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
82269 ,p_token_1 => 'LINE_NUMBER'
82270 ,p_value_1 => l_array_extract_line_num(Idx)
82271 ,p_token_2 => 'PRODUCT_NAME'
82272 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
82273 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
82274 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82275 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
82276
82277 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
82278 --
82279 -- following sets the accounting attributes needed to reverse
82280 -- accounting for a distributeion
82281 --
82282
82283 --
82284 -- 5217187
82285 --
82286 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
82287 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
82288 g_array_event(l_event_id).array_value_num('header_index'));
82289 --
82290 --
82291
82292 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
82293 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
82294 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
82295 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
82296 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
82297 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
82298 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
82299 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_44(Idx);
82300 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
82301 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
82302 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
82303 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_45(Idx);
82304 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
82305 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
82306 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
82307 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
82308 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
82309 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
82310 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
82311 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
82312 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
82313 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
82314 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
82315 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_44(Idx);
82316 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
82320 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
82317 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
82318 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
82319 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_45(Idx);
82321 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
82322 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
82323 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
82324 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
82325 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
82326 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
82327 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
82328 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
82329 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
82330 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
82331 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
82332 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
82333 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
82334 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'ENC_UPG_CR_ACCT_CLASS';
82335 l_rec_rev_acct_attrs.array_char_value(23) := l_array_source_53(Idx);
82336 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'ENC_UPG_CR_CCID';
82337 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_2(Idx);
82338 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'ENC_UPG_CR_ENTERED_AMT';
82339 l_rec_rev_acct_attrs.array_num_value(25) := l_array_source_46(Idx);
82340 l_rec_rev_acct_attrs.array_acct_attr_code(26) := 'ENC_UPG_CR_ENTERED_CURR';
82341 l_rec_rev_acct_attrs.array_char_value(26) :=
82342 xla_ae_sources_pkg.GetSystemSourceChar(
82343 p_source_code => 'XLA_CURRENCY_CODE'
82344 , p_source_type_code => 'Y'
82345 , p_source_application_id => 602
82346 );
82347 l_rec_rev_acct_attrs.array_acct_attr_code(27) := 'ENC_UPG_CR_LEDGER_AMT';
82348 l_rec_rev_acct_attrs.array_num_value(27) := l_array_source_46(Idx);
82349 l_rec_rev_acct_attrs.array_acct_attr_code(28) := 'ENC_UPG_DR_ACCT_CLASS';
82350 l_rec_rev_acct_attrs.array_char_value(28) := l_array_source_54(Idx);
82351 l_rec_rev_acct_attrs.array_acct_attr_code(29) := 'ENC_UPG_DR_CCID';
82352 l_rec_rev_acct_attrs.array_num_value(29) := l_array_source_2(Idx);
82353 l_rec_rev_acct_attrs.array_acct_attr_code(30) := 'ENC_UPG_DR_ENTERED_AMT';
82354 l_rec_rev_acct_attrs.array_num_value(30) := l_array_source_46(Idx);
82355 l_rec_rev_acct_attrs.array_acct_attr_code(31) := 'ENC_UPG_DR_ENTERED_CURR';
82356 l_rec_rev_acct_attrs.array_char_value(31) :=
82357 xla_ae_sources_pkg.GetSystemSourceChar(
82358 p_source_code => 'XLA_CURRENCY_CODE'
82359 , p_source_type_code => 'Y'
82360 , p_source_application_id => 602
82361 );
82362 l_rec_rev_acct_attrs.array_acct_attr_code(32) := 'ENC_UPG_DR_LEDGER_AMT';
82363 l_rec_rev_acct_attrs.array_num_value(32) := l_array_source_46(Idx);
82364 l_rec_rev_acct_attrs.array_acct_attr_code(33) := 'ENC_UPG_OPTION';
82365 l_rec_rev_acct_attrs.array_char_value(33) := l_array_source_55(Idx);
82366 l_rec_rev_acct_attrs.array_acct_attr_code(34) := 'GAIN_LOSS_REFERENCE';
82367 l_rec_rev_acct_attrs.array_num_value(34) := g_array_event(l_event_id).array_value_num('source_32');
82368 l_rec_rev_acct_attrs.array_acct_attr_code(35) := 'REVERSED_DISTRIBUTION_ID1';
82369 l_rec_rev_acct_attrs.array_num_value(35) := g_array_event(l_event_id).array_value_num('source_32');
82370 l_rec_rev_acct_attrs.array_acct_attr_code(36) := 'REVERSED_DISTRIBUTION_ID2';
82371 l_rec_rev_acct_attrs.array_num_value(36) := l_array_source_35(Idx);
82372 l_rec_rev_acct_attrs.array_acct_attr_code(37) := 'REVERSED_DISTRIBUTION_TYPE';
82373 l_rec_rev_acct_attrs.array_char_value(37) := l_array_source_34(Idx);
82374 l_rec_rev_acct_attrs.array_acct_attr_code(38) := 'UPG_CR_ENC_TYPE_ID';
82375 l_rec_rev_acct_attrs.array_num_value(38) := l_array_source_56(Idx);
82376 l_rec_rev_acct_attrs.array_acct_attr_code(39) := 'UPG_DR_ENC_TYPE_ID';
82377 l_rec_rev_acct_attrs.array_num_value(39) := l_array_source_57(Idx);
82378
82379
82380 xla_ae_lines_pkg.SetAcctReversalAttrs
82381 (p_event_id => l_event_id
82382 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
82383 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82384 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
82385 END IF;
82386
82387 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
82388 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
82389
82390 --
82391 AcctLineType_78 (
82392 p_application_id => p_application_id
82393 ,p_event_id => l_event_id
82394 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82395 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82396 ,p_actual_flag => l_actual_flag
82397 ,p_balance_type_code => l_balance_type_code
82398 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82399
82400 , p_source_2 => l_array_source_2(Idx)
82401 , p_source_3 => l_array_source_3(Idx)
82402 , p_source_4 => l_array_source_4(Idx)
82403 , p_source_5 => l_array_source_5(Idx)
82404 , p_source_6 => l_array_source_6(Idx)
82405 , p_source_22 => l_array_source_22(Idx)
82406 , p_source_23 => l_array_source_23(Idx)
82407 , p_source_25 => l_array_source_25(Idx)
82408 , p_source_27 => l_array_source_27(Idx)
82409 , p_source_28 => l_array_source_28(Idx)
82410 , p_source_29 => l_array_source_29(Idx)
82411 , p_source_30 => l_array_source_30(Idx)
82412 , p_source_31 => l_array_source_31(Idx)
82413 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82414 , p_source_33 => l_array_source_33(Idx)
82418 , p_source_44 => l_array_source_44(Idx)
82415 , p_source_34 => l_array_source_34(Idx)
82416 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82417 , p_source_35 => l_array_source_35(Idx)
82419 , p_source_45 => l_array_source_45(Idx)
82420 , p_source_46 => l_array_source_46(Idx)
82421 , p_source_47 => l_array_source_47(Idx)
82422 , p_source_48 => l_array_source_48(Idx)
82423 , p_source_49 => l_array_source_49(Idx)
82424 , p_source_50 => l_array_source_50(Idx)
82425 , p_source_51 => l_array_source_51(Idx)
82426 , p_source_52 => l_array_source_52(Idx)
82427 , p_source_53 => l_array_source_53(Idx)
82428 , p_source_54 => l_array_source_54(Idx)
82429 , p_source_55 => l_array_source_55(Idx)
82430 , p_source_56 => l_array_source_56(Idx)
82431 , p_source_57 => l_array_source_57(Idx)
82432 );
82433 If(l_balance_type_code = 'A') THEN
82434 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82435 END IF;
82436
82437 --
82438
82439
82440 --
82441 AcctLineType_80 (
82442 p_application_id => p_application_id
82443 ,p_event_id => l_event_id
82444 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82445 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82446 ,p_actual_flag => l_actual_flag
82447 ,p_balance_type_code => l_balance_type_code
82448 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82449
82450 , p_source_2 => l_array_source_2(Idx)
82451 , p_source_3 => l_array_source_3(Idx)
82452 , p_source_4 => l_array_source_4(Idx)
82453 , p_source_6 => l_array_source_6(Idx)
82454 , p_source_7 => l_array_source_7(Idx)
82455 , p_source_22 => l_array_source_22(Idx)
82456 , p_source_23 => l_array_source_23(Idx)
82457 , p_source_25 => l_array_source_25(Idx)
82458 , p_source_27 => l_array_source_27(Idx)
82459 , p_source_28 => l_array_source_28(Idx)
82460 , p_source_29 => l_array_source_29(Idx)
82461 , p_source_30 => l_array_source_30(Idx)
82462 , p_source_31 => l_array_source_31(Idx)
82463 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82464 , p_source_33 => l_array_source_33(Idx)
82465 , p_source_34 => l_array_source_34(Idx)
82466 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82467 , p_source_35 => l_array_source_35(Idx)
82468 , p_source_44 => l_array_source_44(Idx)
82469 , p_source_45 => l_array_source_45(Idx)
82470 , p_source_46 => l_array_source_46(Idx)
82471 , p_source_47 => l_array_source_47(Idx)
82472 , p_source_48 => l_array_source_48(Idx)
82473 , p_source_49 => l_array_source_49(Idx)
82474 , p_source_50 => l_array_source_50(Idx)
82475 , p_source_51 => l_array_source_51(Idx)
82476 , p_source_52 => l_array_source_52(Idx)
82477 , p_source_53 => l_array_source_53(Idx)
82478 , p_source_54 => l_array_source_54(Idx)
82479 , p_source_55 => l_array_source_55(Idx)
82480 , p_source_56 => l_array_source_56(Idx)
82481 , p_source_57 => l_array_source_57(Idx)
82482 );
82483 If(l_balance_type_code = 'A') THEN
82484 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82485 END IF;
82486
82487 --
82488
82489
82490 --
82491 AcctLineType_91 (
82492 p_application_id => p_application_id
82493 ,p_event_id => l_event_id
82494 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82495 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82496 ,p_actual_flag => l_actual_flag
82497 ,p_balance_type_code => l_balance_type_code
82498 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82499
82500 , p_source_2 => l_array_source_2(Idx)
82501 , p_source_3 => l_array_source_3(Idx)
82502 , p_source_6 => l_array_source_6(Idx)
82503 , p_source_22 => l_array_source_22(Idx)
82504 , p_source_23 => l_array_source_23(Idx)
82505 , p_source_25 => l_array_source_25(Idx)
82506 , p_source_27 => l_array_source_27(Idx)
82507 , p_source_28 => l_array_source_28(Idx)
82508 , p_source_29 => l_array_source_29(Idx)
82509 , p_source_30 => l_array_source_30(Idx)
82510 , p_source_31 => l_array_source_31(Idx)
82511 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82512 , p_source_33 => l_array_source_33(Idx)
82513 , p_source_34 => l_array_source_34(Idx)
82514 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82515 , p_source_35 => l_array_source_35(Idx)
82516 , p_source_44 => l_array_source_44(Idx)
82517 , p_source_45 => l_array_source_45(Idx)
82518 , p_source_46 => l_array_source_46(Idx)
82519 , p_source_47 => l_array_source_47(Idx)
82520 , p_source_48 => l_array_source_48(Idx)
82521 , p_source_49 => l_array_source_49(Idx)
82522 , p_source_50 => l_array_source_50(Idx)
82523 , p_source_51 => l_array_source_51(Idx)
82524 , p_source_52 => l_array_source_52(Idx)
82525 , p_source_53 => l_array_source_53(Idx)
82526 , p_source_54 => l_array_source_54(Idx)
82527 , p_source_55 => l_array_source_55(Idx)
82528 , p_source_56 => l_array_source_56(Idx)
82529 , p_source_57 => l_array_source_57(Idx)
82530 );
82531 If(l_balance_type_code = 'A') THEN
82532 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82533 END IF;
82534
82535 --
82536
82537
82538 --
82539 AcctLineType_93 (
82540 p_application_id => p_application_id
82541 ,p_event_id => l_event_id
82542 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82543 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82544 ,p_actual_flag => l_actual_flag
82545 ,p_balance_type_code => l_balance_type_code
82546 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82547
82548 , p_source_2 => l_array_source_2(Idx)
82549 , p_source_3 => l_array_source_3(Idx)
82550 , p_source_6 => l_array_source_6(Idx)
82551 , p_source_22 => l_array_source_22(Idx)
82552 , p_source_23 => l_array_source_23(Idx)
82553 , p_source_25 => l_array_source_25(Idx)
82554 , p_source_27 => l_array_source_27(Idx)
82555 , p_source_28 => l_array_source_28(Idx)
82556 , p_source_29 => l_array_source_29(Idx)
82557 , p_source_30 => l_array_source_30(Idx)
82561 , p_source_34 => l_array_source_34(Idx)
82558 , p_source_31 => l_array_source_31(Idx)
82559 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82560 , p_source_33 => l_array_source_33(Idx)
82562 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82563 , p_source_35 => l_array_source_35(Idx)
82564 , p_source_44 => l_array_source_44(Idx)
82565 , p_source_45 => l_array_source_45(Idx)
82566 , p_source_46 => l_array_source_46(Idx)
82567 , p_source_47 => l_array_source_47(Idx)
82568 , p_source_48 => l_array_source_48(Idx)
82569 , p_source_49 => l_array_source_49(Idx)
82570 , p_source_50 => l_array_source_50(Idx)
82571 , p_source_51 => l_array_source_51(Idx)
82572 , p_source_52 => l_array_source_52(Idx)
82573 , p_source_53 => l_array_source_53(Idx)
82574 , p_source_54 => l_array_source_54(Idx)
82575 , p_source_55 => l_array_source_55(Idx)
82576 , p_source_56 => l_array_source_56(Idx)
82577 , p_source_57 => l_array_source_57(Idx)
82578 , p_source_69 => l_array_source_69(Idx)
82579 , p_source_69_meaning => l_array_source_69_meaning(Idx)
82580 , p_source_70 => l_array_source_70(Idx)
82581 );
82582 If(l_balance_type_code = 'A') THEN
82583 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82584 END IF;
82585
82586 --
82587
82588
82589 --
82590 AcctLineType_96 (
82591 p_application_id => p_application_id
82592 ,p_event_id => l_event_id
82593 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82594 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82595 ,p_actual_flag => l_actual_flag
82596 ,p_balance_type_code => l_balance_type_code
82597 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82598
82599 , p_source_2 => l_array_source_2(Idx)
82600 , p_source_3 => l_array_source_3(Idx)
82601 , p_source_6 => l_array_source_6(Idx)
82602 , p_source_22 => l_array_source_22(Idx)
82603 , p_source_23 => l_array_source_23(Idx)
82604 , p_source_25 => l_array_source_25(Idx)
82605 , p_source_27 => l_array_source_27(Idx)
82606 , p_source_28 => l_array_source_28(Idx)
82607 , p_source_29 => l_array_source_29(Idx)
82608 , p_source_30 => l_array_source_30(Idx)
82609 , p_source_31 => l_array_source_31(Idx)
82610 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82611 , p_source_33 => l_array_source_33(Idx)
82612 , p_source_34 => l_array_source_34(Idx)
82613 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82614 , p_source_35 => l_array_source_35(Idx)
82615 , p_source_44 => l_array_source_44(Idx)
82616 , p_source_45 => l_array_source_45(Idx)
82617 , p_source_46 => l_array_source_46(Idx)
82618 , p_source_47 => l_array_source_47(Idx)
82619 , p_source_48 => l_array_source_48(Idx)
82620 , p_source_49 => l_array_source_49(Idx)
82621 , p_source_50 => l_array_source_50(Idx)
82622 , p_source_51 => l_array_source_51(Idx)
82623 , p_source_52 => l_array_source_52(Idx)
82624 , p_source_53 => l_array_source_53(Idx)
82625 , p_source_54 => l_array_source_54(Idx)
82626 , p_source_55 => l_array_source_55(Idx)
82627 , p_source_56 => l_array_source_56(Idx)
82628 , p_source_57 => l_array_source_57(Idx)
82629 , p_source_69 => l_array_source_69(Idx)
82630 , p_source_69_meaning => l_array_source_69_meaning(Idx)
82631 , p_source_71 => l_array_source_71(Idx)
82632 , p_source_72 => l_array_source_72(Idx)
82633 );
82634 If(l_balance_type_code = 'A') THEN
82635 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82636 END IF;
82637
82638 --
82639
82640
82641 --
82642 AcctLineType_98 (
82643 p_application_id => p_application_id
82644 ,p_event_id => l_event_id
82645 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82646 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82647 ,p_actual_flag => l_actual_flag
82648 ,p_balance_type_code => l_balance_type_code
82649 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82650
82651 , p_source_2 => l_array_source_2(Idx)
82652 , p_source_3 => l_array_source_3(Idx)
82653 , p_source_6 => l_array_source_6(Idx)
82654 , p_source_22 => l_array_source_22(Idx)
82655 , p_source_23 => l_array_source_23(Idx)
82656 , p_source_25 => l_array_source_25(Idx)
82657 , p_source_27 => l_array_source_27(Idx)
82658 , p_source_28 => l_array_source_28(Idx)
82659 , p_source_29 => l_array_source_29(Idx)
82660 , p_source_30 => l_array_source_30(Idx)
82661 , p_source_31 => l_array_source_31(Idx)
82662 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82663 , p_source_33 => l_array_source_33(Idx)
82664 , p_source_34 => l_array_source_34(Idx)
82665 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82666 , p_source_35 => l_array_source_35(Idx)
82667 , p_source_44 => l_array_source_44(Idx)
82668 , p_source_45 => l_array_source_45(Idx)
82669 , p_source_46 => l_array_source_46(Idx)
82670 , p_source_53 => l_array_source_53(Idx)
82671 , p_source_54 => l_array_source_54(Idx)
82672 , p_source_55 => l_array_source_55(Idx)
82673 , p_source_56 => l_array_source_56(Idx)
82674 , p_source_57 => l_array_source_57(Idx)
82675 , p_source_69 => l_array_source_69(Idx)
82676 , p_source_69_meaning => l_array_source_69_meaning(Idx)
82677 , p_source_70 => l_array_source_70(Idx)
82678 , p_source_73 => l_array_source_73(Idx)
82679 , p_source_74 => l_array_source_74(Idx)
82680 , p_source_75 => l_array_source_75(Idx)
82681 , p_source_76 => l_array_source_76(Idx)
82682 , p_source_77 => l_array_source_77(Idx)
82683 , p_source_78 => l_array_source_78(Idx)
82684 );
82685 If(l_balance_type_code = 'A') THEN
82686 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82687 END IF;
82688
82689 --
82690
82691
82692 --
82693 AcctLineType_102 (
82694 p_application_id => p_application_id
82695 ,p_event_id => l_event_id
82696 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82697 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82698 ,p_actual_flag => l_actual_flag
82702 , p_source_2 => l_array_source_2(Idx)
82699 ,p_balance_type_code => l_balance_type_code
82700 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82701
82703 , p_source_3 => l_array_source_3(Idx)
82704 , p_source_6 => l_array_source_6(Idx)
82705 , p_source_22 => l_array_source_22(Idx)
82706 , p_source_23 => l_array_source_23(Idx)
82707 , p_source_25 => l_array_source_25(Idx)
82708 , p_source_27 => l_array_source_27(Idx)
82709 , p_source_28 => l_array_source_28(Idx)
82710 , p_source_29 => l_array_source_29(Idx)
82711 , p_source_30 => l_array_source_30(Idx)
82712 , p_source_31 => l_array_source_31(Idx)
82713 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82714 , p_source_33 => l_array_source_33(Idx)
82715 , p_source_34 => l_array_source_34(Idx)
82716 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82717 , p_source_35 => l_array_source_35(Idx)
82718 , p_source_44 => l_array_source_44(Idx)
82719 , p_source_45 => l_array_source_45(Idx)
82720 , p_source_46 => l_array_source_46(Idx)
82721 , p_source_53 => l_array_source_53(Idx)
82722 , p_source_54 => l_array_source_54(Idx)
82723 , p_source_55 => l_array_source_55(Idx)
82724 , p_source_56 => l_array_source_56(Idx)
82725 , p_source_57 => l_array_source_57(Idx)
82726 , p_source_69 => l_array_source_69(Idx)
82727 , p_source_69_meaning => l_array_source_69_meaning(Idx)
82728 , p_source_71 => l_array_source_71(Idx)
82729 , p_source_72 => l_array_source_72(Idx)
82730 , p_source_79 => l_array_source_79(Idx)
82731 , p_source_80 => l_array_source_80(Idx)
82732 , p_source_81 => l_array_source_81(Idx)
82733 , p_source_82 => l_array_source_82(Idx)
82734 , p_source_83 => l_array_source_83(Idx)
82735 , p_source_84 => l_array_source_84(Idx)
82736 );
82737 If(l_balance_type_code = 'A') THEN
82738 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82739 END IF;
82740
82741 --
82742
82743
82744 --
82745 AcctLineType_106 (
82746 p_application_id => p_application_id
82747 ,p_event_id => l_event_id
82748 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82749 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82750 ,p_actual_flag => l_actual_flag
82751 ,p_balance_type_code => l_balance_type_code
82752 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82753
82754 , p_source_2 => l_array_source_2(Idx)
82755 , p_source_3 => l_array_source_3(Idx)
82756 , p_source_6 => l_array_source_6(Idx)
82757 , p_source_22 => l_array_source_22(Idx)
82758 , p_source_23 => l_array_source_23(Idx)
82759 , p_source_25 => l_array_source_25(Idx)
82760 , p_source_27 => l_array_source_27(Idx)
82761 , p_source_28 => l_array_source_28(Idx)
82762 , p_source_29 => l_array_source_29(Idx)
82763 , p_source_30 => l_array_source_30(Idx)
82764 , p_source_31 => l_array_source_31(Idx)
82765 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82766 , p_source_33 => l_array_source_33(Idx)
82767 , p_source_34 => l_array_source_34(Idx)
82768 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82769 , p_source_35 => l_array_source_35(Idx)
82770 , p_source_37 => g_array_event(l_event_id).array_value_char('source_37')
82771 , p_source_44 => l_array_source_44(Idx)
82772 , p_source_45 => l_array_source_45(Idx)
82773 , p_source_46 => l_array_source_46(Idx)
82774 , p_source_47 => l_array_source_47(Idx)
82775 , p_source_48 => l_array_source_48(Idx)
82776 , p_source_49 => l_array_source_49(Idx)
82777 , p_source_50 => l_array_source_50(Idx)
82778 , p_source_51 => l_array_source_51(Idx)
82779 , p_source_52 => l_array_source_52(Idx)
82780 , p_source_53 => l_array_source_53(Idx)
82781 , p_source_54 => l_array_source_54(Idx)
82782 , p_source_55 => l_array_source_55(Idx)
82783 , p_source_56 => l_array_source_56(Idx)
82784 , p_source_57 => l_array_source_57(Idx)
82785 , p_source_72 => l_array_source_72(Idx)
82786 , p_source_85 => l_array_source_85(Idx)
82787 , p_source_86 => l_array_source_86(Idx)
82788 );
82789 If(l_balance_type_code = 'A') THEN
82790 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82791 END IF;
82792
82793 --
82794
82795
82796 --
82797 AcctLineType_107 (
82798 p_application_id => p_application_id
82799 ,p_event_id => l_event_id
82800 ,p_calculate_acctd_flag => l_calculate_acctd_flag
82801 ,p_calculate_g_l_flag => l_calculate_g_l_flag
82802 ,p_actual_flag => l_actual_flag
82803 ,p_balance_type_code => l_balance_type_code
82804 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
82805
82806 , p_source_2 => l_array_source_2(Idx)
82807 , p_source_3 => l_array_source_3(Idx)
82808 , p_source_6 => l_array_source_6(Idx)
82809 , p_source_22 => l_array_source_22(Idx)
82810 , p_source_23 => l_array_source_23(Idx)
82811 , p_source_25 => l_array_source_25(Idx)
82812 , p_source_27 => l_array_source_27(Idx)
82813 , p_source_28 => l_array_source_28(Idx)
82814 , p_source_29 => l_array_source_29(Idx)
82815 , p_source_30 => l_array_source_30(Idx)
82816 , p_source_31 => l_array_source_31(Idx)
82817 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
82818 , p_source_33 => l_array_source_33(Idx)
82819 , p_source_34 => l_array_source_34(Idx)
82820 , p_source_34_meaning => l_array_source_34_meaning(Idx)
82821 , p_source_35 => l_array_source_35(Idx)
82822 , p_source_44 => l_array_source_44(Idx)
82823 , p_source_45 => l_array_source_45(Idx)
82824 , p_source_46 => l_array_source_46(Idx)
82825 , p_source_53 => l_array_source_53(Idx)
82826 , p_source_54 => l_array_source_54(Idx)
82827 , p_source_55 => l_array_source_55(Idx)
82828 , p_source_56 => l_array_source_56(Idx)
82829 , p_source_57 => l_array_source_57(Idx)
82830 , p_source_69 => l_array_source_69(Idx)
82831 , p_source_69_meaning => l_array_source_69_meaning(Idx)
82832 , p_source_71 => l_array_source_71(Idx)
82833 , p_source_72 => l_array_source_72(Idx)
82834 , p_source_79 => l_array_source_79(Idx)
82838 , p_source_83 => l_array_source_83(Idx)
82835 , p_source_80 => l_array_source_80(Idx)
82836 , p_source_81 => l_array_source_81(Idx)
82837 , p_source_82 => l_array_source_82(Idx)
82839 , p_source_84 => l_array_source_84(Idx)
82840 );
82841 If(l_balance_type_code = 'A') THEN
82842 l_actual_gain_loss_ref := l_gain_or_loss_ref;
82843 END IF;
82844
82845 --
82846
82847 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
82848 -- or secondary ledger that has different currency with primary
82849 -- or alc that is calculated by sla
82850 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
82851 (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'))
82852
82853 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
82854 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
82855 AND (l_actual_flag = 'A')) THEN
82856 XLA_AE_LINES_PKG.CreateGainOrLossLines(
82857 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
82858 ,p_application_id => p_application_id
82859 ,p_amb_context_code => 'DEFAULT'
82860 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
82861 ,p_event_class_code => C_EVENT_CLASS_CODE
82862 ,p_event_type_code => C_EVENT_TYPE_CODE
82863
82864 ,p_gain_ccid => -1
82865 ,p_loss_ccid => -1
82866
82867 ,p_actual_flag => l_actual_flag
82868 ,p_enc_flag => null
82869 ,p_actual_g_l_ref => l_actual_gain_loss_ref
82870 ,p_enc_g_l_ref => null
82871 );
82872 END IF;
82873 END IF;
82874 END IF;
82875
82876 ELSE
82877 --
82878 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
82879 --
82880 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82881 trace
82882 (p_msg => 'Trancaction revesal option is Y'
82883 ,p_level => C_LEVEL_STATEMENT
82884 ,p_module => l_log_module);
82885 END IF;
82886 END IF;
82887
82888 END LOOP;
82889 l_result := XLA_AE_LINES_PKG.InsertLines ;
82890 end loop;
82891 close line_cur;
82892
82893
82894 --
82895 -- insert headers into xla_ae_headers_gt table
82896 --
82897 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
82898
82899 -- insert into errors table here.
82900
82901 END LOOP;
82902
82903 --
82904 -- 4865292
82905 --
82906 -- Compare g_hdr_extract_count with event count in
82907 -- CreateHeadersAndLines.
82908 --
82909 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
82910
82911 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82912 trace (p_msg => '# rows extracted from header extract objects '
82913 || ' (running total): '
82914 || g_hdr_extract_count
82915 ,p_level => C_LEVEL_STATEMENT
82916 ,p_module => l_log_module);
82917 END IF;
82918
82919 CLOSE header_cur;
82920 --
82921
82922 --
82923 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82924 trace
82925 (p_msg => 'END of EventClass_128'
82926 ,p_level => C_LEVEL_PROCEDURE
82927 ,p_module => l_log_module);
82928 END IF;
82929 --
82930 RETURN l_result;
82931 EXCEPTION
82932 WHEN xla_exceptions_pkg.application_exception THEN
82933
82934 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
82935
82936
82937 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
82938
82939 RAISE;
82940 WHEN OTHERS THEN
82941 xla_exceptions_pkg.raise_message
82942 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_128');
82943 END EventClass_128;
82944 --
82945
82946 ---------------------------------------
82947 --
82948 -- PRIVATE PROCEDURE
82949 -- insert_sources_129
82950 --
82951 ----------------------------------------
82952 --
82953 PROCEDURE insert_sources_129(
82954 p_target_ledger_id IN NUMBER
82955 , p_language IN VARCHAR2
82956 , p_sla_ledger_id IN NUMBER
82957 , p_pad_start_date IN DATE
82958 , p_pad_end_date IN DATE
82959 )
82960 IS
82961
82962 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ_ALL';
82963 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ';
82964 p_apps_owner VARCHAR2(30);
82965 l_log_module VARCHAR2(240);
82966 BEGIN
82967 IF g_log_enabled THEN
82968 l_log_module := C_DEFAULT_MODULE||'.insert_sources_129';
82969 END IF;
82970 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
82971
82972 trace
82973 (p_msg => 'BEGIN of insert_sources_129'
82974 ,p_level => C_LEVEL_PROCEDURE
82975 ,p_module => l_log_module);
82976
82977 END IF;
82978
82979 -- select APPS owner
82980 SELECT oracle_username
82981 INTO p_apps_owner
82982 FROM fnd_oracle_userid
82983 WHERE read_only_flag = 'U'
82984 ;
82985
82986 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
82987 trace
82988 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
82989 ' - p_language = '||p_language||
82990 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
82994 ,p_level => C_LEVEL_STATEMENT
82991 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
82992 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
82993 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
82995 ,p_module => l_log_module);
82996 END IF;
82997
82998
82999 --
83000 INSERT INTO xla_diag_sources --hdr2
83001 (
83002 event_id
83003 , ledger_id
83004 , sla_ledger_id
83005 , description_language
83006 , object_name
83007 , object_type_code
83008 , line_number
83009 , source_application_id
83010 , source_type_code
83011 , source_code
83012 , source_value
83013 , source_meaning
83014 , created_by
83015 , creation_date
83016 , last_update_date
83017 , last_updated_by
83018 , last_update_login
83019 , program_update_date
83020 , program_application_id
83021 , program_id
83022 , request_id
83023 )
83024 SELECT
83025 event_id
83026 , p_target_ledger_id
83027 , p_sla_ledger_id
83028 , p_language
83029 , object_name
83030 , object_type_code
83031 , line_number
83032 , source_application_id
83033 , source_type_code
83034 , source_code
83035 , SUBSTR(source_value ,1,1996)
83036 , SUBSTR(source_meaning ,1,200)
83037 , xla_environment_pkg.g_Usr_Id
83038 , TRUNC(SYSDATE)
83039 , TRUNC(SYSDATE)
83040 , xla_environment_pkg.g_Usr_Id
83041 , xla_environment_pkg.g_Login_Id
83042 , TRUNC(SYSDATE)
83043 , xla_environment_pkg.g_Prog_Appl_Id
83044 , xla_environment_pkg.g_Prog_Id
83045 , xla_environment_pkg.g_Req_Id
83046 FROM (
83047 SELECT xet.event_id event_id
83048 , 0 line_number
83049 , CASE r
83050 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
83051 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
83052
83053 ELSE null
83054 END object_name
83055 , CASE r
83056 WHEN 1 THEN 'HEADER'
83057 WHEN 2 THEN 'HEADER'
83058
83059 ELSE null
83060 END object_type_code
83061 , CASE r
83062 WHEN 1 THEN '275'
83063 WHEN 2 THEN '275'
83064
83065 ELSE null
83066 END source_application_id
83067 , 'S' source_type_code
83068 , CASE r
83069 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
83070 WHEN 2 THEN 'GL_DATE'
83071
83072 ELSE null
83073 END source_code
83074 , CASE r
83075 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
83076 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
83077
83078 ELSE null
83079 END source_value
83080 , null source_meaning
83081 FROM xla_events_gt xet
83082 , PA_XLA_EXP_HEADER_V h2
83083 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
83084 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
83085 AND xet.event_class_code = C_EVENT_CLASS_CODE
83086 AND h2.event_id = xet.event_id
83087
83088 )
83089 ;
83090 --
83091 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83092
83093 trace
83094 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
83095 ,p_level => C_LEVEL_STATEMENT
83096 ,p_module => l_log_module);
83097
83098 END IF;
83099 --
83100
83101
83102
83103 --
83104 INSERT INTO xla_diag_sources --line2
83105 (
83106 event_id
83107 , ledger_id
83108 , sla_ledger_id
83109 , description_language
83110 , object_name
83111 , object_type_code
83112 , line_number
83113 , source_application_id
83114 , source_type_code
83115 , source_code
83116 , source_value
83117 , source_meaning
83118 , created_by
83119 , creation_date
83120 , last_update_date
83121 , last_updated_by
83122 , last_update_login
83123 , program_update_date
83124 , program_application_id
83125 , program_id
83126 , request_id
83127 )
83128 SELECT event_id
83129 , p_target_ledger_id
83130 , p_sla_ledger_id
83131 , p_language
83132 , object_name
83133 , object_type_code
83134 , line_number
83135 , source_application_id
83136 , source_type_code
83137 , source_code
83138 , SUBSTR(source_value,1,1996)
83139 , SUBSTR(source_meaning ,1,200)
83140 , xla_environment_pkg.g_Usr_Id
83141 , TRUNC(SYSDATE)
83142 , TRUNC(SYSDATE)
83143 , xla_environment_pkg.g_Usr_Id
83144 , xla_environment_pkg.g_Login_Id
83145 , TRUNC(SYSDATE)
83146 , xla_environment_pkg.g_Prog_Appl_Id
83147 , xla_environment_pkg.g_Prog_Id
83148 , xla_environment_pkg.g_Req_Id
83149 FROM (
83150 SELECT xet.event_id event_id
83151 , l1.line_number line_number
83152 , CASE r
83153 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
83154 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
83158 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
83155 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
83156 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
83157 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
83159 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
83160 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
83161 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
83162 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
83163 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
83164 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
83165 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
83166 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
83167 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
83168 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
83169 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
83170 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
83171
83172 ELSE null
83173 END object_name
83174 , CASE r
83175 WHEN 1 THEN 'LINE'
83176 WHEN 2 THEN 'LINE'
83177 WHEN 3 THEN 'LINE'
83178 WHEN 4 THEN 'LINE'
83179 WHEN 5 THEN 'LINE'
83180 WHEN 6 THEN 'LINE'
83181 WHEN 7 THEN 'LINE'
83182 WHEN 8 THEN 'LINE'
83183 WHEN 9 THEN 'LINE'
83184 WHEN 10 THEN 'LINE'
83185 WHEN 11 THEN 'LINE'
83186 WHEN 12 THEN 'LINE'
83187 WHEN 13 THEN 'LINE'
83188 WHEN 14 THEN 'LINE'
83189 WHEN 15 THEN 'LINE'
83190 WHEN 16 THEN 'LINE'
83191 WHEN 17 THEN 'LINE'
83192 WHEN 18 THEN 'LINE'
83193
83194 ELSE null
83195 END object_type_code
83196 , CASE r
83197 WHEN 1 THEN '275'
83198 WHEN 2 THEN '275'
83199 WHEN 3 THEN '275'
83200 WHEN 4 THEN '275'
83201 WHEN 5 THEN '275'
83202 WHEN 6 THEN '275'
83203 WHEN 7 THEN '275'
83204 WHEN 8 THEN '275'
83205 WHEN 9 THEN '275'
83206 WHEN 10 THEN '275'
83207 WHEN 11 THEN '275'
83208 WHEN 12 THEN '275'
83209 WHEN 13 THEN '275'
83210 WHEN 14 THEN '275'
83211 WHEN 15 THEN '275'
83212 WHEN 16 THEN '275'
83213 WHEN 17 THEN '275'
83214 WHEN 18 THEN '275'
83215
83216 ELSE null
83217 END source_application_id
83218 , 'S' source_type_code
83219 , CASE r
83220 WHEN 1 THEN 'COST_CCID'
83221 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
83222 WHEN 3 THEN 'ADJ_COST_CCID'
83223 WHEN 4 THEN 'COST_CLEARING_CCID'
83224 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
83225 WHEN 6 THEN 'REVERSING_LINE_FLAG'
83226 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
83227 WHEN 8 THEN 'ENTERED_RAW_COST'
83228 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
83229 WHEN 10 THEN 'ACCT_RAW_COST'
83230 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
83231 WHEN 12 THEN 'EXCHANGE_RATE'
83232 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
83233 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
83234 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
83235 WHEN 16 THEN 'LINE_NUMBER'
83236 WHEN 17 THEN 'LINE_TYPE'
83237 WHEN 18 THEN 'LINE_NUM_REVERSED'
83238
83239 ELSE null
83240 END source_code
83241 , CASE r
83242 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
83243 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
83244 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
83245 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
83246 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
83247 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
83248 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
83249 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
83250 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
83251 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
83252 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
83253 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
83254 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
83255 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
83256 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
83257 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
83258 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
83259 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
83260
83261 ELSE null
83262 END source_value
83263 , CASE r
83264 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
83265 103371
83266 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
83267 ,'ALLOW_OVERRIDE_CCID_FLAG'
83268 ,'S'
83269 ,275)
83270 WHEN 17 THEN fvl34.meaning
83271
83272 ELSE null
83273 END source_meaning
83274 FROM xla_events_gt xet
83275 , PA_XLA_CDL_LINES_V l1
83276 , fnd_lookup_values fvl34
83280 AND l1.event_id = xet.event_id
83277 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
83278 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
83279 AND xet.event_class_code = C_EVENT_CLASS_CODE
83281 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
83282 AND fvl34.lookup_code(+) = l1.LINE_TYPE
83283 AND fvl34.view_application_id(+) = 275
83284 AND fvl34.language(+) = USERENV('LANG')
83285
83286 )
83287 ;
83288 --
83289 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83290
83291 trace
83292 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
83293 ,p_level => C_LEVEL_STATEMENT
83294 ,p_module => l_log_module);
83295
83296 END IF;
83297
83298
83299 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83300 trace
83301 (p_msg => 'END of insert_sources_129'
83302 ,p_level => C_LEVEL_PROCEDURE
83303 ,p_module => l_log_module);
83304 END IF;
83305 EXCEPTION
83306 WHEN xla_exceptions_pkg.application_exception THEN
83307 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
83308 trace
83309 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
83310 ,p_level => C_LEVEL_EXCEPTION
83311 ,p_module => l_log_module);
83312 END IF;
83313 RAISE;
83314 WHEN OTHERS THEN
83315 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
83316 trace
83317 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
83318 ,p_level => C_LEVEL_EXCEPTION
83319 ,p_module => l_log_module);
83320 END IF;
83321 xla_exceptions_pkg.raise_message
83322 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_129');
83323 END insert_sources_129;
83324 --
83325
83326 ---------------------------------------
83327 --
83328 -- PRIVATE FUNCTION
83329 -- EventClass_129
83330 --
83331 ----------------------------------------
83332 --
83333 FUNCTION EventClass_129
83334 (p_application_id IN NUMBER
83335 ,p_base_ledger_id IN NUMBER
83336 ,p_target_ledger_id IN NUMBER
83337 ,p_language IN VARCHAR2
83338 ,p_currency_code IN VARCHAR2
83339 ,p_sla_ledger_id IN NUMBER
83340 ,p_pad_start_date IN DATE
83341 ,p_pad_end_date IN DATE
83342 ,p_primary_ledger_id IN NUMBER)
83343 RETURN BOOLEAN IS
83344 --
83345 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ_ALL';
83346 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ADJ';
83347
83348 l_calculate_acctd_flag VARCHAR2(1) :='N';
83349 l_calculate_g_l_flag VARCHAR2(1) :='N';
83350 --
83351 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83352 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83353 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83354 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83355 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83356 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83357 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83358 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83359 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83360 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83361 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83362 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83363 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83364 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
83365 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83366 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83367 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83368 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
83369 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83370 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83371 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83372 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
83373 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
83374 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
83375
83376 l_event_id NUMBER;
83377 l_previous_event_id NUMBER;
83378 l_first_event_id NUMBER;
83379 l_last_event_id NUMBER;
83380
83381 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
83382 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
83383 --
83384 --
83385 l_result BOOLEAN := TRUE;
83386 l_rows NUMBER := 1000;
83387 l_event_type_name VARCHAR2(80) := 'All';
83388 l_event_class_name VARCHAR2(80) := 'Usage Cost Adjustment';
83389 l_description VARCHAR2(4000);
83390 l_transaction_reversal NUMBER;
83391 l_ae_header_id NUMBER;
83392 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
83393 l_log_module VARCHAR2(240);
83394 --
83395 l_acct_reversal_source VARCHAR2(30);
83396 l_trx_reversal_source VARCHAR2(30);
83397
83398 l_continue_with_lines BOOLEAN := TRUE;
83399 --
83400 l_acc_rev_gl_date_source DATE; -- 4262811
83404 l_rec_array_event t_rec_array_event;
83401 --
83402 type t_array_event_id is table of number index by binary_integer;
83403
83405 l_null_rec_array_event t_rec_array_event;
83406 l_array_ae_header_id xla_number_array_type;
83407 l_actual_flag VARCHAR2(1) := NULL;
83408 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
83409 l_balance_type_code VARCHAR2(1) :=NULL;
83410 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
83411
83412 --
83413 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
83414 --
83415
83416 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
83417 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
83418
83419 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
83420 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
83421 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
83422 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
83423 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
83424 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
83425 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
83426 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
83427 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
83428 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
83429 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
83430 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
83431 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
83432 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
83433 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
83434 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
83435 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
83436 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
83437
83438 l_array_source_32 t_array_source_32;
83439 l_array_source_87 t_array_source_87;
83440
83441 l_array_source_3 t_array_source_3;
83442 l_array_source_4 t_array_source_4;
83443 l_array_source_5 t_array_source_5;
83444 l_array_source_6 t_array_source_6;
83445 l_array_source_7 t_array_source_7;
83446 l_array_source_22 t_array_source_22;
83447 l_array_source_23 t_array_source_23;
83448 l_array_source_24 t_array_source_24;
83449 l_array_source_25 t_array_source_25;
83450 l_array_source_26 t_array_source_26;
83451 l_array_source_27 t_array_source_27;
83452 l_array_source_28 t_array_source_28;
83453 l_array_source_29 t_array_source_29;
83454 l_array_source_30 t_array_source_30;
83455 l_array_source_31 t_array_source_31;
83456 l_array_source_33 t_array_source_33;
83457 l_array_source_34 t_array_source_34;
83458 l_array_source_34_meaning t_array_lookup_meaning;
83459 l_array_source_35 t_array_source_35;
83460
83461 --
83462 CURSOR header_cur
83463 IS
83464 SELECT /*+ leading(xet) cardinality(xet,1) */
83465 -- Event Class Code: USG_COST_ADJ
83466 xet.entity_id
83467 ,xet.legal_entity_id
83468 ,xet.entity_code
83469 ,xet.transaction_number
83470 ,xet.event_id
83471 ,xet.event_class_code
83472 ,xet.event_type_code
83473 ,xet.event_number
83474 ,xet.event_date
83475 ,xet.transaction_date
83476 ,xet.reference_num_1
83477 ,xet.reference_num_2
83478 ,xet.reference_num_3
83479 ,xet.reference_num_4
83480 ,xet.reference_char_1
83481 ,xet.reference_char_2
83482 ,xet.reference_char_3
83483 ,xet.reference_char_4
83484 ,xet.reference_date_1
83485 ,xet.reference_date_2
83486 ,xet.reference_date_3
83487 ,xet.reference_date_4
83488 ,xet.event_created_by
83489 ,xet.budgetary_control_flag
83490 , h2.EXPENDITURE_ITEM_ID source_32
83491 , h2.GL_DATE source_87
83492 FROM xla_events_gt xet
83493 , PA_XLA_EXP_HEADER_V h2
83494 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
83495 and xet.event_class_code = C_EVENT_CLASS_CODE
83496 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
83497
83498 ORDER BY event_id
83499 ;
83500
83501
83502 --
83503 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
83504 IS
83505 SELECT /*+ leading(xet) cardinality(xet,1) */
83506 -- Event Class Code: USG_COST_ADJ
83507 xet.entity_id
83508 ,xet.legal_entity_id
83509 ,xet.entity_code
83510 ,xet.transaction_number
83511 ,xet.event_id
83512 ,xet.event_class_code
83513 ,xet.event_type_code
83514 ,xet.event_number
83515 ,xet.event_date
83516 ,xet.transaction_date
83517 ,xet.reference_num_1
83518 ,xet.reference_num_2
83519 ,xet.reference_num_3
83520 ,xet.reference_num_4
83521 ,xet.reference_char_1
83522 ,xet.reference_char_2
83523 ,xet.reference_char_3
83524 ,xet.reference_char_4
83525 ,xet.reference_date_1
83526 ,xet.reference_date_2
83527 ,xet.reference_date_3
83528 ,xet.reference_date_4
83532 , l1.COST_CCID source_3
83529 ,xet.event_created_by
83530 ,xet.budgetary_control_flag
83531 , l1.LINE_NUMBER
83533 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
83534 , l1.ADJ_COST_CCID source_5
83535 , l1.COST_CLEARING_CCID source_6
83536 , l1.ADJ_COST_CLEARING_CCID source_7
83537 , l1.REVERSING_LINE_FLAG source_22
83538 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
83539 , l1.ENTERED_RAW_COST source_24
83540 , l1.ENTERED_CURRENCY_CODE source_25
83541 , l1.ACCT_RAW_COST source_26
83542 , l1.EXCHANGE_RATE_DATE source_27
83543 , l1.EXCHANGE_RATE source_28
83544 , l1.EXCHANGE_RATE_TYPE source_29
83545 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
83546 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
83547 , l1.LINE_NUMBER source_33
83548 , l1.LINE_TYPE source_34
83549 , fvl34.meaning source_34_meaning
83550 , l1.LINE_NUM_REVERSED source_35
83551 FROM xla_events_gt xet
83552 , PA_XLA_CDL_LINES_V l1
83553 , fnd_lookup_values fvl34
83554 WHERE xet.event_id between x_first_event_id and x_last_event_id
83555 and xet.event_date between p_pad_start_date and p_pad_end_date
83556 and xet.event_class_code = C_EVENT_CLASS_CODE
83557 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
83558 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
83559 AND fvl34.lookup_code(+) = l1.LINE_TYPE
83560 AND fvl34.view_application_id(+) = 275
83561 AND fvl34.language(+) = USERENV('LANG')
83562 ;
83563
83564 --
83565 BEGIN
83566 IF g_log_enabled THEN
83567 l_log_module := C_DEFAULT_MODULE||'.EventClass_129';
83568 END IF;
83569 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
83570 trace
83571 (p_msg => 'BEGIN of EventClass_129'
83572 ,p_level => C_LEVEL_PROCEDURE
83573 ,p_module => l_log_module);
83574 END IF;
83575
83576 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83577 trace
83578 (p_msg => 'p_application_id = '||p_application_id||
83579 ' - p_base_ledger_id = '||p_base_ledger_id||
83580 ' - p_target_ledger_id = '||p_target_ledger_id||
83581 ' - p_language = '||p_language||
83582 ' - p_currency_code = '||p_currency_code||
83583 ' - p_sla_ledger_id = '||p_sla_ledger_id
83584 ,p_level => C_LEVEL_STATEMENT
83585 ,p_module => l_log_module);
83586 END IF;
83587 --
83588 -- initialze arrays
83589 --
83590 g_array_event.DELETE;
83591 l_rec_array_event := l_null_rec_array_event;
83592 --
83593 --------------------------------------
83594 -- 4262811 Initialze MPA Line Number
83595 --------------------------------------
83596 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
83597
83598 --
83599
83600 --
83601 OPEN header_cur;
83602 --
83603 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83604 trace
83605 (p_msg => 'SQL - FETCH header_cur'
83606 ,p_level => C_LEVEL_STATEMENT
83607 ,p_module => l_log_module);
83608 END IF;
83609 --
83610 LOOP
83611 FETCH header_cur BULK COLLECT INTO
83612 l_array_entity_id
83613 , l_array_legal_entity_id
83614 , l_array_entity_code
83615 , l_array_transaction_num
83616 , l_array_event_id
83617 , l_array_class_code
83618 , l_array_event_type
83619 , l_array_event_number
83620 , l_array_event_date
83621 , l_array_transaction_date
83622 , l_array_reference_num_1
83623 , l_array_reference_num_2
83624 , l_array_reference_num_3
83625 , l_array_reference_num_4
83626 , l_array_reference_char_1
83627 , l_array_reference_char_2
83628 , l_array_reference_char_3
83629 , l_array_reference_char_4
83630 , l_array_reference_date_1
83631 , l_array_reference_date_2
83632 , l_array_reference_date_3
83633 , l_array_reference_date_4
83634 , l_array_event_created_by
83635 , l_array_budgetary_control_flag
83636 , l_array_source_32
83637 , l_array_source_87
83638 LIMIT l_rows;
83639 --
83640 IF (C_LEVEL_EVENT >= g_log_level) THEN
83641 trace
83642 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
83643 ,p_level => C_LEVEL_EVENT
83644 ,p_module => l_log_module);
83645 END IF;
83646 --
83647 EXIT WHEN l_array_entity_id.COUNT = 0;
83648
83649 -- initialize arrays
83650 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
83651 XLA_AE_LINES_PKG.g_rec_lines := NULL;
83652
83653 --
83654 -- Bug 4458708
83655 --
83656 XLA_AE_LINES_PKG.g_LineNumber := 0;
83657
83658
83659 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
83660 g_last_hdr_idx := l_array_event_id.LAST;
83661 --
83662 -- loop for the headers. Each iteration is for each header extract row
83663 -- fetched in header cursor
83664 --
83665 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
83666
83667 --
83668 -- set event info as cache for other routines to refer event attributes
83669 --
83670 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
83671 (p_application_id => p_application_id
83672 ,p_primary_ledger_id => p_primary_ledger_id
83673 ,p_base_ledger_id => p_base_ledger_id
83674 ,p_target_ledger_id => p_target_ledger_id
83675 ,p_entity_id => l_array_entity_id(hdr_idx)
83676 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
83677 ,p_entity_code => l_array_entity_code(hdr_idx)
83678 ,p_transaction_num => l_array_transaction_num(hdr_idx)
83682 ,p_event_number => l_array_event_number(hdr_idx)
83679 ,p_event_id => l_array_event_id(hdr_idx)
83680 ,p_event_class_code => l_array_class_code(hdr_idx)
83681 ,p_event_type_code => l_array_event_type(hdr_idx)
83683 ,p_event_date => l_array_event_date(hdr_idx)
83684 ,p_transaction_date => l_array_transaction_date(hdr_idx)
83685 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
83686 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
83687 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
83688 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
83689 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
83690 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
83691 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
83692 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
83693 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
83694 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
83695 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
83696 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
83697 ,p_event_created_by => l_array_event_created_by(hdr_idx)
83698 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
83699
83700 --
83701 -- set the status of entry to C_VALID (0)
83702 --
83703 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
83704
83705 --
83706 -- initialize a row for ae header
83707 --
83708 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
83709
83710 l_event_id := l_array_event_id(hdr_idx);
83711
83712 --
83713 -- storing the hdr_idx for event. May be used by line cursor.
83714 --
83715 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
83716
83717 --
83718 -- store sources from header extract. This can be improved to
83719 -- store only those sources from header extract that may be used in lines
83720 --
83721
83722 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
83723 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
83724
83725 --
83726 -- initilaize the status of ae headers for diffrent balance types
83727 -- the status is initialised to C_NOT_CREATED (2)
83728 --
83729 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
83730 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
83731 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
83732
83733 --
83734 -- call api to validate and store accounting attributes for header
83735 --
83736
83737 ------------------------------------------------------------
83738 -- Accrual Reversal : to get date for Standard Source (NONE)
83739 ------------------------------------------------------------
83740 l_acc_rev_gl_date_source := NULL;
83741
83742 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
83743 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
83744
83745
83746 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
83747
83748 XLA_AE_HEADER_PKG.SetJeCategoryName;
83749
83750 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
83751 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
83752 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
83753 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
83754 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
83755
83756
83757 -- No header level analytical criteria
83758
83759 --
83760 --accounting attribute enhancement, bug 3612931
83761 --
83762 l_trx_reversal_source := SUBSTR(NULL, 1,30);
83763
83764 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
83765 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
83766
83767 xla_accounting_err_pkg.build_message
83768 (p_appli_s_name => 'XLA'
83769 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
83770 ,p_token_1 => 'ACCT_ATTR_NAME'
83771 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
83772 ,p_token_2 => 'PRODUCT_NAME'
83773 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
83774 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
83775 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
83776 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
83777
83778 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
83779 --
83780 -- following sets the accounting attributes needed to reverse
83781 -- accounting for a distributeion
83782 --
83783 xla_ae_lines_pkg.SetTrxReversalAttrs
83784 (p_event_id => l_event_id
83785 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
83786 ,p_trx_reversal_source => l_trx_reversal_source);
83787
83788 END IF;
83789
83790
83791 ----------------------------------------------------------------
83792 -- 4262811 - update the header statuses to invalid in need be
83793 ----------------------------------------------------------------
83794 --
83795 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
83796
83797
83798 -----------------------------------------------
83799 -- No accrual reversal for the event class/type
83803 --
83800 -----------------------------------------------
83801 ----------------------------------------------------------------
83802
83804 -- this ends the header loop iteration for one bulk fetch
83805 --
83806 END LOOP;
83807
83808 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
83809 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
83810
83811 --
83812 -- insert dummy rows into lines gt table that were created due to
83813 -- transaction reversals
83814 --
83815 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
83816 l_result := XLA_AE_LINES_PKG.InsertLines;
83817 END IF;
83818
83819 --
83820 -- reset the temp_line_num for each set of events fetched from header
83821 -- cursor rather than doing it for each new event in line cursor
83822 -- Bug 3939231
83823 --
83824 xla_ae_lines_pkg.g_temp_line_num := 0;
83825
83826
83827
83828 --
83829 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
83830 --
83831 --
83832 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83833
83834 trace
83835 (p_msg => 'SQL - FETCH line_cur'
83836 ,p_level => C_LEVEL_STATEMENT
83837 ,p_module => l_log_module);
83838
83839 END IF;
83840 --
83841 --
83842 LOOP
83843 --
83844 FETCH line_cur BULK COLLECT INTO
83845 l_array_entity_id
83846 , l_array_legal_entity_id
83847 , l_array_entity_code
83848 , l_array_transaction_num
83849 , l_array_event_id
83850 , l_array_class_code
83851 , l_array_event_type
83852 , l_array_event_number
83853 , l_array_event_date
83854 , l_array_transaction_date
83855 , l_array_reference_num_1
83856 , l_array_reference_num_2
83857 , l_array_reference_num_3
83858 , l_array_reference_num_4
83859 , l_array_reference_char_1
83860 , l_array_reference_char_2
83861 , l_array_reference_char_3
83862 , l_array_reference_char_4
83863 , l_array_reference_date_1
83864 , l_array_reference_date_2
83865 , l_array_reference_date_3
83866 , l_array_reference_date_4
83867 , l_array_event_created_by
83868 , l_array_budgetary_control_flag
83869 , l_array_extract_line_num
83870 , l_array_source_3
83871 , l_array_source_4
83872 , l_array_source_5
83873 , l_array_source_6
83874 , l_array_source_7
83875 , l_array_source_22
83876 , l_array_source_23
83877 , l_array_source_24
83878 , l_array_source_25
83879 , l_array_source_26
83880 , l_array_source_27
83881 , l_array_source_28
83882 , l_array_source_29
83883 , l_array_source_30
83884 , l_array_source_31
83885 , l_array_source_33
83886 , l_array_source_34
83887 , l_array_source_34_meaning
83888 , l_array_source_35
83889 LIMIT l_rows;
83890
83891 --
83892 IF (C_LEVEL_EVENT >= g_log_level) THEN
83893 trace
83894 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
83895 ,p_level => C_LEVEL_EVENT
83896 ,p_module => l_log_module);
83897 END IF;
83898 --
83899 EXIT WHEN l_array_entity_id.count = 0;
83900
83901 XLA_AE_LINES_PKG.g_rec_lines := null;
83902
83903 --
83904 -- Bug 4458708
83905 --
83906 XLA_AE_LINES_PKG.g_LineNumber := 0;
83907 --
83908 --
83909
83910 FOR Idx IN 1..l_array_event_id.count LOOP
83911 --
83912 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
83913 --
83914 l_event_id := l_array_event_id(idx); -- 5648433
83915
83916 --
83917 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
83918 --
83919
83920 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
83921 (g_array_event(l_event_id).array_value_num('header_index'))
83922 ,'N'
83923 ) <> 'Y'
83924 THEN
83925 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
83926 trace
83927 (p_msg => 'Trancaction revesal option is not Y '
83928 ,p_level => C_LEVEL_STATEMENT
83929 ,p_module => l_log_module);
83930 END IF;
83931
83932 --
83933 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
83934 --
83935 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
83936 --
83937 -- set event info as cache for other routines to refer event attributes
83938 --
83939
83940 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
83941 l_previous_event_id := l_event_id;
83942
83943 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
83944 (p_application_id => p_application_id
83945 ,p_primary_ledger_id => p_primary_ledger_id
83946 ,p_base_ledger_id => p_base_ledger_id
83947 ,p_target_ledger_id => p_target_ledger_id
83948 ,p_entity_id => l_array_entity_id(Idx)
83949 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
83950 ,p_entity_code => l_array_entity_code(Idx)
83951 ,p_transaction_num => l_array_transaction_num(Idx)
83952 ,p_event_id => l_array_event_id(Idx)
83953 ,p_event_class_code => l_array_class_code(Idx)
83954 ,p_event_type_code => l_array_event_type(Idx)
83955 ,p_event_number => l_array_event_number(Idx)
83956 ,p_event_date => l_array_event_date(Idx)
83957 ,p_transaction_date => l_array_transaction_date(Idx)
83961 ,p_reference_num_4 => l_array_reference_num_4(Idx)
83958 ,p_reference_num_1 => l_array_reference_num_1(Idx)
83959 ,p_reference_num_2 => l_array_reference_num_2(Idx)
83960 ,p_reference_num_3 => l_array_reference_num_3(Idx)
83962 ,p_reference_char_1 => l_array_reference_char_1(Idx)
83963 ,p_reference_char_2 => l_array_reference_char_2(Idx)
83964 ,p_reference_char_3 => l_array_reference_char_3(Idx)
83965 ,p_reference_char_4 => l_array_reference_char_4(Idx)
83966 ,p_reference_date_1 => l_array_reference_date_1(Idx)
83967 ,p_reference_date_2 => l_array_reference_date_2(Idx)
83968 ,p_reference_date_3 => l_array_reference_date_3(Idx)
83969 ,p_reference_date_4 => l_array_reference_date_4(Idx)
83970 ,p_event_created_by => l_array_event_created_by(Idx)
83971 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
83972 --
83973 END IF;
83974
83975
83976
83977 --
83978 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
83979
83980 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
83981
83982 IF l_continue_with_lines THEN
83983 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
83984 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
83985
83986 xla_accounting_err_pkg.build_message
83987 (p_appli_s_name => 'XLA'
83988 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
83989 ,p_token_1 => 'LINE_NUMBER'
83990 ,p_value_1 => l_array_extract_line_num(Idx)
83991 ,p_token_2 => 'PRODUCT_NAME'
83992 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
83993 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
83994 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
83995 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
83996
83997 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
83998 --
83999 -- following sets the accounting attributes needed to reverse
84000 -- accounting for a distributeion
84001 --
84002
84003 --
84004 -- 5217187
84005 --
84006 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
84007 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
84008 g_array_event(l_event_id).array_value_num('header_index'));
84009 --
84010 --
84011
84012 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
84013 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
84014 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
84015 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
84016 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
84017 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
84018 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
84019 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
84020 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
84021 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
84022 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
84023 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
84024 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
84025 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
84026 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
84027 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
84028 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
84029 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
84030 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
84031 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
84032 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
84033 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
84034 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
84035 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
84036 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
84037 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
84038 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
84039 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
84040 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
84041 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
84042 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
84043 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
84044 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
84045 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
84046 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
84047 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
84048 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
84049 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
84050 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
84051 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
84052 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
84056 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
84053 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
84054 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
84055 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
84057 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
84058 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
84059 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
84060
84061
84062 xla_ae_lines_pkg.SetAcctReversalAttrs
84063 (p_event_id => l_event_id
84064 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
84065 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84066 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
84067 END IF;
84068
84069 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
84070 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
84071
84072 --
84073 AcctLineType_47 (
84074 p_application_id => p_application_id
84075 ,p_event_id => l_event_id
84076 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84077 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84078 ,p_actual_flag => l_actual_flag
84079 ,p_balance_type_code => l_balance_type_code
84080 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84081
84082 , p_source_3 => l_array_source_3(Idx)
84083 , p_source_4 => l_array_source_4(Idx)
84084 , p_source_5 => l_array_source_5(Idx)
84085 , p_source_6 => l_array_source_6(Idx)
84086 , p_source_22 => l_array_source_22(Idx)
84087 , p_source_23 => l_array_source_23(Idx)
84088 , p_source_24 => l_array_source_24(Idx)
84089 , p_source_25 => l_array_source_25(Idx)
84090 , p_source_26 => l_array_source_26(Idx)
84091 , p_source_27 => l_array_source_27(Idx)
84092 , p_source_28 => l_array_source_28(Idx)
84093 , p_source_29 => l_array_source_29(Idx)
84094 , p_source_30 => l_array_source_30(Idx)
84095 , p_source_31 => l_array_source_31(Idx)
84096 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
84097 , p_source_33 => l_array_source_33(Idx)
84098 , p_source_34 => l_array_source_34(Idx)
84099 , p_source_34_meaning => l_array_source_34_meaning(Idx)
84100 , p_source_35 => l_array_source_35(Idx)
84101 );
84102 If(l_balance_type_code = 'A') THEN
84103 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84104 END IF;
84105
84106 --
84107
84108
84109 --
84110 AcctLineType_63 (
84111 p_application_id => p_application_id
84112 ,p_event_id => l_event_id
84113 ,p_calculate_acctd_flag => l_calculate_acctd_flag
84114 ,p_calculate_g_l_flag => l_calculate_g_l_flag
84115 ,p_actual_flag => l_actual_flag
84116 ,p_balance_type_code => l_balance_type_code
84117 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
84118
84119 , p_source_3 => l_array_source_3(Idx)
84120 , p_source_4 => l_array_source_4(Idx)
84121 , p_source_6 => l_array_source_6(Idx)
84122 , p_source_7 => l_array_source_7(Idx)
84123 , p_source_22 => l_array_source_22(Idx)
84124 , p_source_23 => l_array_source_23(Idx)
84125 , p_source_24 => l_array_source_24(Idx)
84126 , p_source_25 => l_array_source_25(Idx)
84127 , p_source_26 => l_array_source_26(Idx)
84128 , p_source_27 => l_array_source_27(Idx)
84129 , p_source_28 => l_array_source_28(Idx)
84130 , p_source_29 => l_array_source_29(Idx)
84131 , p_source_30 => l_array_source_30(Idx)
84132 , p_source_31 => l_array_source_31(Idx)
84133 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
84134 , p_source_33 => l_array_source_33(Idx)
84135 , p_source_34 => l_array_source_34(Idx)
84136 , p_source_34_meaning => l_array_source_34_meaning(Idx)
84137 , p_source_35 => l_array_source_35(Idx)
84138 );
84139 If(l_balance_type_code = 'A') THEN
84140 l_actual_gain_loss_ref := l_gain_or_loss_ref;
84141 END IF;
84142
84143 --
84144
84145 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
84146 -- or secondary ledger that has different currency with primary
84147 -- or alc that is calculated by sla
84148 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
84149 (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'))
84150
84151 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
84152 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
84153 AND (l_actual_flag = 'A')) THEN
84154 XLA_AE_LINES_PKG.CreateGainOrLossLines(
84155 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
84156 ,p_application_id => p_application_id
84157 ,p_amb_context_code => 'DEFAULT'
84158 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
84159 ,p_event_class_code => C_EVENT_CLASS_CODE
84160 ,p_event_type_code => C_EVENT_TYPE_CODE
84161
84162 ,p_gain_ccid => -1
84163 ,p_loss_ccid => -1
84164
84165 ,p_actual_flag => l_actual_flag
84166 ,p_enc_flag => null
84167 ,p_actual_g_l_ref => l_actual_gain_loss_ref
84168 ,p_enc_g_l_ref => null
84169 );
84170 END IF;
84171 END IF;
84172 END IF;
84173
84174 ELSE
84175 --
84176 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
84177 --
84178 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84179 trace
84180 (p_msg => 'Trancaction revesal option is Y'
84181 ,p_level => C_LEVEL_STATEMENT
84182 ,p_module => l_log_module);
84186 END LOOP;
84183 END IF;
84184 END IF;
84185
84187 l_result := XLA_AE_LINES_PKG.InsertLines ;
84188 end loop;
84189 close line_cur;
84190
84191
84192 --
84193 -- insert headers into xla_ae_headers_gt table
84194 --
84195 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
84196
84197 -- insert into errors table here.
84198
84199 END LOOP;
84200
84201 --
84202 -- 4865292
84203 --
84204 -- Compare g_hdr_extract_count with event count in
84205 -- CreateHeadersAndLines.
84206 --
84207 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
84208
84209 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84210 trace (p_msg => '# rows extracted from header extract objects '
84211 || ' (running total): '
84212 || g_hdr_extract_count
84213 ,p_level => C_LEVEL_STATEMENT
84214 ,p_module => l_log_module);
84215 END IF;
84216
84217 CLOSE header_cur;
84218 --
84219
84220 --
84221 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84222 trace
84223 (p_msg => 'END of EventClass_129'
84224 ,p_level => C_LEVEL_PROCEDURE
84225 ,p_module => l_log_module);
84226 END IF;
84227 --
84228 RETURN l_result;
84229 EXCEPTION
84230 WHEN xla_exceptions_pkg.application_exception THEN
84231
84232 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
84233
84234
84235 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
84236
84237 RAISE;
84238 WHEN OTHERS THEN
84239 xla_exceptions_pkg.raise_message
84240 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_129');
84241 END EventClass_129;
84242 --
84243
84244 ---------------------------------------
84245 --
84246 -- PRIVATE PROCEDURE
84247 -- insert_sources_130
84248 --
84249 ----------------------------------------
84250 --
84251 PROCEDURE insert_sources_130(
84252 p_target_ledger_id IN NUMBER
84253 , p_language IN VARCHAR2
84254 , p_sla_ledger_id IN NUMBER
84255 , p_pad_start_date IN DATE
84256 , p_pad_end_date IN DATE
84257 )
84258 IS
84259
84260 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ALL';
84261 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST';
84262 p_apps_owner VARCHAR2(30);
84263 l_log_module VARCHAR2(240);
84264 BEGIN
84265 IF g_log_enabled THEN
84266 l_log_module := C_DEFAULT_MODULE||'.insert_sources_130';
84267 END IF;
84268 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84269
84270 trace
84271 (p_msg => 'BEGIN of insert_sources_130'
84272 ,p_level => C_LEVEL_PROCEDURE
84273 ,p_module => l_log_module);
84274
84275 END IF;
84276
84277 -- select APPS owner
84278 SELECT oracle_username
84279 INTO p_apps_owner
84280 FROM fnd_oracle_userid
84281 WHERE read_only_flag = 'U'
84282 ;
84283
84284 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84285 trace
84286 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
84287 ' - p_language = '||p_language||
84288 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
84289 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
84290 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
84291 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
84292 ,p_level => C_LEVEL_STATEMENT
84293 ,p_module => l_log_module);
84294 END IF;
84295
84296
84297 --
84298 INSERT INTO xla_diag_sources --hdr2
84299 (
84300 event_id
84301 , ledger_id
84302 , sla_ledger_id
84303 , description_language
84304 , object_name
84305 , object_type_code
84306 , line_number
84307 , source_application_id
84308 , source_type_code
84309 , source_code
84310 , source_value
84311 , source_meaning
84312 , created_by
84313 , creation_date
84314 , last_update_date
84315 , last_updated_by
84316 , last_update_login
84317 , program_update_date
84318 , program_application_id
84319 , program_id
84320 , request_id
84321 )
84322 SELECT
84323 event_id
84324 , p_target_ledger_id
84325 , p_sla_ledger_id
84326 , p_language
84327 , object_name
84328 , object_type_code
84329 , line_number
84330 , source_application_id
84331 , source_type_code
84332 , source_code
84333 , SUBSTR(source_value ,1,1996)
84334 , SUBSTR(source_meaning ,1,200)
84335 , xla_environment_pkg.g_Usr_Id
84336 , TRUNC(SYSDATE)
84337 , TRUNC(SYSDATE)
84338 , xla_environment_pkg.g_Usr_Id
84339 , xla_environment_pkg.g_Login_Id
84340 , TRUNC(SYSDATE)
84341 , xla_environment_pkg.g_Prog_Appl_Id
84342 , xla_environment_pkg.g_Prog_Id
84343 , xla_environment_pkg.g_Req_Id
84344 FROM (
84345 SELECT xet.event_id event_id
84346 , 0 line_number
84347 , CASE r
84348 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
84349 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
84350
84351 ELSE null
84352 END object_name
84353 , CASE r
84354 WHEN 1 THEN 'HEADER'
84358 END object_type_code
84355 WHEN 2 THEN 'HEADER'
84356
84357 ELSE null
84359 , CASE r
84360 WHEN 1 THEN '275'
84361 WHEN 2 THEN '275'
84362
84363 ELSE null
84364 END source_application_id
84365 , 'S' source_type_code
84366 , CASE r
84367 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
84368 WHEN 2 THEN 'GL_DATE'
84369
84370 ELSE null
84371 END source_code
84372 , CASE r
84373 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
84374 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
84375
84376 ELSE null
84377 END source_value
84378 , null source_meaning
84379 FROM xla_events_gt xet
84380 , PA_XLA_EXP_HEADER_V h2
84381 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
84382 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
84383 AND xet.event_class_code = C_EVENT_CLASS_CODE
84384 AND h2.event_id = xet.event_id
84385
84386 )
84387 ;
84388 --
84389 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84390
84391 trace
84392 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
84393 ,p_level => C_LEVEL_STATEMENT
84394 ,p_module => l_log_module);
84395
84396 END IF;
84397 --
84398
84399
84400
84401 --
84402 INSERT INTO xla_diag_sources --line2
84403 (
84404 event_id
84405 , ledger_id
84406 , sla_ledger_id
84407 , description_language
84408 , object_name
84409 , object_type_code
84410 , line_number
84411 , source_application_id
84412 , source_type_code
84413 , source_code
84414 , source_value
84415 , source_meaning
84416 , created_by
84417 , creation_date
84418 , last_update_date
84419 , last_updated_by
84420 , last_update_login
84421 , program_update_date
84422 , program_application_id
84423 , program_id
84424 , request_id
84425 )
84426 SELECT event_id
84427 , p_target_ledger_id
84428 , p_sla_ledger_id
84429 , p_language
84430 , object_name
84431 , object_type_code
84432 , line_number
84433 , source_application_id
84434 , source_type_code
84435 , source_code
84436 , SUBSTR(source_value,1,1996)
84437 , SUBSTR(source_meaning ,1,200)
84438 , xla_environment_pkg.g_Usr_Id
84439 , TRUNC(SYSDATE)
84440 , TRUNC(SYSDATE)
84441 , xla_environment_pkg.g_Usr_Id
84442 , xla_environment_pkg.g_Login_Id
84443 , TRUNC(SYSDATE)
84444 , xla_environment_pkg.g_Prog_Appl_Id
84445 , xla_environment_pkg.g_Prog_Id
84446 , xla_environment_pkg.g_Req_Id
84447 FROM (
84448 SELECT xet.event_id event_id
84449 , l1.line_number line_number
84450 , CASE r
84451 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
84452 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
84453 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
84454 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
84455 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
84456 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
84457 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
84458 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
84459 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
84460 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
84461 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
84462 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
84463 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
84464 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
84465 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
84466 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
84467 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
84468 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
84469
84470 ELSE null
84471 END object_name
84472 , CASE r
84473 WHEN 1 THEN 'LINE'
84474 WHEN 2 THEN 'LINE'
84475 WHEN 3 THEN 'LINE'
84476 WHEN 4 THEN 'LINE'
84477 WHEN 5 THEN 'LINE'
84478 WHEN 6 THEN 'LINE'
84479 WHEN 7 THEN 'LINE'
84480 WHEN 8 THEN 'LINE'
84481 WHEN 9 THEN 'LINE'
84482 WHEN 10 THEN 'LINE'
84483 WHEN 11 THEN 'LINE'
84484 WHEN 12 THEN 'LINE'
84485 WHEN 13 THEN 'LINE'
84486 WHEN 14 THEN 'LINE'
84487 WHEN 15 THEN 'LINE'
84488 WHEN 16 THEN 'LINE'
84489 WHEN 17 THEN 'LINE'
84490 WHEN 18 THEN 'LINE'
84491
84492 ELSE null
84493 END object_type_code
84494 , CASE r
84495 WHEN 1 THEN '275'
84496 WHEN 2 THEN '275'
84497 WHEN 3 THEN '275'
84498 WHEN 4 THEN '275'
84499 WHEN 5 THEN '275'
84500 WHEN 6 THEN '275'
84501 WHEN 7 THEN '275'
84502 WHEN 8 THEN '275'
84503 WHEN 9 THEN '275'
84504 WHEN 10 THEN '275'
84508 WHEN 14 THEN '275'
84505 WHEN 11 THEN '275'
84506 WHEN 12 THEN '275'
84507 WHEN 13 THEN '275'
84509 WHEN 15 THEN '275'
84510 WHEN 16 THEN '275'
84511 WHEN 17 THEN '275'
84512 WHEN 18 THEN '275'
84513
84514 ELSE null
84515 END source_application_id
84516 , 'S' source_type_code
84517 , CASE r
84518 WHEN 1 THEN 'COST_CCID'
84519 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
84520 WHEN 3 THEN 'ADJ_COST_CCID'
84521 WHEN 4 THEN 'COST_CLEARING_CCID'
84522 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
84523 WHEN 6 THEN 'REVERSING_LINE_FLAG'
84524 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
84525 WHEN 8 THEN 'ENTERED_RAW_COST'
84526 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
84527 WHEN 10 THEN 'ACCT_RAW_COST'
84528 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
84529 WHEN 12 THEN 'EXCHANGE_RATE'
84530 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
84531 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
84532 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
84533 WHEN 16 THEN 'LINE_NUMBER'
84534 WHEN 17 THEN 'LINE_TYPE'
84535 WHEN 18 THEN 'LINE_NUM_REVERSED'
84536
84537 ELSE null
84538 END source_code
84539 , CASE r
84540 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
84541 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
84542 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
84543 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
84544 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
84545 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
84546 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
84547 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
84548 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
84549 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
84550 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
84551 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
84552 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
84553 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
84554 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
84555 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
84556 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
84557 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
84558
84559 ELSE null
84560 END source_value
84561 , CASE r
84562 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
84563 103371
84564 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
84565 ,'ALLOW_OVERRIDE_CCID_FLAG'
84566 ,'S'
84567 ,275)
84568 WHEN 17 THEN fvl34.meaning
84569
84570 ELSE null
84571 END source_meaning
84572 FROM xla_events_gt xet
84573 , PA_XLA_CDL_LINES_V l1
84574 , fnd_lookup_values fvl34
84575 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
84576 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
84577 AND xet.event_class_code = C_EVENT_CLASS_CODE
84578 AND l1.event_id = xet.event_id
84579 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
84580 AND fvl34.lookup_code(+) = l1.LINE_TYPE
84581 AND fvl34.view_application_id(+) = 275
84582 AND fvl34.language(+) = USERENV('LANG')
84583
84584 )
84585 ;
84586 --
84587 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84588
84589 trace
84590 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
84591 ,p_level => C_LEVEL_STATEMENT
84592 ,p_module => l_log_module);
84593
84594 END IF;
84595
84596
84597 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84598 trace
84599 (p_msg => 'END of insert_sources_130'
84600 ,p_level => C_LEVEL_PROCEDURE
84601 ,p_module => l_log_module);
84602 END IF;
84603 EXCEPTION
84604 WHEN xla_exceptions_pkg.application_exception THEN
84605 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
84606 trace
84607 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
84608 ,p_level => C_LEVEL_EXCEPTION
84609 ,p_module => l_log_module);
84610 END IF;
84611 RAISE;
84612 WHEN OTHERS THEN
84613 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
84614 trace
84615 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
84616 ,p_level => C_LEVEL_EXCEPTION
84617 ,p_module => l_log_module);
84618 END IF;
84619 xla_exceptions_pkg.raise_message
84620 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_130');
84621 END insert_sources_130;
84622 --
84623
84624 ---------------------------------------
84625 --
84626 -- PRIVATE FUNCTION
84627 -- EventClass_130
84628 --
84629 ----------------------------------------
84630 --
84631 FUNCTION EventClass_130
84632 (p_application_id IN NUMBER
84633 ,p_base_ledger_id IN NUMBER
84634 ,p_target_ledger_id IN NUMBER
84635 ,p_language IN VARCHAR2
84639 ,p_pad_end_date IN DATE
84636 ,p_currency_code IN VARCHAR2
84637 ,p_sla_ledger_id IN NUMBER
84638 ,p_pad_start_date IN DATE
84640 ,p_primary_ledger_id IN NUMBER)
84641 RETURN BOOLEAN IS
84642 --
84643 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'USG_COST_ALL';
84644 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'USG_COST';
84645
84646 l_calculate_acctd_flag VARCHAR2(1) :='N';
84647 l_calculate_g_l_flag VARCHAR2(1) :='N';
84648 --
84649 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84650 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84651 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84652 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84653 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84654 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84655 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84656 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84657 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84658 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84659 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84660 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84661 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84662 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
84663 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84664 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84665 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84666 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
84667 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84668 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84669 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84670 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
84671 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
84672 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
84673
84674 l_event_id NUMBER;
84675 l_previous_event_id NUMBER;
84676 l_first_event_id NUMBER;
84677 l_last_event_id NUMBER;
84678
84679 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
84680 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
84681 --
84682 --
84683 l_result BOOLEAN := TRUE;
84684 l_rows NUMBER := 1000;
84685 l_event_type_name VARCHAR2(80) := 'All';
84686 l_event_class_name VARCHAR2(80) := 'Usage Cost';
84687 l_description VARCHAR2(4000);
84688 l_transaction_reversal NUMBER;
84689 l_ae_header_id NUMBER;
84690 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
84691 l_log_module VARCHAR2(240);
84692 --
84693 l_acct_reversal_source VARCHAR2(30);
84694 l_trx_reversal_source VARCHAR2(30);
84695
84696 l_continue_with_lines BOOLEAN := TRUE;
84697 --
84698 l_acc_rev_gl_date_source DATE; -- 4262811
84699 --
84700 type t_array_event_id is table of number index by binary_integer;
84701
84702 l_rec_array_event t_rec_array_event;
84703 l_null_rec_array_event t_rec_array_event;
84704 l_array_ae_header_id xla_number_array_type;
84705 l_actual_flag VARCHAR2(1) := NULL;
84706 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
84707 l_balance_type_code VARCHAR2(1) :=NULL;
84708 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
84709
84710 --
84711 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
84712 --
84713
84714 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
84715 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
84716
84717 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
84718 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
84719 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
84720 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
84721 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
84722 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
84723 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
84724 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
84725 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
84726 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
84727 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
84728 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
84729 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
84730 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
84731 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
84732 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
84736 l_array_source_32 t_array_source_32;
84733 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
84734 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
84735
84737 l_array_source_87 t_array_source_87;
84738
84739 l_array_source_3 t_array_source_3;
84740 l_array_source_4 t_array_source_4;
84741 l_array_source_5 t_array_source_5;
84742 l_array_source_6 t_array_source_6;
84743 l_array_source_7 t_array_source_7;
84744 l_array_source_22 t_array_source_22;
84745 l_array_source_23 t_array_source_23;
84746 l_array_source_24 t_array_source_24;
84747 l_array_source_25 t_array_source_25;
84748 l_array_source_26 t_array_source_26;
84749 l_array_source_27 t_array_source_27;
84750 l_array_source_28 t_array_source_28;
84751 l_array_source_29 t_array_source_29;
84752 l_array_source_30 t_array_source_30;
84753 l_array_source_31 t_array_source_31;
84754 l_array_source_33 t_array_source_33;
84755 l_array_source_34 t_array_source_34;
84756 l_array_source_34_meaning t_array_lookup_meaning;
84757 l_array_source_35 t_array_source_35;
84758
84759 --
84760 CURSOR header_cur
84761 IS
84762 SELECT /*+ leading(xet) cardinality(xet,1) */
84763 -- Event Class Code: USG_COST
84764 xet.entity_id
84765 ,xet.legal_entity_id
84766 ,xet.entity_code
84767 ,xet.transaction_number
84768 ,xet.event_id
84769 ,xet.event_class_code
84770 ,xet.event_type_code
84771 ,xet.event_number
84772 ,xet.event_date
84773 ,xet.transaction_date
84774 ,xet.reference_num_1
84775 ,xet.reference_num_2
84776 ,xet.reference_num_3
84777 ,xet.reference_num_4
84778 ,xet.reference_char_1
84779 ,xet.reference_char_2
84780 ,xet.reference_char_3
84781 ,xet.reference_char_4
84782 ,xet.reference_date_1
84783 ,xet.reference_date_2
84784 ,xet.reference_date_3
84785 ,xet.reference_date_4
84786 ,xet.event_created_by
84787 ,xet.budgetary_control_flag
84788 , h2.EXPENDITURE_ITEM_ID source_32
84789 , h2.GL_DATE source_87
84790 FROM xla_events_gt xet
84791 , PA_XLA_EXP_HEADER_V h2
84792 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
84793 and xet.event_class_code = C_EVENT_CLASS_CODE
84794 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
84795
84796 ORDER BY event_id
84797 ;
84798
84799
84800 --
84801 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
84802 IS
84803 SELECT /*+ leading(xet) cardinality(xet,1) */
84804 -- Event Class Code: USG_COST
84805 xet.entity_id
84806 ,xet.legal_entity_id
84807 ,xet.entity_code
84808 ,xet.transaction_number
84809 ,xet.event_id
84810 ,xet.event_class_code
84811 ,xet.event_type_code
84812 ,xet.event_number
84813 ,xet.event_date
84814 ,xet.transaction_date
84815 ,xet.reference_num_1
84816 ,xet.reference_num_2
84817 ,xet.reference_num_3
84818 ,xet.reference_num_4
84819 ,xet.reference_char_1
84820 ,xet.reference_char_2
84821 ,xet.reference_char_3
84822 ,xet.reference_char_4
84823 ,xet.reference_date_1
84824 ,xet.reference_date_2
84825 ,xet.reference_date_3
84826 ,xet.reference_date_4
84827 ,xet.event_created_by
84828 ,xet.budgetary_control_flag
84829 , l1.LINE_NUMBER
84830 , l1.COST_CCID source_3
84831 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
84832 , l1.ADJ_COST_CCID source_5
84833 , l1.COST_CLEARING_CCID source_6
84834 , l1.ADJ_COST_CLEARING_CCID source_7
84835 , l1.REVERSING_LINE_FLAG source_22
84836 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
84837 , l1.ENTERED_RAW_COST source_24
84838 , l1.ENTERED_CURRENCY_CODE source_25
84839 , l1.ACCT_RAW_COST source_26
84840 , l1.EXCHANGE_RATE_DATE source_27
84841 , l1.EXCHANGE_RATE source_28
84842 , l1.EXCHANGE_RATE_TYPE source_29
84843 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
84844 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
84845 , l1.LINE_NUMBER source_33
84846 , l1.LINE_TYPE source_34
84847 , fvl34.meaning source_34_meaning
84848 , l1.LINE_NUM_REVERSED source_35
84849 FROM xla_events_gt xet
84850 , PA_XLA_CDL_LINES_V l1
84851 , fnd_lookup_values fvl34
84852 WHERE xet.event_id between x_first_event_id and x_last_event_id
84853 and xet.event_date between p_pad_start_date and p_pad_end_date
84854 and xet.event_class_code = C_EVENT_CLASS_CODE
84855 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
84856 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
84857 AND fvl34.lookup_code(+) = l1.LINE_TYPE
84858 AND fvl34.view_application_id(+) = 275
84859 AND fvl34.language(+) = USERENV('LANG')
84860 ;
84861
84862 --
84863 BEGIN
84864 IF g_log_enabled THEN
84865 l_log_module := C_DEFAULT_MODULE||'.EventClass_130';
84866 END IF;
84867 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
84868 trace
84869 (p_msg => 'BEGIN of EventClass_130'
84870 ,p_level => C_LEVEL_PROCEDURE
84871 ,p_module => l_log_module);
84872 END IF;
84873
84874 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84875 trace
84876 (p_msg => 'p_application_id = '||p_application_id||
84877 ' - p_base_ledger_id = '||p_base_ledger_id||
84878 ' - p_target_ledger_id = '||p_target_ledger_id||
84879 ' - p_language = '||p_language||
84880 ' - p_currency_code = '||p_currency_code||
84881 ' - p_sla_ledger_id = '||p_sla_ledger_id
84882 ,p_level => C_LEVEL_STATEMENT
84886 -- initialze arrays
84883 ,p_module => l_log_module);
84884 END IF;
84885 --
84887 --
84888 g_array_event.DELETE;
84889 l_rec_array_event := l_null_rec_array_event;
84890 --
84891 --------------------------------------
84892 -- 4262811 Initialze MPA Line Number
84893 --------------------------------------
84894 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
84895
84896 --
84897
84898 --
84899 OPEN header_cur;
84900 --
84901 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
84902 trace
84903 (p_msg => 'SQL - FETCH header_cur'
84904 ,p_level => C_LEVEL_STATEMENT
84905 ,p_module => l_log_module);
84906 END IF;
84907 --
84908 LOOP
84909 FETCH header_cur BULK COLLECT INTO
84910 l_array_entity_id
84911 , l_array_legal_entity_id
84912 , l_array_entity_code
84913 , l_array_transaction_num
84914 , l_array_event_id
84915 , l_array_class_code
84916 , l_array_event_type
84917 , l_array_event_number
84918 , l_array_event_date
84919 , l_array_transaction_date
84920 , l_array_reference_num_1
84921 , l_array_reference_num_2
84922 , l_array_reference_num_3
84923 , l_array_reference_num_4
84924 , l_array_reference_char_1
84925 , l_array_reference_char_2
84926 , l_array_reference_char_3
84927 , l_array_reference_char_4
84928 , l_array_reference_date_1
84929 , l_array_reference_date_2
84930 , l_array_reference_date_3
84931 , l_array_reference_date_4
84932 , l_array_event_created_by
84933 , l_array_budgetary_control_flag
84934 , l_array_source_32
84935 , l_array_source_87
84936 LIMIT l_rows;
84937 --
84938 IF (C_LEVEL_EVENT >= g_log_level) THEN
84939 trace
84940 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
84941 ,p_level => C_LEVEL_EVENT
84942 ,p_module => l_log_module);
84943 END IF;
84944 --
84945 EXIT WHEN l_array_entity_id.COUNT = 0;
84946
84947 -- initialize arrays
84948 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
84949 XLA_AE_LINES_PKG.g_rec_lines := NULL;
84950
84951 --
84952 -- Bug 4458708
84953 --
84954 XLA_AE_LINES_PKG.g_LineNumber := 0;
84955
84956
84957 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
84958 g_last_hdr_idx := l_array_event_id.LAST;
84959 --
84960 -- loop for the headers. Each iteration is for each header extract row
84961 -- fetched in header cursor
84962 --
84963 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
84964
84965 --
84966 -- set event info as cache for other routines to refer event attributes
84967 --
84968 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
84969 (p_application_id => p_application_id
84970 ,p_primary_ledger_id => p_primary_ledger_id
84971 ,p_base_ledger_id => p_base_ledger_id
84972 ,p_target_ledger_id => p_target_ledger_id
84973 ,p_entity_id => l_array_entity_id(hdr_idx)
84974 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
84975 ,p_entity_code => l_array_entity_code(hdr_idx)
84976 ,p_transaction_num => l_array_transaction_num(hdr_idx)
84977 ,p_event_id => l_array_event_id(hdr_idx)
84978 ,p_event_class_code => l_array_class_code(hdr_idx)
84979 ,p_event_type_code => l_array_event_type(hdr_idx)
84980 ,p_event_number => l_array_event_number(hdr_idx)
84981 ,p_event_date => l_array_event_date(hdr_idx)
84982 ,p_transaction_date => l_array_transaction_date(hdr_idx)
84983 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
84984 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
84985 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
84986 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
84987 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
84988 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
84989 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
84990 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
84991 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
84992 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
84993 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
84994 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
84995 ,p_event_created_by => l_array_event_created_by(hdr_idx)
84996 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
84997
84998 --
84999 -- set the status of entry to C_VALID (0)
85000 --
85001 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
85002
85003 --
85004 -- initialize a row for ae header
85005 --
85006 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
85007
85008 l_event_id := l_array_event_id(hdr_idx);
85009
85010 --
85011 -- storing the hdr_idx for event. May be used by line cursor.
85012 --
85013 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
85014
85015 --
85016 -- store sources from header extract. This can be improved to
85017 -- store only those sources from header extract that may be used in lines
85018 --
85019
85020 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
85021 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
85022
85023 --
85024 -- initilaize the status of ae headers for diffrent balance types
85025 -- the status is initialised to C_NOT_CREATED (2)
85026 --
85030
85027 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
85028 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
85029 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
85031 --
85032 -- call api to validate and store accounting attributes for header
85033 --
85034
85035 ------------------------------------------------------------
85036 -- Accrual Reversal : to get date for Standard Source (NONE)
85037 ------------------------------------------------------------
85038 l_acc_rev_gl_date_source := NULL;
85039
85040 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
85041 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
85042
85043
85044 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
85045
85046 XLA_AE_HEADER_PKG.SetJeCategoryName;
85047
85048 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
85049 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
85050 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
85051 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
85052 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
85053
85054
85055 -- No header level analytical criteria
85056
85057 --
85058 --accounting attribute enhancement, bug 3612931
85059 --
85060 l_trx_reversal_source := SUBSTR(NULL, 1,30);
85061
85062 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
85063 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
85064
85065 xla_accounting_err_pkg.build_message
85066 (p_appli_s_name => 'XLA'
85067 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
85068 ,p_token_1 => 'ACCT_ATTR_NAME'
85069 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
85070 ,p_token_2 => 'PRODUCT_NAME'
85071 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
85072 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
85073 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
85074 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
85075
85076 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
85077 --
85078 -- following sets the accounting attributes needed to reverse
85079 -- accounting for a distributeion
85080 --
85081 xla_ae_lines_pkg.SetTrxReversalAttrs
85082 (p_event_id => l_event_id
85083 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
85084 ,p_trx_reversal_source => l_trx_reversal_source);
85085
85086 END IF;
85087
85088
85089 ----------------------------------------------------------------
85090 -- 4262811 - update the header statuses to invalid in need be
85091 ----------------------------------------------------------------
85092 --
85093 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
85094
85095
85096 -----------------------------------------------
85097 -- No accrual reversal for the event class/type
85098 -----------------------------------------------
85099 ----------------------------------------------------------------
85100
85101 --
85102 -- this ends the header loop iteration for one bulk fetch
85103 --
85104 END LOOP;
85105
85106 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
85107 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
85108
85109 --
85110 -- insert dummy rows into lines gt table that were created due to
85111 -- transaction reversals
85112 --
85113 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
85114 l_result := XLA_AE_LINES_PKG.InsertLines;
85115 END IF;
85116
85117 --
85118 -- reset the temp_line_num for each set of events fetched from header
85119 -- cursor rather than doing it for each new event in line cursor
85120 -- Bug 3939231
85121 --
85122 xla_ae_lines_pkg.g_temp_line_num := 0;
85123
85124
85125
85126 --
85127 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
85128 --
85129 --
85130 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85131
85132 trace
85133 (p_msg => 'SQL - FETCH line_cur'
85134 ,p_level => C_LEVEL_STATEMENT
85135 ,p_module => l_log_module);
85136
85137 END IF;
85138 --
85139 --
85140 LOOP
85141 --
85142 FETCH line_cur BULK COLLECT INTO
85143 l_array_entity_id
85144 , l_array_legal_entity_id
85145 , l_array_entity_code
85146 , l_array_transaction_num
85147 , l_array_event_id
85148 , l_array_class_code
85149 , l_array_event_type
85150 , l_array_event_number
85151 , l_array_event_date
85152 , l_array_transaction_date
85153 , l_array_reference_num_1
85154 , l_array_reference_num_2
85155 , l_array_reference_num_3
85156 , l_array_reference_num_4
85157 , l_array_reference_char_1
85158 , l_array_reference_char_2
85159 , l_array_reference_char_3
85160 , l_array_reference_char_4
85161 , l_array_reference_date_1
85162 , l_array_reference_date_2
85163 , l_array_reference_date_3
85164 , l_array_reference_date_4
85165 , l_array_event_created_by
85166 , l_array_budgetary_control_flag
85167 , l_array_extract_line_num
85171 , l_array_source_6
85168 , l_array_source_3
85169 , l_array_source_4
85170 , l_array_source_5
85172 , l_array_source_7
85173 , l_array_source_22
85174 , l_array_source_23
85175 , l_array_source_24
85176 , l_array_source_25
85177 , l_array_source_26
85178 , l_array_source_27
85179 , l_array_source_28
85180 , l_array_source_29
85181 , l_array_source_30
85182 , l_array_source_31
85183 , l_array_source_33
85184 , l_array_source_34
85185 , l_array_source_34_meaning
85186 , l_array_source_35
85187 LIMIT l_rows;
85188
85189 --
85190 IF (C_LEVEL_EVENT >= g_log_level) THEN
85191 trace
85192 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
85193 ,p_level => C_LEVEL_EVENT
85194 ,p_module => l_log_module);
85195 END IF;
85196 --
85197 EXIT WHEN l_array_entity_id.count = 0;
85198
85199 XLA_AE_LINES_PKG.g_rec_lines := null;
85200
85201 --
85202 -- Bug 4458708
85203 --
85204 XLA_AE_LINES_PKG.g_LineNumber := 0;
85205 --
85206 --
85207
85208 FOR Idx IN 1..l_array_event_id.count LOOP
85209 --
85210 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
85211 --
85212 l_event_id := l_array_event_id(idx); -- 5648433
85213
85214 --
85215 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
85216 --
85217
85218 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
85219 (g_array_event(l_event_id).array_value_num('header_index'))
85220 ,'N'
85221 ) <> 'Y'
85222 THEN
85223 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85224 trace
85225 (p_msg => 'Trancaction revesal option is not Y '
85226 ,p_level => C_LEVEL_STATEMENT
85227 ,p_module => l_log_module);
85228 END IF;
85229
85230 --
85231 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
85232 --
85233 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
85234 --
85235 -- set event info as cache for other routines to refer event attributes
85236 --
85237
85238 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
85239 l_previous_event_id := l_event_id;
85240
85241 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
85242 (p_application_id => p_application_id
85243 ,p_primary_ledger_id => p_primary_ledger_id
85244 ,p_base_ledger_id => p_base_ledger_id
85245 ,p_target_ledger_id => p_target_ledger_id
85246 ,p_entity_id => l_array_entity_id(Idx)
85247 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
85248 ,p_entity_code => l_array_entity_code(Idx)
85249 ,p_transaction_num => l_array_transaction_num(Idx)
85250 ,p_event_id => l_array_event_id(Idx)
85251 ,p_event_class_code => l_array_class_code(Idx)
85252 ,p_event_type_code => l_array_event_type(Idx)
85253 ,p_event_number => l_array_event_number(Idx)
85254 ,p_event_date => l_array_event_date(Idx)
85255 ,p_transaction_date => l_array_transaction_date(Idx)
85256 ,p_reference_num_1 => l_array_reference_num_1(Idx)
85257 ,p_reference_num_2 => l_array_reference_num_2(Idx)
85258 ,p_reference_num_3 => l_array_reference_num_3(Idx)
85259 ,p_reference_num_4 => l_array_reference_num_4(Idx)
85260 ,p_reference_char_1 => l_array_reference_char_1(Idx)
85261 ,p_reference_char_2 => l_array_reference_char_2(Idx)
85262 ,p_reference_char_3 => l_array_reference_char_3(Idx)
85263 ,p_reference_char_4 => l_array_reference_char_4(Idx)
85264 ,p_reference_date_1 => l_array_reference_date_1(Idx)
85265 ,p_reference_date_2 => l_array_reference_date_2(Idx)
85266 ,p_reference_date_3 => l_array_reference_date_3(Idx)
85267 ,p_reference_date_4 => l_array_reference_date_4(Idx)
85268 ,p_event_created_by => l_array_event_created_by(Idx)
85269 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
85270 --
85271 END IF;
85272
85273
85274
85275 --
85276 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
85277
85278 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
85279
85280 IF l_continue_with_lines THEN
85281 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
85282 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
85283
85284 xla_accounting_err_pkg.build_message
85285 (p_appli_s_name => 'XLA'
85286 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
85287 ,p_token_1 => 'LINE_NUMBER'
85288 ,p_value_1 => l_array_extract_line_num(Idx)
85289 ,p_token_2 => 'PRODUCT_NAME'
85290 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
85291 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
85292 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
85293 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
85294
85295 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
85296 --
85297 -- following sets the accounting attributes needed to reverse
85298 -- accounting for a distributeion
85299 --
85300
85301 --
85302 -- 5217187
85303 --
85307 --
85304 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
85305 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
85306 g_array_event(l_event_id).array_value_num('header_index'));
85308 --
85309
85310 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
85311 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
85312 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
85313 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
85314 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
85315 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
85316 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
85317 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
85318 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
85319 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
85320 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
85321 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
85322 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
85323 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
85324 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
85325 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
85326 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
85327 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
85328 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
85329 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
85330 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
85331 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
85332 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
85333 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
85334 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
85335 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
85336 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
85337 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
85338 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
85339 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
85340 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
85341 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
85342 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
85343 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
85344 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
85345 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
85346 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
85347 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
85348 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
85349 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
85350 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
85351 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
85352 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
85353 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
85354 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
85355 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
85356 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
85357 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
85358
85359
85360 xla_ae_lines_pkg.SetAcctReversalAttrs
85361 (p_event_id => l_event_id
85362 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
85363 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85364 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
85365 END IF;
85366
85367 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
85368 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
85369
85370 --
85371 AcctLineType_42 (
85372 p_application_id => p_application_id
85373 ,p_event_id => l_event_id
85374 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85375 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85376 ,p_actual_flag => l_actual_flag
85377 ,p_balance_type_code => l_balance_type_code
85378 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85379
85380 , p_source_3 => l_array_source_3(Idx)
85381 , p_source_4 => l_array_source_4(Idx)
85382 , p_source_5 => l_array_source_5(Idx)
85383 , p_source_6 => l_array_source_6(Idx)
85384 , p_source_22 => l_array_source_22(Idx)
85385 , p_source_23 => l_array_source_23(Idx)
85386 , p_source_24 => l_array_source_24(Idx)
85387 , p_source_25 => l_array_source_25(Idx)
85388 , p_source_26 => l_array_source_26(Idx)
85389 , p_source_27 => l_array_source_27(Idx)
85390 , p_source_28 => l_array_source_28(Idx)
85391 , p_source_29 => l_array_source_29(Idx)
85392 , p_source_30 => l_array_source_30(Idx)
85393 , p_source_31 => l_array_source_31(Idx)
85394 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
85395 , p_source_33 => l_array_source_33(Idx)
85396 , p_source_34 => l_array_source_34(Idx)
85397 , p_source_34_meaning => l_array_source_34_meaning(Idx)
85398 , p_source_35 => l_array_source_35(Idx)
85399 );
85400 If(l_balance_type_code = 'A') THEN
85404 --
85401 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85402 END IF;
85403
85405
85406
85407 --
85408 AcctLineType_53 (
85409 p_application_id => p_application_id
85410 ,p_event_id => l_event_id
85411 ,p_calculate_acctd_flag => l_calculate_acctd_flag
85412 ,p_calculate_g_l_flag => l_calculate_g_l_flag
85413 ,p_actual_flag => l_actual_flag
85414 ,p_balance_type_code => l_balance_type_code
85415 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
85416
85417 , p_source_3 => l_array_source_3(Idx)
85418 , p_source_4 => l_array_source_4(Idx)
85419 , p_source_6 => l_array_source_6(Idx)
85420 , p_source_7 => l_array_source_7(Idx)
85421 , p_source_22 => l_array_source_22(Idx)
85422 , p_source_23 => l_array_source_23(Idx)
85423 , p_source_24 => l_array_source_24(Idx)
85424 , p_source_25 => l_array_source_25(Idx)
85425 , p_source_26 => l_array_source_26(Idx)
85426 , p_source_27 => l_array_source_27(Idx)
85427 , p_source_28 => l_array_source_28(Idx)
85428 , p_source_29 => l_array_source_29(Idx)
85429 , p_source_30 => l_array_source_30(Idx)
85430 , p_source_31 => l_array_source_31(Idx)
85431 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
85432 , p_source_33 => l_array_source_33(Idx)
85433 , p_source_34 => l_array_source_34(Idx)
85434 , p_source_34_meaning => l_array_source_34_meaning(Idx)
85435 , p_source_35 => l_array_source_35(Idx)
85436 );
85437 If(l_balance_type_code = 'A') THEN
85438 l_actual_gain_loss_ref := l_gain_or_loss_ref;
85439 END IF;
85440
85441 --
85442
85443 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
85444 -- or secondary ledger that has different currency with primary
85445 -- or alc that is calculated by sla
85446 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
85447 (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'))
85448
85449 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
85450 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
85451 AND (l_actual_flag = 'A')) THEN
85452 XLA_AE_LINES_PKG.CreateGainOrLossLines(
85453 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
85454 ,p_application_id => p_application_id
85455 ,p_amb_context_code => 'DEFAULT'
85456 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
85457 ,p_event_class_code => C_EVENT_CLASS_CODE
85458 ,p_event_type_code => C_EVENT_TYPE_CODE
85459
85460 ,p_gain_ccid => -1
85461 ,p_loss_ccid => -1
85462
85463 ,p_actual_flag => l_actual_flag
85464 ,p_enc_flag => null
85465 ,p_actual_g_l_ref => l_actual_gain_loss_ref
85466 ,p_enc_g_l_ref => null
85467 );
85468 END IF;
85469 END IF;
85470 END IF;
85471
85472 ELSE
85473 --
85474 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
85475 --
85476 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85477 trace
85478 (p_msg => 'Trancaction revesal option is Y'
85479 ,p_level => C_LEVEL_STATEMENT
85480 ,p_module => l_log_module);
85481 END IF;
85482 END IF;
85483
85484 END LOOP;
85485 l_result := XLA_AE_LINES_PKG.InsertLines ;
85486 end loop;
85487 close line_cur;
85488
85489
85490 --
85491 -- insert headers into xla_ae_headers_gt table
85492 --
85493 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
85494
85495 -- insert into errors table here.
85496
85497 END LOOP;
85498
85499 --
85500 -- 4865292
85501 --
85502 -- Compare g_hdr_extract_count with event count in
85503 -- CreateHeadersAndLines.
85504 --
85505 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
85506
85507 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85508 trace (p_msg => '# rows extracted from header extract objects '
85509 || ' (running total): '
85510 || g_hdr_extract_count
85511 ,p_level => C_LEVEL_STATEMENT
85512 ,p_module => l_log_module);
85513 END IF;
85514
85515 CLOSE header_cur;
85516 --
85517
85518 --
85519 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85520 trace
85521 (p_msg => 'END of EventClass_130'
85522 ,p_level => C_LEVEL_PROCEDURE
85523 ,p_module => l_log_module);
85524 END IF;
85525 --
85526 RETURN l_result;
85527 EXCEPTION
85528 WHEN xla_exceptions_pkg.application_exception THEN
85529
85530 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
85531
85532
85533 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
85534
85535 RAISE;
85536 WHEN OTHERS THEN
85537 xla_exceptions_pkg.raise_message
85538 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_130');
85539 END EventClass_130;
85540 --
85541
85542 ---------------------------------------
85543 --
85544 -- PRIVATE PROCEDURE
85545 -- insert_sources_131
85546 --
85547 ----------------------------------------
85548 --
85549 PROCEDURE insert_sources_131(
85550 p_target_ledger_id IN NUMBER
85551 , p_language IN VARCHAR2
85552 , p_sla_ledger_id IN NUMBER
85553 , p_pad_start_date IN DATE
85554 , p_pad_end_date IN DATE
85558 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ_ALL';
85555 )
85556 IS
85557
85559 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ';
85560 p_apps_owner VARCHAR2(30);
85561 l_log_module VARCHAR2(240);
85562 BEGIN
85563 IF g_log_enabled THEN
85564 l_log_module := C_DEFAULT_MODULE||'.insert_sources_131';
85565 END IF;
85566 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85567
85568 trace
85569 (p_msg => 'BEGIN of insert_sources_131'
85570 ,p_level => C_LEVEL_PROCEDURE
85571 ,p_module => l_log_module);
85572
85573 END IF;
85574
85575 -- select APPS owner
85576 SELECT oracle_username
85577 INTO p_apps_owner
85578 FROM fnd_oracle_userid
85579 WHERE read_only_flag = 'U'
85580 ;
85581
85582 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85583 trace
85584 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
85585 ' - p_language = '||p_language||
85586 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
85587 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
85588 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
85589 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
85590 ,p_level => C_LEVEL_STATEMENT
85591 ,p_module => l_log_module);
85592 END IF;
85593
85594
85595 --
85596 INSERT INTO xla_diag_sources --hdr2
85597 (
85598 event_id
85599 , ledger_id
85600 , sla_ledger_id
85601 , description_language
85602 , object_name
85603 , object_type_code
85604 , line_number
85605 , source_application_id
85606 , source_type_code
85607 , source_code
85608 , source_value
85609 , source_meaning
85610 , created_by
85611 , creation_date
85612 , last_update_date
85613 , last_updated_by
85614 , last_update_login
85615 , program_update_date
85616 , program_application_id
85617 , program_id
85618 , request_id
85619 )
85620 SELECT
85621 event_id
85622 , p_target_ledger_id
85623 , p_sla_ledger_id
85624 , p_language
85625 , object_name
85626 , object_type_code
85627 , line_number
85628 , source_application_id
85629 , source_type_code
85630 , source_code
85631 , SUBSTR(source_value ,1,1996)
85632 , SUBSTR(source_meaning ,1,200)
85633 , xla_environment_pkg.g_Usr_Id
85634 , TRUNC(SYSDATE)
85635 , TRUNC(SYSDATE)
85636 , xla_environment_pkg.g_Usr_Id
85637 , xla_environment_pkg.g_Login_Id
85638 , TRUNC(SYSDATE)
85639 , xla_environment_pkg.g_Prog_Appl_Id
85640 , xla_environment_pkg.g_Prog_Id
85641 , xla_environment_pkg.g_Req_Id
85642 FROM (
85643 SELECT xet.event_id event_id
85644 , 0 line_number
85645 , CASE r
85646 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
85647 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
85648
85649 ELSE null
85650 END object_name
85651 , CASE r
85652 WHEN 1 THEN 'HEADER'
85653 WHEN 2 THEN 'HEADER'
85654
85655 ELSE null
85656 END object_type_code
85657 , CASE r
85658 WHEN 1 THEN '275'
85659 WHEN 2 THEN '275'
85660
85661 ELSE null
85662 END source_application_id
85663 , 'S' source_type_code
85664 , CASE r
85665 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
85666 WHEN 2 THEN 'GL_DATE'
85667
85668 ELSE null
85669 END source_code
85670 , CASE r
85671 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
85672 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
85673
85674 ELSE null
85675 END source_value
85676 , null source_meaning
85677 FROM xla_events_gt xet
85678 , PA_XLA_EXP_HEADER_V h2
85679 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
85680 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
85681 AND xet.event_class_code = C_EVENT_CLASS_CODE
85682 AND h2.event_id = xet.event_id
85683
85684 )
85685 ;
85686 --
85687 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85688
85689 trace
85690 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
85691 ,p_level => C_LEVEL_STATEMENT
85692 ,p_module => l_log_module);
85693
85694 END IF;
85695 --
85696
85697
85698
85699 --
85700 INSERT INTO xla_diag_sources --line2
85701 (
85702 event_id
85703 , ledger_id
85704 , sla_ledger_id
85705 , description_language
85706 , object_name
85707 , object_type_code
85708 , line_number
85709 , source_application_id
85710 , source_type_code
85711 , source_code
85712 , source_value
85713 , source_meaning
85714 , created_by
85715 , creation_date
85716 , last_update_date
85717 , last_updated_by
85718 , last_update_login
85722 , request_id
85719 , program_update_date
85720 , program_application_id
85721 , program_id
85723 )
85724 SELECT event_id
85725 , p_target_ledger_id
85726 , p_sla_ledger_id
85727 , p_language
85728 , object_name
85729 , object_type_code
85730 , line_number
85731 , source_application_id
85732 , source_type_code
85733 , source_code
85734 , SUBSTR(source_value,1,1996)
85735 , SUBSTR(source_meaning ,1,200)
85736 , xla_environment_pkg.g_Usr_Id
85737 , TRUNC(SYSDATE)
85738 , TRUNC(SYSDATE)
85739 , xla_environment_pkg.g_Usr_Id
85740 , xla_environment_pkg.g_Login_Id
85741 , TRUNC(SYSDATE)
85742 , xla_environment_pkg.g_Prog_Appl_Id
85743 , xla_environment_pkg.g_Prog_Id
85744 , xla_environment_pkg.g_Req_Id
85745 FROM (
85746 SELECT xet.event_id event_id
85747 , l1.line_number line_number
85748 , CASE r
85749 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
85750 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
85751 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
85752 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
85753 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
85754 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
85755 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
85756 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
85757 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
85758 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
85759 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
85760 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
85761 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
85762 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
85763 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
85764 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
85765 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
85766 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
85767
85768 ELSE null
85769 END object_name
85770 , CASE r
85771 WHEN 1 THEN 'LINE'
85772 WHEN 2 THEN 'LINE'
85773 WHEN 3 THEN 'LINE'
85774 WHEN 4 THEN 'LINE'
85775 WHEN 5 THEN 'LINE'
85776 WHEN 6 THEN 'LINE'
85777 WHEN 7 THEN 'LINE'
85778 WHEN 8 THEN 'LINE'
85779 WHEN 9 THEN 'LINE'
85780 WHEN 10 THEN 'LINE'
85781 WHEN 11 THEN 'LINE'
85782 WHEN 12 THEN 'LINE'
85783 WHEN 13 THEN 'LINE'
85784 WHEN 14 THEN 'LINE'
85785 WHEN 15 THEN 'LINE'
85786 WHEN 16 THEN 'LINE'
85787 WHEN 17 THEN 'LINE'
85788 WHEN 18 THEN 'LINE'
85789
85790 ELSE null
85791 END object_type_code
85792 , CASE r
85793 WHEN 1 THEN '275'
85794 WHEN 2 THEN '275'
85795 WHEN 3 THEN '275'
85796 WHEN 4 THEN '275'
85797 WHEN 5 THEN '275'
85798 WHEN 6 THEN '275'
85799 WHEN 7 THEN '275'
85800 WHEN 8 THEN '275'
85801 WHEN 9 THEN '275'
85802 WHEN 10 THEN '275'
85803 WHEN 11 THEN '275'
85804 WHEN 12 THEN '275'
85805 WHEN 13 THEN '275'
85806 WHEN 14 THEN '275'
85807 WHEN 15 THEN '275'
85808 WHEN 16 THEN '275'
85809 WHEN 17 THEN '275'
85810 WHEN 18 THEN '275'
85811
85812 ELSE null
85813 END source_application_id
85814 , 'S' source_type_code
85815 , CASE r
85816 WHEN 1 THEN 'COST_CCID'
85817 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
85818 WHEN 3 THEN 'ADJ_COST_CCID'
85819 WHEN 4 THEN 'COST_CLEARING_CCID'
85820 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
85821 WHEN 6 THEN 'REVERSING_LINE_FLAG'
85822 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
85823 WHEN 8 THEN 'ENTERED_RAW_COST'
85824 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
85825 WHEN 10 THEN 'ACCT_RAW_COST'
85826 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
85827 WHEN 12 THEN 'EXCHANGE_RATE'
85828 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
85829 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
85830 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
85831 WHEN 16 THEN 'LINE_NUMBER'
85832 WHEN 17 THEN 'LINE_TYPE'
85833 WHEN 18 THEN 'LINE_NUM_REVERSED'
85834
85835 ELSE null
85836 END source_code
85837 , CASE r
85838 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
85839 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
85840 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
85841 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
85842 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
85843 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
85844 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
85845 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
85846 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
85847 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
85848 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
85849 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
85853 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
85850 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
85851 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
85852 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
85854 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
85855 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
85856
85857 ELSE null
85858 END source_value
85859 , CASE r
85860 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
85861 103371
85862 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
85863 ,'ALLOW_OVERRIDE_CCID_FLAG'
85864 ,'S'
85865 ,275)
85866 WHEN 17 THEN fvl34.meaning
85867
85868 ELSE null
85869 END source_meaning
85870 FROM xla_events_gt xet
85871 , PA_XLA_CDL_LINES_V l1
85872 , fnd_lookup_values fvl34
85873 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
85874 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
85875 AND xet.event_class_code = C_EVENT_CLASS_CODE
85876 AND l1.event_id = xet.event_id
85877 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
85878 AND fvl34.lookup_code(+) = l1.LINE_TYPE
85879 AND fvl34.view_application_id(+) = 275
85880 AND fvl34.language(+) = USERENV('LANG')
85881
85882 )
85883 ;
85884 --
85885 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
85886
85887 trace
85888 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
85889 ,p_level => C_LEVEL_STATEMENT
85890 ,p_module => l_log_module);
85891
85892 END IF;
85893
85894
85895 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
85896 trace
85897 (p_msg => 'END of insert_sources_131'
85898 ,p_level => C_LEVEL_PROCEDURE
85899 ,p_module => l_log_module);
85900 END IF;
85901 EXCEPTION
85902 WHEN xla_exceptions_pkg.application_exception THEN
85903 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
85904 trace
85905 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
85906 ,p_level => C_LEVEL_EXCEPTION
85907 ,p_module => l_log_module);
85908 END IF;
85909 RAISE;
85910 WHEN OTHERS THEN
85911 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
85912 trace
85913 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
85914 ,p_level => C_LEVEL_EXCEPTION
85915 ,p_module => l_log_module);
85916 END IF;
85917 xla_exceptions_pkg.raise_message
85918 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_131');
85919 END insert_sources_131;
85920 --
85921
85922 ---------------------------------------
85923 --
85924 -- PRIVATE FUNCTION
85925 -- EventClass_131
85926 --
85927 ----------------------------------------
85928 --
85929 FUNCTION EventClass_131
85930 (p_application_id IN NUMBER
85931 ,p_base_ledger_id IN NUMBER
85932 ,p_target_ledger_id IN NUMBER
85933 ,p_language IN VARCHAR2
85934 ,p_currency_code IN VARCHAR2
85935 ,p_sla_ledger_id IN NUMBER
85936 ,p_pad_start_date IN DATE
85937 ,p_pad_end_date IN DATE
85938 ,p_primary_ledger_id IN NUMBER)
85939 RETURN BOOLEAN IS
85940 --
85941 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ_ALL';
85942 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ADJ';
85943
85944 l_calculate_acctd_flag VARCHAR2(1) :='N';
85945 l_calculate_g_l_flag VARCHAR2(1) :='N';
85946 --
85947 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85948 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85949 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
85950 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85951 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85952 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
85953 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
85954 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85955 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85956 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85957 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85958 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85959 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85960 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
85961 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85962 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85963 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85964 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
85965 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85966 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85967 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85968 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
85969 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
85970 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
85971
85975 l_last_event_id NUMBER;
85972 l_event_id NUMBER;
85973 l_previous_event_id NUMBER;
85974 l_first_event_id NUMBER;
85976
85977 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
85978 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
85979 --
85980 --
85981 l_result BOOLEAN := TRUE;
85982 l_rows NUMBER := 1000;
85983 l_event_type_name VARCHAR2(80) := 'All';
85984 l_event_class_name VARCHAR2(80) := 'Work in Process Cost Adjustment';
85985 l_description VARCHAR2(4000);
85986 l_transaction_reversal NUMBER;
85987 l_ae_header_id NUMBER;
85988 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
85989 l_log_module VARCHAR2(240);
85990 --
85991 l_acct_reversal_source VARCHAR2(30);
85992 l_trx_reversal_source VARCHAR2(30);
85993
85994 l_continue_with_lines BOOLEAN := TRUE;
85995 --
85996 l_acc_rev_gl_date_source DATE; -- 4262811
85997 --
85998 type t_array_event_id is table of number index by binary_integer;
85999
86000 l_rec_array_event t_rec_array_event;
86001 l_null_rec_array_event t_rec_array_event;
86002 l_array_ae_header_id xla_number_array_type;
86003 l_actual_flag VARCHAR2(1) := NULL;
86004 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
86005 l_balance_type_code VARCHAR2(1) :=NULL;
86006 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
86007
86008 --
86009 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
86010 --
86011
86012 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
86013 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
86014
86015 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
86016 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
86017 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
86018 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
86019 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
86020 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
86021 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
86022 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
86023 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
86024 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
86025 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
86026 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
86027 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
86028 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
86029 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
86030 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
86031 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
86032 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
86033
86034 l_array_source_32 t_array_source_32;
86035 l_array_source_87 t_array_source_87;
86036
86037 l_array_source_3 t_array_source_3;
86038 l_array_source_4 t_array_source_4;
86039 l_array_source_5 t_array_source_5;
86040 l_array_source_6 t_array_source_6;
86041 l_array_source_7 t_array_source_7;
86042 l_array_source_22 t_array_source_22;
86043 l_array_source_23 t_array_source_23;
86044 l_array_source_24 t_array_source_24;
86045 l_array_source_25 t_array_source_25;
86046 l_array_source_26 t_array_source_26;
86047 l_array_source_27 t_array_source_27;
86048 l_array_source_28 t_array_source_28;
86049 l_array_source_29 t_array_source_29;
86050 l_array_source_30 t_array_source_30;
86051 l_array_source_31 t_array_source_31;
86052 l_array_source_33 t_array_source_33;
86053 l_array_source_34 t_array_source_34;
86054 l_array_source_34_meaning t_array_lookup_meaning;
86055 l_array_source_35 t_array_source_35;
86056
86057 --
86058 CURSOR header_cur
86059 IS
86060 SELECT /*+ leading(xet) cardinality(xet,1) */
86061 -- Event Class Code: WIP_COST_ADJ
86062 xet.entity_id
86063 ,xet.legal_entity_id
86064 ,xet.entity_code
86065 ,xet.transaction_number
86066 ,xet.event_id
86067 ,xet.event_class_code
86068 ,xet.event_type_code
86069 ,xet.event_number
86070 ,xet.event_date
86071 ,xet.transaction_date
86072 ,xet.reference_num_1
86073 ,xet.reference_num_2
86074 ,xet.reference_num_3
86075 ,xet.reference_num_4
86076 ,xet.reference_char_1
86077 ,xet.reference_char_2
86078 ,xet.reference_char_3
86079 ,xet.reference_char_4
86080 ,xet.reference_date_1
86081 ,xet.reference_date_2
86082 ,xet.reference_date_3
86083 ,xet.reference_date_4
86084 ,xet.event_created_by
86085 ,xet.budgetary_control_flag
86086 , h2.EXPENDITURE_ITEM_ID source_32
86087 , h2.GL_DATE source_87
86088 FROM xla_events_gt xet
86089 , PA_XLA_EXP_HEADER_V h2
86090 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
86094 ORDER BY event_id
86091 and xet.event_class_code = C_EVENT_CLASS_CODE
86092 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
86093
86095 ;
86096
86097
86098 --
86099 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
86100 IS
86101 SELECT /*+ leading(xet) cardinality(xet,1) */
86102 -- Event Class Code: WIP_COST_ADJ
86103 xet.entity_id
86104 ,xet.legal_entity_id
86105 ,xet.entity_code
86106 ,xet.transaction_number
86107 ,xet.event_id
86108 ,xet.event_class_code
86109 ,xet.event_type_code
86110 ,xet.event_number
86111 ,xet.event_date
86112 ,xet.transaction_date
86113 ,xet.reference_num_1
86114 ,xet.reference_num_2
86115 ,xet.reference_num_3
86116 ,xet.reference_num_4
86117 ,xet.reference_char_1
86118 ,xet.reference_char_2
86119 ,xet.reference_char_3
86120 ,xet.reference_char_4
86121 ,xet.reference_date_1
86122 ,xet.reference_date_2
86123 ,xet.reference_date_3
86124 ,xet.reference_date_4
86125 ,xet.event_created_by
86126 ,xet.budgetary_control_flag
86127 , l1.LINE_NUMBER
86128 , l1.COST_CCID source_3
86129 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
86130 , l1.ADJ_COST_CCID source_5
86131 , l1.COST_CLEARING_CCID source_6
86132 , l1.ADJ_COST_CLEARING_CCID source_7
86133 , l1.REVERSING_LINE_FLAG source_22
86134 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
86135 , l1.ENTERED_RAW_COST source_24
86136 , l1.ENTERED_CURRENCY_CODE source_25
86137 , l1.ACCT_RAW_COST source_26
86138 , l1.EXCHANGE_RATE_DATE source_27
86139 , l1.EXCHANGE_RATE source_28
86140 , l1.EXCHANGE_RATE_TYPE source_29
86141 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
86142 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
86143 , l1.LINE_NUMBER source_33
86144 , l1.LINE_TYPE source_34
86145 , fvl34.meaning source_34_meaning
86146 , l1.LINE_NUM_REVERSED source_35
86147 FROM xla_events_gt xet
86148 , PA_XLA_CDL_LINES_V l1
86149 , fnd_lookup_values fvl34
86150 WHERE xet.event_id between x_first_event_id and x_last_event_id
86151 and xet.event_date between p_pad_start_date and p_pad_end_date
86152 and xet.event_class_code = C_EVENT_CLASS_CODE
86153 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
86154 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
86155 AND fvl34.lookup_code(+) = l1.LINE_TYPE
86156 AND fvl34.view_application_id(+) = 275
86157 AND fvl34.language(+) = USERENV('LANG')
86158 ;
86159
86160 --
86161 BEGIN
86162 IF g_log_enabled THEN
86163 l_log_module := C_DEFAULT_MODULE||'.EventClass_131';
86164 END IF;
86165 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86166 trace
86167 (p_msg => 'BEGIN of EventClass_131'
86168 ,p_level => C_LEVEL_PROCEDURE
86169 ,p_module => l_log_module);
86170 END IF;
86171
86172 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86173 trace
86174 (p_msg => 'p_application_id = '||p_application_id||
86175 ' - p_base_ledger_id = '||p_base_ledger_id||
86176 ' - p_target_ledger_id = '||p_target_ledger_id||
86177 ' - p_language = '||p_language||
86178 ' - p_currency_code = '||p_currency_code||
86179 ' - p_sla_ledger_id = '||p_sla_ledger_id
86180 ,p_level => C_LEVEL_STATEMENT
86181 ,p_module => l_log_module);
86182 END IF;
86183 --
86184 -- initialze arrays
86185 --
86186 g_array_event.DELETE;
86187 l_rec_array_event := l_null_rec_array_event;
86188 --
86189 --------------------------------------
86190 -- 4262811 Initialze MPA Line Number
86191 --------------------------------------
86192 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
86193
86194 --
86195
86196 --
86197 OPEN header_cur;
86198 --
86199 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86200 trace
86201 (p_msg => 'SQL - FETCH header_cur'
86202 ,p_level => C_LEVEL_STATEMENT
86203 ,p_module => l_log_module);
86204 END IF;
86205 --
86206 LOOP
86207 FETCH header_cur BULK COLLECT INTO
86208 l_array_entity_id
86209 , l_array_legal_entity_id
86210 , l_array_entity_code
86211 , l_array_transaction_num
86212 , l_array_event_id
86213 , l_array_class_code
86214 , l_array_event_type
86215 , l_array_event_number
86216 , l_array_event_date
86217 , l_array_transaction_date
86218 , l_array_reference_num_1
86219 , l_array_reference_num_2
86220 , l_array_reference_num_3
86221 , l_array_reference_num_4
86222 , l_array_reference_char_1
86223 , l_array_reference_char_2
86224 , l_array_reference_char_3
86225 , l_array_reference_char_4
86226 , l_array_reference_date_1
86227 , l_array_reference_date_2
86228 , l_array_reference_date_3
86229 , l_array_reference_date_4
86230 , l_array_event_created_by
86231 , l_array_budgetary_control_flag
86232 , l_array_source_32
86233 , l_array_source_87
86234 LIMIT l_rows;
86235 --
86236 IF (C_LEVEL_EVENT >= g_log_level) THEN
86237 trace
86238 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
86239 ,p_level => C_LEVEL_EVENT
86240 ,p_module => l_log_module);
86241 END IF;
86242 --
86243 EXIT WHEN l_array_entity_id.COUNT = 0;
86244
86245 -- initialize arrays
86246 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
86247 XLA_AE_LINES_PKG.g_rec_lines := NULL;
86248
86249 --
86250 -- Bug 4458708
86251 --
86255 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
86252 XLA_AE_LINES_PKG.g_LineNumber := 0;
86253
86254
86256 g_last_hdr_idx := l_array_event_id.LAST;
86257 --
86258 -- loop for the headers. Each iteration is for each header extract row
86259 -- fetched in header cursor
86260 --
86261 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
86262
86263 --
86264 -- set event info as cache for other routines to refer event attributes
86265 --
86266 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
86267 (p_application_id => p_application_id
86268 ,p_primary_ledger_id => p_primary_ledger_id
86269 ,p_base_ledger_id => p_base_ledger_id
86270 ,p_target_ledger_id => p_target_ledger_id
86271 ,p_entity_id => l_array_entity_id(hdr_idx)
86272 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
86273 ,p_entity_code => l_array_entity_code(hdr_idx)
86274 ,p_transaction_num => l_array_transaction_num(hdr_idx)
86275 ,p_event_id => l_array_event_id(hdr_idx)
86276 ,p_event_class_code => l_array_class_code(hdr_idx)
86277 ,p_event_type_code => l_array_event_type(hdr_idx)
86278 ,p_event_number => l_array_event_number(hdr_idx)
86279 ,p_event_date => l_array_event_date(hdr_idx)
86280 ,p_transaction_date => l_array_transaction_date(hdr_idx)
86281 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
86282 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
86283 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
86284 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
86285 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
86286 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
86287 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
86288 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
86289 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
86290 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
86291 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
86292 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
86293 ,p_event_created_by => l_array_event_created_by(hdr_idx)
86294 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
86295
86296 --
86297 -- set the status of entry to C_VALID (0)
86298 --
86299 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
86300
86301 --
86302 -- initialize a row for ae header
86303 --
86304 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
86305
86306 l_event_id := l_array_event_id(hdr_idx);
86307
86308 --
86309 -- storing the hdr_idx for event. May be used by line cursor.
86310 --
86311 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
86312
86313 --
86314 -- store sources from header extract. This can be improved to
86315 -- store only those sources from header extract that may be used in lines
86316 --
86317
86318 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
86319 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
86320
86321 --
86322 -- initilaize the status of ae headers for diffrent balance types
86323 -- the status is initialised to C_NOT_CREATED (2)
86324 --
86325 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
86326 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
86327 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
86328
86329 --
86330 -- call api to validate and store accounting attributes for header
86331 --
86332
86333 ------------------------------------------------------------
86334 -- Accrual Reversal : to get date for Standard Source (NONE)
86335 ------------------------------------------------------------
86336 l_acc_rev_gl_date_source := NULL;
86337
86338 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
86339 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
86340
86341
86342 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
86343
86344 XLA_AE_HEADER_PKG.SetJeCategoryName;
86345
86346 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
86347 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
86348 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
86349 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
86350 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
86351
86352
86353 -- No header level analytical criteria
86354
86355 --
86356 --accounting attribute enhancement, bug 3612931
86357 --
86358 l_trx_reversal_source := SUBSTR(NULL, 1,30);
86359
86360 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
86361 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
86362
86363 xla_accounting_err_pkg.build_message
86364 (p_appli_s_name => 'XLA'
86365 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
86366 ,p_token_1 => 'ACCT_ATTR_NAME'
86367 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
86368 ,p_token_2 => 'PRODUCT_NAME'
86369 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
86370 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
86374 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
86371 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
86372 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
86373
86375 --
86376 -- following sets the accounting attributes needed to reverse
86377 -- accounting for a distributeion
86378 --
86379 xla_ae_lines_pkg.SetTrxReversalAttrs
86380 (p_event_id => l_event_id
86381 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
86382 ,p_trx_reversal_source => l_trx_reversal_source);
86383
86384 END IF;
86385
86386
86387 ----------------------------------------------------------------
86388 -- 4262811 - update the header statuses to invalid in need be
86389 ----------------------------------------------------------------
86390 --
86391 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
86392
86393
86394 -----------------------------------------------
86395 -- No accrual reversal for the event class/type
86396 -----------------------------------------------
86397 ----------------------------------------------------------------
86398
86399 --
86400 -- this ends the header loop iteration for one bulk fetch
86401 --
86402 END LOOP;
86403
86404 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
86405 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
86406
86407 --
86408 -- insert dummy rows into lines gt table that were created due to
86409 -- transaction reversals
86410 --
86411 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
86412 l_result := XLA_AE_LINES_PKG.InsertLines;
86413 END IF;
86414
86415 --
86416 -- reset the temp_line_num for each set of events fetched from header
86417 -- cursor rather than doing it for each new event in line cursor
86418 -- Bug 3939231
86419 --
86420 xla_ae_lines_pkg.g_temp_line_num := 0;
86421
86422
86423
86424 --
86425 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
86426 --
86427 --
86428 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86429
86430 trace
86431 (p_msg => 'SQL - FETCH line_cur'
86432 ,p_level => C_LEVEL_STATEMENT
86433 ,p_module => l_log_module);
86434
86435 END IF;
86436 --
86437 --
86438 LOOP
86439 --
86440 FETCH line_cur BULK COLLECT INTO
86441 l_array_entity_id
86442 , l_array_legal_entity_id
86443 , l_array_entity_code
86444 , l_array_transaction_num
86445 , l_array_event_id
86446 , l_array_class_code
86447 , l_array_event_type
86448 , l_array_event_number
86449 , l_array_event_date
86450 , l_array_transaction_date
86451 , l_array_reference_num_1
86452 , l_array_reference_num_2
86453 , l_array_reference_num_3
86454 , l_array_reference_num_4
86455 , l_array_reference_char_1
86456 , l_array_reference_char_2
86457 , l_array_reference_char_3
86458 , l_array_reference_char_4
86459 , l_array_reference_date_1
86460 , l_array_reference_date_2
86461 , l_array_reference_date_3
86462 , l_array_reference_date_4
86463 , l_array_event_created_by
86464 , l_array_budgetary_control_flag
86465 , l_array_extract_line_num
86466 , l_array_source_3
86467 , l_array_source_4
86468 , l_array_source_5
86469 , l_array_source_6
86470 , l_array_source_7
86471 , l_array_source_22
86472 , l_array_source_23
86473 , l_array_source_24
86474 , l_array_source_25
86475 , l_array_source_26
86476 , l_array_source_27
86477 , l_array_source_28
86478 , l_array_source_29
86479 , l_array_source_30
86480 , l_array_source_31
86481 , l_array_source_33
86482 , l_array_source_34
86483 , l_array_source_34_meaning
86484 , l_array_source_35
86485 LIMIT l_rows;
86486
86487 --
86488 IF (C_LEVEL_EVENT >= g_log_level) THEN
86489 trace
86490 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
86491 ,p_level => C_LEVEL_EVENT
86492 ,p_module => l_log_module);
86493 END IF;
86494 --
86495 EXIT WHEN l_array_entity_id.count = 0;
86496
86497 XLA_AE_LINES_PKG.g_rec_lines := null;
86498
86499 --
86500 -- Bug 4458708
86501 --
86502 XLA_AE_LINES_PKG.g_LineNumber := 0;
86503 --
86504 --
86505
86506 FOR Idx IN 1..l_array_event_id.count LOOP
86507 --
86508 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
86509 --
86510 l_event_id := l_array_event_id(idx); -- 5648433
86511
86512 --
86513 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
86514 --
86515
86516 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
86517 (g_array_event(l_event_id).array_value_num('header_index'))
86518 ,'N'
86519 ) <> 'Y'
86520 THEN
86521 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86522 trace
86523 (p_msg => 'Trancaction revesal option is not Y '
86524 ,p_level => C_LEVEL_STATEMENT
86525 ,p_module => l_log_module);
86526 END IF;
86527
86528 --
86529 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
86530 --
86531 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
86532 --
86536 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
86533 -- set event info as cache for other routines to refer event attributes
86534 --
86535
86537 l_previous_event_id := l_event_id;
86538
86539 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
86540 (p_application_id => p_application_id
86541 ,p_primary_ledger_id => p_primary_ledger_id
86542 ,p_base_ledger_id => p_base_ledger_id
86543 ,p_target_ledger_id => p_target_ledger_id
86544 ,p_entity_id => l_array_entity_id(Idx)
86545 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
86546 ,p_entity_code => l_array_entity_code(Idx)
86547 ,p_transaction_num => l_array_transaction_num(Idx)
86548 ,p_event_id => l_array_event_id(Idx)
86549 ,p_event_class_code => l_array_class_code(Idx)
86550 ,p_event_type_code => l_array_event_type(Idx)
86551 ,p_event_number => l_array_event_number(Idx)
86552 ,p_event_date => l_array_event_date(Idx)
86553 ,p_transaction_date => l_array_transaction_date(Idx)
86554 ,p_reference_num_1 => l_array_reference_num_1(Idx)
86555 ,p_reference_num_2 => l_array_reference_num_2(Idx)
86556 ,p_reference_num_3 => l_array_reference_num_3(Idx)
86557 ,p_reference_num_4 => l_array_reference_num_4(Idx)
86558 ,p_reference_char_1 => l_array_reference_char_1(Idx)
86559 ,p_reference_char_2 => l_array_reference_char_2(Idx)
86560 ,p_reference_char_3 => l_array_reference_char_3(Idx)
86561 ,p_reference_char_4 => l_array_reference_char_4(Idx)
86562 ,p_reference_date_1 => l_array_reference_date_1(Idx)
86563 ,p_reference_date_2 => l_array_reference_date_2(Idx)
86564 ,p_reference_date_3 => l_array_reference_date_3(Idx)
86565 ,p_reference_date_4 => l_array_reference_date_4(Idx)
86566 ,p_event_created_by => l_array_event_created_by(Idx)
86567 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
86568 --
86569 END IF;
86570
86571
86572
86573 --
86574 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
86575
86576 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
86577
86578 IF l_continue_with_lines THEN
86579 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
86580 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
86581
86582 xla_accounting_err_pkg.build_message
86583 (p_appli_s_name => 'XLA'
86584 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
86585 ,p_token_1 => 'LINE_NUMBER'
86586 ,p_value_1 => l_array_extract_line_num(Idx)
86587 ,p_token_2 => 'PRODUCT_NAME'
86588 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
86589 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
86590 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
86591 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
86592
86593 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
86594 --
86595 -- following sets the accounting attributes needed to reverse
86596 -- accounting for a distributeion
86597 --
86598
86599 --
86600 -- 5217187
86601 --
86602 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
86603 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
86604 g_array_event(l_event_id).array_value_num('header_index'));
86605 --
86606 --
86607
86608 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
86609 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
86610 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
86611 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
86612 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
86613 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
86614 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
86615 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
86616 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
86617 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
86618 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
86619 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
86620 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
86621 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
86622 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
86623 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
86624 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
86625 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
86626 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
86627 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
86628 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
86629 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
86630 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
86631 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
86632 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
86633 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
86637 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
86634 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
86635 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
86636 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
86638 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
86639 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
86640 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
86641 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
86642 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
86643 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
86644 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
86645 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
86646 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
86647 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
86648 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
86649 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
86650 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
86651 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
86652 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
86653 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
86654 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
86655 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
86656
86657
86658 xla_ae_lines_pkg.SetAcctReversalAttrs
86659 (p_event_id => l_event_id
86660 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
86661 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86662 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
86663 END IF;
86664
86665 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
86666 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
86667
86668 --
86669 AcctLineType_52 (
86670 p_application_id => p_application_id
86671 ,p_event_id => l_event_id
86672 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86673 ,p_calculate_g_l_flag => l_calculate_g_l_flag
86674 ,p_actual_flag => l_actual_flag
86675 ,p_balance_type_code => l_balance_type_code
86676 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
86677
86678 , p_source_3 => l_array_source_3(Idx)
86679 , p_source_4 => l_array_source_4(Idx)
86680 , p_source_5 => l_array_source_5(Idx)
86681 , p_source_6 => l_array_source_6(Idx)
86682 , p_source_22 => l_array_source_22(Idx)
86683 , p_source_23 => l_array_source_23(Idx)
86684 , p_source_24 => l_array_source_24(Idx)
86685 , p_source_25 => l_array_source_25(Idx)
86686 , p_source_26 => l_array_source_26(Idx)
86687 , p_source_27 => l_array_source_27(Idx)
86688 , p_source_28 => l_array_source_28(Idx)
86689 , p_source_29 => l_array_source_29(Idx)
86690 , p_source_30 => l_array_source_30(Idx)
86691 , p_source_31 => l_array_source_31(Idx)
86692 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
86693 , p_source_33 => l_array_source_33(Idx)
86694 , p_source_34 => l_array_source_34(Idx)
86695 , p_source_34_meaning => l_array_source_34_meaning(Idx)
86696 , p_source_35 => l_array_source_35(Idx)
86697 );
86698 If(l_balance_type_code = 'A') THEN
86699 l_actual_gain_loss_ref := l_gain_or_loss_ref;
86700 END IF;
86701
86702 --
86703
86704
86705 --
86706 AcctLineType_62 (
86707 p_application_id => p_application_id
86708 ,p_event_id => l_event_id
86709 ,p_calculate_acctd_flag => l_calculate_acctd_flag
86710 ,p_calculate_g_l_flag => l_calculate_g_l_flag
86711 ,p_actual_flag => l_actual_flag
86712 ,p_balance_type_code => l_balance_type_code
86713 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
86714
86715 , p_source_3 => l_array_source_3(Idx)
86716 , p_source_4 => l_array_source_4(Idx)
86717 , p_source_6 => l_array_source_6(Idx)
86718 , p_source_7 => l_array_source_7(Idx)
86719 , p_source_22 => l_array_source_22(Idx)
86720 , p_source_23 => l_array_source_23(Idx)
86721 , p_source_24 => l_array_source_24(Idx)
86722 , p_source_25 => l_array_source_25(Idx)
86723 , p_source_26 => l_array_source_26(Idx)
86724 , p_source_27 => l_array_source_27(Idx)
86725 , p_source_28 => l_array_source_28(Idx)
86726 , p_source_29 => l_array_source_29(Idx)
86727 , p_source_30 => l_array_source_30(Idx)
86728 , p_source_31 => l_array_source_31(Idx)
86729 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
86730 , p_source_33 => l_array_source_33(Idx)
86731 , p_source_34 => l_array_source_34(Idx)
86732 , p_source_34_meaning => l_array_source_34_meaning(Idx)
86733 , p_source_35 => l_array_source_35(Idx)
86734 );
86735 If(l_balance_type_code = 'A') THEN
86736 l_actual_gain_loss_ref := l_gain_or_loss_ref;
86737 END IF;
86738
86739 --
86740
86741 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
86742 -- or secondary ledger that has different currency with primary
86743 -- or alc that is calculated by sla
86744 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
86745 (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'))
86746
86747 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
86748 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
86749 AND (l_actual_flag = 'A')) THEN
86750 XLA_AE_LINES_PKG.CreateGainOrLossLines(
86754 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
86751 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
86752 ,p_application_id => p_application_id
86753 ,p_amb_context_code => 'DEFAULT'
86755 ,p_event_class_code => C_EVENT_CLASS_CODE
86756 ,p_event_type_code => C_EVENT_TYPE_CODE
86757
86758 ,p_gain_ccid => -1
86759 ,p_loss_ccid => -1
86760
86761 ,p_actual_flag => l_actual_flag
86762 ,p_enc_flag => null
86763 ,p_actual_g_l_ref => l_actual_gain_loss_ref
86764 ,p_enc_g_l_ref => null
86765 );
86766 END IF;
86767 END IF;
86768 END IF;
86769
86770 ELSE
86771 --
86772 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
86773 --
86774 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86775 trace
86776 (p_msg => 'Trancaction revesal option is Y'
86777 ,p_level => C_LEVEL_STATEMENT
86778 ,p_module => l_log_module);
86779 END IF;
86780 END IF;
86781
86782 END LOOP;
86783 l_result := XLA_AE_LINES_PKG.InsertLines ;
86784 end loop;
86785 close line_cur;
86786
86787
86788 --
86789 -- insert headers into xla_ae_headers_gt table
86790 --
86791 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
86792
86793 -- insert into errors table here.
86794
86795 END LOOP;
86796
86797 --
86798 -- 4865292
86799 --
86800 -- Compare g_hdr_extract_count with event count in
86801 -- CreateHeadersAndLines.
86802 --
86803 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
86804
86805 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86806 trace (p_msg => '# rows extracted from header extract objects '
86807 || ' (running total): '
86808 || g_hdr_extract_count
86809 ,p_level => C_LEVEL_STATEMENT
86810 ,p_module => l_log_module);
86811 END IF;
86812
86813 CLOSE header_cur;
86814 --
86815
86816 --
86817 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86818 trace
86819 (p_msg => 'END of EventClass_131'
86820 ,p_level => C_LEVEL_PROCEDURE
86821 ,p_module => l_log_module);
86822 END IF;
86823 --
86824 RETURN l_result;
86825 EXCEPTION
86826 WHEN xla_exceptions_pkg.application_exception THEN
86827
86828 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
86829
86830
86831 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
86832
86833 RAISE;
86834 WHEN OTHERS THEN
86835 xla_exceptions_pkg.raise_message
86836 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_131');
86837 END EventClass_131;
86838 --
86839
86840 ---------------------------------------
86841 --
86842 -- PRIVATE PROCEDURE
86843 -- insert_sources_132
86844 --
86845 ----------------------------------------
86846 --
86847 PROCEDURE insert_sources_132(
86848 p_target_ledger_id IN NUMBER
86849 , p_language IN VARCHAR2
86850 , p_sla_ledger_id IN NUMBER
86851 , p_pad_start_date IN DATE
86852 , p_pad_end_date IN DATE
86853 )
86854 IS
86855
86856 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ALL';
86857 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST';
86858 p_apps_owner VARCHAR2(30);
86859 l_log_module VARCHAR2(240);
86860 BEGIN
86861 IF g_log_enabled THEN
86862 l_log_module := C_DEFAULT_MODULE||'.insert_sources_132';
86863 END IF;
86864 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
86865
86866 trace
86867 (p_msg => 'BEGIN of insert_sources_132'
86868 ,p_level => C_LEVEL_PROCEDURE
86869 ,p_module => l_log_module);
86870
86871 END IF;
86872
86873 -- select APPS owner
86874 SELECT oracle_username
86875 INTO p_apps_owner
86876 FROM fnd_oracle_userid
86877 WHERE read_only_flag = 'U'
86878 ;
86879
86880 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86881 trace
86882 (p_msg => 'p_target_ledger_id = '||p_target_ledger_id||
86883 ' - p_language = '||p_language||
86884 ' - p_sla_ledger_id = '||p_sla_ledger_id ||
86885 ' - p_pad_start_date = '||TO_CHAR(p_pad_start_date)||
86886 ' - p_pad_end_date = '||TO_CHAR(p_pad_end_date)||
86887 ' - p_apps_owner = '||TO_CHAR(p_apps_owner)
86888 ,p_level => C_LEVEL_STATEMENT
86889 ,p_module => l_log_module);
86890 END IF;
86891
86892
86893 --
86894 INSERT INTO xla_diag_sources --hdr2
86895 (
86896 event_id
86897 , ledger_id
86898 , sla_ledger_id
86899 , description_language
86900 , object_name
86901 , object_type_code
86902 , line_number
86903 , source_application_id
86904 , source_type_code
86905 , source_code
86906 , source_value
86907 , source_meaning
86908 , created_by
86909 , creation_date
86910 , last_update_date
86911 , last_updated_by
86912 , last_update_login
86913 , program_update_date
86914 , program_application_id
86915 , program_id
86916 , request_id
86917 )
86918 SELECT
86919 event_id
86920 , p_target_ledger_id
86924 , object_type_code
86921 , p_sla_ledger_id
86922 , p_language
86923 , object_name
86925 , line_number
86926 , source_application_id
86927 , source_type_code
86928 , source_code
86929 , SUBSTR(source_value ,1,1996)
86930 , SUBSTR(source_meaning ,1,200)
86931 , xla_environment_pkg.g_Usr_Id
86932 , TRUNC(SYSDATE)
86933 , TRUNC(SYSDATE)
86934 , xla_environment_pkg.g_Usr_Id
86935 , xla_environment_pkg.g_Login_Id
86936 , TRUNC(SYSDATE)
86937 , xla_environment_pkg.g_Prog_Appl_Id
86938 , xla_environment_pkg.g_Prog_Id
86939 , xla_environment_pkg.g_Req_Id
86940 FROM (
86941 SELECT xet.event_id event_id
86942 , 0 line_number
86943 , CASE r
86944 WHEN 1 THEN 'PA_XLA_EXP_HEADER_V'
86945 WHEN 2 THEN 'PA_XLA_EXP_HEADER_V'
86946
86947 ELSE null
86948 END object_name
86949 , CASE r
86950 WHEN 1 THEN 'HEADER'
86951 WHEN 2 THEN 'HEADER'
86952
86953 ELSE null
86954 END object_type_code
86955 , CASE r
86956 WHEN 1 THEN '275'
86957 WHEN 2 THEN '275'
86958
86959 ELSE null
86960 END source_application_id
86961 , 'S' source_type_code
86962 , CASE r
86963 WHEN 1 THEN 'EXPENDITURE_ITEM_ID'
86964 WHEN 2 THEN 'GL_DATE'
86965
86966 ELSE null
86967 END source_code
86968 , CASE r
86969 WHEN 1 THEN TO_CHAR(h2.EXPENDITURE_ITEM_ID)
86970 WHEN 2 THEN TO_CHAR(h2.GL_DATE)
86971
86972 ELSE null
86973 END source_value
86974 , null source_meaning
86975 FROM xla_events_gt xet
86976 , PA_XLA_EXP_HEADER_V h2
86977 ,(select rownum r from all_objects where rownum <= 2 and owner = p_apps_owner)
86978 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
86979 AND xet.event_class_code = C_EVENT_CLASS_CODE
86980 AND h2.event_id = xet.event_id
86981
86982 )
86983 ;
86984 --
86985 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
86986
86987 trace
86988 (p_msg => 'number of header sources inserted = '||SQL%ROWCOUNT
86989 ,p_level => C_LEVEL_STATEMENT
86990 ,p_module => l_log_module);
86991
86992 END IF;
86993 --
86994
86995
86996
86997 --
86998 INSERT INTO xla_diag_sources --line2
86999 (
87000 event_id
87001 , ledger_id
87002 , sla_ledger_id
87003 , description_language
87004 , object_name
87005 , object_type_code
87006 , line_number
87007 , source_application_id
87008 , source_type_code
87009 , source_code
87010 , source_value
87011 , source_meaning
87012 , created_by
87013 , creation_date
87014 , last_update_date
87015 , last_updated_by
87016 , last_update_login
87017 , program_update_date
87018 , program_application_id
87019 , program_id
87020 , request_id
87021 )
87022 SELECT event_id
87023 , p_target_ledger_id
87024 , p_sla_ledger_id
87025 , p_language
87026 , object_name
87027 , object_type_code
87028 , line_number
87029 , source_application_id
87030 , source_type_code
87031 , source_code
87032 , SUBSTR(source_value,1,1996)
87033 , SUBSTR(source_meaning ,1,200)
87034 , xla_environment_pkg.g_Usr_Id
87035 , TRUNC(SYSDATE)
87036 , TRUNC(SYSDATE)
87037 , xla_environment_pkg.g_Usr_Id
87038 , xla_environment_pkg.g_Login_Id
87039 , TRUNC(SYSDATE)
87040 , xla_environment_pkg.g_Prog_Appl_Id
87041 , xla_environment_pkg.g_Prog_Id
87042 , xla_environment_pkg.g_Req_Id
87043 FROM (
87044 SELECT xet.event_id event_id
87045 , l1.line_number line_number
87046 , CASE r
87047 WHEN 1 THEN 'PA_XLA_CDL_LINES_V'
87048 WHEN 2 THEN 'PA_XLA_CDL_LINES_V'
87049 WHEN 3 THEN 'PA_XLA_CDL_LINES_V'
87050 WHEN 4 THEN 'PA_XLA_CDL_LINES_V'
87051 WHEN 5 THEN 'PA_XLA_CDL_LINES_V'
87052 WHEN 6 THEN 'PA_XLA_CDL_LINES_V'
87053 WHEN 7 THEN 'PA_XLA_CDL_LINES_V'
87054 WHEN 8 THEN 'PA_XLA_CDL_LINES_V'
87055 WHEN 9 THEN 'PA_XLA_CDL_LINES_V'
87056 WHEN 10 THEN 'PA_XLA_CDL_LINES_V'
87057 WHEN 11 THEN 'PA_XLA_CDL_LINES_V'
87058 WHEN 12 THEN 'PA_XLA_CDL_LINES_V'
87059 WHEN 13 THEN 'PA_XLA_CDL_LINES_V'
87060 WHEN 14 THEN 'PA_XLA_CDL_LINES_V'
87061 WHEN 15 THEN 'PA_XLA_CDL_LINES_V'
87062 WHEN 16 THEN 'PA_XLA_CDL_LINES_V'
87063 WHEN 17 THEN 'PA_XLA_CDL_LINES_V'
87064 WHEN 18 THEN 'PA_XLA_CDL_LINES_V'
87065
87066 ELSE null
87067 END object_name
87068 , CASE r
87069 WHEN 1 THEN 'LINE'
87070 WHEN 2 THEN 'LINE'
87071 WHEN 3 THEN 'LINE'
87072 WHEN 4 THEN 'LINE'
87076 WHEN 8 THEN 'LINE'
87073 WHEN 5 THEN 'LINE'
87074 WHEN 6 THEN 'LINE'
87075 WHEN 7 THEN 'LINE'
87077 WHEN 9 THEN 'LINE'
87078 WHEN 10 THEN 'LINE'
87079 WHEN 11 THEN 'LINE'
87080 WHEN 12 THEN 'LINE'
87081 WHEN 13 THEN 'LINE'
87082 WHEN 14 THEN 'LINE'
87083 WHEN 15 THEN 'LINE'
87084 WHEN 16 THEN 'LINE'
87085 WHEN 17 THEN 'LINE'
87086 WHEN 18 THEN 'LINE'
87087
87088 ELSE null
87089 END object_type_code
87090 , CASE r
87091 WHEN 1 THEN '275'
87092 WHEN 2 THEN '275'
87093 WHEN 3 THEN '275'
87094 WHEN 4 THEN '275'
87095 WHEN 5 THEN '275'
87096 WHEN 6 THEN '275'
87097 WHEN 7 THEN '275'
87098 WHEN 8 THEN '275'
87099 WHEN 9 THEN '275'
87100 WHEN 10 THEN '275'
87101 WHEN 11 THEN '275'
87102 WHEN 12 THEN '275'
87103 WHEN 13 THEN '275'
87104 WHEN 14 THEN '275'
87105 WHEN 15 THEN '275'
87106 WHEN 16 THEN '275'
87107 WHEN 17 THEN '275'
87108 WHEN 18 THEN '275'
87109
87110 ELSE null
87111 END source_application_id
87112 , 'S' source_type_code
87113 , CASE r
87114 WHEN 1 THEN 'COST_CCID'
87115 WHEN 2 THEN 'ALLOW_OVERRIDE_CCID_FLAG'
87116 WHEN 3 THEN 'ADJ_COST_CCID'
87117 WHEN 4 THEN 'COST_CLEARING_CCID'
87118 WHEN 5 THEN 'ADJ_COST_CLEARING_CCID'
87119 WHEN 6 THEN 'REVERSING_LINE_FLAG'
87120 WHEN 7 THEN 'ACTUAL_UPG_CR_ACCT_CLASS'
87121 WHEN 8 THEN 'ENTERED_RAW_COST'
87122 WHEN 9 THEN 'ENTERED_CURRENCY_CODE'
87123 WHEN 10 THEN 'ACCT_RAW_COST'
87124 WHEN 11 THEN 'EXCHANGE_RATE_DATE'
87125 WHEN 12 THEN 'EXCHANGE_RATE'
87126 WHEN 13 THEN 'EXCHANGE_RATE_TYPE'
87127 WHEN 14 THEN 'ACTUAL_UPG_DR_ACCT_CLASS'
87128 WHEN 15 THEN 'USE_ACT_UPG_ATTRIB_FLAG'
87129 WHEN 16 THEN 'LINE_NUMBER'
87130 WHEN 17 THEN 'LINE_TYPE'
87131 WHEN 18 THEN 'LINE_NUM_REVERSED'
87132
87133 ELSE null
87134 END source_code
87135 , CASE r
87136 WHEN 1 THEN TO_CHAR(l1.COST_CCID)
87137 WHEN 2 THEN TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
87138 WHEN 3 THEN TO_CHAR(l1.ADJ_COST_CCID)
87139 WHEN 4 THEN TO_CHAR(l1.COST_CLEARING_CCID)
87140 WHEN 5 THEN TO_CHAR(l1.ADJ_COST_CLEARING_CCID)
87141 WHEN 6 THEN TO_CHAR(l1.REVERSING_LINE_FLAG)
87142 WHEN 7 THEN TO_CHAR(l1.ACTUAL_UPG_CR_ACCT_CLASS)
87143 WHEN 8 THEN TO_CHAR(l1.ENTERED_RAW_COST)
87144 WHEN 9 THEN TO_CHAR(l1.ENTERED_CURRENCY_CODE)
87145 WHEN 10 THEN TO_CHAR(l1.ACCT_RAW_COST)
87146 WHEN 11 THEN TO_CHAR(l1.EXCHANGE_RATE_DATE)
87147 WHEN 12 THEN TO_CHAR(l1.EXCHANGE_RATE)
87148 WHEN 13 THEN TO_CHAR(l1.EXCHANGE_RATE_TYPE)
87149 WHEN 14 THEN TO_CHAR(l1.ACTUAL_UPG_DR_ACCT_CLASS)
87150 WHEN 15 THEN TO_CHAR(l1.USE_ACT_UPG_ATTRIB_FLAG)
87151 WHEN 16 THEN TO_CHAR(l1.LINE_NUMBER)
87152 WHEN 17 THEN TO_CHAR(l1.LINE_TYPE)
87153 WHEN 18 THEN TO_CHAR(l1.LINE_NUM_REVERSED)
87154
87155 ELSE null
87156 END source_value
87157 , CASE r
87158 WHEN 2 THEN XLA_00275_AAD_S_000004_PKG.GetMeaning(
87159 103371
87160 ,TO_CHAR(l1.ALLOW_OVERRIDE_CCID_FLAG)
87161 ,'ALLOW_OVERRIDE_CCID_FLAG'
87162 ,'S'
87163 ,275)
87164 WHEN 17 THEN fvl34.meaning
87165
87166 ELSE null
87167 END source_meaning
87168 FROM xla_events_gt xet
87169 , PA_XLA_CDL_LINES_V l1
87170 , fnd_lookup_values fvl34
87171 , (select rownum r from all_objects where rownum <= 18 and owner = p_apps_owner)
87172 WHERE xet.event_date between p_pad_start_date AND p_pad_end_date
87173 AND xet.event_class_code = C_EVENT_CLASS_CODE
87174 AND l1.event_id = xet.event_id
87175 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
87176 AND fvl34.lookup_code(+) = l1.LINE_TYPE
87177 AND fvl34.view_application_id(+) = 275
87178 AND fvl34.language(+) = USERENV('LANG')
87179
87180 )
87181 ;
87182 --
87183 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87184
87185 trace
87186 (p_msg => 'number of line sources inserted = '||SQL%ROWCOUNT
87187 ,p_level => C_LEVEL_STATEMENT
87188 ,p_module => l_log_module);
87189
87190 END IF;
87191
87192
87193 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87194 trace
87195 (p_msg => 'END of insert_sources_132'
87196 ,p_level => C_LEVEL_PROCEDURE
87197 ,p_module => l_log_module);
87198 END IF;
87199 EXCEPTION
87200 WHEN xla_exceptions_pkg.application_exception THEN
87201 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
87202 trace
87206 END IF;
87203 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
87204 ,p_level => C_LEVEL_EXCEPTION
87205 ,p_module => l_log_module);
87207 RAISE;
87208 WHEN OTHERS THEN
87209 IF (C_LEVEL_EXCEPTION >= g_log_level) THEN
87210 trace
87211 (p_msg => 'ERROR: XLA_CMP_COMPILER_ERROR = '||sqlerrm
87212 ,p_level => C_LEVEL_EXCEPTION
87213 ,p_module => l_log_module);
87214 END IF;
87215 xla_exceptions_pkg.raise_message
87216 (p_location => 'XLA_00275_AAD_S_000004_PKG.insert_sources_132');
87217 END insert_sources_132;
87218 --
87219
87220 ---------------------------------------
87221 --
87222 -- PRIVATE FUNCTION
87223 -- EventClass_132
87224 --
87225 ----------------------------------------
87226 --
87227 FUNCTION EventClass_132
87228 (p_application_id IN NUMBER
87229 ,p_base_ledger_id IN NUMBER
87230 ,p_target_ledger_id IN NUMBER
87231 ,p_language IN VARCHAR2
87232 ,p_currency_code IN VARCHAR2
87233 ,p_sla_ledger_id IN NUMBER
87234 ,p_pad_start_date IN DATE
87235 ,p_pad_end_date IN DATE
87236 ,p_primary_ledger_id IN NUMBER)
87237 RETURN BOOLEAN IS
87238 --
87239 C_EVENT_TYPE_CODE CONSTANT VARCHAR2(30) := 'WIP_COST_ALL';
87240 C_EVENT_CLASS_CODE CONSTANT VARCHAR2(30) := 'WIP_COST';
87241
87242 l_calculate_acctd_flag VARCHAR2(1) :='N';
87243 l_calculate_g_l_flag VARCHAR2(1) :='N';
87244 --
87245 l_array_legal_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87246 l_array_entity_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87247 l_array_entity_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87248 l_array_transaction_num XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87249 l_array_event_id XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87250 l_array_class_code XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87251 l_array_event_type XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87252 l_array_event_number XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87253 l_array_event_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87254 l_array_transaction_date XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87255 l_array_reference_num_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87256 l_array_reference_num_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87257 l_array_reference_num_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87258 l_array_reference_num_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Num;
87259 l_array_reference_char_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87260 l_array_reference_char_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87261 l_array_reference_char_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87262 l_array_reference_char_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_V240L;
87263 l_array_reference_date_1 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87264 l_array_reference_date_2 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87265 l_array_reference_date_3 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87266 l_array_reference_date_4 XLA_AE_JOURNAL_ENTRY_PKG.t_array_Date;
87267 l_array_event_created_by XLA_AE_JOURNAL_ENTRY_PKG.t_array_V100L;
87268 l_array_budgetary_control_flag XLA_AE_JOURNAL_ENTRY_PKG.t_array_V30L;
87269
87270 l_event_id NUMBER;
87271 l_previous_event_id NUMBER;
87272 l_first_event_id NUMBER;
87273 l_last_event_id NUMBER;
87274
87275 l_rec_acct_attrs XLA_AE_HEADER_PKG.t_rec_acct_attrs;
87276 l_rec_rev_acct_attrs XLA_AE_LINES_PKG.t_rec_acct_attrs;
87277 --
87278 --
87279 l_result BOOLEAN := TRUE;
87280 l_rows NUMBER := 1000;
87281 l_event_type_name VARCHAR2(80) := 'All';
87282 l_event_class_name VARCHAR2(80) := 'Work in Process Cost';
87283 l_description VARCHAR2(4000);
87284 l_transaction_reversal NUMBER;
87285 l_ae_header_id NUMBER;
87286 l_array_extract_line_num xla_ae_journal_entry_pkg.t_array_Num;
87287 l_log_module VARCHAR2(240);
87288 --
87289 l_acct_reversal_source VARCHAR2(30);
87290 l_trx_reversal_source VARCHAR2(30);
87291
87292 l_continue_with_lines BOOLEAN := TRUE;
87293 --
87294 l_acc_rev_gl_date_source DATE; -- 4262811
87295 --
87296 type t_array_event_id is table of number index by binary_integer;
87297
87298 l_rec_array_event t_rec_array_event;
87299 l_null_rec_array_event t_rec_array_event;
87300 l_array_ae_header_id xla_number_array_type;
87301 l_actual_flag VARCHAR2(1) := NULL;
87302 l_actual_gain_loss_ref VARCHAR2(30) := '#####';
87303 l_balance_type_code VARCHAR2(1) :=NULL;
87304 l_gain_or_loss_ref VARCHAR2(30) :=NULL;
87305
87306 --
87307 TYPE t_array_lookup_meaning IS TABLE OF fnd_lookup_values.meaning%TYPE INDEX BY BINARY_INTEGER;
87308 --
87309
87310 TYPE t_array_source_32 IS TABLE OF PA_XLA_EXP_HEADER_V.EXPENDITURE_ITEM_ID%TYPE INDEX BY BINARY_INTEGER;
87311 TYPE t_array_source_87 IS TABLE OF PA_XLA_EXP_HEADER_V.GL_DATE%TYPE INDEX BY BINARY_INTEGER;
87312
87313 TYPE t_array_source_3 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CCID%TYPE INDEX BY BINARY_INTEGER;
87314 TYPE t_array_source_4 IS TABLE OF PA_XLA_CDL_LINES_V.ALLOW_OVERRIDE_CCID_FLAG%TYPE INDEX BY BINARY_INTEGER;
87315 TYPE t_array_source_5 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CCID%TYPE INDEX BY BINARY_INTEGER;
87316 TYPE t_array_source_6 IS TABLE OF PA_XLA_CDL_LINES_V.COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
87320 TYPE t_array_source_24 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
87317 TYPE t_array_source_7 IS TABLE OF PA_XLA_CDL_LINES_V.ADJ_COST_CLEARING_CCID%TYPE INDEX BY BINARY_INTEGER;
87318 TYPE t_array_source_22 IS TABLE OF PA_XLA_CDL_LINES_V.REVERSING_LINE_FLAG%TYPE INDEX BY BINARY_INTEGER;
87319 TYPE t_array_source_23 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_CR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
87321 TYPE t_array_source_25 IS TABLE OF PA_XLA_CDL_LINES_V.ENTERED_CURRENCY_CODE%TYPE INDEX BY BINARY_INTEGER;
87322 TYPE t_array_source_26 IS TABLE OF PA_XLA_CDL_LINES_V.ACCT_RAW_COST%TYPE INDEX BY BINARY_INTEGER;
87323 TYPE t_array_source_27 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_DATE%TYPE INDEX BY BINARY_INTEGER;
87324 TYPE t_array_source_28 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE%TYPE INDEX BY BINARY_INTEGER;
87325 TYPE t_array_source_29 IS TABLE OF PA_XLA_CDL_LINES_V.EXCHANGE_RATE_TYPE%TYPE INDEX BY BINARY_INTEGER;
87326 TYPE t_array_source_30 IS TABLE OF PA_XLA_CDL_LINES_V.ACTUAL_UPG_DR_ACCT_CLASS%TYPE INDEX BY BINARY_INTEGER;
87327 TYPE t_array_source_31 IS TABLE OF PA_XLA_CDL_LINES_V.USE_ACT_UPG_ATTRIB_FLAG%TYPE INDEX BY BINARY_INTEGER;
87328 TYPE t_array_source_33 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUMBER%TYPE INDEX BY BINARY_INTEGER;
87329 TYPE t_array_source_34 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_TYPE%TYPE INDEX BY BINARY_INTEGER;
87330 TYPE t_array_source_35 IS TABLE OF PA_XLA_CDL_LINES_V.LINE_NUM_REVERSED%TYPE INDEX BY BINARY_INTEGER;
87331
87332 l_array_source_32 t_array_source_32;
87333 l_array_source_87 t_array_source_87;
87334
87335 l_array_source_3 t_array_source_3;
87336 l_array_source_4 t_array_source_4;
87337 l_array_source_5 t_array_source_5;
87338 l_array_source_6 t_array_source_6;
87339 l_array_source_7 t_array_source_7;
87340 l_array_source_22 t_array_source_22;
87341 l_array_source_23 t_array_source_23;
87342 l_array_source_24 t_array_source_24;
87343 l_array_source_25 t_array_source_25;
87344 l_array_source_26 t_array_source_26;
87345 l_array_source_27 t_array_source_27;
87346 l_array_source_28 t_array_source_28;
87347 l_array_source_29 t_array_source_29;
87348 l_array_source_30 t_array_source_30;
87349 l_array_source_31 t_array_source_31;
87350 l_array_source_33 t_array_source_33;
87351 l_array_source_34 t_array_source_34;
87352 l_array_source_34_meaning t_array_lookup_meaning;
87353 l_array_source_35 t_array_source_35;
87354
87355 --
87356 CURSOR header_cur
87357 IS
87358 SELECT /*+ leading(xet) cardinality(xet,1) */
87359 -- Event Class Code: WIP_COST
87360 xet.entity_id
87361 ,xet.legal_entity_id
87362 ,xet.entity_code
87363 ,xet.transaction_number
87364 ,xet.event_id
87365 ,xet.event_class_code
87366 ,xet.event_type_code
87367 ,xet.event_number
87368 ,xet.event_date
87369 ,xet.transaction_date
87370 ,xet.reference_num_1
87371 ,xet.reference_num_2
87372 ,xet.reference_num_3
87373 ,xet.reference_num_4
87374 ,xet.reference_char_1
87375 ,xet.reference_char_2
87376 ,xet.reference_char_3
87377 ,xet.reference_char_4
87378 ,xet.reference_date_1
87379 ,xet.reference_date_2
87380 ,xet.reference_date_3
87381 ,xet.reference_date_4
87382 ,xet.event_created_by
87383 ,xet.budgetary_control_flag
87384 , h2.EXPENDITURE_ITEM_ID source_32
87385 , h2.GL_DATE source_87
87386 FROM xla_events_gt xet
87387 , PA_XLA_EXP_HEADER_V h2
87388 WHERE xet.event_date between p_pad_start_date and p_pad_end_date
87389 and xet.event_class_code = C_EVENT_CLASS_CODE
87390 and xet.event_status_code <> 'N' AND h2.event_id = xet.event_id
87391
87392 ORDER BY event_id
87393 ;
87394
87395
87396 --
87397 CURSOR line_cur (x_first_event_id in number, x_last_event_id in number)
87398 IS
87399 SELECT /*+ leading(xet) cardinality(xet,1) */
87400 -- Event Class Code: WIP_COST
87401 xet.entity_id
87402 ,xet.legal_entity_id
87403 ,xet.entity_code
87404 ,xet.transaction_number
87405 ,xet.event_id
87406 ,xet.event_class_code
87407 ,xet.event_type_code
87408 ,xet.event_number
87409 ,xet.event_date
87410 ,xet.transaction_date
87411 ,xet.reference_num_1
87412 ,xet.reference_num_2
87413 ,xet.reference_num_3
87414 ,xet.reference_num_4
87415 ,xet.reference_char_1
87416 ,xet.reference_char_2
87417 ,xet.reference_char_3
87418 ,xet.reference_char_4
87419 ,xet.reference_date_1
87420 ,xet.reference_date_2
87421 ,xet.reference_date_3
87422 ,xet.reference_date_4
87423 ,xet.event_created_by
87424 ,xet.budgetary_control_flag
87425 , l1.LINE_NUMBER
87426 , l1.COST_CCID source_3
87427 , l1.ALLOW_OVERRIDE_CCID_FLAG source_4
87428 , l1.ADJ_COST_CCID source_5
87429 , l1.COST_CLEARING_CCID source_6
87430 , l1.ADJ_COST_CLEARING_CCID source_7
87431 , l1.REVERSING_LINE_FLAG source_22
87432 , l1.ACTUAL_UPG_CR_ACCT_CLASS source_23
87433 , l1.ENTERED_RAW_COST source_24
87434 , l1.ENTERED_CURRENCY_CODE source_25
87435 , l1.ACCT_RAW_COST source_26
87436 , l1.EXCHANGE_RATE_DATE source_27
87437 , l1.EXCHANGE_RATE source_28
87438 , l1.EXCHANGE_RATE_TYPE source_29
87439 , l1.ACTUAL_UPG_DR_ACCT_CLASS source_30
87440 , l1.USE_ACT_UPG_ATTRIB_FLAG source_31
87441 , l1.LINE_NUMBER source_33
87442 , l1.LINE_TYPE source_34
87443 , fvl34.meaning source_34_meaning
87444 , l1.LINE_NUM_REVERSED source_35
87445 FROM xla_events_gt xet
87446 , PA_XLA_CDL_LINES_V l1
87447 , fnd_lookup_values fvl34
87448 WHERE xet.event_id between x_first_event_id and x_last_event_id
87449 and xet.event_date between p_pad_start_date and p_pad_end_date
87450 and xet.event_class_code = C_EVENT_CLASS_CODE
87454 AND fvl34.view_application_id(+) = 275
87451 and xet.event_status_code <> 'N' AND l1.event_id = xet.event_id
87452 AND fvl34.lookup_type(+) = 'COST DISTRIBUTION LINE TYPE'
87453 AND fvl34.lookup_code(+) = l1.LINE_TYPE
87455 AND fvl34.language(+) = USERENV('LANG')
87456 ;
87457
87458 --
87459 BEGIN
87460 IF g_log_enabled THEN
87461 l_log_module := C_DEFAULT_MODULE||'.EventClass_132';
87462 END IF;
87463 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
87464 trace
87465 (p_msg => 'BEGIN of EventClass_132'
87466 ,p_level => C_LEVEL_PROCEDURE
87467 ,p_module => l_log_module);
87468 END IF;
87469
87470 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87471 trace
87472 (p_msg => 'p_application_id = '||p_application_id||
87473 ' - p_base_ledger_id = '||p_base_ledger_id||
87474 ' - p_target_ledger_id = '||p_target_ledger_id||
87475 ' - p_language = '||p_language||
87476 ' - p_currency_code = '||p_currency_code||
87477 ' - p_sla_ledger_id = '||p_sla_ledger_id
87478 ,p_level => C_LEVEL_STATEMENT
87479 ,p_module => l_log_module);
87480 END IF;
87481 --
87482 -- initialze arrays
87483 --
87484 g_array_event.DELETE;
87485 l_rec_array_event := l_null_rec_array_event;
87486 --
87487 --------------------------------------
87488 -- 4262811 Initialze MPA Line Number
87489 --------------------------------------
87490 XLA_AE_HEADER_PKG.g_mpa_line_num := 0;
87491
87492 --
87493
87494 --
87495 OPEN header_cur;
87496 --
87497 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87498 trace
87499 (p_msg => 'SQL - FETCH header_cur'
87500 ,p_level => C_LEVEL_STATEMENT
87501 ,p_module => l_log_module);
87502 END IF;
87503 --
87504 LOOP
87505 FETCH header_cur BULK COLLECT INTO
87506 l_array_entity_id
87507 , l_array_legal_entity_id
87508 , l_array_entity_code
87509 , l_array_transaction_num
87510 , l_array_event_id
87511 , l_array_class_code
87512 , l_array_event_type
87513 , l_array_event_number
87514 , l_array_event_date
87515 , l_array_transaction_date
87516 , l_array_reference_num_1
87517 , l_array_reference_num_2
87518 , l_array_reference_num_3
87519 , l_array_reference_num_4
87520 , l_array_reference_char_1
87521 , l_array_reference_char_2
87522 , l_array_reference_char_3
87523 , l_array_reference_char_4
87524 , l_array_reference_date_1
87525 , l_array_reference_date_2
87526 , l_array_reference_date_3
87527 , l_array_reference_date_4
87528 , l_array_event_created_by
87529 , l_array_budgetary_control_flag
87530 , l_array_source_32
87531 , l_array_source_87
87532 LIMIT l_rows;
87533 --
87534 IF (C_LEVEL_EVENT >= g_log_level) THEN
87535 trace
87536 (p_msg => '# rows extracted from header extract objects = '||TO_CHAR(header_cur%ROWCOUNT)
87537 ,p_level => C_LEVEL_EVENT
87538 ,p_module => l_log_module);
87539 END IF;
87540 --
87541 EXIT WHEN l_array_entity_id.COUNT = 0;
87542
87543 -- initialize arrays
87544 XLA_AE_HEADER_PKG.g_rec_header_new := NULL;
87545 XLA_AE_LINES_PKG.g_rec_lines := NULL;
87546
87547 --
87548 -- Bug 4458708
87549 --
87550 XLA_AE_LINES_PKG.g_LineNumber := 0;
87551
87552
87553 -- 4262811 - when creating Accrual Reversal or MPA, use g_last_hdr_idx to increment for next header id
87554 g_last_hdr_idx := l_array_event_id.LAST;
87555 --
87556 -- loop for the headers. Each iteration is for each header extract row
87557 -- fetched in header cursor
87558 --
87559 FOR hdr_idx IN l_array_event_id.FIRST .. l_array_event_id.LAST LOOP
87560
87561 --
87562 -- set event info as cache for other routines to refer event attributes
87563 --
87564 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
87565 (p_application_id => p_application_id
87566 ,p_primary_ledger_id => p_primary_ledger_id
87567 ,p_base_ledger_id => p_base_ledger_id
87568 ,p_target_ledger_id => p_target_ledger_id
87569 ,p_entity_id => l_array_entity_id(hdr_idx)
87570 ,p_legal_entity_id => l_array_legal_entity_id(hdr_idx)
87571 ,p_entity_code => l_array_entity_code(hdr_idx)
87572 ,p_transaction_num => l_array_transaction_num(hdr_idx)
87573 ,p_event_id => l_array_event_id(hdr_idx)
87574 ,p_event_class_code => l_array_class_code(hdr_idx)
87575 ,p_event_type_code => l_array_event_type(hdr_idx)
87576 ,p_event_number => l_array_event_number(hdr_idx)
87577 ,p_event_date => l_array_event_date(hdr_idx)
87578 ,p_transaction_date => l_array_transaction_date(hdr_idx)
87579 ,p_reference_num_1 => l_array_reference_num_1(hdr_idx)
87580 ,p_reference_num_2 => l_array_reference_num_2(hdr_idx)
87581 ,p_reference_num_3 => l_array_reference_num_3(hdr_idx)
87582 ,p_reference_num_4 => l_array_reference_num_4(hdr_idx)
87583 ,p_reference_char_1 => l_array_reference_char_1(hdr_idx)
87584 ,p_reference_char_2 => l_array_reference_char_2(hdr_idx)
87585 ,p_reference_char_3 => l_array_reference_char_3(hdr_idx)
87586 ,p_reference_char_4 => l_array_reference_char_4(hdr_idx)
87587 ,p_reference_date_1 => l_array_reference_date_1(hdr_idx)
87588 ,p_reference_date_2 => l_array_reference_date_2(hdr_idx)
87589 ,p_reference_date_3 => l_array_reference_date_3(hdr_idx)
87590 ,p_reference_date_4 => l_array_reference_date_4(hdr_idx)
87591 ,p_event_created_by => l_array_event_created_by(hdr_idx)
87595 -- set the status of entry to C_VALID (0)
87592 ,p_budgetary_control_flag => l_array_budgetary_control_flag(hdr_idx));
87593
87594 --
87596 --
87597 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
87598
87599 --
87600 -- initialize a row for ae header
87601 --
87602 XLA_AE_HEADER_PKG.InitHeader(hdr_idx);
87603
87604 l_event_id := l_array_event_id(hdr_idx);
87605
87606 --
87607 -- storing the hdr_idx for event. May be used by line cursor.
87608 --
87609 g_array_event(l_event_id).array_value_num('header_index') := hdr_idx;
87610
87611 --
87612 -- store sources from header extract. This can be improved to
87613 -- store only those sources from header extract that may be used in lines
87614 --
87615
87616 g_array_event(l_event_id).array_value_num('source_32') := l_array_source_32(hdr_idx);
87617 g_array_event(l_event_id).array_value_date('source_87') := l_array_source_87(hdr_idx);
87618
87619 --
87620 -- initilaize the status of ae headers for diffrent balance types
87621 -- the status is initialised to C_NOT_CREATED (2)
87622 --
87623 --g_array_event(l_event_id).array_value_num('actual_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
87624 --g_array_event(l_event_id).array_value_num('budget_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
87625 --g_array_event(l_event_id).array_value_num('encumbrance_je_status') := XLA_AE_JOURNAL_ENTRY_PKG.C_NOT_CREATED;
87626
87627 --
87628 -- call api to validate and store accounting attributes for header
87629 --
87630
87631 ------------------------------------------------------------
87632 -- Accrual Reversal : to get date for Standard Source (NONE)
87633 ------------------------------------------------------------
87634 l_acc_rev_gl_date_source := NULL;
87635
87636 l_rec_acct_attrs.array_acct_attr_code(1) := 'GL_DATE';
87637 l_rec_acct_attrs.array_date_value(1) := g_array_event(l_event_id).array_value_date('source_87');
87638
87639
87640 XLA_AE_HEADER_PKG.SetHdrAcctAttrs(l_rec_acct_attrs);
87641
87642 XLA_AE_HEADER_PKG.SetJeCategoryName;
87643
87644 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_type_code(hdr_idx) := l_array_event_type(hdr_idx);
87645 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_id(hdr_idx) := l_array_event_id(hdr_idx);
87646 XLA_AE_HEADER_PKG.g_rec_header_new.array_entity_id(hdr_idx) := l_array_entity_id(hdr_idx);
87647 XLA_AE_HEADER_PKG.g_rec_header_new.array_event_number(hdr_idx) := l_array_event_number(hdr_idx);
87648 XLA_AE_HEADER_PKG.g_rec_header_new.array_target_ledger_id(hdr_idx) := p_target_ledger_id;
87649
87650
87651 -- No header level analytical criteria
87652
87653 --
87654 --accounting attribute enhancement, bug 3612931
87655 --
87656 l_trx_reversal_source := SUBSTR(NULL, 1,30);
87657
87658 IF NVL(l_trx_reversal_source, 'N') NOT IN ('N','Y') THEN
87659 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
87660
87661 xla_accounting_err_pkg.build_message
87662 (p_appli_s_name => 'XLA'
87663 ,p_msg_name => 'XLA_AP_INVALID_HDR_ATTR'
87664 ,p_token_1 => 'ACCT_ATTR_NAME'
87665 ,p_value_1 => xla_ae_sources_pkg.GetAccountingSourceName('TRX_ACCT_REVERSAL_OPTION')
87666 ,p_token_2 => 'PRODUCT_NAME'
87667 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
87668 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
87669 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
87670 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
87671
87672 ELSIF NVL(l_trx_reversal_source, 'N') = 'Y' THEN
87673 --
87674 -- following sets the accounting attributes needed to reverse
87675 -- accounting for a distributeion
87676 --
87677 xla_ae_lines_pkg.SetTrxReversalAttrs
87678 (p_event_id => l_event_id
87679 ,p_gl_date => XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(hdr_idx)
87680 ,p_trx_reversal_source => l_trx_reversal_source);
87681
87682 END IF;
87683
87684
87685 ----------------------------------------------------------------
87686 -- 4262811 - update the header statuses to invalid in need be
87687 ----------------------------------------------------------------
87688 --
87689 XLA_AE_JOURNAL_ENTRY_PKG.UpdateJournalEntryStatus (p_hdr_idx => hdr_idx);
87690
87691
87692 -----------------------------------------------
87693 -- No accrual reversal for the event class/type
87694 -----------------------------------------------
87695 ----------------------------------------------------------------
87696
87697 --
87698 -- this ends the header loop iteration for one bulk fetch
87699 --
87700 END LOOP;
87701
87702 l_first_event_id := l_array_event_id(l_array_event_id.FIRST);
87703 l_last_event_id := l_array_event_id(l_array_event_id.LAST);
87704
87705 --
87706 -- insert dummy rows into lines gt table that were created due to
87707 -- transaction reversals
87708 --
87709 IF XLA_AE_LINES_PKG.g_rec_lines.array_ae_header_id.COUNT > 0 THEN
87710 l_result := XLA_AE_LINES_PKG.InsertLines;
87711 END IF;
87712
87713 --
87714 -- reset the temp_line_num for each set of events fetched from header
87715 -- cursor rather than doing it for each new event in line cursor
87716 -- Bug 3939231
87717 --
87718 xla_ae_lines_pkg.g_temp_line_num := 0;
87719
87720
87721
87722 --
87723 OPEN line_cur(x_first_event_id => l_first_event_id, x_last_event_id => l_last_event_id);
87724 --
87725 --
87726 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87727
87728 trace
87729 (p_msg => 'SQL - FETCH line_cur'
87730 ,p_level => C_LEVEL_STATEMENT
87734 --
87731 ,p_module => l_log_module);
87732
87733 END IF;
87735 --
87736 LOOP
87737 --
87738 FETCH line_cur BULK COLLECT INTO
87739 l_array_entity_id
87740 , l_array_legal_entity_id
87741 , l_array_entity_code
87742 , l_array_transaction_num
87743 , l_array_event_id
87744 , l_array_class_code
87745 , l_array_event_type
87746 , l_array_event_number
87747 , l_array_event_date
87748 , l_array_transaction_date
87749 , l_array_reference_num_1
87750 , l_array_reference_num_2
87751 , l_array_reference_num_3
87752 , l_array_reference_num_4
87753 , l_array_reference_char_1
87754 , l_array_reference_char_2
87755 , l_array_reference_char_3
87756 , l_array_reference_char_4
87757 , l_array_reference_date_1
87758 , l_array_reference_date_2
87759 , l_array_reference_date_3
87760 , l_array_reference_date_4
87761 , l_array_event_created_by
87762 , l_array_budgetary_control_flag
87763 , l_array_extract_line_num
87764 , l_array_source_3
87765 , l_array_source_4
87766 , l_array_source_5
87767 , l_array_source_6
87768 , l_array_source_7
87769 , l_array_source_22
87770 , l_array_source_23
87771 , l_array_source_24
87772 , l_array_source_25
87773 , l_array_source_26
87774 , l_array_source_27
87775 , l_array_source_28
87776 , l_array_source_29
87777 , l_array_source_30
87778 , l_array_source_31
87779 , l_array_source_33
87780 , l_array_source_34
87781 , l_array_source_34_meaning
87782 , l_array_source_35
87783 LIMIT l_rows;
87784
87785 --
87786 IF (C_LEVEL_EVENT >= g_log_level) THEN
87787 trace
87788 (p_msg => '# rows extracted from line extract objects = '||TO_CHAR(line_cur%ROWCOUNT)
87789 ,p_level => C_LEVEL_EVENT
87790 ,p_module => l_log_module);
87791 END IF;
87792 --
87793 EXIT WHEN l_array_entity_id.count = 0;
87794
87795 XLA_AE_LINES_PKG.g_rec_lines := null;
87796
87797 --
87798 -- Bug 4458708
87799 --
87800 XLA_AE_LINES_PKG.g_LineNumber := 0;
87801 --
87802 --
87803
87804 FOR Idx IN 1..l_array_event_id.count LOOP
87805 --
87806 -- 5648433 (move l_event_id out of IF statement) set l_event_id to be used inside IF condition
87807 --
87808 l_event_id := l_array_event_id(idx); -- 5648433
87809
87810 --
87811 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
87812 --
87813
87814 IF NVL(xla_ae_header_pkg.g_rec_header_new.array_trx_acct_reversal_option
87815 (g_array_event(l_event_id).array_value_num('header_index'))
87816 ,'N'
87817 ) <> 'Y'
87818 THEN
87819 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
87820 trace
87821 (p_msg => 'Trancaction revesal option is not Y '
87822 ,p_level => C_LEVEL_STATEMENT
87823 ,p_module => l_log_module);
87824 END IF;
87825
87826 --
87827 -- set the XLA_AE_JOURNAL_ENTRY_PKG.g_global_status to C_VALID (0)
87828 --
87829 XLA_AE_JOURNAL_ENTRY_PKG.g_global_status := XLA_AE_JOURNAL_ENTRY_PKG.C_VALID;
87830 --
87831 -- set event info as cache for other routines to refer event attributes
87832 --
87833
87834 IF l_event_id <> NVL(l_previous_event_id, -1) THEN
87835 l_previous_event_id := l_event_id;
87836
87837 XLA_AE_JOURNAL_ENTRY_PKG.set_event_info
87838 (p_application_id => p_application_id
87839 ,p_primary_ledger_id => p_primary_ledger_id
87840 ,p_base_ledger_id => p_base_ledger_id
87841 ,p_target_ledger_id => p_target_ledger_id
87842 ,p_entity_id => l_array_entity_id(Idx)
87843 ,p_legal_entity_id => l_array_legal_entity_id(Idx)
87844 ,p_entity_code => l_array_entity_code(Idx)
87845 ,p_transaction_num => l_array_transaction_num(Idx)
87846 ,p_event_id => l_array_event_id(Idx)
87847 ,p_event_class_code => l_array_class_code(Idx)
87848 ,p_event_type_code => l_array_event_type(Idx)
87849 ,p_event_number => l_array_event_number(Idx)
87850 ,p_event_date => l_array_event_date(Idx)
87851 ,p_transaction_date => l_array_transaction_date(Idx)
87852 ,p_reference_num_1 => l_array_reference_num_1(Idx)
87853 ,p_reference_num_2 => l_array_reference_num_2(Idx)
87854 ,p_reference_num_3 => l_array_reference_num_3(Idx)
87855 ,p_reference_num_4 => l_array_reference_num_4(Idx)
87856 ,p_reference_char_1 => l_array_reference_char_1(Idx)
87857 ,p_reference_char_2 => l_array_reference_char_2(Idx)
87858 ,p_reference_char_3 => l_array_reference_char_3(Idx)
87859 ,p_reference_char_4 => l_array_reference_char_4(Idx)
87860 ,p_reference_date_1 => l_array_reference_date_1(Idx)
87861 ,p_reference_date_2 => l_array_reference_date_2(Idx)
87862 ,p_reference_date_3 => l_array_reference_date_3(Idx)
87863 ,p_reference_date_4 => l_array_reference_date_4(Idx)
87864 ,p_event_created_by => l_array_event_created_by(Idx)
87865 ,p_budgetary_control_flag => l_array_budgetary_control_flag(Idx));
87866 --
87867 END IF;
87868
87869
87870
87871 --
87872 xla_ae_lines_pkg.SetExtractLine(p_extract_line => l_array_extract_line_num(Idx));
87873
87874 l_acct_reversal_source := SUBSTR(l_array_source_22(Idx), 1,30);
87875
87876 IF l_continue_with_lines THEN
87880 xla_accounting_err_pkg.build_message
87877 IF NVL(l_acct_reversal_source, 'N') NOT IN ('N','Y','B') THEN
87878 xla_ae_journal_entry_pkg.g_global_status := xla_ae_journal_entry_pkg.C_INVALID;
87879
87881 (p_appli_s_name => 'XLA'
87882 ,p_msg_name => 'XLA_AP_INVALID_REVERSAL_OPTION'
87883 ,p_token_1 => 'LINE_NUMBER'
87884 ,p_value_1 => l_array_extract_line_num(Idx)
87885 ,p_token_2 => 'PRODUCT_NAME'
87886 ,p_value_2 => xla_ae_journal_entry_pkg.g_cache_event.application_name
87887 ,p_entity_id => xla_ae_journal_entry_pkg.g_cache_event.entity_id
87888 ,p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
87889 ,p_ledger_id => xla_ae_journal_entry_pkg.g_cache_event.target_ledger_id);
87890
87891 ELSIF NVL(l_acct_reversal_source, 'N') IN ('Y','B') THEN
87892 --
87893 -- following sets the accounting attributes needed to reverse
87894 -- accounting for a distributeion
87895 --
87896
87897 --
87898 -- 5217187
87899 --
87900 l_rec_rev_acct_attrs.array_acct_attr_code(1):= 'GL_DATE';
87901 l_rec_rev_acct_attrs.array_date_value(1) := XLA_AE_HEADER_PKG.g_rec_header_new.array_gl_date(
87902 g_array_event(l_event_id).array_value_num('header_index'));
87903 --
87904 --
87905
87906 l_rec_rev_acct_attrs.array_acct_attr_code(2) := 'ACCOUNTING_REVERSAL_OPTION';
87907 l_rec_rev_acct_attrs.array_char_value(2) := l_array_source_22(Idx);
87908 l_rec_rev_acct_attrs.array_acct_attr_code(3) := 'ACTUAL_UPG_CR_ACCT_CLASS';
87909 l_rec_rev_acct_attrs.array_char_value(3) := l_array_source_23(Idx);
87910 l_rec_rev_acct_attrs.array_acct_attr_code(4) := 'ACTUAL_UPG_CR_CCID';
87911 l_rec_rev_acct_attrs.array_num_value(4) := TO_NUMBER(l_array_source_6(Idx));
87912 l_rec_rev_acct_attrs.array_acct_attr_code(5) := 'ACTUAL_UPG_CR_ENTERED_AMT';
87913 l_rec_rev_acct_attrs.array_num_value(5) := l_array_source_24(Idx);
87914 l_rec_rev_acct_attrs.array_acct_attr_code(6) := 'ACTUAL_UPG_CR_ENTERED_CURR';
87915 l_rec_rev_acct_attrs.array_char_value(6) := l_array_source_25(Idx);
87916 l_rec_rev_acct_attrs.array_acct_attr_code(7) := 'ACTUAL_UPG_CR_LEDGER_AMT';
87917 l_rec_rev_acct_attrs.array_num_value(7) := l_array_source_26(Idx);
87918 l_rec_rev_acct_attrs.array_acct_attr_code(8) := 'ACTUAL_UPG_CR_XDATE';
87919 l_rec_rev_acct_attrs.array_date_value(8) := l_array_source_27(Idx);
87920 l_rec_rev_acct_attrs.array_acct_attr_code(9) := 'ACTUAL_UPG_CR_XRATE';
87921 l_rec_rev_acct_attrs.array_num_value(9) := l_array_source_28(Idx);
87922 l_rec_rev_acct_attrs.array_acct_attr_code(10) := 'ACTUAL_UPG_CR_XRATE_TYPE';
87923 l_rec_rev_acct_attrs.array_char_value(10) := l_array_source_29(Idx);
87924 l_rec_rev_acct_attrs.array_acct_attr_code(11) := 'ACTUAL_UPG_DR_ACCT_CLASS';
87925 l_rec_rev_acct_attrs.array_char_value(11) := l_array_source_30(Idx);
87926 l_rec_rev_acct_attrs.array_acct_attr_code(12) := 'ACTUAL_UPG_DR_CCID';
87927 l_rec_rev_acct_attrs.array_num_value(12) := TO_NUMBER(l_array_source_3(Idx));
87928 l_rec_rev_acct_attrs.array_acct_attr_code(13) := 'ACTUAL_UPG_DR_ENTERED_AMT';
87929 l_rec_rev_acct_attrs.array_num_value(13) := l_array_source_24(Idx);
87930 l_rec_rev_acct_attrs.array_acct_attr_code(14) := 'ACTUAL_UPG_DR_ENTERED_CURR';
87931 l_rec_rev_acct_attrs.array_char_value(14) := l_array_source_25(Idx);
87932 l_rec_rev_acct_attrs.array_acct_attr_code(15) := 'ACTUAL_UPG_DR_LEDGER_AMT';
87933 l_rec_rev_acct_attrs.array_num_value(15) := l_array_source_26(Idx);
87934 l_rec_rev_acct_attrs.array_acct_attr_code(16) := 'ACTUAL_UPG_DR_XDATE';
87935 l_rec_rev_acct_attrs.array_date_value(16) := l_array_source_27(Idx);
87936 l_rec_rev_acct_attrs.array_acct_attr_code(17) := 'ACTUAL_UPG_DR_XRATE';
87937 l_rec_rev_acct_attrs.array_num_value(17) := l_array_source_28(Idx);
87938 l_rec_rev_acct_attrs.array_acct_attr_code(18) := 'ACTUAL_UPG_DR_XRATE_TYPE';
87939 l_rec_rev_acct_attrs.array_char_value(18) := l_array_source_29(Idx);
87940 l_rec_rev_acct_attrs.array_acct_attr_code(19) := 'ACTUAL_UPG_OPTION';
87941 l_rec_rev_acct_attrs.array_char_value(19) := l_array_source_31(Idx);
87942 l_rec_rev_acct_attrs.array_acct_attr_code(20) := 'DISTRIBUTION_IDENTIFIER_1';
87943 l_rec_rev_acct_attrs.array_num_value(20) := g_array_event(l_event_id).array_value_num('source_32');
87944 l_rec_rev_acct_attrs.array_acct_attr_code(21) := 'DISTRIBUTION_IDENTIFIER_2';
87945 l_rec_rev_acct_attrs.array_num_value(21) := l_array_source_33(Idx);
87946 l_rec_rev_acct_attrs.array_acct_attr_code(22) := 'DISTRIBUTION_TYPE';
87947 l_rec_rev_acct_attrs.array_char_value(22) := l_array_source_34(Idx);
87948 l_rec_rev_acct_attrs.array_acct_attr_code(23) := 'REVERSED_DISTRIBUTION_ID1';
87949 l_rec_rev_acct_attrs.array_num_value(23) := g_array_event(l_event_id).array_value_num('source_32');
87950 l_rec_rev_acct_attrs.array_acct_attr_code(24) := 'REVERSED_DISTRIBUTION_ID2';
87951 l_rec_rev_acct_attrs.array_num_value(24) := l_array_source_35(Idx);
87952 l_rec_rev_acct_attrs.array_acct_attr_code(25) := 'REVERSED_DISTRIBUTION_TYPE';
87953 l_rec_rev_acct_attrs.array_char_value(25) := l_array_source_34(Idx);
87954
87955
87956 xla_ae_lines_pkg.SetAcctReversalAttrs
87957 (p_event_id => l_event_id
87958 ,p_rec_acct_attrs => l_rec_rev_acct_attrs
87959 ,p_calculate_acctd_flag => l_calculate_acctd_flag
87960 ,p_calculate_g_l_flag => l_calculate_g_l_flag);
87961 END IF;
87962
87963 IF NVL(l_acct_reversal_source, 'N') IN ('N','B') THEN
87964 l_actual_flag := NULL; l_actual_gain_loss_ref := '#####';
87965
87966 --
87967 AcctLineType_41 (
87968 p_application_id => p_application_id
87969 ,p_event_id => l_event_id
87970 ,p_calculate_acctd_flag => l_calculate_acctd_flag
87974 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
87971 ,p_calculate_g_l_flag => l_calculate_g_l_flag
87972 ,p_actual_flag => l_actual_flag
87973 ,p_balance_type_code => l_balance_type_code
87975
87976 , p_source_3 => l_array_source_3(Idx)
87977 , p_source_4 => l_array_source_4(Idx)
87978 , p_source_5 => l_array_source_5(Idx)
87979 , p_source_6 => l_array_source_6(Idx)
87980 , p_source_22 => l_array_source_22(Idx)
87981 , p_source_23 => l_array_source_23(Idx)
87982 , p_source_24 => l_array_source_24(Idx)
87983 , p_source_25 => l_array_source_25(Idx)
87984 , p_source_26 => l_array_source_26(Idx)
87985 , p_source_27 => l_array_source_27(Idx)
87986 , p_source_28 => l_array_source_28(Idx)
87987 , p_source_29 => l_array_source_29(Idx)
87988 , p_source_30 => l_array_source_30(Idx)
87989 , p_source_31 => l_array_source_31(Idx)
87990 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
87991 , p_source_33 => l_array_source_33(Idx)
87992 , p_source_34 => l_array_source_34(Idx)
87993 , p_source_34_meaning => l_array_source_34_meaning(Idx)
87994 , p_source_35 => l_array_source_35(Idx)
87995 );
87996 If(l_balance_type_code = 'A') THEN
87997 l_actual_gain_loss_ref := l_gain_or_loss_ref;
87998 END IF;
87999
88000 --
88001
88002
88003 --
88004 AcctLineType_58 (
88005 p_application_id => p_application_id
88006 ,p_event_id => l_event_id
88007 ,p_calculate_acctd_flag => l_calculate_acctd_flag
88008 ,p_calculate_g_l_flag => l_calculate_g_l_flag
88009 ,p_actual_flag => l_actual_flag
88010 ,p_balance_type_code => l_balance_type_code
88011 ,p_gain_or_loss_ref=> l_gain_or_loss_ref
88012
88013 , p_source_3 => l_array_source_3(Idx)
88014 , p_source_4 => l_array_source_4(Idx)
88015 , p_source_6 => l_array_source_6(Idx)
88016 , p_source_7 => l_array_source_7(Idx)
88017 , p_source_22 => l_array_source_22(Idx)
88018 , p_source_23 => l_array_source_23(Idx)
88019 , p_source_24 => l_array_source_24(Idx)
88020 , p_source_25 => l_array_source_25(Idx)
88021 , p_source_26 => l_array_source_26(Idx)
88022 , p_source_27 => l_array_source_27(Idx)
88023 , p_source_28 => l_array_source_28(Idx)
88024 , p_source_29 => l_array_source_29(Idx)
88025 , p_source_30 => l_array_source_30(Idx)
88026 , p_source_31 => l_array_source_31(Idx)
88027 , p_source_32 => g_array_event(l_event_id).array_value_num('source_32')
88028 , p_source_33 => l_array_source_33(Idx)
88029 , p_source_34 => l_array_source_34(Idx)
88030 , p_source_34_meaning => l_array_source_34_meaning(Idx)
88031 , p_source_35 => l_array_source_35(Idx)
88032 );
88033 If(l_balance_type_code = 'A') THEN
88034 l_actual_gain_loss_ref := l_gain_or_loss_ref;
88035 END IF;
88036
88037 --
88038
88039 -- only execute it if calculate g/l flag is yes, and primary or secondary ledger
88040 -- or secondary ledger that has different currency with primary
88041 -- or alc that is calculated by sla
88042 IF (((l_calculate_g_l_flag = 'Y' AND XLA_AE_JOURNAL_ENTRY_PKG.g_cache_ledgers_info.ledger_category_code <> 'ALC') or
88043 (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'))
88044
88045 -- IF((l_calculate_g_l_flag='Y' or XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.target_ledger_id <>
88046 -- XLA_AE_JOURNAL_ENTRY_PKG.g_cache_event.ledger_id)
88047 AND (l_actual_flag = 'A')) THEN
88048 XLA_AE_LINES_PKG.CreateGainOrLossLines(
88049 p_event_id => xla_ae_journal_entry_pkg.g_cache_event.event_id
88050 ,p_application_id => p_application_id
88051 ,p_amb_context_code => 'DEFAULT'
88052 ,p_entity_code => xla_ae_journal_entry_pkg.g_cache_event.entity_code
88053 ,p_event_class_code => C_EVENT_CLASS_CODE
88054 ,p_event_type_code => C_EVENT_TYPE_CODE
88055
88056 ,p_gain_ccid => -1
88057 ,p_loss_ccid => -1
88058
88059 ,p_actual_flag => l_actual_flag
88060 ,p_enc_flag => null
88061 ,p_actual_g_l_ref => l_actual_gain_loss_ref
88062 ,p_enc_g_l_ref => null
88063 );
88064 END IF;
88065 END IF;
88066 END IF;
88067
88068 ELSE
88069 --
88070 -- Bug 4872078 - Do nothing if the event is meant for transaction reversal
88071 --
88072 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88073 trace
88074 (p_msg => 'Trancaction revesal option is Y'
88075 ,p_level => C_LEVEL_STATEMENT
88076 ,p_module => l_log_module);
88077 END IF;
88078 END IF;
88079
88080 END LOOP;
88081 l_result := XLA_AE_LINES_PKG.InsertLines ;
88082 end loop;
88083 close line_cur;
88084
88085
88086 --
88087 -- insert headers into xla_ae_headers_gt table
88088 --
88089 l_result := XLA_AE_HEADER_PKG.InsertHeaders ;
88090
88091 -- insert into errors table here.
88092
88093 END LOOP;
88094
88095 --
88096 -- 4865292
88097 --
88098 -- Compare g_hdr_extract_count with event count in
88099 -- CreateHeadersAndLines.
88100 --
88101 g_hdr_extract_count := g_hdr_extract_count + header_cur%ROWCOUNT;
88102
88103 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88104 trace (p_msg => '# rows extracted from header extract objects '
88105 || ' (running total): '
88106 || g_hdr_extract_count
88107 ,p_level => C_LEVEL_STATEMENT
88108 ,p_module => l_log_module);
88109 END IF;
88110
88111 CLOSE header_cur;
88112 --
88113
88114 --
88115 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88116 trace
88117 (p_msg => 'END of EventClass_132'
88118 ,p_level => C_LEVEL_PROCEDURE
88122 RETURN l_result;
88119 ,p_module => l_log_module);
88120 END IF;
88121 --
88123 EXCEPTION
88124 WHEN xla_exceptions_pkg.application_exception THEN
88125
88126 IF header_cur%ISOPEN THEN CLOSE header_cur; END IF;
88127
88128
88129 IF line_cur%ISOPEN THEN CLOSE line_cur; END IF;
88130
88131 RAISE;
88132 WHEN OTHERS THEN
88133 xla_exceptions_pkg.raise_message
88134 (p_location => 'XLA_00275_AAD_S_000004_PKG.EventClass_132');
88135 END EventClass_132;
88136 --
88137
88138 --
88139 --+============================================+
88140 --| |
88141 --| PRIVATE FUNCTION |
88142 --| |
88143 --+============================================+
88144 --
88145 FUNCTION CreateHeadersAndLines
88146 (p_application_id IN NUMBER
88147 ,p_base_ledger_id IN NUMBER
88148 ,p_target_ledger_id IN NUMBER
88149 ,p_pad_start_date IN DATE
88150 ,p_pad_end_date IN DATE
88151 ,p_primary_ledger_id IN NUMBER)
88152 RETURN BOOLEAN IS
88153 l_created BOOLEAN:=FALSE;
88154 l_event_id NUMBER;
88155 l_event_date DATE;
88156 l_language VARCHAR2(30);
88157 l_currency_code VARCHAR2(30);
88158 l_sla_ledger_id NUMBER;
88159 l_log_module VARCHAR2(240);
88160
88161 BEGIN
88162 --
88163 IF g_log_enabled THEN
88164 l_log_module := C_DEFAULT_MODULE||'.CreateHeadersAndLines';
88165 END IF;
88166 --
88167 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
88168 trace
88169 (p_msg => 'BEGIN of CreateHeadersAndLines'
88170 ,p_level => C_LEVEL_PROCEDURE
88171 ,p_module => l_log_module);
88172 END IF;
88173
88174 l_language := xla_ae_journal_entry_pkg.g_cache_ledgers_info.description_language;
88175 l_currency_code := xla_ae_journal_entry_pkg.g_cache_ledgers_info.currency_code;
88176 l_sla_ledger_id := xla_ae_journal_entry_pkg.g_cache_ledgers_info.sla_ledger_id;
88177
88178 --
88179 -- initialize array of lines with NULL
88180 --
88181 xla_ae_lines_pkg.SetNullLine;
88182
88183 --
88184 -- initialize header extract count -- Bug 4865292
88185 --
88186 g_hdr_extract_count:= 0;
88187
88188
88189 l_created := EventClass_110(
88190 p_application_id => p_application_id
88191 , p_base_ledger_id => p_base_ledger_id
88192 , p_target_ledger_id => p_target_ledger_id
88193 , p_language => l_language
88194 , p_currency_code => l_currency_code
88195 , p_sla_ledger_id => l_sla_ledger_id
88196 , p_pad_start_date => p_pad_start_date
88197 , p_pad_end_date => p_pad_end_date
88198 , p_primary_ledger_id => p_primary_ledger_id
88199 );
88200
88201
88202
88203 IF ( g_diagnostics_mode ='Y' ) THEN
88204
88205 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88206 trace
88207 (p_msg => 'CALL Transaction Objects Diagnostics'
88208 ,p_level => C_LEVEL_STATEMENT
88209 ,p_module => l_log_module);
88210
88211 END IF;
88212
88213 insert_sources_110(
88214 p_target_ledger_id => p_target_ledger_id
88215 , p_language => l_language
88216 , p_sla_ledger_id => l_sla_ledger_id
88217 , p_pad_start_date => p_pad_start_date
88218 , p_pad_end_date => p_pad_end_date
88219 );
88220
88221 END IF;
88222
88223 l_created := EventClass_111(
88224 p_application_id => p_application_id
88225 , p_base_ledger_id => p_base_ledger_id
88226 , p_target_ledger_id => p_target_ledger_id
88227 , p_language => l_language
88228 , p_currency_code => l_currency_code
88229 , p_sla_ledger_id => l_sla_ledger_id
88230 , p_pad_start_date => p_pad_start_date
88231 , p_pad_end_date => p_pad_end_date
88232 , p_primary_ledger_id => p_primary_ledger_id
88233 );
88234
88235
88236
88237 IF ( g_diagnostics_mode ='Y' ) THEN
88238
88239 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88240 trace
88241 (p_msg => 'CALL Transaction Objects Diagnostics'
88242 ,p_level => C_LEVEL_STATEMENT
88243 ,p_module => l_log_module);
88244
88245 END IF;
88246
88247 insert_sources_111(
88248 p_target_ledger_id => p_target_ledger_id
88249 , p_language => l_language
88250 , p_sla_ledger_id => l_sla_ledger_id
88251 , p_pad_start_date => p_pad_start_date
88252 , p_pad_end_date => p_pad_end_date
88253 );
88254
88255 END IF;
88256
88257 l_created := EventClass_112(
88258 p_application_id => p_application_id
88259 , p_base_ledger_id => p_base_ledger_id
88260 , p_target_ledger_id => p_target_ledger_id
88261 , p_language => l_language
88262 , p_currency_code => l_currency_code
88263 , p_sla_ledger_id => l_sla_ledger_id
88264 , p_pad_start_date => p_pad_start_date
88265 , p_pad_end_date => p_pad_end_date
88266 , p_primary_ledger_id => p_primary_ledger_id
88267 );
88268
88269
88270
88271 IF ( g_diagnostics_mode ='Y' ) THEN
88272
88273 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88274 trace
88278
88275 (p_msg => 'CALL Transaction Objects Diagnostics'
88276 ,p_level => C_LEVEL_STATEMENT
88277 ,p_module => l_log_module);
88279 END IF;
88280
88281 insert_sources_112(
88282 p_target_ledger_id => p_target_ledger_id
88283 , p_language => l_language
88284 , p_sla_ledger_id => l_sla_ledger_id
88285 , p_pad_start_date => p_pad_start_date
88286 , p_pad_end_date => p_pad_end_date
88287 );
88288
88289 END IF;
88290
88291 l_created := EventClass_113(
88292 p_application_id => p_application_id
88293 , p_base_ledger_id => p_base_ledger_id
88294 , p_target_ledger_id => p_target_ledger_id
88295 , p_language => l_language
88296 , p_currency_code => l_currency_code
88297 , p_sla_ledger_id => l_sla_ledger_id
88298 , p_pad_start_date => p_pad_start_date
88299 , p_pad_end_date => p_pad_end_date
88300 , p_primary_ledger_id => p_primary_ledger_id
88301 );
88302
88303
88304
88305 IF ( g_diagnostics_mode ='Y' ) THEN
88306
88307 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88308 trace
88309 (p_msg => 'CALL Transaction Objects Diagnostics'
88310 ,p_level => C_LEVEL_STATEMENT
88311 ,p_module => l_log_module);
88312
88313 END IF;
88314
88315 insert_sources_113(
88316 p_target_ledger_id => p_target_ledger_id
88317 , p_language => l_language
88318 , p_sla_ledger_id => l_sla_ledger_id
88319 , p_pad_start_date => p_pad_start_date
88320 , p_pad_end_date => p_pad_end_date
88321 );
88322
88323 END IF;
88324
88325 l_created := EventClass_114(
88326 p_application_id => p_application_id
88327 , p_base_ledger_id => p_base_ledger_id
88328 , p_target_ledger_id => p_target_ledger_id
88329 , p_language => l_language
88330 , p_currency_code => l_currency_code
88331 , p_sla_ledger_id => l_sla_ledger_id
88332 , p_pad_start_date => p_pad_start_date
88333 , p_pad_end_date => p_pad_end_date
88334 , p_primary_ledger_id => p_primary_ledger_id
88335 );
88336
88337
88338
88339 IF ( g_diagnostics_mode ='Y' ) THEN
88340
88341 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88342 trace
88343 (p_msg => 'CALL Transaction Objects Diagnostics'
88344 ,p_level => C_LEVEL_STATEMENT
88345 ,p_module => l_log_module);
88346
88347 END IF;
88348
88349 insert_sources_114(
88350 p_target_ledger_id => p_target_ledger_id
88351 , p_language => l_language
88352 , p_sla_ledger_id => l_sla_ledger_id
88353 , p_pad_start_date => p_pad_start_date
88354 , p_pad_end_date => p_pad_end_date
88355 );
88356
88357 END IF;
88358
88359 l_created := EventClass_115(
88360 p_application_id => p_application_id
88361 , p_base_ledger_id => p_base_ledger_id
88362 , p_target_ledger_id => p_target_ledger_id
88363 , p_language => l_language
88364 , p_currency_code => l_currency_code
88365 , p_sla_ledger_id => l_sla_ledger_id
88366 , p_pad_start_date => p_pad_start_date
88367 , p_pad_end_date => p_pad_end_date
88368 , p_primary_ledger_id => p_primary_ledger_id
88369 );
88370
88371
88372
88373 IF ( g_diagnostics_mode ='Y' ) THEN
88374
88375 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88376 trace
88377 (p_msg => 'CALL Transaction Objects Diagnostics'
88378 ,p_level => C_LEVEL_STATEMENT
88379 ,p_module => l_log_module);
88380
88381 END IF;
88382
88383 insert_sources_115(
88384 p_target_ledger_id => p_target_ledger_id
88385 , p_language => l_language
88386 , p_sla_ledger_id => l_sla_ledger_id
88387 , p_pad_start_date => p_pad_start_date
88388 , p_pad_end_date => p_pad_end_date
88389 );
88390
88391 END IF;
88392
88393 l_created := EventClass_116(
88394 p_application_id => p_application_id
88395 , p_base_ledger_id => p_base_ledger_id
88396 , p_target_ledger_id => p_target_ledger_id
88397 , p_language => l_language
88398 , p_currency_code => l_currency_code
88399 , p_sla_ledger_id => l_sla_ledger_id
88400 , p_pad_start_date => p_pad_start_date
88401 , p_pad_end_date => p_pad_end_date
88402 , p_primary_ledger_id => p_primary_ledger_id
88403 );
88404
88405
88406
88407 IF ( g_diagnostics_mode ='Y' ) THEN
88408
88409 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88410 trace
88411 (p_msg => 'CALL Transaction Objects Diagnostics'
88412 ,p_level => C_LEVEL_STATEMENT
88413 ,p_module => l_log_module);
88414
88415 END IF;
88416
88417 insert_sources_116(
88418 p_target_ledger_id => p_target_ledger_id
88419 , p_language => l_language
88423 );
88420 , p_sla_ledger_id => l_sla_ledger_id
88421 , p_pad_start_date => p_pad_start_date
88422 , p_pad_end_date => p_pad_end_date
88424
88425 END IF;
88426
88427 l_created := EventClass_117(
88428 p_application_id => p_application_id
88429 , p_base_ledger_id => p_base_ledger_id
88430 , p_target_ledger_id => p_target_ledger_id
88431 , p_language => l_language
88432 , p_currency_code => l_currency_code
88433 , p_sla_ledger_id => l_sla_ledger_id
88434 , p_pad_start_date => p_pad_start_date
88435 , p_pad_end_date => p_pad_end_date
88436 , p_primary_ledger_id => p_primary_ledger_id
88437 );
88438
88439
88440
88441 IF ( g_diagnostics_mode ='Y' ) THEN
88442
88443 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88444 trace
88445 (p_msg => 'CALL Transaction Objects Diagnostics'
88446 ,p_level => C_LEVEL_STATEMENT
88447 ,p_module => l_log_module);
88448
88449 END IF;
88450
88451 insert_sources_117(
88452 p_target_ledger_id => p_target_ledger_id
88453 , p_language => l_language
88454 , p_sla_ledger_id => l_sla_ledger_id
88455 , p_pad_start_date => p_pad_start_date
88456 , p_pad_end_date => p_pad_end_date
88457 );
88458
88459 END IF;
88460
88461 l_created := EventClass_118(
88462 p_application_id => p_application_id
88463 , p_base_ledger_id => p_base_ledger_id
88464 , p_target_ledger_id => p_target_ledger_id
88465 , p_language => l_language
88466 , p_currency_code => l_currency_code
88467 , p_sla_ledger_id => l_sla_ledger_id
88468 , p_pad_start_date => p_pad_start_date
88469 , p_pad_end_date => p_pad_end_date
88470 , p_primary_ledger_id => p_primary_ledger_id
88471 );
88472
88473
88474
88475 IF ( g_diagnostics_mode ='Y' ) THEN
88476
88477 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88478 trace
88479 (p_msg => 'CALL Transaction Objects Diagnostics'
88480 ,p_level => C_LEVEL_STATEMENT
88481 ,p_module => l_log_module);
88482
88483 END IF;
88484
88485 insert_sources_118(
88486 p_target_ledger_id => p_target_ledger_id
88487 , p_language => l_language
88488 , p_sla_ledger_id => l_sla_ledger_id
88489 , p_pad_start_date => p_pad_start_date
88490 , p_pad_end_date => p_pad_end_date
88491 );
88492
88493 END IF;
88494
88495 l_created := EventClass_119(
88496 p_application_id => p_application_id
88497 , p_base_ledger_id => p_base_ledger_id
88498 , p_target_ledger_id => p_target_ledger_id
88499 , p_language => l_language
88500 , p_currency_code => l_currency_code
88501 , p_sla_ledger_id => l_sla_ledger_id
88502 , p_pad_start_date => p_pad_start_date
88503 , p_pad_end_date => p_pad_end_date
88504 , p_primary_ledger_id => p_primary_ledger_id
88505 );
88506
88507
88508
88509 IF ( g_diagnostics_mode ='Y' ) THEN
88510
88511 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88512 trace
88513 (p_msg => 'CALL Transaction Objects Diagnostics'
88514 ,p_level => C_LEVEL_STATEMENT
88515 ,p_module => l_log_module);
88516
88517 END IF;
88518
88519 insert_sources_119(
88520 p_target_ledger_id => p_target_ledger_id
88521 , p_language => l_language
88522 , p_sla_ledger_id => l_sla_ledger_id
88523 , p_pad_start_date => p_pad_start_date
88524 , p_pad_end_date => p_pad_end_date
88525 );
88526
88527 END IF;
88528
88529 l_created := EventClass_120(
88530 p_application_id => p_application_id
88531 , p_base_ledger_id => p_base_ledger_id
88532 , p_target_ledger_id => p_target_ledger_id
88533 , p_language => l_language
88534 , p_currency_code => l_currency_code
88535 , p_sla_ledger_id => l_sla_ledger_id
88536 , p_pad_start_date => p_pad_start_date
88537 , p_pad_end_date => p_pad_end_date
88538 , p_primary_ledger_id => p_primary_ledger_id
88539 );
88540
88541
88542
88543 IF ( g_diagnostics_mode ='Y' ) THEN
88544
88545 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88546 trace
88547 (p_msg => 'CALL Transaction Objects Diagnostics'
88548 ,p_level => C_LEVEL_STATEMENT
88549 ,p_module => l_log_module);
88550
88551 END IF;
88552
88553 insert_sources_120(
88554 p_target_ledger_id => p_target_ledger_id
88555 , p_language => l_language
88556 , p_sla_ledger_id => l_sla_ledger_id
88557 , p_pad_start_date => p_pad_start_date
88558 , p_pad_end_date => p_pad_end_date
88559 );
88560
88561 END IF;
88562
88563 l_created := EventClass_121(
88564 p_application_id => p_application_id
88565 , p_base_ledger_id => p_base_ledger_id
88569 , p_sla_ledger_id => l_sla_ledger_id
88566 , p_target_ledger_id => p_target_ledger_id
88567 , p_language => l_language
88568 , p_currency_code => l_currency_code
88570 , p_pad_start_date => p_pad_start_date
88571 , p_pad_end_date => p_pad_end_date
88572 , p_primary_ledger_id => p_primary_ledger_id
88573 );
88574
88575
88576
88577 IF ( g_diagnostics_mode ='Y' ) THEN
88578
88579 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88580 trace
88581 (p_msg => 'CALL Transaction Objects Diagnostics'
88582 ,p_level => C_LEVEL_STATEMENT
88583 ,p_module => l_log_module);
88584
88585 END IF;
88586
88587 insert_sources_121(
88588 p_target_ledger_id => p_target_ledger_id
88589 , p_language => l_language
88590 , p_sla_ledger_id => l_sla_ledger_id
88591 , p_pad_start_date => p_pad_start_date
88592 , p_pad_end_date => p_pad_end_date
88593 );
88594
88595 END IF;
88596
88597 l_created := EventClass_122(
88598 p_application_id => p_application_id
88599 , p_base_ledger_id => p_base_ledger_id
88600 , p_target_ledger_id => p_target_ledger_id
88601 , p_language => l_language
88602 , p_currency_code => l_currency_code
88603 , p_sla_ledger_id => l_sla_ledger_id
88604 , p_pad_start_date => p_pad_start_date
88605 , p_pad_end_date => p_pad_end_date
88606 , p_primary_ledger_id => p_primary_ledger_id
88607 );
88608
88609
88610
88611 IF ( g_diagnostics_mode ='Y' ) THEN
88612
88613 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88614 trace
88615 (p_msg => 'CALL Transaction Objects Diagnostics'
88616 ,p_level => C_LEVEL_STATEMENT
88617 ,p_module => l_log_module);
88618
88619 END IF;
88620
88621 insert_sources_122(
88622 p_target_ledger_id => p_target_ledger_id
88623 , p_language => l_language
88624 , p_sla_ledger_id => l_sla_ledger_id
88625 , p_pad_start_date => p_pad_start_date
88626 , p_pad_end_date => p_pad_end_date
88627 );
88628
88629 END IF;
88630
88631 l_created := EventClass_123(
88632 p_application_id => p_application_id
88633 , p_base_ledger_id => p_base_ledger_id
88634 , p_target_ledger_id => p_target_ledger_id
88635 , p_language => l_language
88636 , p_currency_code => l_currency_code
88637 , p_sla_ledger_id => l_sla_ledger_id
88638 , p_pad_start_date => p_pad_start_date
88639 , p_pad_end_date => p_pad_end_date
88640 , p_primary_ledger_id => p_primary_ledger_id
88641 );
88642
88643
88644
88645 IF ( g_diagnostics_mode ='Y' ) THEN
88646
88647 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88648 trace
88649 (p_msg => 'CALL Transaction Objects Diagnostics'
88650 ,p_level => C_LEVEL_STATEMENT
88651 ,p_module => l_log_module);
88652
88653 END IF;
88654
88655 insert_sources_123(
88656 p_target_ledger_id => p_target_ledger_id
88657 , p_language => l_language
88658 , p_sla_ledger_id => l_sla_ledger_id
88659 , p_pad_start_date => p_pad_start_date
88660 , p_pad_end_date => p_pad_end_date
88661 );
88662
88663 END IF;
88664
88665 l_created := EventClass_124(
88666 p_application_id => p_application_id
88667 , p_base_ledger_id => p_base_ledger_id
88668 , p_target_ledger_id => p_target_ledger_id
88669 , p_language => l_language
88670 , p_currency_code => l_currency_code
88671 , p_sla_ledger_id => l_sla_ledger_id
88672 , p_pad_start_date => p_pad_start_date
88673 , p_pad_end_date => p_pad_end_date
88674 , p_primary_ledger_id => p_primary_ledger_id
88675 );
88676
88677
88678
88679 IF ( g_diagnostics_mode ='Y' ) THEN
88680
88681 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88682 trace
88683 (p_msg => 'CALL Transaction Objects Diagnostics'
88684 ,p_level => C_LEVEL_STATEMENT
88685 ,p_module => l_log_module);
88686
88687 END IF;
88688
88689 insert_sources_124(
88690 p_target_ledger_id => p_target_ledger_id
88691 , p_language => l_language
88692 , p_sla_ledger_id => l_sla_ledger_id
88693 , p_pad_start_date => p_pad_start_date
88694 , p_pad_end_date => p_pad_end_date
88695 );
88696
88697 END IF;
88698
88699 l_created := EventClass_125(
88700 p_application_id => p_application_id
88701 , p_base_ledger_id => p_base_ledger_id
88702 , p_target_ledger_id => p_target_ledger_id
88703 , p_language => l_language
88704 , p_currency_code => l_currency_code
88705 , p_sla_ledger_id => l_sla_ledger_id
88706 , p_pad_start_date => p_pad_start_date
88707 , p_pad_end_date => p_pad_end_date
88708 , p_primary_ledger_id => p_primary_ledger_id
88709 );
88710
88711
88712
88716 trace
88713 IF ( g_diagnostics_mode ='Y' ) THEN
88714
88715 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88717 (p_msg => 'CALL Transaction Objects Diagnostics'
88718 ,p_level => C_LEVEL_STATEMENT
88719 ,p_module => l_log_module);
88720
88721 END IF;
88722
88723 insert_sources_125(
88724 p_target_ledger_id => p_target_ledger_id
88725 , p_language => l_language
88726 , p_sla_ledger_id => l_sla_ledger_id
88727 , p_pad_start_date => p_pad_start_date
88728 , p_pad_end_date => p_pad_end_date
88729 );
88730
88731 END IF;
88732
88733 l_created := EventClass_126(
88734 p_application_id => p_application_id
88735 , p_base_ledger_id => p_base_ledger_id
88736 , p_target_ledger_id => p_target_ledger_id
88737 , p_language => l_language
88738 , p_currency_code => l_currency_code
88739 , p_sla_ledger_id => l_sla_ledger_id
88740 , p_pad_start_date => p_pad_start_date
88741 , p_pad_end_date => p_pad_end_date
88742 , p_primary_ledger_id => p_primary_ledger_id
88743 );
88744
88745
88746
88747 IF ( g_diagnostics_mode ='Y' ) THEN
88748
88749 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88750 trace
88751 (p_msg => 'CALL Transaction Objects Diagnostics'
88752 ,p_level => C_LEVEL_STATEMENT
88753 ,p_module => l_log_module);
88754
88755 END IF;
88756
88757 insert_sources_126(
88758 p_target_ledger_id => p_target_ledger_id
88759 , p_language => l_language
88760 , p_sla_ledger_id => l_sla_ledger_id
88761 , p_pad_start_date => p_pad_start_date
88762 , p_pad_end_date => p_pad_end_date
88763 );
88764
88765 END IF;
88766
88767 l_created := EventClass_127(
88768 p_application_id => p_application_id
88769 , p_base_ledger_id => p_base_ledger_id
88770 , p_target_ledger_id => p_target_ledger_id
88771 , p_language => l_language
88772 , p_currency_code => l_currency_code
88773 , p_sla_ledger_id => l_sla_ledger_id
88774 , p_pad_start_date => p_pad_start_date
88775 , p_pad_end_date => p_pad_end_date
88776 , p_primary_ledger_id => p_primary_ledger_id
88777 );
88778
88779
88780
88781 IF ( g_diagnostics_mode ='Y' ) THEN
88782
88783 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88784 trace
88785 (p_msg => 'CALL Transaction Objects Diagnostics'
88786 ,p_level => C_LEVEL_STATEMENT
88787 ,p_module => l_log_module);
88788
88789 END IF;
88790
88791 insert_sources_127(
88792 p_target_ledger_id => p_target_ledger_id
88793 , p_language => l_language
88794 , p_sla_ledger_id => l_sla_ledger_id
88795 , p_pad_start_date => p_pad_start_date
88796 , p_pad_end_date => p_pad_end_date
88797 );
88798
88799 END IF;
88800
88801 l_created := EventClass_128(
88802 p_application_id => p_application_id
88803 , p_base_ledger_id => p_base_ledger_id
88804 , p_target_ledger_id => p_target_ledger_id
88805 , p_language => l_language
88806 , p_currency_code => l_currency_code
88807 , p_sla_ledger_id => l_sla_ledger_id
88808 , p_pad_start_date => p_pad_start_date
88809 , p_pad_end_date => p_pad_end_date
88810 , p_primary_ledger_id => p_primary_ledger_id
88811 );
88812
88813
88814
88815 IF ( g_diagnostics_mode ='Y' ) THEN
88816
88817 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88818 trace
88819 (p_msg => 'CALL Transaction Objects Diagnostics'
88820 ,p_level => C_LEVEL_STATEMENT
88821 ,p_module => l_log_module);
88822
88823 END IF;
88824
88825 insert_sources_128(
88826 p_target_ledger_id => p_target_ledger_id
88827 , p_language => l_language
88828 , p_sla_ledger_id => l_sla_ledger_id
88829 , p_pad_start_date => p_pad_start_date
88830 , p_pad_end_date => p_pad_end_date
88831 );
88832
88833 END IF;
88834
88835 l_created := EventClass_129(
88836 p_application_id => p_application_id
88837 , p_base_ledger_id => p_base_ledger_id
88838 , p_target_ledger_id => p_target_ledger_id
88839 , p_language => l_language
88840 , p_currency_code => l_currency_code
88841 , p_sla_ledger_id => l_sla_ledger_id
88842 , p_pad_start_date => p_pad_start_date
88843 , p_pad_end_date => p_pad_end_date
88844 , p_primary_ledger_id => p_primary_ledger_id
88845 );
88846
88847
88848
88849 IF ( g_diagnostics_mode ='Y' ) THEN
88850
88851 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88852 trace
88853 (p_msg => 'CALL Transaction Objects Diagnostics'
88854 ,p_level => C_LEVEL_STATEMENT
88855 ,p_module => l_log_module);
88856
88857 END IF;
88858
88859 insert_sources_129(
88863 , p_pad_start_date => p_pad_start_date
88860 p_target_ledger_id => p_target_ledger_id
88861 , p_language => l_language
88862 , p_sla_ledger_id => l_sla_ledger_id
88864 , p_pad_end_date => p_pad_end_date
88865 );
88866
88867 END IF;
88868
88869 l_created := EventClass_130(
88870 p_application_id => p_application_id
88871 , p_base_ledger_id => p_base_ledger_id
88872 , p_target_ledger_id => p_target_ledger_id
88873 , p_language => l_language
88874 , p_currency_code => l_currency_code
88875 , p_sla_ledger_id => l_sla_ledger_id
88876 , p_pad_start_date => p_pad_start_date
88877 , p_pad_end_date => p_pad_end_date
88878 , p_primary_ledger_id => p_primary_ledger_id
88879 );
88880
88881
88882
88883 IF ( g_diagnostics_mode ='Y' ) THEN
88884
88885 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88886 trace
88887 (p_msg => 'CALL Transaction Objects Diagnostics'
88888 ,p_level => C_LEVEL_STATEMENT
88889 ,p_module => l_log_module);
88890
88891 END IF;
88892
88893 insert_sources_130(
88894 p_target_ledger_id => p_target_ledger_id
88895 , p_language => l_language
88896 , p_sla_ledger_id => l_sla_ledger_id
88897 , p_pad_start_date => p_pad_start_date
88898 , p_pad_end_date => p_pad_end_date
88899 );
88900
88901 END IF;
88902
88903 l_created := EventClass_131(
88904 p_application_id => p_application_id
88905 , p_base_ledger_id => p_base_ledger_id
88906 , p_target_ledger_id => p_target_ledger_id
88907 , p_language => l_language
88908 , p_currency_code => l_currency_code
88909 , p_sla_ledger_id => l_sla_ledger_id
88910 , p_pad_start_date => p_pad_start_date
88911 , p_pad_end_date => p_pad_end_date
88912 , p_primary_ledger_id => p_primary_ledger_id
88913 );
88914
88915
88916
88917 IF ( g_diagnostics_mode ='Y' ) THEN
88918
88919 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88920 trace
88921 (p_msg => 'CALL Transaction Objects Diagnostics'
88922 ,p_level => C_LEVEL_STATEMENT
88923 ,p_module => l_log_module);
88924
88925 END IF;
88926
88927 insert_sources_131(
88928 p_target_ledger_id => p_target_ledger_id
88929 , p_language => l_language
88930 , p_sla_ledger_id => l_sla_ledger_id
88931 , p_pad_start_date => p_pad_start_date
88932 , p_pad_end_date => p_pad_end_date
88933 );
88934
88935 END IF;
88936
88937 l_created := EventClass_132(
88938 p_application_id => p_application_id
88939 , p_base_ledger_id => p_base_ledger_id
88940 , p_target_ledger_id => p_target_ledger_id
88941 , p_language => l_language
88942 , p_currency_code => l_currency_code
88943 , p_sla_ledger_id => l_sla_ledger_id
88944 , p_pad_start_date => p_pad_start_date
88945 , p_pad_end_date => p_pad_end_date
88946 , p_primary_ledger_id => p_primary_ledger_id
88947 );
88948
88949
88950
88951 IF ( g_diagnostics_mode ='Y' ) THEN
88952
88953 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88954 trace
88955 (p_msg => 'CALL Transaction Objects Diagnostics'
88956 ,p_level => C_LEVEL_STATEMENT
88957 ,p_module => l_log_module);
88958
88959 END IF;
88960
88961 insert_sources_132(
88962 p_target_ledger_id => p_target_ledger_id
88963 , p_language => l_language
88964 , p_sla_ledger_id => l_sla_ledger_id
88965 , p_pad_start_date => p_pad_start_date
88966 , p_pad_end_date => p_pad_end_date
88967 );
88968
88969 END IF;
88970
88971
88972 --
88973 -- Bug 4865292
88974 -- When the number of events and that of header extract do not match,
88975 -- set the no header extract flag to indicate there are some issues
88976 -- in header extract.
88977 --
88978 -- Event count context is set in xla_accounting_pkg.unit_processor.
88979 -- Build_Message for this error is called in xla_accounting_pkg.post_accounting
88980 -- to report it as a general error.
88981 --
88982 IF xla_context_pkg.get_event_count_context <> g_hdr_extract_count
88983 AND xla_context_pkg.get_event_nohdr_context <> 'Y' THEN
88984
88985 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
88986 trace
88987 (p_msg => '# of extracted headers and events does not match'
88988 ,p_level => C_LEVEL_STATEMENT
88989 ,p_module => l_log_module);
88990
88991 trace
88992 (p_msg => '# of extracted headers: '
88993 ||g_hdr_extract_count
88994 ,p_level => C_LEVEL_STATEMENT
88995 ,p_module => l_log_module);
88996
88997 trace
88998 (p_msg => '# of events in xla_events_gt: '
88999 ||xla_context_pkg.get_event_count_context
89000 ,p_level => C_LEVEL_STATEMENT
89001 ,p_module => l_log_module);
89002
89003 trace
89007 ,p_module => l_log_module);
89004 (p_msg => 'Event No Header Extract Context: '
89005 ||xla_context_pkg.get_event_nohdr_context
89006 ,p_level => C_LEVEL_STATEMENT
89008
89009 END IF;
89010
89011
89012 xla_context_pkg.set_event_nohdr_context
89013 (p_nohdr_extract_flag => 'Y'
89014 ,p_client_id => sys_context('USERENV','CLIENT_IDENTIFIER'));
89015
89016 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89017 trace
89018 (p_msg => 'No Header Extract Flag is set to Y'
89019 ,p_level => C_LEVEL_STATEMENT
89020 ,p_module => l_log_module);
89021 END IF;
89022
89023 END IF;
89024
89025 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89026 trace
89027 (p_msg => 'END of CreateHeadersAndLines'
89028 ,p_level => C_LEVEL_PROCEDURE
89029 ,p_module => l_log_module);
89030 END IF;
89031
89032 RETURN l_created;
89033 EXCEPTION
89034 WHEN xla_exceptions_pkg.application_exception THEN
89035 RAISE;
89036 WHEN OTHERS THEN
89037 xla_exceptions_pkg.raise_message
89038 (p_location => 'XLA_00275_AAD_S_000004_PKG.CreateHeadersAndLines');
89039 END CreateHeadersAndLines;
89040 --
89041 --
89042
89043 --
89044 --+============================================+
89045 --| |
89046 --| PUBLIC FUNCTION |
89047 --| |
89048 --+============================================+
89049 --
89050 FUNCTION CreateJournalEntries
89051 (p_application_id IN NUMBER
89052 ,p_base_ledger_id IN NUMBER
89053 ,p_pad_start_date IN DATE
89054 ,p_pad_end_date IN DATE
89055 ,p_primary_ledger_id IN NUMBER)
89056 RETURN NUMBER IS
89057 l_log_module VARCHAR2(240);
89058 l_array_ledgers xla_accounting_cache_pkg.t_array_ledger_id;
89059 l_temp_result BOOLEAN;
89060 l_result NUMBER;
89061 BEGIN
89062 --
89063 IF g_log_enabled THEN
89064 l_log_module := C_DEFAULT_MODULE||'.CreateJournalEntries';
89065 END IF;
89066 --
89067 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89068 trace
89069 (p_msg => 'BEGIN of CreateJournalEntries'||
89070 ' - p_base_ledger_id = '||TO_CHAR(p_base_ledger_id)
89071 ,p_level => C_LEVEL_PROCEDURE
89072 ,p_module => l_log_module);
89073
89074 END IF;
89075
89076 --
89077 g_diagnostics_mode:= xla_accounting_engine_pkg.g_diagnostics_mode;
89078
89079 IF (C_LEVEL_STATEMENT >= g_log_level) THEN
89080 trace
89081 (p_msg => 'g_diagnostics_mode = '||g_diagnostics_mode
89082 ,p_level => C_LEVEL_STATEMENT
89083 ,p_module => l_log_module);
89084 END IF;
89085 --
89086 xla_ae_journal_entry_pkg.SetProductAcctDefinition
89087 (p_product_rule_code => 'PA_STANDARD_ACCOUNTING'
89088 ,p_product_rule_type_code => 'S'
89089 ,p_product_rule_version => ''
89090 ,p_product_rule_name => 'Projects Standard Accounting'
89091 ,p_amb_context_code => 'DEFAULT'
89092 );
89093
89094 l_array_ledgers :=
89095 xla_ae_journal_entry_pkg.GetAlternateCurrencyLedger
89096 (p_base_ledger_id => p_base_ledger_id);
89097
89098 FOR Idx IN 1 .. l_array_ledgers.COUNT LOOP
89099 l_temp_result :=
89100 XLA_AE_JOURNAL_ENTRY_PKG.GetLedgersInfo
89101 (p_application_id => p_application_id
89102 ,p_base_ledger_id => p_base_ledger_id
89103 ,p_target_ledger_id => l_array_ledgers(Idx)
89104 ,p_primary_ledger_id => p_primary_ledger_id
89105 ,p_pad_start_date => p_pad_start_date
89106 ,p_pad_end_date => p_pad_end_date);
89107
89108 l_temp_result :=
89109 l_temp_result AND
89110 CreateHeadersAndLines
89111 (p_application_id => p_application_id
89112 ,p_base_ledger_id => p_base_ledger_id
89113 ,p_target_ledger_id => l_array_ledgers(Idx)
89114 ,p_pad_start_date => p_pad_start_date
89115 ,p_pad_end_date => p_pad_end_date
89116 ,p_primary_ledger_id => p_primary_ledger_id
89117 );
89118 END LOOP;
89119
89120
89121 IF (g_diagnostics_mode = 'Y' AND
89122 C_LEVEL_UNEXPECTED >= g_log_level AND
89123 xla_environment_pkg.g_Req_Id IS NOT NULL ) THEN
89124
89125 xla_accounting_dump_pkg.acctg_event_extract_log(
89126 p_application_id => p_application_id
89127 ,p_request_id => xla_environment_pkg.g_Req_Id
89128 );
89129
89130 END IF;
89131
89132 CASE l_temp_result
89133 WHEN TRUE THEN l_result := 0;
89134 ELSE l_result := 2;
89135 END CASE;
89136
89137 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89138 trace
89139 (p_msg => 'return value. = '||TO_CHAR(l_result)
89140 ,p_level => C_LEVEL_PROCEDURE
89141 ,p_module => l_log_module);
89142 trace
89143 (p_msg => 'END of CreateJournalEntries '
89144 ,p_level => C_LEVEL_PROCEDURE
89145 ,p_module => l_log_module);
89146 END IF;
89147
89148 RETURN l_result;
89149 EXCEPTION
89150 WHEN xla_exceptions_pkg.application_exception THEN
89151 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89152 trace
89153 (p_msg => 'ERROR. = '||sqlerrm
89154 ,p_level => C_LEVEL_PROCEDURE
89155 ,p_module => l_log_module);
89156 END IF;
89157 RAISE;
89158 WHEN OTHERS THEN
89159 IF (C_LEVEL_PROCEDURE >= g_log_level) THEN
89160 trace
89164 END IF;
89161 (p_msg => 'ERROR. = '||sqlerrm
89162 ,p_level => C_LEVEL_PROCEDURE
89163 ,p_module => l_log_module);
89165 xla_exceptions_pkg.raise_message
89166 (p_location => 'XLA_00275_AAD_S_000004_PKG.CreateJournalEntries');
89167 END CreateJournalEntries;
89168 --
89169 --=============================================================================
89170 --
89171 --
89172 --
89173 --
89174 --
89175 --
89176 --
89177 --
89178 --
89179 --
89180 --
89181 --
89182 --
89183 --
89184 --
89185 --
89186 --
89187 --
89188 --
89189 --
89190 --
89191 --
89192 --=============================================================================
89193 --=============================================================================
89194 -- *********** Initialization routine **********
89195 --=============================================================================
89196
89197 BEGIN
89198 g_log_level := FND_LOG.G_CURRENT_RUNTIME_LEVEL;
89199 g_log_enabled := fnd_log.test
89200 (log_level => g_log_level
89201 ,module => C_DEFAULT_MODULE);
89202
89203 IF NOT g_log_enabled THEN
89204 g_log_level := C_LEVEL_LOG_DISABLED;
89205 END IF;
89206 --
89207 END XLA_00275_AAD_S_000004_PKG;
89208 --